国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中使用Gradle來構(gòu)建App項(xiàng)目的入門指南

2019-12-12 06:10:57
字體:
供稿:網(wǎng)友

gradle是Android開發(fā)中引入的全新的構(gòu)建系統(tǒng),因?yàn)槿碌臉?gòu)建系統(tǒng)主要是出于下面的目的:

1. 方便復(fù)用代碼和資源
2. 構(gòu)建多種版本的apk更見簡單,不論是為多渠道構(gòu)建不同的apk還是構(gòu)建不同環(huán)境的apk(debug,release)
3. 方便配置,擴(kuò)展,自定義構(gòu)建過程
4. 良好的IDE集成

為什么選擇Gradle?
Gradle主要有以下幾個(gè)有點(diǎn):

1. 使用領(lǐng)域驅(qū)動(dòng)語言(DSL)來描述構(gòu)建邏輯
2. 構(gòu)建腳本使用Groovy,可以方便的定制構(gòu)建邏輯
3. 內(nèi)建的依賴管理系統(tǒng),使用Maven或者Ivy
4. 非常靈活。可以使用最佳實(shí)踐但并不強(qiáng)制
5. 良好的IDE支持

Gradle項(xiàng)目使用項(xiàng)目根目錄下的build.gradle文件來配置
一個(gè)最簡單的Java項(xiàng)目的build.gradle如下

apply plugin: 'java' 

這表示改項(xiàng)目會(huì)使用Gradle的java插件,該插件是Gradle默認(rèn)提供的,java插件提供了構(gòu)建java應(yīng)用和運(yùn)行測試的功能。

最簡單的Android項(xiàng)目build.gralde

buildscript {   repositories {     mavenCentral()   }     dependencies {     classpath 'com.android.tools.build:gradle:0.11.1'   } }   apply plugin: 'android'   android {   compileSdkVersion 19   buildToolsVersion "19.0.0" } 

該Android構(gòu)建文件包含3個(gè)部分:
1.buildscript { ... } 配置驅(qū)動(dòng)構(gòu)建過程的代碼,意思就是buildscript中的配置僅僅在構(gòu)建過程中起作用,也就是構(gòu)建程序所使用的配置。
上面的代碼中就聲明了我們的構(gòu)建程序會(huì)使用Maven中央倉庫,并且有一個(gè)classpath依賴是指向一個(gè)Maven庫的。這個(gè)Maven庫就是Android Gradle插件,版本號(hào)是0.11.1。

2.隨后就是使用這個(gè)Android插件,和之前使用Java插件一樣。

3.最后,android { ... }配置了Android項(xiàng)目構(gòu)建時(shí)需要的所有參數(shù)。
默認(rèn)情況下,只需要指定compileSdkVersion和buildtoolsVersion,compileSdkVersion指定使用哪個(gè)版本的sdk編譯,buildToolsVersion指定使用哪個(gè)版本的構(gòu)建工具。
注意點(diǎn):
1. 只需要使用android插件,再使用Java插件會(huì)報(bào)錯(cuò).
2. 在local.properties中使用sdk.dir屬性指定SDK路徑,或者你可以使用ANDROID_HOME環(huán)境變量。

項(xiàng)目結(jié)構(gòu)
Gradle采用約定優(yōu)于配置的原則,最簡單方式是使用一個(gè)默認(rèn)的目錄結(jié)構(gòu)。當(dāng)然目錄結(jié)構(gòu)是可以自己修改的。

默認(rèn)情況下,android gradle項(xiàng)目的代碼都在src目錄下,src下會(huì)有兩個(gè)目錄main和androidTest,其中main目錄下是項(xiàng)目代碼,androidTest目錄下是測試代碼。

src/main/src/androidTest/

在main和androidTest目錄下面,針對不同類型的code,又不會(huì)不同的目錄。
對于Java和Android的Gradle插件,Java代碼和Java資源分別對應(yīng)了java目錄和resources目錄。Android插件還需要一些其他的目錄和文件,比如

AndroidManifest.xmlres/assets/aidl/rs/jni/

下面我們來看一下如何更改這些默認(rèn)的配置。

Android工程,默認(rèn)情況下,java文件和resource文件分別在src/main/java和src/main/res目錄下,在build.gradle文件,andorid{}里面添加下面的代碼,便可以將java文件和resource文件放到src/java和src/resources目錄下。(注意,如果你在gradle文件中修改了,只需要重新sync一下,gradle會(huì)自動(dòng)創(chuàng)建新的目錄,并將對應(yīng)的文件移動(dòng)到新的目錄下)

sourceSets {   main {     java {       srcDir 'src/java'     }     resources {       srcDir 'src/resources'     }   } } 

更簡便的寫法是

sourceSets {   main.java.srcDirs = ['src/java']   main.resources.srcDirs = ['src/resources'] } 

數(shù)組里其實(shí)是可以指定多個(gè)目錄,這樣就可以將代碼和資源放置到多個(gè)目錄下。
在看一個(gè)Android項(xiàng)目的例子:

android {   sourceSets {     main {       manifest.srcFile 'AndroidManifest.xml'       java.srcDirs = ['src']       resources.srcDirs = ['src']       aidl.srcDirs = ['src']       renderscript.srcDirs = ['src']       res.srcDirs = ['res']       assets.srcDirs = ['assets']     }       androidTest.setRoot('tests')   } } 

這里的main code其實(shí)使用的就是Android Gradle的默認(rèn)值,而androidTest不再使用默認(rèn)的androidTest目錄,而是使用tests目錄。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥宁县| 聂拉木县| 揭阳市| 静海县| 镇远县| 沙洋县| 义马市| 汝城县| 神农架林区| SHOW| 上高县| 瑞安市| 武川县| 循化| 静宁县| 巩留县| 泸州市| 莱阳市| 五寨县| 会东县| 阿拉尔市| 泰州市| 梅州市| 皋兰县| 新绛县| 宣武区| 靖宇县| 浦城县| 穆棱市| 巴彦淖尔市| 珠海市| 康保县| 和田县| 马山县| 定州市| 五大连池市| 漳浦县| 兴和县| 堆龙德庆县| 土默特左旗| 丹东市|