简体中文
Android平台配置CPU类型针对的是为了提高运行效率使用C/C++语言开发生成的so库,需要为各cpu类型平台单独编译生成对应指令的so库。Java语言开发的代码运行在虚拟机中,由虚拟机适配CPU类型,不涉及到此问题。
HBuilder/HBuilderX中使用so库的功能(模块)
HBuilderX2.7.0+ 调整 云端打包默认不再包含 x86 CPU类型库,减少apk包体积详情 HBuilderX2.1.5+ 开始支持Android平台的新增适配64位CPU类型,云端打包支持配置App支持的CPU类型 满足Google Play从2019年8月1日起上传的App必需支持64位CPU的要求。
HBuilderX已适配支持以下主流CPU类型:
不支持64位x86指令cpu,即不支持x86_64
注意:不勾选x86在模拟器上可能无法正常运行,以下是常见模拟器是否需要包含x86的情况
可视化界面配置 打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “支持CPU类型” 项中勾选需要支持的CPU类型:
源码视图配置 打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
"app-plus": {
"distribute": {
"android": {
"abiFilters": [
"armeabi-v7a",
"arm64-v8a"
]
//...
},
//...
},
//...
},
//..
使用Android studio打开Android原生项目,打开对应项目的build.gradle文件。 在Android -> defaultConfig下添加支持的CPU类型,如下示例:
defaultConfig{
ndk {
abiFilters 'arm64-v8a','armeabi-v7a'
}
}
注意:离线打包仅支持arm64-v8a、armeabi-v7a、x86三种类型,建议根据自己需求选择打包的CPU类型
ARM64位(arm64-v8a)CPU可以兼容ARM32的指令,也就是说只选择armeabi-v7a类型的so库也可以在64位手机上运行,只是没有完全发挥CPU的性能。 选择支持的CPU类型时请参考以下建议:
使用解压工具打开apk,在lib目录下可以查看到支持的CPU类型,如下图所示:
部分华为新设备(Mate60、Mate X5等)使用的芯片运行32位应用时只能跑在小核上,相当于限制的CPU的性能,如果应用只包含armeabi-v7a会导致应用启动速度非常慢。需要勾选arm64-v8a来解决此问题。 为了适配更多的新设备,建议开发者尽量勾选arm64-v8a。
如果勾选了不支持x86的内置模块或uni原生插件,云端打包后不会包含x86
提交Google Play时要求支持64位,建议选择"armeabi-v7a"和"arm64-v8a"两个即可,也可以只选择"arm64-v8a"。
注意:不要勾选"x86"
如果打包选择的CPU类型与设备不兼容,会导致无法正常安装。 通过adb命令安装通常会提示如下错误:
Performing Streamed Install
adb: failed to install android_debug.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
使用Android Studio自带的x86模拟器,将不包含x86 cpu类型的apk拖到模拟器安装时会弹出如下提示框:
目前市面上常见的手机都是使用ARM处理器,很少有设备使用x86处理器,因此从HBuilderX2.7.0开始云端打包调整为默认不再包含x86的CPU类型,减少apk包大小:
注意:大多数模拟器(如夜神)必须包含x86,否则应用启动时可能会白屏,请根据上面教程进行配置