来了!Android应用市场64位应用策略
作者:熊熊君fly 链接:https://juejin.cn/post/7023286220662767624
1 、背景
具体的时间表:
2021年12月底,现有和新发布的应用、游戏,需要上传包含64位包体的APK包。也就是说所有上传的应用都应该包含64位代码的版本,不再接受仅有32位版本的应用上传。
2022年8月底,对于支持64位的硬件系统,将只接收64位版本的APK包。也就是如果到时用户手中的硬件设备支持64位系统的话,那么将只运行64位版本的应用。
大势所趋,以后发布的应用要支持64位系统,
2、调研
现状
armeabi
、armeabi-v7a
、arm64-v8a
、x86
、x86_64
,但是目前手机基本上都是arm架构,x86架构的手机基本上没有,基本上是平板,可以忽略。armeabi-v7a
、arm64-v8a
这两款就可以了, 之前开发者在打包的时候,为了包大小的考虑,常常指定打包的时候,只指定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 会与应用所需的所有原生库打包在一起。原生库会根据 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架构师学习资料干货分享