flutter Android CPU包构建命令 --split-per-abi(2)

CPUGPU
擅长逻辑控制、串行的运算擅长的是大规模的并发计算
有大量的缓存和复杂的逻辑控制单元有大量的算术运算单元
使用CPU来做复杂的逻辑控制GPU来提高程序运算速度
计算量大但是没有什么技术含量,而且要重复很多次

/ Android ABI /

. ABI 介绍

Android手机系统为运行在手机系统上的应用程序提供了应用程序二进制接口ABI ( Application Binary Interface ) 。ABI 包含系统调用和使用系统调用的方法 (大概意思就是应用程序和系统之间需要靠定义的函数来进行通信) , 以及使用的内存地址和机器寄存器的语法规则 。为避免系统出现严重错误 , 我们需要遵循系统架构和硬件体系架构的规则条件 。

Android设备 (智能手机、手表、智能电视 … ) 不同的CPU支持不同的指令集 。

CPU 与 指令集组合 对应 专属的应用二进制接口 (ABI) 。

ABI 介绍

.支持的 ABI

/ 命令 --split-per-abi /

.  为应用上架打包

谷歌官方强烈推荐使用 app bundle 。作为老程序员还是比较熟练编译成 apk 的方式 。国内应用市场有华为、小米、应用宝、OPPO、VIVO、360 等… , 不同应用市场可以上传不同CPU的应用包 。因为应用开发的技术使用的是Flutter框架 , 关于Flutter编译不同CPU的包 操作方式如下 :

首先创建一个flutter 工程

可以通过Android Studio 工具 / VsCode工具创建 / flutter命令创建 (flutter create 应用名称)

例如 : flutter create flutter_abi

找到创建好的flutter工程下对应的安卓工程目录下的build.gradle进行配置基于不同的abi架构

flutter build apk --split-per-abi

执行命令打开编译后存储安装包的目录 (包括各种CPU架构的apk和不同apk包的配置信息文件 output-metadata.json )

open build/app/outputs/apk/release

查看任意支持不同CPU的应用包 发现了一个问题 , Flutter工程配置的versionCode是1那么打包后就变了呢

找到工程编译后的本地文件 output-metadata.json 打开 , 发现 CPU x86、armeabi-v7a、x86_64、arm64-v8a 对应的 versionCode 和应用配置的不同

{

“version”: 2,

“artifactType”: {

"type": "APK",
"kind": "Directory"

},

“applicationId”: “com.example.flutterabi”,

“variantName”: “processReleaseResources”,

“elements”: [

{
  "type": "ONE_OF_MANY",
  "filters": [
    {
      "filterType": "ABI",
      "value": "mips64"
    }
  ],
  "versionCode": 1,
  "versionName": "1.0.0",
  "outputFile": "app-mips64-release.apk"
},
{
  "type": "ONE_OF_MANY",
  "filters": [
    {
      "filterType": "ABI",
      "value": "armeabi"
    }
  ],
  "versionCode": 1,
  "versionName": "1.0.0",
  "outputFile": "app-armeabi-release.apk"
},
{
  "type": "ONE_OF_MANY",
  "filters": [
    {
      "filterType": "ABI",
      "value": "x86"
    }
  ],
  "versionCode": 3001,
  "versionName": "1.0.0",
  "outputFile": "app-x86-release.apk"
},
{
  "type": "ONE_OF_MANY",
  "filters": [
    {
      "filterType": "ABI",
      "value": "armeabi-v7a"
    }

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值