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