关于Android手机CPU不一样架构的问题

一、共有7种架构  

  1. armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月之后的生产的大部分Android设备都使用它.
  2. arm64-v8a: 第8代、64位ARM处理器,不多设备,三星 Galaxy S6是其中之一。
  3. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。万金油
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板。
  6. mips64:不多,可忽略
  7. mips:不多,可忽略
  • armeabi设备只兼容armeabi;
  • armeabi-v7a设备兼容armeabi-v7a、armeabi;
  • arm64-v8a设备兼容arm64-v8a、armeabi-v7a、armeabi;
  • X86设备兼容X8六、armeabi;
  • X86_64设备兼容X86_6四、X8六、armeabi;
  • mips64设备兼容mips6四、mips;
  • mips只兼容mips;

二、兼容性注意

  若是设备室arm64-v8a的,那么设备先找这个文件夹,若是没有这个文件夹,再去找armeabi-v7a,而后是armeabi。若是有这个文件夹,但没有对应的so文件,那么将直接抛异常。html

  若是引用了不一样第三方平台的so文件,而且他们所支持的平台又有冲突那么能够abiFilters指定用哪一个架构的so文件,其余平台的就会被忽略。android

  第三方aar文件,若是这个sdk对abi的支持比较全,可能会包含armeabi、armeabi-v7a、x8六、arm64-v8a、x86_64五种abi,而你应用的其它so只支持armeabi、armeabi-v7a、x86三种,直接引用sdk的aar,会自动编译出支持5种abi的包。可是应用的其它so缺乏对其它两种abi的支持,那么若是应用运行于arm64-v8a、x86_64为首选abi的设备上时,就会==crash==了哦。架构

三、Genymotion中arm的使用

  须要安装对应的arm-translation文件。可参考文章安装,win10可能会安装失败。spa

四、参考地址

  https://zhuanlan.zhihu.com/p/23102158code

  http://blog.coderclock.com/2017/05/07/android/Android-so-files-compatibility-and-adaptation/htm

  https://www.diycode.cc/topics/691blog

  https://www.cnblogs.com/ring1992/p/7248585.htmlip

相关文章
相关标签/搜索