Android 源码分析(一)项目构建过程

547 阅读2分钟

前言

Java 基础已经差不多学完了,现在的 Java 基础,已经够我们去阅读Android 源码了,所以从现在开始学习源码分析。 另外,java 基础的最后一篇网络架构 MyVolley 我吹出去牛逼说需要结合数据库,但是我还没准备好,所以等我整理好思绪再补上。至于设计模式部分,还是根据代码来学习吧, 很早以前我读过《大话设计模式》,读完之后好像并没有太大的收获。

开篇是 android 项目 build 过程,篇幅比较短,但是感觉好像放到其他篇幅又不太合适,所以,大家凑合着看一下吧。另外,源码分析(二)Handler 机制我也会同步发布,小伙伴们可以直接跳过。

项目构建过程

首先是三个来源的资源,分别是 res 资源文件、java 代码文件、aidl 接口

  • res 资源:由于 AAPT(Android Asset Packaging Tool)工具打包应用中的资源文件,如ManiFest 文件、res 里面的各种文件。其中 xml 会被编译成二进制,编译玩之后会为所有的文件生成 id(包括 raw 里面的)索引 R.java文件。
  • aidl:AIDL 工具会将所有的 aidl 接口转化为 java 接口。
  • java 代码:包括 R.java、aidl 文件都会被 java 编译成.class文件。

然后由Dex 工具将上述所有的.class文件以及第三方库的.class文件编译成 dex 文件(dex 是Dalvik 虚拟机的执行格式),dex 文件最终会被打包成 apk 文件。

AplBuilder 工具将编译过得文件(xml、dex)和未编译过的文件(图片等)打包成 apk

Jarsigner 对 apk 进行签名(默认是debug keystore)。

以下,是官方给出的构建流程图。