Android 应用apk打包原理

文章目录


前言

APK的详细构建流程稍微有点复杂 , 本讲解apk 构建的流程、需要的工具、及各工具的具体作用。


一、apk 是怎么生成的?

1.apk 打包流程

首先看一下,官网给到的apk 构造流程图:
Android 应用apk打包原理


2.详解:各流程的工具及顺序

  • 1、AAPT(Android Asset Packaging Tool)工具,Android资源打包工具。会打包资源文件(res文件夹下的文件),并生成R.java和resources.arsc文件 。
  • 2、AIDL工具会将所有的 .aidl文件编译成.java文件。
  • 3、JAVAC工具将R.java、AIDL接口生成的java文件、应用代码java文件编译成.class文件;
  • 4、dx 脚本将很多.class文件转换打包成一个.dex文件。
  • 5、apkbuilder 脚本将资源文件和 .dex 文件生成未签名的 .apk 文件。
  • 6、jarsigner 对apk进行签名。
  • 7、zipalign 优化APK

这些构建中使用的工具或者脚本,在SDK的build-tools或者 tools 下可以找到。


3.真实的工具列表

Android 应用apk打包原理


二、完整的 apk 都包含什么?

  • APK 文件构成

    名称 描述
    AndroidManifest.xml 程序全局配置文件
    classes.dex 安卓 Dalvik 字节码
    resources.arsc 资源索引表
    解压缩 resources.ap_就能看到
    res\ 资源文件(图片、文本、xml布局) 目录
    META-INF\
    assets\ 配置文件目录
    lib\ 应用程序所依赖的库目录
    lib\ 应用程序所依赖的库目录

  • 如下图示
    Android 应用apk打包原理

  • 其它解析
    Dalvik是Google公司自己设计用于Android平台的虚拟机


二、编译前app工程结构?

1.aapt

代码如下(示例):

 
上一篇:灵魂一问-如何彻底防止APK反编译?看这篇文章准没错!


下一篇:android 10.0 展讯内置可卸载app