android的编译过程详解

wuhongqi0012 wuhongqi0012     2022-12-15     488

关键词:

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 进行对齐优化。这样的话可以减少应用程序在设备上的内存消耗


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

C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系... 查看详情

java编译程序和运行过程详解

java整个编译以及运行的过程相当繁琐,我就举一个简单的例子说明:编译原理简单过程:词法分析-->语法分析-->语义分析和中间代码生成-->优化-->目标代码生成Java程序从源文件创建到程序运行要经过两大步骤:1、Java... 查看详情

androidapk反编译详解(附图)

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全... 查看详情

uboot配置和编译过程详解

...sion确定(Makefile的24-29行)include/version_autogenerated.h文件是编译过程中自动生成的一个文件,所以源目录中没有,但是编译过后的uboot中就有了2、HOSTARCH和HOSTOSHOSTARCH:表示主机的CPU的架构,值会影响后面的CROSS_COMPILE环境变量的值... 查看详情

uimage的制作过程详解(代码片段)

...具介绍参考博客:《uImage的制作工具mkimage详解(源码编译、使用方法、添加的头解析、uImage的制作)》;2.2、内核源码中编译uImage//下面是摘抄的内核编译u 查看详情

源代码到可执行程序的过程详解:预编译编译汇编链接(代码片段)

1、gcc编译过程分解(1)首先是将.c源文件和.h头文件经过预编译(cpp是预编译器),得到.i文件,主要是进行的一些替换工作;(2)将.i文件经过编译器(gcc)处理,得到.s汇编文件,现在文件内容已经从C语言编程了汇编... 查看详情

详解android中的build.gradle文件(代码片段)

...则,然后它就会根据我们的“命令”自动为我们构建app。AndroidStudio中默认就使用Gradle来完成应用的构建。有些同学可能会有疑问:”我用AS不记得给Gradle指定过什么构建规则呀,最后不还是能搞出来个apk。“实际上,app的构建过... 查看详情

linux内核配置和编译过程详解

一、引言: 本文档的内容大部份内容都是从网上收集而来,然后配合一些新的截图(内核版本:V2.4.19)。在每一配置项后会有一个选择指南的部份,用来指导大家怎么样根据自己的情况来做相应的选择&#x... 查看详情

arduino编译上传过程详解(代码片段)

Arduino编译上传过程详解本篇内容,主要解释如何使用ArduinoIDE编程Arduino,并主要描述在ArduinoSketch文件中使用的功能。在Arduino教程页面你会有很多关于这个的信息这个页面的内容和你从Arduino主页上得到的并没有太大的不同,但是... 查看详情

oracle存储过程详解

...组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。2、... 查看详情

linux程序编译过程详解(代码片段)

...语言才能执行,而翻译的方式分为两种,一种是编译型,另 查看详情

linux程序编译过程详解(代码片段)

...语言才能执行,而翻译的方式分为两种,一种是编译型,另 查看详情

linux程序编译过程详解(代码片段)

...语言才能执行,而翻译的方式分为两种,一种是编译型,另 查看详情

mysql存储过程详解(代码片段)

存储过程简介SQL语句需要先编译然后执行,而存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数... 查看详情

详解java类加载机制

JAVA源码编译由三个过程组成:1、源码编译机制。2、类加载机制3、类执行机制我们这里主要介绍编译和类加载这两种机制。一、源码编译代码编译由JAVA源码编译器来完成。主要是将源码编译成字节码文件(class文件)。字节码... 查看详情

存储过程详解(代码片段)

...储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。 &nb 查看详情

嵌入式linux核心课程2.uboot和系统移植-第4部分-2.4.uboot配置和编译过程详解

《2.uboot和系统移植-第4部分-2.4.uboot配置和编译过程详解》第一部分、章节目录2.4.1.uboot主Makefile分析12.4.2.uboot主Makefile分析22.4.3.uboot主Makefile分析32.4.4.uboot主Makefile分析42.4.5.uboot主Makefile分析52.4.6.uboot主Makefile分析62.4.7.uboot配置过程... 查看详情

android8.0编译过程初步分析

Android8.0编译过程分析概述要想知道编译的过程,其实看编译的脚本,以及编译时产生的log是比较快的方法。编译相关的核心文件位于build/core下,而生成的文件在out/soong下,里面有编译过程中产生的编译相关文件... 查看详情