默认情况下,Android和Flutter打包出来的Apk都是包含了所有架构的,这样打出来的apk体积相对于单架构的apk有点大。

这时,我们就需要分别打出不同的架构包。

架构

一般来说,x86代表32位CPU,x64(或者叫x86-64)代表64位CPU。

在Android中,支持专有cpu架构也是Application Binary Interface(ABI)。

Android开发者官网文档中支持的ABI。

armeabi-v7a

此 ABI 适用于基于 32 位 ARM 的 CPU,2016年之前大部分Android手机的cpu都是此架构。

arm64-v8a

此 ABI 适用于基于 ARMv8-A 的 CPU,支持 64 位 AArch64 架构,一般从2016年开始,主流Android手机的cpu架构都是arm64的。

x86

此ABI支持X86架构,像Intel、AMD的cpu都是基于此架构。
在2012-2016这段时间,为了赶上移动互联网的浪潮,Intel和Nvidia专门为Android手机和平板推出过X86架构的CPU,可惜都失败了。现在一般不需要适配此架构,除非APK需要安装在Intel平板上。

x86_64

此ABI支持x86-64位架构的CPU。同上

对于mipsmips64armeabi这些架构来说,Android从Android Plugin for Gradle 3.1.0(对应gradle 4.4)后不再支持,因为从NDK r17开始,不再将这些 ABI 作为支持的目标。

APK分包

Android

在模块级的build.gradle文件中,在android代码块中添加splits模块。
基本配置如下。

android {...splits {// 基于不同的abi架构配置不同的apkabi {// 必须为true,打包才会为不同的abi生成不同的apkenable true// 默认情况下,包含了所有的ABI。// 所以使用reset()清空所有的ABI,再使用include指定我们想要生成的架构armeabi-v7a、arm-v8areset()// 逗号分隔列表的形式指定 Gradle 应针对哪些 ABI 生成 APK。只与 reset() 结合使用,以指定确切的 ABI 列表。include "armeabi-v7a", "arm64-v8a"// 是否生成通用的apk,也就是包含所有ABI的apk。如果设为 true,那么除了按 ABI 生成的 APK 之外,Gradle 还会生成一个通用 APK。universalApk false}}
}

Flutter

使用以下命令后,会自动生成v7a、v8a、x86-64三种架构的apk。

flutter build apk --split-per-abi

生成位置在build/app/outputs/flutter-apk/。

Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)相关推荐

  1. Android 的7种CPU架构

    目前android支持如下7中CPU架构: armeabi 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢(只支持armeabi) armeabi-v7a 第7代 A ...

  2. android物联网开发技术架构,Android 相关七种 CPU 架构适配,android七种

    Android 相关七种 CPU 架构适配,android七种 转载请注明出处:http://blog.csdn.net/kester_/article/details/71055901 NDK 开发 ...

  3. 手机的CPU架构简述及SO兼容(Android/iOS)及手机硬件等,手机IMEI

    CPU(计算)+RAM(内存)+ROM(内置存储卡)+ GPU(图像处理等)等参数.   手机芯片制造商高通:英特尔Intel芯片,服务器芯片. > CPU类型与SO文件 -- 手机的CPU,多 ...

  4. Android 相关七种CPU架构适配

    NDK开发时会涉及到CPU架构的适配,不同的机器上可能会有不同的CPU架构,也就是说,翻译到机器上使用的规则不一样,Android上有7种CPU架构. 1.armeabi 2.armeabi-v7a ...

  5. 【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )

    文章目录 一.动态库打包配置 二.NDK 完整配置参考 三.参考资料 一.动态库打包配置 在 build.gradle 构建脚本中 , 配置 ndk 编译的动态库 CPU 架构类型 ; 在 " ...

  6. 安卓CPU架构梳理 应用商店64位APP上架适配

    一.安卓CPU架构梳理 Android 目前共支持7种CPU架构: mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a armeabi ...

  7. 华为云服务器CPU架构x86和鲲鹏区别对比及选择

    华为云服务器x86计算和鲲鹏计算有什么区别?x86和鲲鹏是指CPU架构的两个系列,x86采用复杂指令集(CISC),鲲鹏采用精简指令集(RISC).云服务器吧来详细说下华为云服务器CPU架构x86计算 ...

  8. android app 64位架构升级 适配64位cpu架构

    一. 本质 so库的升级 二.so库升级 1.so库检查 1,首先设置: abiFilters "armeabi-v7a","arm64-v8a",然后编译出对 ...

  9. Android cpu架构类型升级方案调研

    1.背景说明 当前APP上个版本APK安装包大小58.3M,因为业务原因集成某功能APK大小将会增加至109M左右,会影响用户的升级意愿和安装使用情况,故对APK架构支持进行调研,通过数据对比得出可行 ...

最新文章

  1. 西安电子科技大学第16届程序设计竞赛 F题
  2. react使用setState注意事项
  3. 岛国人气美少女竟然每晚跟 3 个人通宵打麻将?
  4. 走访近20家代工厂后:近千块的大牌T恤,成本只要几十块
  5. 工业以太网交换机出现温度过高如何处理?
  6. TQ210——交叉编译器的安装
  7. mysql test数据库_mysql数据库test
  8. [Python 网络编程] TCP、简单socket模拟ssh (一)
  9. python中sorted函数的作用_Python中排序方法sort、函数sorted的key参数的作用分析
  10. Specify 的含义 ------ 转载
  11. ARX帮助文档:数据库对象
  12. MyBatis集合Spring(三)之mapper
  13. 关于man命令后面加数字
  14. 中国传媒大学公开课:理解人类传播
  15. 如何用BIGEMAP在Arcgis中使用bigemap制作特定比例尺的交通位置图
  16. matlab绘制圆极化波,圆极化波及其MATLAB仿真_西电
  17. 美通社企业新闻汇总 | 2019.3.1 | 东京是亚洲商务休闲最佳目的地;贺恩霆担任赛诺菲中国区总裁...
  18. Muu云课堂V2v2.5.8
  19. 重学JS(一):什么是枚举?
  20. Qt6.0高速在线安装 下载极速无需漫长等待

热门文章

  1. JS面试(四):对调变量的六种方法
  2. python中逻辑运算符and,or的用法以及运算的核心思想——“短路逻辑”超详细讲解
  3. mysql java中文乱码_解决JAVA写mysql时出现中文乱码的现象
  4. 使用python计算某年七月有四个周五,四个周二,七月一周几?
  5. python如何判断字符串长度_Python如何查找字符串的长度?(代码示例)
  6. r720支持多少频率的内存吗_vivo X21能插内存卡吗?vivo X21支持内存卡吗?
  7. 分布式服务框架的概念理解
  8. JVM 两个-Xmx
  9. 计算机控制科学,控制科学与工程怎么样?是不是万金油?学姐:人工智能鼻祖...
  10. 理解Android DecorView