我使用Android NDK为Android编译了一个应用程序。我有两个项目。首先 - 是一个带有ndk库和jni文件夹的库。第二 - 是我的工作应用程序,其中包括第一个项目作为库。我的应用程序的大小对我来说太大了(30Mb)。我想减少它。我阅读了教程,但他们告诉我们做基本选项,比如删除日志和未使用的代码等等。但这对我没有帮助。我可以使用我的所有 .c 文件删除jni文件夹(如果我在最终构建中是正确的,则它们是不必要的,因为它们被编译为 .so libs ),或者这不会减小apk的大小?或者我可能应该做别的事情?感谢您对我的问题感兴趣!
答案 0 :(得分:2)
您可以在build.gradle文件中启用ABI拆分,如下所示:
android {
// Some other configuration here...
splits {
abi {
enable true
reset()
include 'x86', 'armeabi', 'armeabi-v7a', 'mips'
universalApk false
}
}
}
这将大大减少您的应用程序大小。
原因是现在Gradle将为每个CPU生成一个APK,从而进一步减小尺寸!
在我的情况下,它将我的apk文件大小从5.4mb减少到3.2mb。
答案 1 :(得分:1)
您还可以检查是否有任何使用过的第三方库,并查看是否可以禁用任何不必要的扩展程序。
有一次我使用assimp完全支持所有加载器,它为我的应用程序增加了10MB以上。 通过从中删除不必要的模块,结果就不那么臃肿了。
答案 2 :(得分:1)
如果您的Application.mk
有行
APP_ABIS = all
或类似的,请考虑为不同的平台(armeabi,armeabi-v7a,x86,mips)运送单独的APK。
技术细节将在 Android - build separate APKs for different processor architectures
中详细讨论答案 3 :(得分:1)
你应该看看: