Android Developer:构建系统概述

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; 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值