【发布时间】:2013-11-08 20:51:28
【问题描述】:
我正在开发一个在 apk 中嵌入了原生“.so”文件的 Android 项目。每当我们需要发布错误修复时,我们现在都会发布一个带有“.so”的新 apk 文件,其中包含修复。但这是一个巨大的文件,效率不高。
所以我的问题是,是否可以仅使用已更改的相关“.o”文件来更新“.apk”中的“.so”?意味着保持“.so”文件的其余部分相同,我们可以只更新那些改变的“.o”文件吗?类似于一些系统如何推动他们的错误修复。
【问题讨论】:
-
您可能会为
.so分发二进制差异升级。仅在.so中交换.o是不可能的,因为涉及的不仅仅是将它们打包到单个文件中。但你可能不应该因为arstechnica.com/information-technology/2013/04/… -
您无法修改已安装的 .apk,除非通过安装/升级机制完全替换它,但您可以通过其他方式分发补充 .so 文件。详细而熟练地使用动态链接器可以让您让一些本地方法覆盖现有方法,但这会非常棘手。
标签: android linux linker shared-libraries native