跳到主要内容
版本:v1.2.8

发布与混淆

Android release 混淆与加固​

Android release AAR 会维护公开 API、离线模型、状态模型、音色、在线翻译引擎和埋点 SPI 所需的混淆规则。SDK 自身的 release 打包规则与供宿主使用的 consumer rules 分开维护,并通过发布校验任务验证。

宿主 App 接入要求​

通过 Gradle 正常依赖 SDK 时,AAR 随附的 consumer-rules.pro 会自动合并到宿主 App 的 R8/ProGuard 配置。宿主通常无需手动复制规则。

自定义或二次打包

如果宿主的自定义 R8 流程、依赖处理或 AAR 二次打包未合并 consumer rules,必须完整保留发布 AAR 中的 proguard.txt 规则。不要只保留少量公开类或只添加 -dontwarn,否则反射、JNI 和二进制消息解析路径仍可能在 release 构建中失效。

consumer rules 覆盖范围​

规则范围保护目的宿主应处理的事项
公开 API、配置、回调、枚举、错误码、状态与离线模型入口保持宿主直接调用的类名、成员和枚举常量稳定。确保完整合并 consumer rules;不要在自定义规则中裁剪这些类型。
Kotlin/泛型/注解元信息、Gson 与 Retrofit保留 Signature、注解字段和构造器,以及 kotlin.coroutines.Continuation、retrofit2.Response、retrofit2.Call 等反射和泛型解析依赖。不要移除 AAR 中的 -keepattributes、-keepclasseswithmembers、-keepclassmembers 和相关 keep 规则。
JNI、Agora RTC/RTM 与 msgpack保留 native 查找的 Java 类型与 native 方法,以及反射加载的 msgpack 实现。不要移除 io.agora.**、org.msgpack.** 和 native 方法相关 keep 规则。
已知缺失类警告处理 Jackson/msgpack 依赖引用的非 Android JDK 类,以及 Agora、msgpack 的已知告警。仅保留 AAR 随附的对应 -dontwarn;不要使用全局 -dontwarn 掩盖其他缺失类。

发布构建与排障​

  • 宿主开启 minifyEnabled 后,应验证初始化、鉴权、创建房间、创建通道、识别/翻译回调和资源释放等核心流程。
  • 保留 release 构建的 mapping 文件。若出现建房 HTTP 成功后回调失败、入会或推流时 native 崩溃,或通道运行后没有识别/翻译结果,请同时提供混淆后的堆栈、mapping 文件和脱敏诊断日志。
  • SDK release 包已完成自身的 R8、字符串保护和 native 产物加固。宿主无需为这些加固开关新增 SDK API 或 Gradle 配置,但不应替换或裁剪 AAR 随附的规则和原生依赖。
16 KB 页设备

v1.2.8 的 Android 原生产物已适配 16 KB Page Size 设备。接入方无需新增 API 或 Gradle 配置;如宿主自行替换 SDK 的原生依赖,请确认替换产物同样支持 16 KB 页对齐。


Demo/示例索引​

文件说明
Android/app/src/main/java/co/timekettle/translation/OnlineListenViewModel.kt在线收听 Demo
Android/app/src/main/java/co/timekettle/translation/Online1v1ViewModel.kt在线一对一 Demo
Android/app/src/main/java/co/timekettle/translation/OfflineListenViewModel.kt离线收听 Demo
Android/app/src/main/java/co/timekettle/translation/Offline1v1ViewModel.kt离线一对一 Demo
Android/libraryTranslation/src/main/java/co/timekettle/translation/TmkTranslationSDK.ktSDK 入口
Android/libraryTranslation/src/main/java/co/timekettle/translation/TmkTranslationChannel.kt通道对象
Android/libraryTranslation/src/main/java/co/timekettle/translation/offlinemodel/TmkOfflineModelDownloadListener.kt离线模型下载监听器