標籤:標籤欄 應用 lan ati apply sem 構建 ima 匯入jar包
?【聲明】
歡迎轉載,但請保留文章原始出處→_→
生命壹號:http://www.cnblogs.com/smyhvae/
文章來源:http://www.cnblogs.com/smyhvae/p/4456420.html
【系列】
第一次使用Android Studio時你應該知道的一切配置
第一次使用Android Studio時你應該知道的一切配置(二):建立一個屬於自己的工程並安裝Genymotion模擬器
第一次使用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包。我們還是以Google的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中籤名的方法是:選中工程,郵件選擇"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命令:
在HelloWorld工程目錄下有一個gradle檔案夾,在gradle/wrapper目錄下有一個gradle-wrapper.properties檔案,開啟它:
代表著HelloWorld這個工程所依賴的gradle的版本資訊。的紅線表示,如果我們的工程中沒有gradle,軟體會根據這個url去下載gradle,終於知道為啥第一次開啟AS時會這麼慢了吧?
如果我們執行了gradlew命令,實際上是執行上面的gradle wrapper,然後找到我們已經下載好的gradle 2.2.1。如果現在有很多個工程,但是每個工程的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。
我的公眾號
想學習代碼之外的軟技能?不妨關注我的公眾號:生命團隊(id:vitateam)。
掃一掃,你將發現另一個全新的世界,而這將是一場美麗的意外:
第一次使用Android Studio時你應該知道的一切配置(三):gradle項目構建