android的编译过程详解

Posted wuhongqi0012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android的编译过程详解相关的知识,希望对你有一定的参考价值。

android的编译过程


  1. IDE中的资源打包工具 (Android Asset Packaging Tool ,即图中的aapt) 会将应用中的资源文件进行编译,这些资源文件包括 AndroidManifest.xml文件,为Activity定义的 XML 文件等等。在这个编译过程中也会产生一个 R.java 文件,这样你就可以在你的Java代码中引用这些资源了。
  2. aidl 工具会将你项目中的所有 .aidl 接口转换成Java接口。
  3. 项目中的所有的Java代码,包括 R.java 和 .aidl 文件,都会被Java编译器编译,然后输出 .class 文件。
  4. 接着 dex 工具就会把上一步骤产生的 .class 文件转成 Dalvik 字节码,也就是 .dex 文件。同时项目中包含的所有第三方类库和 .class 文件也会被转换成 .dex 文件,这样讲方便下一步被打包成最终的 .apk 文件。
  5. 所有的不能编译的资源(比如图片等等)、编译后的资源文件和 .dex 文件会被 apkbuilder 工具打包成一个 .apk 文件。
  6. 一旦 .apk 文件被构建好之后,如果要把把它安装到设备上面去的话,它就必须用一个debug 或者发行key来对这个apk文件签名。
  7. 最后,如果应用程序已经被签名成为发行模式的apk,你还需要使用 aipalign工具对 .apk 进行对齐优化。这样的话可以减少应用程序在设备上的内存消耗


以上是关于android的编译过程详解的主要内容,如果未能解决你的问题,请参考以下文章

Android APK反编译就这么简单 详解(附图)

Android APK反编译详解(附图)

Android APK反编译就这么简单 详解(附图)

JAVA_Android APK反编译就这么简单 详解(附图)

Android的编译打包流程详解

C/C++程序编译过程详解