Android ndk中abiFilters詳解

Android 分為ndk { abiFilters "armeabi-v7a", "x86", 'arm64-v8a', 'x86_64' }
微信適配的是arm64-v8a(微信應(yīng)該是最近才適配到arm64-v8a,以前是armeabi),
支付寶和手Q適配的是armeabi,
淘寶適配的是armeabi-v7a。

這里就可以回答前面的兩個(gè)問題了。
Q1: 只適配了armeabi-v7a,那如果APP裝在其他架構(gòu)的手機(jī)上,如arm64-v8a上,會(huì)蹦嗎?
A: 不會(huì),但是反過來會(huì)。
因?yàn)閍rmeabi-v7a和arm64-v8a會(huì)向下兼容:

只適配armeabi的APP可以跑在armeabi,x86,x86_64,armeabi-v7a,arm64-v8上只適配armeabi-v7a可以運(yùn)行在armeabi-v7a和arm64-v8a只適配arm64-v8a 可以運(yùn)行在arm64-v8a上
那我們?cè)撊绾芜m配呢?給出如下幾個(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)碼來兼容

方案二:只適配 armeabi-v7a
同理方案一,只是又篩掉了一部分老舊設(shè)備,在性能和兼容二者中比較平衡
方案三: 只適配 arm64-v8

優(yōu)點(diǎn): 性能最佳
缺點(diǎn): 只能運(yùn)行在arm64-v8上,要放棄部分老舊設(shè)備用戶

這三種方案都是可以的,現(xiàn)在的大廠APP適配中,這三種都有,大部分是前2種方案。具體選哪一種就看自己的考量了,以性能換兼容就arm64-v8,以兼容換性能armeabi,二者稍微平衡一點(diǎn)的就armeabi-v7a。google play支持上傳多個(gè)apk
目前來說,大多數(shù)的大廠APP用的都是armeabi或armeabi-v7a,只有像微信這種牛逼的APP,為了追求性能和用戶體驗(yàn),放棄了少部分設(shè)備,這也說得通吧,畢竟微信也不在乎蒼蠅那點(diǎn)肉。

參考:https://juejin.cn/post/6844904148589084680
參考:https://blog.csdn.net/yearningseeker/article/details/118554430

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容