Android Studio构建系统概述(Build System Overview)

来源:互联网 发布:淘宝怎么买微博小号 编辑:程序博客网 时间:2024/06/02 00:49

原文网址:http://developer.android.com/sdk/installing/studio-build.html#detailed-build

Android 构建系统是用于构建、测试、运行和打包你app的工具。构建系统可以作为Android Studio菜单的集成工具使用也可以在命令行中独立运行。构建系统可用的特性有:

  1. 定制、配置、扩展构建过程
  2. 使用同一个工程和模块为你的app创建多个具有不同特性的APK
  3. 复用源代码集中的代码和资源(博主不太明白这句话的含义,原文为Reuse code and resources across source sets) 
 Android构建系统的灵活性使我们在不改变app核心源文件的时候获得上述特性。如何构建一个Android Studio工程,参见Building and Running from Android Studio(后续翻译)。如何配置Android Studio工程常用的构建设置,参见Configuring Gradle Builds(后续翻译)

构建过程详解

构建的过程涉及很多工具和处理生成中间文件用于产生apk文件。如果你使用Android Studio开发,完整的构建过程将在每次你运行工程或者模块的Gradle构建任务后执行。构建的过程非常灵活所以很有用,明白帽子(hood)下具体发生了什么许多的构建过程是可配置和扩展的。下图描述了构建中涉及到的不同工具和处理过程。


一个典型的构建过程如下概述,构建系统合并所有的资源从配置的产品口味、构建类型和依赖。如果不同的文件夹包含同名或者同样设置的资源,覆盖的优先级顺序为:构建类型覆盖依赖、产品品味、主要源目录覆盖。

  • 安卓资产打包工具(Android Asset Packageing Tool),把你的应用资源文件,例如AndroidManifest.xml文件和Activities的XML文件编译。生成R.java文件,你可以在你的java代码中引用你的资源
  • aidl工具将所有的aidl接口转化为java接口
  • 所有的java代码包括R.java和aidl文件,由java编译器编译成.class文件并输出
  • dex工具转换.class文件为Dalvik虚拟机的字节码。模块中包含的第三方库和.class文件同样会转换到.dex文件中,所以你可以将他们打包到最终的apk文件
  • 所有的不需要编译的资源,例如图片,编译好的资源,.dex文件送至apkbuilder tool,然后打包至apk文件
  • apk文件构建好之后,如果要安装到设备上,还必须被利用debug或者release key对apk签名
  • 最终,如果应用利用release模式签名,开发者还必须使用zipalign tool将apk对齐。对齐后的apk文件减少了运行在设备时的内存占用
注意:app有64K大小的方法引用限制。如果你的app达到了这个限制,构建的过程会输入如下的错误:Unable to execute dex:method ID not in [0,0xffff]:65536,如何避免此错,见Building Apps with Over 65k Methods(后续翻译).

构建输出

构建为每种构建变量在app/builder文件夹中生成相应的apk,app/build/outputs/apk/文件夹包含报名app-<flavor>-<buildtype>.apk。例如,app-full-release.apk和app-demo-debug.apk(码哥表示在Android Studio1.1.0中没有找到对应的文件夹和文件啊!!!)




0 0
原创粉丝点击