APK构建原理由浅入深

概述

APK构建流程涉及许多将项目转换成 Android 应用软件包 (APK) 的工具和流程。构建流程非常灵活,因此了解它的一些底层工作原理会很有帮助。

APK的详细构建流程稍微有点复杂,本文将分为四步由浅入深带读者深入分析构建流程。

  • 第一步:初见构建
  • 第二步:再探构建
  • 第三步:深入构建
  • 第四步:放弃构建

初见构建

首先『初见构建』,这步中我们可以先忽略构建中的细节,先对主流程有个大致了解。

如上图所示(方形:表示文件,菱形:表示操作):

1、 整个构建分为两个主要操作:编译(Compile)、打包(APK Package)

2、 编译 :编译器(Compiler)通过编译 源码 、AIDL文件 、资源文件 、依赖包,最终生成Dex文件和编译后的资源文件。

3、打包 :打包器(APK Packager)利用签名文件(KeyStore)和上一步编译过程中生成的Dex文件、编译后的资源文件打包成最终的APK文件。

再探构建

在上一步「初见构建」中,我们已经对APK打包的流程有了大致了解,接下来再详细一点。

方形:表示文件,椭圆:表示工具及操作)

上面这张图,显示了更为详细的构建流程。以虚线为界,前半部分描述了 编译流程 ,后半部分则描述了 打包流程

下面具体分析构建流,分为七步(其中编译1-4、打包5-7):

    1、使用__aapt__工具,编译res/文件,生成编译后的二进制资源文件(.ap_文件)、R.java文件。(目前新版使用aapt2工具,R.java也替换成了R.jar)

    2、使用__aidl__工具,根据aidl文件生成对应的Java接口文件

    3、使用__Java Compiler__工具,Java Compiler(俗称javac)将R.java、项目中的代码、Aidl接口文件编译成.class文件。

    4、使用__dex__工具,将上一步产生的.class文件和第三方依赖中的.class编译成.dex文件。(目前新版使用d8工具)

    5、使用__apkbuilder__工具,将编译后的资源(.ap_文件)、dex文件及其他资源文件(例如:so文件),

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值