Android Studio的gradle项目构建
【聲明】?
歡迎轉(zhuǎn)載,但請(qǐng)保留文章原始出處→_→?
生命壹號(hào):http://www.cnblogs.com/smyhvae/
文章來源:http://www.cnblogs.com/smyhvae/p/4456420.html
?
【系列】
第一次使用Android Studio時(shí)你應(yīng)該知道的一切配置
第一次使用Android Studio時(shí)你應(yīng)該知道的一切配置(二):新建一個(gè)屬于自己的工程并安裝Genymotion模擬器
第一次使用Android Studio時(shí)你應(yīng)該知道的一切配置(三):gradle項(xiàng)目構(gòu)建
?
目錄:
1、gradle的概念
2、gradle配置jar包,和libs文件夾導(dǎo)入jar包的區(qū)別
3、簽名打包:
??? (1)Studio
??? (2)命令行
??? (3)gradle wrapper的原理
4、BuildConfig的使用
5、簡(jiǎn)單介紹module中build.gradle文件參數(shù)含義
?
一、gradle的概念:
- gradle是一個(gè)構(gòu)建工具
- gradle是以Groovy語言為基礎(chǔ)的
- gradle主要面向的是Java語言
打開Android Studio內(nèi)置的終端,在輸入如下命令查看gradle版本:
gradlew -v
輸入上述命令后,查看到gradle的版本2.2.1,如下圖所示:
二、通過gradle來導(dǎo)入jar包:
我們?cè)谏弦黄恼轮械诙蔚牡?小節(jié)中講到了通過拷貝文件到libs文件夾來導(dǎo)入jar包。這次來講一下怎么通過gradle來配置jar包。我們還是以谷歌的gjson.jar為例,如果之前已經(jīng)通過拷貝文件方式倒入過了,請(qǐng)先自行刪掉。
1、通過gradle配置第三方j(luò)ar包
我們看到,每個(gè)module都有一個(gè)build.gradle文件,它其實(shí)是對(duì)應(yīng)module的配置文件。關(guān)于build.gradle文件中具體內(nèi)容的含義,我們將在最后一段進(jìn)行講解。
我們先來看一下名為app的這個(gè)module,它的build.gradle對(duì)應(yīng)的圖形界面其實(shí)是下面這個(gè)
上圖中,切換到dependencies標(biāo)簽下,如下圖所示:
上圖中,點(diǎn)擊添加,然后選擇"Library dependency",彈出如下界面:
上圖中,我們?cè)谒阉骺蛑休斎搿癵son”,然后確定,就彈出了箭頭處的我們需要的jar包,添加
之后我們會(huì)發(fā)現(xiàn),app這個(gè)module的build.gradle中多了一行代碼,表示引入了gson.jar:
其實(shí),如果你能記得住上方這行代碼,直接寫出代碼來也是可以導(dǎo)入的。
此時(shí),gson這個(gè)jar包不再是出現(xiàn)在libs這個(gè)文件夾下了,而是出現(xiàn)在最下方的External Libraries中,如下圖所示:
2、gradle導(dǎo)入jar包的特點(diǎn):(和libs文件夾導(dǎo)入jar包的區(qū)別)
- gradle導(dǎo)入jar包更方便,一行代碼即可搞定。不像后者那樣還要自己去官方下載。
- 如果官方將jar包更新了,我們只需要在build.gradle中改一下版本號(hào)就行了,不用重新去官網(wǎng)下載。
?
3、通過gradle導(dǎo)入的jar包是從哪里來的:
需要注意的是:不是所有的jar包都是可以通過gradle來導(dǎo)入的。那通過gradle導(dǎo)入的jar包是從哪里來的呢?解釋如下:
我們發(fā)現(xiàn)HelloWorld這個(gè)project的目錄下有一個(gè)build.gradle文件,打開它:
上圖中第17行的"jcenter()"的意思是,所有通過gradle導(dǎo)入的jar包都是從http://bintray.com/bintray/jcenter這個(gè)中央倉(cāng)庫(kù)上扒下來的。如果你需要的jar包在這個(gè)網(wǎng)站上沒有,那就無法通過gradle的方式來導(dǎo)入哦。
順便提一下,上圖中第8行的classpath中的gradle 1.1.0是android的一個(gè)gradle插件(也是從中央倉(cāng)庫(kù)扒下來的)。而我們自己使用的gradle版本如下圖所示:
我們自己下載好的gradle的路徑如下:
三、簽名打包的兩種方式:
注:給我們自己開發(fā)的app簽名,就代表著我自己的版權(quán),以后要進(jìn)行升級(jí),也必須要使用相同的簽名才行。簽名就代表著自己的身份(即keystore),多個(gè)app可以使用同一個(gè)簽名。
如果不知道簽名是啥意思,請(qǐng)自行百度哦。在eclipse中簽名的方法是:選中工程,郵件選擇"export-android-export android application",
1、方式1:通過Android Studio進(jìn)行簽名:
選中app這個(gè)module,選擇菜單欄"Build-Generate signed apk":
彈出如下界面:
上圖中,如果你是第一次使用簽名,就單擊紅框部分創(chuàng)建一個(gè)新的簽名;如果你之前有過簽名的文件,就選擇藍(lán)框部分進(jìn)行導(dǎo)入即可。那我就先選擇紅框部分吧:
上圖中,點(diǎn)擊"finish"之后,可以看到Android Studio的最下方顯示:Gradle正在執(zhí)行assembleRelease這樣一個(gè)任務(wù),如下圖所示:
生成簽名好的apk之后,會(huì)彈出提示:
2、方式2:通過命令行的方式進(jìn)行簽名:
(1)加載Key Store:
我們先刪掉上面的通過第一種方式所簽名的apk文件。接下來進(jìn)行第二種方式來簽名,即命令行的方式。
打開Project?Stucture圖形化界面:
上圖中,選中app這個(gè)module,然后切換到singning標(biāo)簽欄,緊接著點(diǎn)擊添加,然后生成release簽名信息,緊接著點(diǎn)擊"OK"。接著做如下操作:
上圖中,切換到Build Types標(biāo)簽,將Signing config選擇為"release",即將剛剛生成的release簽名信息配置進(jìn)去。
操作完成之后,我們可以看到app這個(gè)module的build.gradle文件多出了如下紅框部分的代碼:
然后執(zhí)行菜單欄的"build-clean Project":
(2)生成realease版本的apk:
緊接著在命令行Terminal輸入如下命令:(AS已經(jīng)將命令行Terminal集成到了軟件當(dāng)中)
gradlew assembleRelease
如果運(yùn)行成功,效果如下:
生成的簽名好的apk在如下位置:
3、為什么要使用gradlew命令而不是gradle命令:
在HelloWorld工程目錄下有一個(gè)gradle文件夾,在gradle/wrapper目錄下有一個(gè)gradle-wrapper.properties文件,打開它:
上圖代表著HelloWorld這個(gè)工程所依賴的gradle的版本信息。上圖的紅線表示,如果我們的工程中沒有g(shù)radle,軟件會(huì)根據(jù)這個(gè)url去下載gradle,終于知道為啥第一次打開AS時(shí)會(huì)這么慢了吧?
如果我們執(zhí)行了gradlew命令,實(shí)際上是執(zhí)行上面的gradle wrapper,然后找到我們已經(jīng)下載好的gradle 2.2.1。如果現(xiàn)在有很多個(gè)工程,但是每個(gè)工程的gradle版本都不一樣,我就必須要將每個(gè)版本的gradle都要配置到環(huán)境變量當(dāng)中,而執(zhí)行了gradlew命令,就會(huì)避免這個(gè)麻煩。
四、BuildConfig文件:
BuildConfig是IDE自動(dòng)生成的一個(gè)類,在elipse中即存放在gen目錄下(如R文件)。而在Adroid Studio中,BuildConfig文件存放的位置是:app/build/generated/source/buildconfig/dubug/<packagename>/BuildConfig.java中。如下圖所示:
五、module中build.gradle文件參數(shù)含義:
主要是module的build.gradle,截圖如下:
01行:apply plugin: 'com.android.application'??? 表示該module是這個(gè)應(yīng)用程序的module
15行:applicationId "com.smyhvae.helloworld"??? 應(yīng)用程序的包名
16、17行:向下兼容的最小版本、編譯版本。??? 注:在app/src/main/AndroidManifest.xml中不再出現(xiàn)這個(gè)信息了。
23行:需不需要利用24行的proguard文件來混淆代碼。在release狀態(tài)下,最好改為true。
總結(jié)
以上是生活随笔為你收集整理的Android Studio的gradle项目构建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海量数据处理-Trie树
- 下一篇: Android Studio目录结构和G