背景:
2021 年末的时候,国内各个厂商应用市场就开始大力推行 app 进行 64 位架构的适配,并发布了相关规定,大致时间都是 2022 年 2 月份开始不接收仅支持 32 位的应用,9、10 月份开始就不支持接收包含 32 位的应用。
我们所用的手机现在都是多核 CPU,为了尽可能地兼容更多的应用,目前和内核都是兼容 32 位应用的,这就导致了一部分没有适配 64 位架构的应用依旧是使用的 32 位的指令集,没有发挥 64 位 CPU 的优势,无论是从性能,运行效率,用户体验上来看,都没有顺应时代的发展。
去年 arm 推出了 armv9 的 CPU 架构,这个新的架构取消了超大核和中核对于 32 位应用的兼容。
新的骁龙 8 Gen 1 处理器使用了最新的 armv9 架构,8 个内核中,有 3 个 2.5GHz 的 A710 大核、1 个 3.0GHz 的 X2 超大核 和 4 个 1.8GHz 的 A510 中核。如果某个应用没有做 64 位的适配,那么运行时只能用到 3 个内核,我们开发时经常会开多个线程做一些耗时的操作,那么对于这种 8 核手机只用到了 3 核 的情况,实在是不能接受的。
前言:
安卓做 64 位架构适配其实很简单,往前我写过一篇总结,需要的小伙伴可以往前翻一下。这篇文章主要是基于项目目前的架构(mPaaS 框架,Portal-Bundle 接入模式)做适配时遇到的一些问题和解决方案。
项目使用的是 mPaaS 框架的 Portal-Bundle 接入模式,由于一些历史原因,而该模式最初只支持 gradle 4.4 版本,此次很多冲突都是升级了 gradle 到 6.2 之后,检查规则更严格了,旧项目有很多很多不规范的用法导致的问题也随之暴露。
下面就是做个总结,也给需要的小伙伴参考一下。
一、64 位架构适配
(1)一个是升级gradle到6.2版本(可以更高,但是检查规则的更严会暴露出更多问题),详情您可以参考下该文档
mPaaS 支持多 CPU 架构