概述
一、支持的ABI
ABI 管理
1、ABI管理:
不同 Android 手机使用不同的 CPU,因此支持不同的指令集。 ABI 可以非常精确地定义应用的机器代码在运行时如何与系统交互。
ABI 包含以下信息:
* 机器代码应使用的 CPU 指令集。
* 运行时内存存储和加载的字节顺序。
* 可执行二进制文件(例如程序和共享库)的格式,以及它们支持的内容类型。
* 用于解析内容与系统之间数据的各种约定。这些约定包括对齐限制,以及系统如何使用堆栈和在调用函数时注册。
* 运行时可用于机器代码的函数符号列表 - 通常来自非常具体的库集。
2、ABI分类:
二、为CPU不同的ABI配置多APK
Build Multiple APKs
1、配置
在app所在module在的build.gradle中配置splites块。
android {
......
splits{
abi {
enable = true
reset()
include "armeabi","armeabi-v7a"
}
}
}
- enable
如果您将此元素设置为true,Gradle会根据您定义的ABI生成多个APK。默认值是false - exclude
指定用逗号分隔的ABI的名单不生成单独的APK。 - reset
清除ABI的默认列表。仅在与include元素结合使用时才使用, 以指定要添加的ABI。 - include
指定Gradle应为其生成APK的ABI的逗号分隔列表。只能结合使用reset()来指定ABI的确切列表。 - universalApk
如果true,除了per-ABI APK,Gradle还生成通用APK。通用APK包含单个APK中所有ABI的代码和资源。默认值是false。请注意,该选项仅在该splits.abi块中可用。当根据屏幕密度构建多个APK时,Gradle始终会生成一个通用APK,其中包含用于所有屏幕密度的代码和资源。
2、build
单击“ Build”>“Build APK” 。Gradle会为每个密度或ABI创建APK到项目build/outputs/apk/目录中。
三、为屏幕密度配置多APK
1、配置
android {
...
splits {
density {
enable true
exclude "ldpi", "xxhdpi", "xxxhdpi"
compatibleScreens 'small', 'normal', 'large', 'xlarge'
}
}
}
- enable
如果您将此元素设置为true,Gradle会根据您定义的屏幕密度生成多个APK。默认值是false。 - exclude
指定用逗号分隔的屏幕密度的名单不 生成单独的APK。如果需要排除您的应用不支持的一些密度。 - reset
清除屏幕密度的默认列表。仅在与include元素结合使用时才使用, 以指定要添加的密度。 - include
指定Gradle应为其生成APK的密度列表。只能结合使用reset()来指定密度的确切列表。 - compatibleScreens
指定兼容屏幕尺寸的逗号分隔列表。这会为每个APK在清单中注入一个匹配节点。
2、根据ABI和屏幕密度构建多APK
splits {
density {
enable true
reset()
include "mdpi", "hdpi"
}
abi {
enable true
reset()
include "x86", "x86_64"
}
}
最后
以上就是外向酒窝为你收集整理的构建多个APK的全部内容,希望文章能够帮你解决构建多个APK所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复