Android studio第一次使用配置(三)gradle項目構建
1、gradle的概念
2、gradle配置jar包。和libs目錄導入jar包的差別
3、簽名打包:
(1)Studio
(2)命令行
(3)gradle wrapper的原理
4、BuildConfig的使用
5、簡介module中build.gradle文件參數含義
一、gradle的概念:
- gradle是一個構建工具
- gradle是以Groovy語言為基礎的
- gradle主要面向的是Java語言
打開Android Studio內置的終端,在輸入例如以下命令查看gradle版本號:
gradlew -v
假設是第一次執行這個命令,系統會幫我們下載gradle到本地,下載到的路徑是:
輸入上述命令後,查看到gradle的版本號2.2.1,例如以下圖所看到的:
二、通過gradle來導入jar包:
我們在上一篇文章中第二段的第3小節中講到了通過復制文件到libs目錄來導入jar包。這次來講一下怎麽通過gradle來配置jar包。我們還是以谷歌的gjson.jar為例,假設之前已經通過復制文件方式倒入過了。請先自行刪掉。
1、通過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中,例如以下圖所看到的:(並且是最新版本號哦)
2、gradle導入jar包的特點:(和libs目錄導入jar包的差別)
- gradle導入jar包更方便,一行代碼即可搞定。不像後者那樣還要自己去官方下載。
- 假設官方將jar包更新了,我們僅僅須要在build.gradle中改一下版本即可了,不用又一次去官網下載。
3、通過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的路徑例如以下:
三、簽名打包的兩種方式:
註:給我們自己開發的app簽名,就代表著我自己的版權,以後要進行升級。也必需要使用同樣的簽名才行。簽名就代表著自己的身份(即keystore),多個app能夠使用同一個簽名。
假設不知道簽名是啥意思,請自行百度哦。在eclipse中簽名的方法是:選中project,郵件選擇"export-android-export android application",
1、方式1:通過Android Studio進行簽名:
選中app這個module,選擇菜單條"Build-Generate signed apk":
彈出例如以下界面:
上圖中。假設你是第一次使用簽名,就單擊紅框部分創建一個新的簽名;假設你之前有過簽名的文件,就選擇藍框部分進行導入就可以。那我就先選擇紅框部分吧:
上圖中,點擊"finish"之後,能夠看到Android Studio的最下方顯示:Gradle正在運行assembleRelease這樣一個任務,例如以下圖所看到的:
生成簽名好的apk之後,會彈出提示:
2、方式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在例如以下位置:
3、為什麽要使用gradlew命令而不是gradle命令:
在HelloWorldproject文件夾下有一個gradle文件夾,在gradle/wrapper文件夾下有一個gradle-wrapper.properties文件,打開它:
上圖代表著HelloWorld這個project所依賴的gradle的版本號信息。上圖的紅線表示。假設我們的project中沒有gradle,軟件會依據這個url去下載gradle。最終知道為啥第一次打開AS時會這麽慢了吧?
假設我們運行了gradlew命令,實際上是運行上面的gradle wrapper。然後找到我們已經下載好的gradle 2.2.1。假設如今有非常多個project,可是每一個project的gradle版本號都不一樣,我就必需要將每一個版本號的gradle都要配置到環境變量其中,而運行了gradlew命令,就會避免這個麻煩。
四、BuildConfig文件:
BuildConfig是IDE自己主動生成的一個類。在elipse中即存放在gen文件夾下(如R文件)。而在Adroid Studio中,BuildConfig文件存放的位置是:app/build/generated/source/buildconfig/dubug/<packagename>/BuildConfig.java中。
例如以下圖所看到的:
五、module中build.gradle文件參數含義:
主要是module的build.gradle,截圖例如以下:
01行:apply plugin: ‘com.android.application‘ 表示該module是這個應用程序的module
15行:applicationId "com.smyhvae.helloworld" 應用程序的包名
16、17行:向下兼容的最小版本號、編譯版本號。 註:在app/src/main/AndroidManifest.xml中不再出現這個信息了。
23行:需不須要利用24行的proguard文件來混淆代碼。
在release狀態下。最好改為true。
圖文來源:http://www.cnblogs.com/smyhvae/p/4456420.html
Android studio第一次使用配置(三)gradle項目構建