關於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

相關文章
相關標籤/搜索