最近米死,我們公司的APP锌历,要做包體積的優(yōu)化,其中一個方面就是so包的優(yōu)化峦筒。
對于so包的知識點究西,不是很清楚,特地來整理下物喷。
ndk {
// 設置支持的SO庫架構
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
1. Android支持的CPU處理器架構
- mips
- mips64
- x86
- x86_64
- armeabi
- armeabi-v7a
- arm64-v8a
2. 什么是ABI卤材?
- ABI: Application Binary Interface 應用二進制接口
3. 什么是abiFilters?
- 一種指定生成特定模式ABI包的過濾器
4. 大廠是如何適配不同CPU架構的?
- 微信
(arm64-v8a)
- 淘寶
(armeabi-v7a)
- 支付寶峦失,手機QQ
(armeabi)
5. 主ABI和輔ABI適配流程
6. 我們該如何適配呢扇丛?
-
方案一: 只適配armeabi
- 優(yōu)點: 基本上適配了所有的CPU架構
- 缺點: 性能低,相當于在絕大多數(shù)手機上都是需要輔助API或者動態(tài)轉碼來完成
-
方案二: 只適配armeabi-v7a
- 同理方案一尉辑,只是過濾了一些老舊的設備帆精,在性能和兼容二者中比較平衡。
-
方案三: 只適配arm64-v8a
- 優(yōu)點: 性能最佳
- 缺點: 只能運行在arm64-v8a設備上隧魄,要放棄部分老舊設備用戶卓练。
這三種方案都是可以的,現(xiàn)在的大廠APP適配中购啄,這三種都有襟企,大部分是前兩種。
具體選擇哪一種狮含,就看我們的考量了顽悼,要性能就是arm64-v8a,要兼容就是armeabi几迄,要性能和兼容的平衡就是armeabi-v7a表蝙。