【聲明】 html
歡迎轉載,但請保留文章原始出處→_→ java
生命壹號:http://www.cnblogs.com/smyhvae/android
【系列】json
第一次使用Android Studio時你應該知道的一切配置app
第一次使用Android Studio時你應該知道的一切配置(二):新建一個屬於本身的工程並安裝Genymotion模擬器eclipse
第一次使用Android Studio時你應該知道的一切配置(三):gradle項目構建工具
目錄:post
一、gradle的概念gradle
二、gradle配置jar包,和libs文件夾導入jar包的區別網站
三、簽名打包:
(1)Studio
(2)命令行
(3)gradle wrapper的原理
四、BuildConfig的使用
五、簡單介紹module中build.gradle文件參數含義
1、gradle的概念:
打開Android Studio內置的終端,在輸入以下命令查看gradle版本:
gradlew -v
若是是第一次運行這個命令,系統會幫咱們下載gradle到本地,下載到的路徑是:
輸入上述命令後,查看到gradle的版本2.2.1,以下圖所示:
2、經過gradle來導入jar包:
咱們在上一篇文章中第二段的第3小節中講到了經過拷貝文件到libs文件夾來導入jar包。此次來說一下怎麼經過gradle來配置jar包。咱們仍是以谷歌的gjson.jar爲例,若是以前已經經過拷貝文件方式倒入過了,請先自行刪掉。
一、經過gradle配置第三方jar包
咱們看到,每一個module都有一個build.gradle文件,它實際上是對應module的配置文件。關於build.gradle文件中具體內容的含義,咱們將在最後一段進行講解。
咱們先來看一下名爲app的這個module,它的build.gradle對應的圖形界面實際上是下面這個Project Stucture:
上圖中,切換到dependencies標籤下,以下圖所示:
上圖中,點擊添加,而後選擇"Library dependency",彈出以下界面:
上圖中,咱們在搜索框中輸入「gson」,而後肯定,就彈出了箭頭處的咱們須要的jar包,添加它便可:
以後咱們會發現,app這個module的build.gradle中多了一行代碼,表示引入了gson.jar:
其實,若是你能記得住上方這行代碼,直接寫出代碼來也是能夠導入的。
此時,gson這個jar包再也不是出如今libs這個文件夾下了,而是出如今最下方的External Libraries中,以下圖所示:(並且是最新版本哦)
二、gradle導入jar包的特色:(和libs文件夾導入jar包的區別)
三、經過gradle導入的jar包是從哪裏來的:
須要注意的是:不是全部的jar包都是能夠經過gradle來導入的。那經過gradle導入的jar包是從哪裏來的呢?解釋以下:
咱們發現HelloWorld這個project的目錄下有一個build.gradle文件,打開它:
上圖中第17行的"jcenter()"的意思是,全部經過gradle導入的jar包都是從http://bintray.com/bintray/jcenter這個中央倉庫上扒下來的。若是你須要的jar包在這個網站上沒有,那就沒法經過gradle的方式來導入哦。
順便提一下,上圖中第8行的classpath中的gradle 1.1.0是android的一個gradle插件(也是從中央倉庫扒下來的)。而咱們本身使用的gradle版本以下圖所示:
咱們本身下載好的gradle的路徑以下:
3、簽名打包的兩種方式:
注:給咱們本身開發的app簽名,就表明着我本身的版權,之後要進行升級,也必需要使用相同的簽名才行。簽名就表明着本身的身份(即keystore),多個app可使用同一個簽名。
若是不知道簽名是啥意思,請自行百度哦。在eclipse中籤名的方法是:選中工程,郵件選擇"export-android-export android application",
一、方式1:經過Android Studio進行簽名:
選中app這個module,選擇菜單欄"Build-Generate signed apk":
彈出以下界面:
上圖中,若是你是第一次使用簽名,就單擊紅框部分建立一個新的簽名;若是你以前有過簽名的文件,就選擇藍框部分進行導入便可。那我就先選擇紅框部分吧:
上圖中,點擊"finish"以後,能夠看到Android Studio的最下方顯示:Gradle正在執行assembleRelease這樣一個任務,以下圖所示:
生成簽名好的apk以後,會彈出提示:
二、方式2:經過命令行的方式進行簽名:
(1)加載Key Store:
咱們先刪掉上面的經過第一種方式所簽名的apk文件。接下來進行第二種方式來簽名,即命令行的方式。
打開Project Stucture圖形化界面:
上圖中,選中app這個module,而後切換到singning標籤欄,緊接着點擊添加,而後生成release簽名信息,緊接着點擊"OK"。接着作以下操做:
上圖中,切換到Build Types標籤,將Signing config選擇爲"release",即將剛剛生成的release簽名信息配置進去。
操做完成以後,咱們能夠看到app這個module的build.gradle文件多出了以下紅框部分的代碼:
而後執行菜單欄的"build-clean Project":
(2)生成realease版本的apk:
緊接着在命令行Terminal輸入以下命令:(AS已經將命令行Terminal集成到了軟件當中)
gradlew assembleRelease
若是運行成功,效果以下:
生成的簽名好的apk在以下位置:
三、爲何要使用gradlew命令而不是gradle命令:
在HelloWorld工程目錄下有一個gradle文件夾,在gradle/wrapper目錄下有一個gradle-wrapper.properties文件,打開它:
上圖表明着HelloWorld這個工程所依賴的gradle的版本信息。上圖的紅線表示,若是咱們的工程中沒有gradle,軟件會根據這個url去下載gradle,終於知道爲啥第一次打開AS時會這麼慢了吧?
若是咱們執行了gradlew命令,其實是執行上面的gradle wrapper,而後找到咱們已經下載好的gradle 2.2.1。若是如今有不少個工程,可是每一個工程的gradle版本都不同,我就必需要將每一個版本的gradle都要配置到環境變量當中,而執行了gradlew命令,就會避免這個麻煩。
4、BuildConfig文件:
BuildConfig是IDE自動生成的一個類,在elipse中即存放在gen目錄下(如R文件)。而在Adroid Studio中,BuildConfig文件存放的位置是:app/build/generated/source/buildconfig/dubug/<packagename>/BuildConfig.java中。以下圖所示:
5、module中build.gradle文件參數含義:
主要是module的build.gradle,截圖以下:
01行:apply plugin: 'com.android.application' 表示該module是這個應用程序的module
15行:applicationId "com.smyhvae.helloworld" 應用程序的包名
1六、17行:向下兼容的最小版本、編譯版本。 注:在app/src/main/AndroidManifest.xml中再也不出現這個信息了。
23行:需不須要利用24行的proguard文件來混淆代碼。在release狀態下,最好改成true。