來了!Android應用市場64位應用策略
作者:熊熊君fly 鏈接:https://juejin.cn/post/7023286220662767624
1 、背景

具體的時間表:
2021年12月底,現(xiàn)有和新發(fā)布的應用、游戲,需要上傳包含64位包體的APK包。也就是說所有上傳的應用都應該包含64位代碼的版本,不再接受僅有32位版本的應用上傳。
2022年8月底,對于支持64位的硬件系統(tǒng),將只接收64位版本的APK包。也就是如果到時用戶手中的硬件設備支持64位系統(tǒng)的話,那么將只運行64位版本的應用。
大勢所趨,以后發(fā)布的應用要支持64位系統(tǒng),
2、調(diào)研
現(xiàn)狀
armeabi、armeabi-v7a、arm64-v8a、x86、x86_64,但是目前手機基本上都是arm架構,x86架構的手機基本上沒有,基本上是平板,可以忽略。armeabi-v7a、arm64-v8a這兩款就可以了, 之前開發(fā)者在打包的時候,為了包大小的考慮,常常指定打包的時候,只指定armeabi-v7a架構的so包,這樣包大小可以小很多,尤其是so庫多的應用ndk {
// 選擇要添加的對應 cpu 類型的 .so 庫,多個abi以“,”分隔。
abiFilters 'armeabi-v7a'
// 可指定的值為 'armeabi-v7a', 'arm64-v8a', 'armeabi', 'x86', 'x86_64',
}
3、 處理方案
小米應用商店支持64位架構適配指南: https://dev.mi.com/distribute/doc/details?pId=1244
vivo應用商店64位架構適配指南: https://dev.vivo.com.cn/documentCenter/doc/511
oppo應用商店64位架構適配指南: https://open.oppomobile.com/wiki/doc#id=10948
若要確定應用是否包含 64 位庫,最簡單的方法就是檢查 APK 文件的結構。在構建時,APK 會與應用所需的所有原生庫打包在一起。原生庫會根據(jù) ABI 存儲在不同的文件夾中。您的應用不一定要支持所有 64 位架構,但對于支持的每種原生 32 位架構,應用都必須包含相應的 64 位架構。對于 ARM 架構,32 位庫位于 armeabi-v7a 中。對應的 64 位庫則位于 arm64-v8a 中。
對于 x86 架構,32位庫位于 x86中,64 位庫則位于 x86_64 中。

在build.gradle中把ndk的依賴修改,依賴'armeabi-v7a', 'arm64-v8a'
ndk {
// 選擇要添加的對應 cpu 類型的 .so 庫,多個abi以“,”分隔。
abiFilters 'armeabi-v7a', 'arm64-v8a'
// 可指定的值為 'armeabi-v7a', 'arm64-v8a', 'armeabi', 'x86', 'x86_64',
}

查看Android設備的CPU架構信息,可以使用命令來完成:

7表示arm-v7,8表示arm-v8相關閱讀:2T架構師學習資料干貨分享
