Android SDK 快速集成与 16KB AAR 构建
Android 端底层由本仓库 qxj-im-core (v3.8.3-patch.3, Apache-2.0) 通过 gomobile bind 编译生成 openim-core.aar,原生内置 Android 15+ 16KB 页面大小对齐 (max-page-size=16384) 支持。
1. 从源码编译 openim-core.aar
1.1 环境要求
- Go:
1.22+ - JDK:
JDK 17或JDK 21 - Android SDK & NDK:
NDK r26+(需设置ANDROID_HOME与ANDROID_NDK_HOME)
1.2 执行编译
在 qxj-im-core 根目录执行:
go run golang.org/x/mobile/cmd/gomobile@latest init
go run golang.org/x/mobile/cmd/gomobile@latest bind -v \
-target=android \
-androidapi 21 \
-javapkg=io.openim.android \
-ldflags="-s -w -extldflags '-Wl,--gc-sections,--as-needed,-z,max-page-size=16384'" \
-o _output/aar/openim-core.aar \
./open_im_sdk ./open_im_sdk_callback
编译生成的 _output/aar/openim-core.aar 包含 arm64-v8a、armeabi-v7a、x86、x86_64 四架构 libgojni.so 以及自动生成的 Java/Kotlin JNI 桥接类 io.openim.android.open_im_sdk.Open_im_sdk。
2. 在 qxj-android 工程中引入
方式一:通过测试服 Nexus Maven 仓库直接拉取(推荐)
在 settings.gradle.kts 的 dependencyResolutionManagement.repositories 中添加公司 Nexus Maven 聚合源:
dependencyResolutionManagement {
repositories {
maven("https://nexus.test.qxjapp.com/repository/maven-public/")
google()
mavenCentral()
}
}
在模块的 build.gradle.kts 中引入 Apache-2.0 合规版本:
dependencies {
// 趣小界统一坐标 (Apache-2.0)
implementation("com.qxj.im:core-sdk:3.8.3-patch.3")
// 或使用上游兼容坐标 (Apache-2.0)
// implementation("io.openim:core-sdk:3.8.3-patch3")
implementation("io.openim:android-sdk:3.8.3.5")
}
方式二:本地 libs/ 离线引入
将 _output/aar/openim-core.aar 放入 Android 项目的 libs/ 目录,并在 build.gradle.kts 中配置:
dependencies {
implementation(files("libs/openim-core.aar"))
}