Android已压缩的融合库

移动开发 2026-07-12

我有一个闭源的Android SDK,由第三方集成商使用。目前这是一个单体式的SDK。这个SDK相当庞大,我想开始对代码库进行模块化,在不改变外部集成商的前提下(至少现在如此)。目前该SDK仅暴露公共API,内部实现经过混淆。我们尚未对SDK进行模块化,因为子模块需要发布到Maven。并且它们的公共API将不会被混淆(而在单体版本中,公共API是混淆的,第三方无法访问)。我担心相比于保持单体结构,通过增大的公共API表面我们会暴露更多内部SDK细节。

Android fused library 插件似乎很适合这种用例,但目前我唯一缺少的是,如何让子模块的公共API保持混淆并对第三方集成商不可见。这是否可行?在fused library模块、当前的单体模块以及新提取的子模块上,需要怎样的R8设置?

解决方案

你说得对,对于这个用例,你希望把所有内容整合在一起——这项功能尚未在AGP中实现,这是一个跟踪中的功能请求,请点击+1按钮并选择“I am impacted”来表示受影响:https://issuetracker.google.com/346984969

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章