我已经搜索了很多,但没有得到解决方案,因此发布了这个。
场景:我正在构建一个使用opencv库的Android应用。当我构建APK文件时,apk的大小是' 66' MB对于我的app.I' m使用最新版本的OpenCV
太多了分析:当我分析apk文件时,我可以看到由于“libopencv_java3.so”而导致的尺寸过大。所有架构中的文件,如amr64,armeabi,mips,x86等。如果我删除所有这些文件并构建APK,那么大小只有7 MB,这只能用于安装在目标设备中的OpenCVManager
问题:我不希望我的应用用户安装其他应用(OpenCVManager)来运行我的应用。所以,只是想知道,在没有OpenCVManager帮助的情况下,减少应用程序的apk大小的所有可能的解决方案是什么?
答案 0 :(得分:8)
您可以在build.gradle文件中启用ABI拆分,如下所示:
android {
// Some other configuration here...
splits {
abi {
enable true
reset()
include 'x86', 'armeabi', 'armeabi-v7a', 'mips'
universalApk false
}
}
}
请参阅此链接https://realm.io/news/reducing-apk-size-native-libraries/
答案 1 :(得分:0)
使用proguard来混淆,缩小,缩小资源。只需确保通过OpenCV读取他们的proguard规则的文档,为未使用的资源运行android lint。