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菜单的集成工具使用也可以在命令行中独立运行。构建系统可用的特性有:
- 定制、配置、扩展构建过程
- 使用同一个工程和模块为你的app创建多个具有不同特性的APK
- 复用源代码集中的代码和资源(博主不太明白这句话的含义,原文为Reuse code and resources across source sets)
构建过程详解
构建的过程涉及很多工具和处理生成中间文件用于产生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/builder文件夹中生成相应的apk,app/build/outputs/apk/文件夹包含报名app-<flavor>-<buildtype>.apk。例如,app-full-release.apk和app-demo-debug.apk(码哥表示在Android Studio1.1.0中没有找到对应的文件夹和文件啊!!!)
0 0
- Android Studio构建系统概述(Build System Overview)
- Android Build System 构建系统
- Android 中文翻译:Build System Overview
- android studio 构建系统基础build
- Aerospike-Architecture系列之系统概述(System Overview)
- Android Makefile & build system 概述
- Android Build System (Android 编译系统)
- Gradle in Android Studio (1) - 构建系统概述
- Android NDK 概述(Android NDK Overview)
- Android Developer:构建系统概述
- Android display system overview
- Android display system overview
- Android Audio system Overview
- Android Framework Boot Up Overview(Android系统框架启动流程概述)
- 理解 Android Build 系统_概述_2
- Android Studio Overview
- Visual Studio 2005 Team System: Overview
- Visual Studio® 2005 Team System Overview
- 打电话发短信
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- java-算法设计与分析之二分搜索
- sql 语句 一
- c++ 使用引用防止类的拷贝构造
- Android Studio构建系统概述(Build System Overview)
- memset和memcpy使用教训
- Observer观察者模式
- Shell基础-Bash基本功能-通配符和其他特殊符号
- 杭电 HDU ACM 2199 Can you solve this equation?
- C++ 笔记第二讲
- form实现登陆操作
- 堆排序的练习
- Ad Hoc Distributed Queries的启用与关闭