1. 程式人生 > >Android studio第一次使用配置(三)gradle項目構建

Android studio第一次使用配置(三)gradle項目構建

令行 技術分享 簽名 aries rar 工具 img 引入 文章

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項目構建