Android中的armeabi等如何适配
文章目錄
- Android目前支持以下7種ABIs
- 大廠如何適配的
- 各種cpu架構市場占有率
- 適配方案
Android目前支持以下7種ABIs
mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7aabifilters 為我們提供了選擇適配指定CPU架構的能力,只需要在app下的 build.gradle添加如下配置:
android {defaultConfig {ndk {abiFilters 'arm64-v8a', 'x86_64'}} }大廠如何適配的
默認情況下,為了使APP有更好的兼容性,我們使用 Android Studio 或者命令打包時,會默認支持所有的架構,但相應的APK size 會瘋狂的增大,那么大廠是如何適配的?
微信適配的是arm64-v8a(微信應該是最近才適配到arm64-v8a,以前是armeabi),支付寶和手Q適配的是armwabi,淘寶適配的是armwabi-v7a。各個APP適配的平臺不太一樣,但是他們有一個共同點,那就是它們只指定了一個平臺
各種cpu架構市場占有率
Android 7種CPU架構在當前市場的占有率:
- arm64-v8a: 目前主流版本
- armeabi-v7a: 一些老舊的手機
- x86 / x86_64: x86 架構的手機都會包含由 Intel 提供的稱為 Houdini 的指令集動態轉碼工具,實現對 arm .so 的兼容,再考慮 x86 1% 以下的市場占有率,x86 相關的兩個 .so 也是可以忽略的
- armeabi/mips / mips64: NDK 以前支持 ARMv5 (armeabi) 以及 32 位和 64 位 MIPS,但 NDK r17 已不再支持,極少用于手機可以忽。
目前手機市場上,x86 / x86_64/armeabi/mips / mips6的架構,基本可以不不考慮了,它們的占有量應很少很少了,arm64-v8a作為最新一代架構,應該是目前的主流,armeabi-v7a只存在少部分老舊手機
適配方案
我們項目中該如何適配呢?
- 只適配armeabi的APP可以跑在armeabi,x86,x86_64,armwabi-v7a,arm64-v8上
- 只適配armwabi-v7a可以運行在armwabi-v7a和arm64-v8a
- 只適配arm64-v8a 可以運行在arm64-v8a上
所以給出如下幾個方案:
方案一:只適配armeabi
優點:基本上適配了全部CPU架構(除了淘汰的mips和mips_64)
缺點:性能低,相當于在絕大多數手機上都是需要輔助ABI或動態轉碼來兼容
方案二:只適配 armwabi-v7a
同理方案一,只是又篩掉了一部分老舊設備,在性能和兼容二者中比較平衡
方案三: 只適配 arm64-v8
優點: 性能最佳
缺點: 只能運行在arm64-v8上,要放棄部分老舊設備用戶
這三種方案都是可以的,現在的大廠APP適配中,這三種都有,大部分是前2種方案。具體選哪一種就看自己的考量了,以性能換兼容就arm64-v8,以兼容換性能armeabi,二者稍微平衡一點的就armwabi-v7a。
目前來說,大多數的大廠APP用的都是armeabi或armwabi-v7a,只有像微信這種牛逼的APP,為了追求性能和用戶體驗,放棄了少部分設備
參考文章:為何大廠APP如微信、支付寶、淘寶、手Q等只適配了armeabi-v7a/armeabi?
總結
以上是生活随笔為你收集整理的Android中的armeabi等如何适配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品设计 产品经理 喜欢的网站
- 下一篇: android sina oauth2.