快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

亚博平台靠谱吗:基于Linux命令行构建Android应用(3)Android应用构建流程BR构建过程



Android 利用的构建历程便是将 Android 项目中的文件和资本进行编译和打包,着末将结果输出到 .apk 文件。.apk 文件是保存二进制文件的容器,它包孕了运行安卓利用所需的所有信息,例如编译后的 .dex 文件(.class 对应的 Dalvik 字节码),一个二进制的 AndroidManifest.xml 文件,编译后的资本(resources.arsc)和未编译资本。

假如你应用 Eclipse 进行开拓,ADT 插件能持续构建你的项目,并将 .apk 文件自动输出到项目的 bin 文件夹,是以全部构建历程你无需做任何工作。

假如你不是应用 Eclipse 进行开拓,你可以应用 Ant + build.xml,build.xml 是 Ant 构建文件,位于项目根目录下。Ant 会自动调用构建对象来完成全部构建历程。

为了让安卓利用运行在安卓设备上,你必要对安卓利用进行署名,署名分为调试(debug亚博平台靠谱吗)和发行(release)两种模式。在开拓阶段,一样平常应用调试模式进行署名,这时构建对象会应用一个调试密钥(debug key)和密码,这样你就不必每次构建时都输入密码。当你想正式将安卓利用经由过程 Google Play 公开发行时,你必须应用你的私钥在发行模式下构建你的利用。

Eclipse 和 Ant 都支持两种模式下的自动署名。

下图描述了从构建到运行安卓利用的流程与组件:

构建历程

在天生 .apk 的全部构建历程中会用到许多对象,必要处置惩罚与天生许多临时文件。

下图描述全部构建历程所应用的对象和相关文件:

全部构建历程大年夜体如下:亚博平台靠谱吗

● 安卓资本打包对象(Android Asset Packaging Tool,简称 aapt)认真编译所有资本文件,例如 AndroidManifest.xml 和描述 Activity 的 XML 文件,并天生一个 R.java 文件,这样你就可以在 Java 代码中引用你的资本文件。

● aidl 亚博平台靠谱吗对象将所有 .aidl 接口转换为 Java 接口。

● Java 编译器将项目中所有 Java 代码,包括 R.java 和 .aidl 文件编译成 .class 文件。

● dex 对象将 .class 文件转换为 Dalvik 字节码。所有第三方库和 .class 文件同样也会被转换为 Dalvik 字节码,这样它们亚博平台靠谱吗才能终极一并打包到 .apk 文件中。

● apkbuilder 对象将所有未编译资本(例如图片)、编译后的资本和 .dex 一同打包到 .apk 文件。

● 当 .apk 文件天生后,还必亚博平台靠谱吗要对其进行署名(调试或发行模式),否则该 .apk 文件无法安装到安卓设备。

● 着末,当你应用发行模式署名后,你还必要应用 zipalign 对象调剂 .apk 文件,这样做可以削减安卓利用运行在设备上的内存占用率。

留意:安卓利用有 64K method reference[1] 限定。假如达到该限定,构建历程中将打印以下差错信息:

Unable to execute dex: method ID not in [0, 0xffff]: 65536.

您可能还会对下面的文章感兴趣: