从32位apk被限制上架的情况来看系统处理

现在的手机基本上都是64位架构,32位apk在Google 商店上已经被限制,近期国内的一些手机应用商店也表示将限制32位apk的上架,相关资料:

忍不了了,oppo、vivo、小米联手宣布:不再允许|骁龙|oppo_手机网易网

64位有啥好?联发科:天玑9000应用性能可提升最多近64%|android应用商店|google play|engine|googleplay应用商店|联发科|天玑|32位应用|arm|64位处理器|android

安卓手机为什么要全面普及64位应用?-虎嗅网

主要原因还是在性能方面, "

最新的骁龙8 Gen 1芯片,它包括一个基于Cortex-X2的超大内核,三个基于 Cortex-A710 的大核,以及四个基于Cortex-A510的小核。

其中,只有三个大核兼容32位应用。这样一来,平时运行很多日常应用时,本来靠小核就够了,但由于这些应用是32位的,所以必须要用大核来运行。大核带来了更高的能耗,耗电就变得很快。

联发科的天玑9000芯片采用的是和骁龙8 Gen 1一样的Armv9架构,因此采用这两款旗舰芯片的手机都面临着同样的问题。

"

使用 dumpsys package p 可以查看到应用的primaryCpuAbi信息,

如 primaryCpuAbi=arm64-v8a 表示是64位,

可以看到,在应用安装的时候,PackageManagerService识别了应用的primaryCpuAbi信息,并储存了下来。

在64位手机上,apk会默认是64位应用,如果apk里只使用了32位的so库,只能被识别为32位应用。

在应用打开的时候,会根据primaryCpuAbi信息来决定使用zygote32还是zygote64来fork子进程,

这个知识点把应用安装和应用打开,PMS和AMS串联起来了,对加深PMS,AMS的理解很有实际意义。

对于厂商来说,只是限制32位apk上架,肯定不会禁用32位apk,因为用户可能不在乎性能,就是需要使用特定的apk。

参考资料:

​​​​​​Android中app进程ABI确定过程_tmac_lover的博客-CSDN博客_android app和进程

​​​​​​解决安卓32位so兼容问题_android_cai_niao的博客-CSDN博客_手机不支持32位应用怎么办

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值