美文网首页
Android build过程

Android build过程

作者: 杨殿生 | 来源:发表于2018-12-20 09:52 被阅读0次

    AndroidStudio assembleRelease

    1. 预编译如果主module依赖其他module也会进程编译
    2. 打包资源文件
    3. 处理配置清单文件和资源文件
    4. 编译源码编译成字节码
    5. 依赖的library生成aar文件,application生成apk

    应用生成的过程

    编译过程 .png
    1. 资源通过aapt生成R.java。
      输入
      (1)Resource文件(即工程res中的文件)
      (2)Assets文件(即工程assets中的文件)
      (3)AndroidMainfest.xml文件
      (4)Android基础类库(Android.jar文件)
      输出
      (1)R.java文件(在model工程的build/generated目录)
      (2)打包好的资源

    2. aidl文件,通过aidl生成aidl.java
      输入
      (1)aidl文件
      (2)framework.aidl文件
      输出
      (1)可用于进程通信的C/S端java代码,位于build/generated/source/aidl

    3. 通过java compiler编译R.java、java接口、java源文件生成class文件
      输入
      (1)源码文件(包括第1步的R.java和第2步AIDL生成的.java文件)
      (2)库文件(.jar文件)
      输出
      (1)对应的.class文件(对于gradle编译,在build/intermediates/classes里,看到输出的class文件)

    4. 通过dex命令将.class文件和第三方库的.class文件打包生成dex文件
      输入
      (1)第3步生成的.class文件(包括AIDL、R.java、源代码生成的.class文件)
      (2)库文件(.jar文件)
      输出
      (1)对应的.dex文件

    5. 通过apkbuilder工具,将aapt生成的resources.arsc和res文件、assets文件、classes.dex打包生成apk文件
      输入
      (1)第1步打包后的资源文件(包含resources.arcs的.ap_文件,包括本地和第三方库里的)
      (2)第4步打包后的.dex文件
      (3)其他资源:libs文件(包括:jni开发生成的.so文件,如果涉及C/C++开发的话)
      输出
      (1)未签名的.apk文件

    6. 通过jarsigner工具对生成的apk进行签名
      输入
      (1)未签名的.apk文件
      输出
      (1)签名的.apk文件

    7. 通过zipalign工具,将签名后的apk进行对齐
      输入
      (1)签名的.apk文件
      输出
      (1)对齐后的.apk文件

    其他文章
    Apk文件结构

    参考:
    https://blog.csdn.net/chenliguan/article/details/80727826

    相关文章

      网友评论

          本文标题:Android build过程

          本文链接:https://www.haomeiwen.com/subject/nmmekqtx.html