荣耀彩票代理

IT技术互动交流平台

GradleforAndroid系列:初识Gradle文件

来源:IT165收集  发布日期:2016-12-22 20:36:18

DUWANBENWENNIJIANGLEJIEDAO:

settinggradle ZHUMULUXIADE buildgradle MOKUAIXIADE buildgradle BEIZHU ZHUYI applicationId HE package name QISHIBUSHIYIGEDONGXI ZONGJIE

shixinzhang

荣耀彩票代理WOMENYONG Android Studio XINCHUANGJIANYIGEXIANGMUSHI,HUIZIDONGSHENGCHENG 3 GE Gradle WENJIAN:

shixinzhang

荣耀彩票代理JIEXIALAIJIESHAOZHEISANGEWENJIANDEZUOYONG。

1. setting.gradle

荣耀彩票代理SHANGPIANWENZHANG:WEISHENME Gradle ZHEIMEHUO ZHONGJIESHAOLE,

YIGE Gradle GOUJIANTONGCHANGBAOKUOSANGEJIEDUAN:CHUSHIHUA,PEIZHI,HEZHIXING。

setting.gradle 文件在 初始化过程中被执行,构建器通过 setting.gradle 文件中的内容了解哪些模块将被 build,下面的内容表明当前项目中除了 app 模块还有另外一个叫做 “shixinlibrary” 的依赖模块:

include ‘:app’, ‘:shixinlibrary’

ZHUYI:DANMOKUAIXIANGMUBUYIDINGXUYAOYOU setting WENJIAN,DANYIDANYOUDUOGEMOKUAI,BIXUYAOYOU setting WENJIAN,TONGSHIYEYAOXIEMINGSUOYOUYAOGOUJIANDEMOKUAI,FOUZE gradle BUHUI build BUBAOKUODEMOKUAI。

2.主目录下的 build.gradle

KAN gradle WENJIANZHONGDEZHUSHI:

Top-level build file where you can configuration options common to all sub-projects/modules.

荣耀彩票代理ZHUMULUXIADE build.gradle WENJIANSHIZUIDINGCENGDEGOUJIANWENJIAN,ZHEILIPEIZHISUOYOUMOKUAITONGYONGDEPEIZHIXINXI。

MORENDEDINGCENG build.gradle WENJIANZHONGBAOKUOLIANGGEDAIMAKUAI (buildscript HE allprojects):

shixinzhang

buildscript
从名字就可以看出来,buildscript 是所有项目的构建脚本配置,主要包括依赖的仓库和依赖的 gradle 版本。

SHANGTUZHONG repositories DAIMAKUAIJIANG jcenter PEIZHIWEIYIGECANGKU,JCenter SHIYIGEHENYOUMINGDE Maven CANGKU。QUEDINGLEYILAIDECANGKUHOU,WOMENJIUKEYIZAI dependencies DAIMAKUAIZHONGTIANJIAYILAIDE、ZAI jcenter CANGKUZHONGDEBAOLE。

dependencies 代码块用于配置构建过程中的依赖包,注意,这里是用于构建过程,因此你不能讲你的应用模块中需要依赖的库添加到这里。

荣耀彩票代理MORENQINGKUANGXIAWEIYIBEIYONGYUGOUJIANGUOCHENGZHONGDEYILAIBAOSHI Gradle for Android DECHAJIAN。WOMENHAIKEYITIANJIAYIXIEQITAYONGYUGOUJIANDECHAJIAN,BIRU retrolambda, apt, freeline DENGDENG。

allprojects
allprojects 代码块用来声明将被用于所有模块的属性,注意是所有模块荣耀彩票代理。常见的就是配置仓库地址(jcenter, 自定义 maven 仓库等),你还可以在 allprojects 中创建 tasks,这些 tasks 最终会运用到所有模块中,

GUANFANGJIANYIJINLIANGSHAOTIANJIAYONGYUSUOYOUMOKUAIDESHUXING,YINWEIZHEIYIWEIZHEQIANGOUHE,YIDANMEIYOUGOUJIANZHUXIANGMU,NIDEZIMOKUAIHENYOUKENENGYINWEIQUESHAOSUOYOUMOKUAIDESHUXINGDAOZHIGOUJIANSHIBAI。

3.模块下的 build.gradle

MOKUAIXIADE build.gradle WENJIANZHIYINGYONGYUDANGQIANMOKUAI,NIKEYIFUGAIZHUMULUXIADE build.gradle DENEIRONG。

以我的练习项目为例介绍:
shixinzhang

荣耀彩票代理SHANGTUZHONGZHUYAOFENSANGEMOKUAI:apply plugin , android, dependencies。

apply plugin
荣耀彩票代理 apply plugin 声明了接下来要用到哪些插件的内容,上图表明使用了 androd 插件,这里之所以能用 android 插件,是因为主目录中声明了 Gradle for Android 的依赖,这里才能使用。

YINCIDANGWOMENXUYAOSHIYONGQITACHAJIAN,BIRU retrolambda SHI,SHOUXIANXUYAOZAIZHUMULU build.gradle WENJIANZHONGTIANJIAYILAI,RANHOUZAIMOKUAI build.gradle ZHONGSHENGMINGSHIYONG retrolambda CHAJIAN。

荣耀彩票代理BEIZHU:MORENDE android CHAJIANSHIYOU Google GUANFANGWEIHUDE,WEIWOMENTIGONGLEGOUJIAN、CESHI、DABAO Android YINGYONGDENENGLI。CHUCIZHIWAIWOMENHAIKEYIZIDINGYICHAJIAN。ZAIZHUJIANJIASHENDUI Gradle DELEJIEHOU,WOMENJIANGCHANGSHIZIJIXIEGE Gradle CHAJIAN。

android
荣耀彩票代理 在声明了 android 插件后,我们就可以使用 android 插件提供的内容进行构建配置。

android GOUJIANPEIZHIZHONGBIXUYAOYOUDESHILIANGGEBANBEN:

compileSdkVersion : 编译应用的 Android API 版本 buildToolsVersion : 构建工具版本
构建工具包括 aapt, zipalign, renderscript 等 用于在打包时生成各种中间产物,可以从 SDK Manager 中下载构建工具

defaultConfig DAIMAKUAIYONGYUPEIZHIYINGYONGDEMORENSHUXING,KEYIFUGAI AndroidManifest.xml ZHONGDESHUXING,BIRU:

applicationId : 覆盖了 AndroidManifest 中的 package name minSdkVersion : 覆盖了 AndroidManifest 中的属性,配置运行应用的最小 API targetSdkVersion : 一样,用于通知系统当前应用已经被这个版本测试过,和之前的 compileSdkVersion 没有关系 versionCode : 一样,应用的版本号 versionName : 版本名称

defaultConfig HAIKEYITIANJIAQIANMING,ZHANWEIFUDENGDENG,ZHEILIZHILIEZHEIXIE。

buildTypes YONGLAIDINGYIRUHEGOUJIANHEDABAOBUTONGLEIXINGDEYINGYONG,CHANGJIANDEJIUSHICESHIHESHENGCHAN。JUTINEIRONGHOUXUJIESHAO。

android 中还可以配置其他信息,比如 签名、渠道等,你可以在 Project Structure 面板中直观的查看,添加,也可以使用代码添加,这些内容我们后续详细介绍:
shixinzhang

dependencies
上图中可以看到 依赖配置 在 android 代码块的外边,事实上依赖配置是 Gradle 配置的基础功能,也就是说除了 Android,其他类型的项目(比如 JavaEE )也可以这么用。

荣耀彩票代理WOMENKEYIZAIYILAIPEIZHIZHONG,TIANJIAYAOSHIYONGDEKU,DANGRANYEKEYITIANJIABENDIDE jar BAO。JUTIYILAIPEIZHINEIRONGWOMENHOUXUSHENRUJIESHAO。

备注

注意: applicationId 和 package name 其实不是一个东西。

荣耀彩票代理ZAISHIYONG Gradle GOUJIANYIQIAN,package name QISHIYOULIANGGEZUOYONG:

在 R 文件中用作报名 应用的唯一标示

WOMENZHIDAO,YIGEANZHUOSHOUJISHANGXIANGTONGBAOMINGDE app ZHINENGYOUYIGE。DANSHIDANGWOMENXIANGYAOTONGSHIANZHUANGYIGEYINGYONGDEBUTONGDEBANBEN,BIRUYIZHONGCESHIYIZHONGSHENGCHAN,ZHEISHI,JIUXUYAOXIUGAI package name LE,DANSHIZIYUANDAIMAHE R WENJIANYAOQIUSHIYONGDEBAOMINGBUNENGGAIBIAN,FOUZENIDESUOYOUYUANWENJIANDOUHUISUIZHEGOUJIANBANBENERGAIBIAN。ZENMEBANNI?

Gradle 出现后,Android 工具团队解耦了 package name 的两种不同用法,提出了 applicationId 的概念:

定义在 Manifest 文件中的 package,继续用于源代码和 R 文件的标示 而 applicationId 则用作设备和 Google Play 的唯一标识

YEJIUSHISHUO applicationId FUGAILE package name DEYIBUFENZHIZE。

总结

这篇文章概览了一个 Android 项目中的 Gradle 文件作用及内容,引申出许多细节,比如 自定义构建、依赖管理、多种类型构建的配置等等。接下来我们将深入学习这些内容。

Tag标签:   
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规