关于不同cpu架构APP的兼容问题
发现app无法运行在某些设备上。提示“此应用与您手机不兼容”
原因
应用与手机不兼容是因为手机cpu架构问题。Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),
问题 发现app无法运行在某些设备上。提示“此应用与您手机不兼容” 原因 应用与手机不兼容是因为手机cpu架构问题。Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。(ABI 决定了二进制文件如何与系统进行交互。)这些不同的架构与我们在开发app的过程中又有什么关联呢? 不难发现架构不同的关键点就是ABI的不同cpu应用,而ABI又决定了系统与二进制文件交互方式,所以我们可以联想到jni或者ndk开发。其中在使用jni开发的过程中,我们会使用到.so动态库。.so文件就是与系统交互的二进制文件。所以当我们的项目中包含.so文件时我们就应该考虑到cpu的兼容问题了。 如何做兼容 在我们的jniLibs目录下新建以下目录 每一个目录都对应一种ABI。我们需要将对应的.so库放在对应的目录下。
这样就可以解决兼容问题了。 但是在实际开发中我们发现.so文件都会很大。以百度地图sdk为列,如果所有平台都要兼容,我们的app会变的很大。借鉴一下QQ的做法,解压qqAPK后发现qq只有一个目录armeabi。所以我们在实际开发中也只需要兼容armeabi就可以了。(具体为啥,有待考察,可能是市面上大部分设备都是arm架构吧!) 参考连接 记录学习,仅供参考! (编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |