在我们的 Android 应用程序中,我们有两个 .so 文件:一个用于 x86,另一个用于 ARM。它们非常大,并且将 .apk 的大小从 7 MB 增加到 11 MB。

由于 .so 文件是运行时实体,因此它们必须位于 .apk 文件内。

有什么方法可以减少 .so 文件的大小或以更好的方式在我的 .apk 中使用/构建它?

我从这里得到一分 http://developer.sonymobile.com/2012/01/31/tips-for-reducing-apk-file-size/ IE。从本机代码中删除调试符号。

有帮助吗?

解决方案

Play 商店允许您 为每个 CPU 架构上传单独的 APK. 。因此,您将拥有一个 ARM APK 和一个 x86 APK,而不是一个同时拥有这两种 APK。

使用 Gradle for Android 设置此类 APK 相对简单——使用单独的 产品风味 对于每个架构。我认为在 Android 的 Gradle 之外有一些方法可以做到这一点,尽管我怀疑它涉及更多。

另一种方法是干脆不分发 x86 .so. 。现代 x86 驱动的 Android 设备往往具有 libhoudini, ,这允许他们使用 ARM .so NDK 库。然而,与 Android 模拟器一样,在 x86 上模拟 ARM 速度很慢,因此您需要测试并查看您的应用程序在 x86 上的性能是否可接受。

并且,正如先生。斯特拉顿建议,特别是如果图书馆是你的,看看你是否可以调整图书馆本身的大小。ProGuard 不会像去除 Java 代码那样去除本机代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top