Skip to content

maxim-top/floo-android

Repository files navigation

蓝莺IM SDK,安卓本地库

蓝莺IM,是由美信拓扑团队研发的新一代即时通讯云服务,SDK设计简单集成方便,服务采用云原生技术和多云架构,私有云也可按月付费。

蓝莺IM SDK(代号 floo)底层使用 C++ 实现,各平台(Android、iOS、Linux等)在此基础上进行封装成本地库,以达到多平台复用的目的,并保持跨平台协议实现的一致性。

本工程 floo-android 为供安卓使用的本地应用库,主体由 SWIG 框架自动生成。

Scc Count Badge Scc Count Badge

设计思想

用 SWIG 生成的 Java 代码,通过 JNI 方式调用底层 C++ 类库,因此大部分接口均为同步,这便是 floo-android 低级 API 的主体。 代码生成和转换的过程中,相关数据结构得以直接映射到底层类库,减少了内存拷贝,因此其性能接近于直接调用底层库。

同时,又考虑到开发者集成方便,我们也基于此类重新封装了高级 API,使用了更为友好的数据结构,并完成了异步机制封装。

介绍

整个类库库分为三部分:

  1. 低级 API(Low-Level / 同步调用 / 以Service结尾)

主要有 BMXUserService、BMXChatService、BMXRosterService、BMXGroupService。

  1. 高级 API(High-Level / 异步调用 / 以Manager结尾)

主要有 BMXUserManager、BMXChatManager、BMXRosterManager、BMXGroupManager。

  1. 工具类 Utility

包括 BMXClient、BMXSDKConfig、BMXMessage、BMXConversation、BMXUserProfile、BMXGroup、BMXDevice等。

快速集成文档参考蓝莺IM快速集成指南Android版, 详细文档可参考floo-android reference

开发

  1. 检查 ndk 已安装并配置

下载Android NDK,解压后配置 local.properties 中的 ndk.dir。

  1. 构建

使用 Android Studio 打开工程,执行 app -> build -> assembleRelease 任务,可生成可用 AAR 库。

常见错误

  1. 不支持armeabi

错误信息:

ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64].

原因以及解决: armeabi 从 ndk17 开始已被移除, 可以使用 ndk-r16b (以 mac 为例)

生成文档

进入 javadoc 文件夹,执行命令

./gendoc.sh

祝玩得开心😊