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