来了!Android应用市场64位应用策略

共 2926字,需浏览 6分钟

 ·

2022-02-12 20:06

上一篇:100多个免费常用API接口分享,调用完全不限次数,以后总用得着!

作者:熊熊君fly 链接:https://juejin.cn/post/7023286220662767624

1 、背景

2019年8月1号,在Google Play上发布应用必须支持64位架构,紧接着 小米应用商店、OPPO应用商店、vivo应用商店、腾讯应用宝和百度手机助手等五大应用商店宣布,为更好提升App性能体验并降低功耗,五方将共同推进国内安卓生态对64位架构的升级支持。

具体的时间表:

大势所趋,以后发布的应用要支持64位系统,

2、调研

现状
目前手机cpu架构是armeabiarmeabi-v7aarm64-v8ax86x86_64,但是目前手机基本上都是arm架构,x86架构的手机基本上没有,基本上是平板,可以忽略。
armeabi是十年前的手机CPU架构,基本上没有了。
armeabi-v7a的CPU架构是32位。
Arm64-v8a的CPU架构是64位。
所以目前需要考虑的armeabi-v7aarm64-v8a这两款就可以了, 之前开发者在打包的时候,为了包大小的考虑,常常指定打包的时候,只指定armeabi-v7a架构的so包,这样包大小可以小很多,尤其是so库多的应用
ndk {
    // 选择要添加的对应 cpu 类型的 .so 库,多个abi以“,”分隔。
    abiFilters 'armeabi-v7a'
    // 可指定的值为 'armeabi-v7a''arm64-v8a''armeabi''x86''x86_64'
}
在项目的gradle中配置ndk就可以,64位的手机会自适应32位的应用,这样可以完美的兼容市面上99.9%的手机,这样包大小也会小很多 但是这样64位处理器的性能就无法完美的发挥出来,那么应用64位有哪些好处呢?
由于一些软件功能越来越多,安装包的体积、运行时需要消耗的运行内存越来越大,32位应用的局限性越来越突出。而64位系统,可以在单个线程里使用超过4GB的运行内存,当处理一些大型软件、或者进行高像素图像、视频处理的时候,就更能够发挥手机硬件的优势。比如一些大型游戏、网络视频直播、高画质影音播放等等。而且64位系统相比32位系统,会带来至少20%以上效率的提升。
打入64位的so包必然导致包大小增大很多,导致用户下载体验差,目前Google paly支持上传32位和64位的两个apk,这样用户可以根据手机cpu架构动态的下载那个apk
国内市场暂不支持,但是这个是趋势,之后必然要上这个功能的,我们在开发的时候,暂时还需要支持'armeabi-v7a', 'arm64-v8a’两个架构,包大小也会增大很多

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 中。

那么如何查看apk的架构

点击打出来的apk包,就会出现在目前的apk架构

build.gradle中把ndk的依赖修改,依赖'armeabi-v7a', 'arm64-v8a'

ndk {
            // 选择要添加的对应 cpu 类型的 .so 库,多个abi以“,”分隔。
            abiFilters 'armeabi-v7a''arm64-v8a'
            // 可指定的值为 'armeabi-v7a''arm64-v8a''armeabi''x86''x86_64'
        }
打出的包的结果

打出的包需要在64位测试机上测试,如何查看自己的的android手机的CPU架构呢?

查看Android设备的CPU架构信息,可以使用命令来完成:

CPU architecture:7表示arm-v78表示arm-v8
AArch64是ARMv8 架构的一种执行状态。

相关阅读:2T架构师学习资料干货分享


1、2T架构师学习资料干货分享

2、985副教授工资曝光

3、心态崩了!税前2万4,到手1万4,年终奖扣税方式1月1日起施行~

4、雷军做程序员时写的博客,很强大!

5、人脸识别的时候,一定要穿上衣服啊!

6、清华大学:2021 元宇宙研究报告!

7、绩效被打3.25B,员工将支付宝告上了法院,判了

浏览 110
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报