openCV 3删除Android的不必要的cpu​​架构


Android Studio中添加openCV 3.0作为库后,我发现我的apk文件已经增长到50MB以上,这显然不太理想.

解压缩apk文件显示lib目录中有多个目标体系结构,即arm64-v8a,armeabi,armeabi-v7a,mips,mips64,x86,x86_64.每个占用10 MB.

从源jniLibs目录中删除一些目标体系结构以减小apk大小是否安全?如果是这样,我应该删除哪些目标?我的目标是相对较新的设备,只要它在较新的设备上运行我就可以了.

最佳答案 受欢迎程度的架构总体排名将是ARM,x86,然后是MIPS.问题是64位是未来面临的,所以取决于你愿意放弃它意味着你的64位架构上的32位代码可能会受到一些性能影响.

或者,在Google Play中使用Multiple APK支持向用户提供正确的架构APK,以减少相关复杂性的尺寸/下载时间.

更新

Android Compatibility Definition Document第3.3.1节强制要求在64位体系结构上支持32位代码

MUST support the equivalent 32-bit ABI if any 64-bit ABI is supported

谷歌不希望新的64位设备在32位二进制文​​件上中断,因为生态系统中存在相当多的32位代码(即游戏).

点赞