您的位置:首页 > 产品设计 > UI/UE

Android 中文翻译:Build System Overview

2016-05-02 23:23 513 查看


Andrioid 编译系统是你用于build,test,runapp的工具箱。编译系统的运行,可以通过Android Studio的菜单或者是独立的命令行。通过编译系统的特性你可以做以下的事情:
(1)      自定义,配置,扩展编译进程。

(2)      用同一个project and modules创建拥有不同特性的apk。

(3)      通过来源设置重用代码和资源。

Android编译系统的自由性,能够在不修改您应用程序的核心源文件的基础上实现您想要的一切。

如何使用Android Studio 编译项目,请看我的下一篇文章Build And Running From Android studio。

如何自定义编译配置,请看我的下一篇文章:configuringgradle builds。

A Detailed Look atthe Build Process

编译进程包含了许多的工具和进程,这些使得在编译apk的过程中会生成很多中间文件。如果你在Android studio中开发,每次当你为你的app运行Gradle编译任务的时候,整套的编译过程就会被执行。编译系统的自由性使它有益,但是,因为大部分的构建过程是可配置的和可扩展的,所以我们要了解在这之下到底发生了什么。下图描述了在构建中涉及的不同的工具和过程:



一个经典的构建过程一般如下:编译系统对比合并所有的已配置的 product Flavors,build types,dependencies。如果在不同的文件夹中包含同样名字的资源或者设置,那么生效的优先级顺序是:dependencies 覆盖build types,build types 覆盖product flavors,product flavors 覆盖main sources 目录。

(1)      aapt 全称AndroidAsset packaging tool。该工具获取应用的资源文件,例如,AndroidManifest.xml,Activities的xml文件,并且编译它们。R.java文件被生成,所以你能将你的资源文件id在java code中使用。

(2)      aidl工具转化你在java代码中引入的所有的.aidlinterface。

(3)      所有的java code,包含R.java和.aidl将被java compiler工具编译,然后生成.class文件。

(4)      dex工具转换.class文件成为Dalvikbyte code。任何的第三方库和.class文件也都会被转换成.dex文件。以至于最后它们能被打包成.apk文件。

(5)      未被编译的资源如图片,已被编译的资源,.dex文件都会被发送到apkbuilder工具,从而生成apk。

(6)      一但apk被构建,那么在安装到设备之前,它一定要被签名,要么是debug要么是release。

(7)      一但apk是release的,那么一定要使用zip以align工具,它可以减少apk运行时所占用的内存。

注释:apk中的方法数是有限制的,不可以超过65535.具体的解决办法:请参考我的文章:Apps over 64K Methods。

 作者有话说:如果您需要Android中文API,请扫一扫下面的二维码,您的关注,就是我的动力,最技术,我们认真的。



                                                              
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 官方文档