Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Tc.小浩
unidocs-zh
提交
1802dba0
U
unidocs-zh
项目概览
Tc.小浩
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1802dba0
编写于
3月 14, 2022
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add app-android-abifilters.md
上级
a106d025
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
129 addition
and
0 deletion
+129
-0
docs/app-android-abifilters.md
docs/app-android-abifilters.md
+129
-0
未找到文件。
docs/app-android-abifilters.md
0 → 100644
浏览文件 @
1802dba0
Android平台配置CPU类型针对的是为了提高运行效率使用C/C++语言开发生成的so库,需要为各cpu类型平台单独编译生成对应指令的so库。Java语言开发的代码运行在虚拟机中,由虚拟机适配CPU类型,不涉及到此问题。
HBuilder/HBuilderX中使用so库的功能(模块)
-
Audio(录音):支持mp3格式
-
Geolocation(定位):百度
-
LivePush(直播推流)
-
Maps(地图):高德、百度
-
OAuth(登录鉴权):新浪微博
-
Push(消息推送):个推、UniPush
-
Share(分享):新浪微博
-
Speech(语音输入):百度,
**注意:讯飞不支持64位**
-
Weex(原生渲染):uni-app(自定义组件模式、nvue页面),
**注意:HBuilderX2.1.5及以上版本支持**
> HBuilderX2.7.0+ 调整 云端打包默认不再包含 x86 CPU类型库,减少apk包体积[详情](id=nox86)
> HBuilderX2.1.5+ 开始支持Android平台的新增适配64位CPU类型,云端打包支持配置App支持的CPU类型
> 满足Google Play从2019年8月1日起上传的App必需支持64位CPU的要求。
### CPU类型
HBulderX已适配支持以下主流CPU类型:
-
armeabi-v7a
第7代及以上的ARM处理器(ARM32位),市面上大多数手机使用此CPU类型。
-
arm64-v8a
第8代、64位ARM处理器(ARM64位),最近两年新发的设备使用此CPU类型,可以兼容使用armeabi-v7a的so库。
-
x86
少部分平板使用x86,AS模拟器中选了intel x86时使用x86处理器,以及其它常用三方模拟器通常使用x86
**注意:不勾选x86在模拟器上可能无法正常运行,以下是常见模拟器是否需要包含x86的情况**
-
雷电模拟器:
3.
x必须包含x86,否则无法正常运行;4.x无需包含x86。
-
夜神模拟器:
必须包含x86,否则无法正常运行
-
MuMu模拟器:
无需包含x86
-
逍遥模拟器:
无需包含x86
-
BlueStacks(蓝叠模拟器):
无需包含x86
-
腾讯模拟器(手游助手):
必须包含x86,否则无法正常运行
-
其它模拟器:
未测试验证,建议包含x86,确保在模拟器正常运行
### 配置支持的CPU类型
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “支持CPU类型” 项中勾选需要支持的CPU类型:
![](
https://native-res.dcloud.net.cn/images/uniapp/others/abifilters-manifest.png
)
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
-
uni-app项目
在 "app-plus"->"distribute"->"android" 节点的 abiFilters 属性配置支持的CPU类型,示例如下:
```
js
"
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类型**
### CPU类型选择建议
ARM64位(arm64-v8a)CPU可以兼容ARM32的指令,也就是说只选择armeabi-v7a类型的so库也可以在64位手机上运行,只是没有完全发挥CPU的性能。
选择支持的CPU类型时请参考以下建议:
-
如果不在意apk大小,三种CPU类型都勾选
-
如果在意apk大小,选择ARM32位即可(几乎在所有ARM指令的所有设备上都可正常运行)
-
如果要兼容一些平板和模拟器,选择ARM32位和X86
不是所有模拟都仅支持x86指令,如雷电(4.x)、MuMu等模拟器也是支持ARM指令。
### 查看apk支持的CPU类型
使用解压工具打开apk,在lib目录下可以查看到支持的CPU类型,如下图所示:
![](
https://native-res.dcloud.net.cn/images/uniapp/others/abifilters-apk.png
)
### 常见问题
#### 上架Google Play市场对CPU类型的要求
提交Google Play时要求支持64位,建议选择"armeabi-v7a"和"arm64-v8a"两个即可,也可以只选择"arm64-v8a"。
**注意:不要勾选"x86"**
#### CPU类型错误安装提示
如果打包选择的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拖到模拟器安装时会弹出如下提示框:
![](
https://native-res.dcloud.net.cn/images/uniapp/others/abifilters-error.png
)
<a
id=
"nox86"
/>
#### HBuilderx2.7.0+ 云端打包默认CPU类型不再包含x86
目前市面上常见的手机都是使用ARM处理器,很少有设备使用x86处理器,因此从HBuilderX2.7.0开始云端打包调整为默认不再包含x86的CPU类型,减少apk包大小:
-
uni-app项目
基础功能apk减少5M+,使用的三方SDK及uni原生插件越多,减少的包尺寸越大,具体值取决于其包含的x86类型的so库大小
-
5+App、Wap2App项目
基础功能apk减少100K+,如果使用的三方SDK中存在so库则减少的尺寸较大,具体值取决于其包含的x86类型的so库大小
**注意:大多数模拟器(如夜神)必须包含x86,否则应用启动时可能会白屏,请根据上面教程进行配置**
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录