码迷,mamicode.com
首页 > 移动开发 > 详细

Android Develop:构建系统概述

时间:2016-01-06 06:51:52      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

Android构建系统是你用来构建、测试、运行和打包你的app的工具集。这个构建系统能作为Android Studio菜单的一个集成工具、和独立命令的方式运行。你能使用这个构建系统的如下功能: 

  • 自定义,配置,和扩展构建过程; 

  • 使用同一个项目和模块,为你的App创建多个不同功能的Apk; 

  • 通过资源集合的方式重用代码和资源; 

Android构建系统非常灵活,可以使你实现一切功能,并且不用修改你的app的核心源代码。如何构建一个Android Studio项目,阅读Building and Running from Android Studio。如何在Android Studio项目进行自定义的配置,阅读Configuring Gradle Builds。 

 

构建过程详解 

---------------------------------------------------------------------------------------- 

构建生成一个.apk牵涉许多工具,和生成中间产物的过程。如果你使用Android Studio开发,完整的构建过程是你每次完成你的项目或者模块的Gradle构建task的运行。构建过程非常灵活,所以它是非常有用的,然而,需要了解在整个过程中发生了什么事情,因为大部分构建过程是可配置和可扩展的。下面的图描绘了在构建过程中相关工具和过程: 

技术分享

典型的构建过程如下。构建系统合并所配置的不同产品flavor、构建类型和依赖的资源。如果不同的文件夹包含同名或者设置的资源,下面介绍了优先级顺序:依赖优于构建类型,构建类型优于产品flavor,产品flavor优于主资源目录。 

  • Android Asset Packaging Tool(aapt),拿到你的应用程序资源文件,如AndroidManifest.xml文件和你的Activity的XML文件,然后编译它们。产生了一个R.java,所以你能在你的Java代码中引用你的资源; 

  • aidle工具转换所有你在Java接口中包含的.aild接口; 

  • 你的所有代码、包含R.java和.aidl文件,都被Java编译器编译,生成.class文件; 

  • dex工具转换.class文件未Dalvik字节码,任何在你的项目中包含的第三方的库和.class文件,都被转换成.dex文件,它们被打包到最终的.apk文件中; 

  • 所有非编译的资源(如图片),编译的资源,和.dex文件被发送到apkbuilder工具,打包成一个.apk文件; 

  • 一旦.apk文件生成,在它被安装到设备之前,必须使用一个debug或者release key进行签名; 

  • 最终,如果应用程序在release模式下签名,你必须使用zipalign工具处理.apk文件。处理了最终的.apk文件,可以减少应用程序在设备上运行使用的内存; 

注意:App有一个64K方法引用限制。如果你的应用程序促发了这个限制,构建过程输出下面的错误信息: 

Unable to execute dex: method ID not in [0, 0xffff]: 65536. 

 

为了避免这个错误,请阅读Building Apps with Over 65K Methods。 

 

构建输出 

构建在app/build文件加下为每个构建variant生成一个APK:这个app/build/outputs/apk目录下包含被命名为app-<flavor>-<buildtype>.apk;例如,app-full-release.apk和app-demo-debug.apk; 

Android Develop:构建系统概述

标签:

原文地址:http://blog.csdn.net/p106786860/article/details/50466327

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!