赞
踩
安卓手机APP开发__支持64位的架构
目录
在谷歌的应用中发布的APP需要支持64位的架构。添加上你的APP的64位的版本,
提供了性能上的提升,并且能够运行在仅支持64位的硬件上。
如下的步骤确保你的32位的程序支持64位的设备。
如果你的APP仅使用Java编程语言或者是Kotlin,包括所有的库和SDK,那么
你的APP支持64位的设备。如果你的APP使用了任何的原生的代码,或者是
你不确定是否使用了原生的代码,那么读取你的APP检查一下。
使用谷歌应用的命令行,浏览一下已存在的发布版本是否是合规的。
谷歌应用的命令行也显示你的程序发布过是否会有和64位环境需求相关的问题的告警。
如果出现了一个告警,按如下的步骤操作,让你的APP与64位的设备兼容。
包括如下的三个方面:
在你的APP中内嵌了C/C++(原生)代码。
链接了第三方的原生的代码库
由第三方的APP构造器来构建的,而这个构造器使用了原生的代码库。
检查一下你的APK文件的结构。当构建的时候,APK的打包带着被APP需要使用的原生的代码库。
原生的代码库被存储在基于ABI的各个文件夹中。为了支持每一个64位的架构,它是不必需的,
但是对于每一个你支持的原生的32位架构,你必须包含相应的64位的架构。
对于ARM架构,32位的库在目录armeabi-v7a中,64位的库在arm64-v8a目录中。
对于x86架构,32位的库在目录x86中,64位的库在x86_64目录中。
注意的是,依赖于你的APP,在每一个文件夹中可能没有相同的库。目标是确保你的APP能在
仅64位的环境下运行。
在一个经典的情况下,一个APK能同时为32位和64位构架而构建,每个目录下都有相应的库。
如果这不支持64位,你可能仅看到了32位的ABI的目录,而没有64位的目录。
APK分析器是一个工具,让你能评估一个构建好的APK的各个方面。使用它,
来查找各个原生的库,并且确保64位的库是存在的。
打开安卓工作台,打开项目。
从菜单上选择 构建〉分析APK
启动APK分析器
选择你要评估的APK
看lib目录,如果有的话,文件以.so后缀结尾。如果没有的话,那么
你的APP支持64位的设备,没有其它的动作要做了。如果你看到了
armeabi-v7a 或者是 x86目录,那么你有32位的库。
检查一下看看有没有.so文件。
APK的文件是结构化的,像zip文件。使用命令行或者是其它的抽取工具,
抽取APK的文件。依赖于你的抽取工具,你可能不得不重命名文件为.zip.
浏览被抽取的文件,遵循上述的指导来确定你的APP是否支持64位设备。
你能在命令行上运行如下的命令例子:
:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so
注意的是在这个例子中,armeabi-v7a和 arm64-v8a的代码库的存在性,
这意味着APP支持64位的架构。
使用如下的代码:
Kotlin
- // Your app's build.gradle
- plugins {
- id("com.android.app")
- }
-
- android {
- compileSdkVersion(27)
- defaultConfig {
- appId = "com.google.example.64bit"
- minSdkVersion(15)
- targetSdkVersion(28)
- versionCode = 1
- versionName = "1.0"
- ndk {
- abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64")
- }
- // ...
命令如下:
:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …
需要修改的是'Application.mk'的文件的APP_ABI变量。
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。