android-chat

Introduction: 全开源即时通讯(IM)系统 高仿微信
More: Author   ReportBugs   OfficialWebsite   
Tags:

野火 IM 是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。

主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。详细情况请参考在线文档

主要包括一下项目:

GitHub 仓库地址(主站) 码云仓库地址(镜像) 说明 备注
im-server server IM Server
android-chat android-chat 野火 IM Android SDK 源码和 App 源码 可以很方便地进行二次开发,或集成到现有应用当中
ios-chat ios-chat 野火 IM iOS SDK 源码和 App 源码 可以很方便地进行二次开发,或集成到现有应用当中
pc-chat pc-chat 基于Electron开发的 PC 端
web-chat web-chat 野火 IM Web 端, 体验地址
wx-chat wx-chat 小程序平台的 Demo(支持微信、百度、阿里、字节、QQ 等小程序平台)
app server app server 应用服务端
robot_server robot_server 机器人服务端
push_server push_server 推送服务器
docs docs 野火 IM 相关文档,包含设计、概念、开发、使用说明,在线查看

说明

本工程为野火 IM Android App,开发过程中,充分考虑了二次开发和集成需求,可作为 SDK 集成到其他应用中,或者直接进行二次开发。

开发一套 IM 系统真的很艰辛,请路过的朋友们给点个 star,支持我们坚持下去🙏🙏🙏🙏🙏

关于包名/applicationId

  1. 开发者开发具体产品时,请勿直接使用本 demo 的包名/applicationId,我们会不定期修改包名/applicationId
  2. 禁止将本产品用于非法目的,一经发现,我们将停止任何形式的技术支持

开发调试说明

  1. JDK: 17
  2. 我们采用最新稳定版 Android Studio 及对应的 gradle 进行开发,对于旧版本的 IDE,我们没有测试,编译之类问题,需自行解决。

关于 debug 版 apk 可能不能进行音视频通话的特殊说明

  1. 关闭混淆时,命令行下,通过./gradlew clean aDebug 或 Android Studio 里面,通过 Build App Bundle(s)/APK(s) -> Build APK(s) 生成的 debug 版本 apk,不支持音视频通话,具体原因请参考useFullClasspathForDexingTransform
  2. 开启混淆,debug 版 apk 一切正常,将chat/build.gradle#buildTypes#debug#minifyEnabled置为 true,即为 debug 版也开启混淆
  3. 命令行下,通过./gradlew clean aR或 Android Studio 里面,通过Generate Signed App Bundle/APK...可生成 release 版 apk,release 版 apk,一切正常

二次开发说明

野火 IM 采用 bugly 作为日志手机工具,大家二次开发时,务必将MyApp.java中的 bugly id 替换为你们自己的,否则错误日志都跑我们这儿来了,你们收集不到错误日志,我们也会受到干扰。

混淆说明

  1. 确保所依赖的lifecycle版本在 2.2.0 或以上。
  2. 参考chat/proguard-rules.pro进行配置。

安全说明

为了方便开发者部署、测试,默认允许HTTP进行网络请求,为了提高安全性,上线之前,请进行以下操作:

  1. app-server配置HTTPS支持,并将APP_SERVER_ADDRESS配置为HTTPS地址
  2. 如果支持开放平台的话,为开发平台配置HTTPS支持,并将WORKSPACE_URL配置为HTTPS地址
  3. 如果支持组织结构的话,为组织结构服务配置HTTPS支持,并将ORG_SERVER_ADDRESS配置为HTTPS地址
  4. AndroidManifest.xml里面的usesCleartextTraffic置为false

敏感权限说明

  1. android.permission.PROCESS_OUTGOING_CALLS,音视频通话时,允许普通电话打断音视频通话
  2. android.permission.SYSTEM_ALERT_WINDOW,允许音视频通话窗口最小化,并悬浮在其他窗口之上
  3. android.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMIN,音视频通话时,允许使用蓝牙耳机

Android 4.x 说明

请使用api-19分支,如果编译失败等,可能是 4.x 版本的协议栈版本没有及时更新所导致,请微信联系 wfchat 进行更新。

联系我们

商务合作请优先采用邮箱和我们联系。技术问题请到野火 IM 论坛发帖交流。

  1. heavyrain.lee 邮箱: heavyrain.lee@wildfirechat.cn 微信:wildfirechat
  2. imndx 邮箱: imndx@wildfirechat.cn 微信:wfchat

问题交流

  1. 如果大家发现 bug,请在 GitHub 提 issue
  2. 其他问题,请到野火 IM 论坛进行交流学习
  3. 微信公众号

强烈建议关注我们的公众号。我们有新版本发布或者有重大更新会通过公众号通知大家,另外我们也会不定期的发布一些关于野火 IM 的技术介绍。

体验 Demo

我们提供了体验 demo,请使用微信扫码下载安装体验

野火 IM

应用截图

点击查看 Android Demo 视频演示

集成

  1. client 部分,自行下载代码,并将 client module 引入你们自己的项目。
  2. uikit 部分,自行下载代码,并将 uikit module 引入你们自己的项目。
  3. push 部分,自行下载代码,将 push module 引入你们自己的项目。

推送

当应用在后台后,不同手机厂家有着不同的后台策略,可能很快或者最终会被冻结和杀掉,此时收到消息需要厂商的推送通知服务。请部署推送服务,推送服务代码可以在Github码云下载。具体使用方式,请参考推送服务项目上的说明。

贡献

欢迎提交 pull request,一起打造一个更好的开源 IM。

鸣谢

  1. LQRWeChat 本项目中图片选择器、表情基于此开发
  2. butterKnife
  3. OKHttp 等一些其他优秀的开源项目
  4. 本工程使用的 Icon 全部来源于icons8,对他们表示感谢。
  5. Gif 动态图来源于网络,对网友的制作表示感谢。

如果有什么地方侵犯了您的权益,请联系我们删除🙏🙏🙏

License

  1. Under the Creative Commons Attribution-NoDerivs 3.0 Unported license. See the LICENSE file for details.
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools