返回介绍

Android 构建过程简述

发布于 2025-02-28 12:35:46 字数 1292 浏览 0 评论 0 收藏 0

Android 的构建过程涉及到许多工具和流程,并会产生一系列中间件,最终生成一个 APK 文件,可以根据官方提供的流程图来具体了解构建的过程。

通常的构建过程就是如上图所示,下面是具体描述:

1.AAPT(Android Asset Packaging Tool) 工具会打包应用中的资源文件,如 AndroidManifest.xml、layout 布局中的 xml 等,并将 xml 文件编译为二进制形式,当然 assets 文件夹中的文件不会被编译,图片及 raw 文件夹中的资源也会保持原来的形态,需要注意的是 raw 文件夹中的资源也会生成资源 id。AAPT 编译完成之后会生成 R.java 文件。

2.AIDL 工具会将所有的 aidl 接口转化为 java 接口。

3.所有的 java 代码,包括 R.java 与 aidl 文件都会被 Java 编译器编译成.class 文件。

4.Dex 工具会将上述产生的.class 文件及第三库及其他.class 文件编译成.dex 文件(dex 文件是 Dalvik 虚拟机可以执行的格式),dex 文件最终会被打包进 APK 文件。

5.ApkBuilder 工具会将编译过的资源及未编译过的资源(如图片等)以及.dex 文件打包成 APK 文件。

6.生成 APK 文件后,需要对其签名才可安装到设备,平时测试时会使用 debug keystore,当正式发布应用时必须使用 release 版的 keystore 对应用进行签名。

7.如果对 APK 正式签名,还需要使用 zipalign 工具对 APK 进行对齐操作,这样做的好处是当应用运行时会减少内存的开销。

在构建 APK 的过程中,当 APK 过大,应用中的方法数量超过 65536 限制的时候,可能会报如下错误:Unable to execute dex: method ID not in [0, 0xffff]: 65536。一旦遇到上述错误,就需要使用 MultiDex 方案来解决,但官方的 MultiDex 方案有一些限制,因此还得使用各种策略填坑才行,具体可参考网上不少较优秀的解决方案。

参考文档: https://developer.android.com/sdk/installing/studio-build.html#detailed-build

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文