android - openCV 3 为 Android 移除了不必要的 cpu 架构

标签 android opencv

在 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 位是面向 future 的,因此取决于您放弃它们的意愿如何意味着您在 64 位架构上的 32 位代码可能会受到一些性能影响。

或者使用 Multiple APK Google Play 支持向您的用户提供正确架构的 APK,以减少大小/下载时间,但代价是相关的复杂性。

已更新

Android Compatibility Definition Document 要求在 64 位架构上支持 32 位代码3.3.1节

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

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

关于android - openCV 3 为 Android 移除了不必要的 cpu 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33858429/

相关文章:

opencv - 您能否改进此解决方案以将 OpenCV 2.4+ 连接到 Zxing 1D 条形码阅读器

c++ - iOS 上的 OpenCV : binary size, 加载时间、速度等

android - 从下到上滚动 ListView

android - 通过html5加载sdcard视频--android

android - 从列表首选项中获取整数或索引值

java - 如何在没有按钮的情况下计算两个edittext的值?

opencv - OpenCV中的PCA以及如何准备数据?

opencv - 在 openCV 中查找 SURF 的精确匹配

android - 在不耗尽电池的情况下保持服务清醒

python - 使用 opencv Filter2D 函数时如何避免包含零?