安卓APP升级64位架构
Posted wzj_what_why_how
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓APP升级64位架构相关的知识,希望对你有一定的参考价值。
What
最近收到了小米官方发送的安卓APP升级64位架构的通知,具体邮件如下:
尊敬的开发者: 您好!
为更好地提升APP性能体验,降低APP功耗影响,小米应用商店与OPPO应用商店、vivo应用商店共同推进国内安卓生态对64位架构的升级支持。行业适配节奏如下:2021年12月底:现有和新发布的应用/游戏,需上传包含64位包体的APK包(支持双包在架,和64位兼容32位的两个形式,不再接收仅支持32位的APK包)
2022年8月底:硬件支持64位的系统,将仅接收含64位版本的APK包 2023年底:硬件将仅支持64位APK,32位应用无法在终端上运行
为帮助开发者顺利完成架构升级,小米应用商店现已支持64位应用上架,并发布应用适配教程与功能使用手册,您可点击文档进行阅读:开发者需采取积极措施推进64位架构升级,针对逾期未适配应用,或采取相关措施保障用户使用体验,包括但不限于“搜索标签提示”、“安装环节未适配提醒”、“分机型屏蔽”。
更多64位应用适配相关Q&A,可参考文档:64位应用适配常见问题
如您有其他问题,可进入问题工单系统与我们联系,我们将及时进行解答。
评估应用
如果您的应用仅使用以 Java 编程语言或 Kotlin 编写的代码(包括所有库或 SDK),那么就表示该应用已经能支持 64 位设备。如果您的应用使用了任何原生代码,或者您不确定应用是否使用了这类代码,那么您需要评估应用并采取措施。
方法如下:
快速状态检查
要检查应用是否已满足 64 位要求,请将应用安装包上传至应用完善资料页的安装包信息模块处,若上传成功,证明安装包符合要求。
您的应用是否使用了原生代码?
首先需要检查您的应用是否使用了任何原生代码。 如果您的应用符合以下情况,便是使用了原生代码:
使用了任何 C/C++(原生)代码。
与任何第三方原生库关联。
通过使用原生库的第三方应用构建程序构建而成。
通过解压缩 APK 查找原生库
PK 文件的结构类似于 ZIP 文件,可以像 ZIP 文件一样解压缩。然后查看解压之后的文件:
对于 ARM 架构,32 位库位于 armeabi-v7a 中。 对应的 64 位库则位于 arm64-v8a 中。
对于 x86 架构,32 位库位于 x86 中,64 位库则位于 x86_64 中。
使用 APK 分析器查找原生库
1.打开 android Studio,然后打开任一项目。
2.从菜单中依次选择 Build > Analyze APK…
3.选择您要评估的 APK。
4.查看 lib 文件夹,您可以在其中找到“.so”文件。如果在您的应用中找不到任何“.so”文件,则说明该应用的相应库已准备就绪,您无需采取进一步措施。如果您看到 armeabi-v7a 或 x86,则说明您有 32 位库。
5.检查是否 arm64-v8a 或 x86_64 文件夹中有类似的“.so”文件。
6.如果您没有任何 arm64-v8a 或 x86_64 库,则需要更新构建流程以开始构建并打包 APK 中的这些工件。
7.如果您看到 32 位和 64 位的库均已打包到软件包中,则可以跳至在 64 位硬件上测试应用。
构建
针对原生代码进行构建很简单,只需将 arm64-v8a 和/或 x86_64(视您要支持的架构而定)添加到应用的“build.gradle”文件中的 ndk.abiFilters 设置中即可:
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
以上是关于安卓APP升级64位架构的主要内容,如果未能解决你的问题,请参考以下文章
安装包格式变成ABB、加速转向64位应用,OPPO或成最大受益者?
是否可以仅为 64 位架构构建 Mac App Store 应用程序?