返回

Android APK 打包流程:逐个环节纵览关键步骤

Android


打包资源文件,生成R.java文件

在构建APK之前,需要首先将项目中的资源文件打包成一个R.java文件,该文件包含了所有资源ID的定义。打包资源文件的工具是aapt(The Android Asset Packaing Tool),位于目录 sdk\build-tools\25.0.0\aapt 中。

在打包资源文件时,aapt会将项目中的AndroidManifest.xml文件和布局文件XML解析成二进制XML文件,并将其存储在res目录下。随后,aapt会调用Android资源编译器aapt2将res目录下的二进制XML文件编译成一个R.java文件。R.java文件包含了所有资源ID的定义,例如布局文件中控件的ID、字符串资源的ID等。

AIDL编译

如果项目中包含AIDL(Android Interface Definition Language)文件,则需要在打包资源文件之后进行AIDL编译。AIDL是一种用于定义进程间通信接口的语言,它可以将AIDL文件编译成Java代码,以便应用程序与服务之间进行通信。

AIDL编译器位于目录sdk\build-tools\25.0.0\aidl中,可以通过执行命令“aidl”来进行编译。编译成功后,将会生成相应的Java代码文件,这些文件需要添加到项目的源代码中。

生成可执行文件

在完成了资源文件的打包和AIDL的编译之后,接下来需要生成可执行文件。可执行文件是应用程序在设备上运行的代码,它由Java代码、资源文件和AIDL生成的Java代码组成。

生成可执行文件的工具是dx(The Dalvik Executable format generator),位于目录sdk\build-tools\25.0.0\dx中。dx会将Java代码编译成Dalvik字节码,并将资源文件和AIDL生成的Java代码一起打包成一个dex文件。dex文件是Android应用程序的可执行文件,它可以在Android设备上运行。

生成签名文件

在生成可执行文件之后,需要对dex文件进行签名。签名文件用于验证应用程序的真实性,防止未经授权的修改。

生成签名文件的工具是keytool,位于目录sdk\build-tools\25.0.0\keytool中。可以通过执行命令“keytool”来生成签名文件。签名文件是一个二进制文件,它包含了应用程序的公钥和私钥。

对齐

对齐是APK打包过程中的最后一步。对齐是将dex文件的大小调整到4字节的倍数,以提高应用程序的性能。

对齐工具位于目录sdk\build-tools\25.0.0\zipalign中,可以通过执行命令“zipalign”来进行对齐。对齐成功后,将会生成一个对齐后的dex文件,该文件可以与签名文件一起打包成APK文件。

生成APK文件

在对齐dex文件之后,就可以将dex文件、签名文件和资源文件一起打包成APK文件。

生成APK文件的工具是apksigner,位于目录sdk\build-tools\25.0.0\apksigner中。可以通过执行命令“apksigner”来生成APK文件。生成成功后,将会生成一个APK文件,该文件可以在Android设备上安装运行。