1. 程式人生 > >Android開發筆記之gradle的buildTypes內部配置

Android開發筆記之gradle的buildTypes內部配置

buildTypes {
        debug {
            // 伺服器配置
            buildConfigField "String", "SERVERHEAD", "\"http://110.11.11.00/miaomiao/\""
            //是否混淆
            minifyEnabled false
            zipAlignEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug

        }
        release {
            // 正式伺服器
            buildConfigField "String", "SERVERHEAD", "\"http://miaomiao.com/miaomiao/\""
            //混淆
            minifyEnabled true
            zipAlignEnabled true//記憶體對齊
            // 移除無用的resource檔案
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //簽名
            signingConfig signingConfigs.release
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
配置屬性說明:
minifyEnabled:

debug與release的預設值都為false,如果需要混淆需要手動配置為true;
混淆檔案在proguardFiles後面配置,預設為app目錄下的 “proguard-rules.pro”
shrinkResources:

配置true,移除無用的resource檔案,可以減小apk包的大小,有瘦身效果;
Tor Norbye在Google+上還透露了Android Gradle外掛清除無用資源的效果:在構建時,自動移除無用資源的功能能夠大幅度減小APK檔案的大小(最高可減小34%);當前能夠移除的無用資源包括圖片、佈局、選單等資原始檔,但不包括value資原始檔。
zipAlignEnabled:

是否對齊app所有資源,對齊後,會使得在執行時Android與應用程式間的互動更加有效率;
配置此屬性必須要有足夠的資訊簽名程式包,Ant才會執行對齊操作,因為對齊處理髮生在簽名之後。為了能夠簽名程式包,進而執行對齊操作,Ant必須知道keystore的位置以及build.properties中key的名字。相應的屬性名為key.store和key.alias。如果這些屬性為空,簽名工具會在編譯過程中提示輸入store/key的密碼,然後指令碼會執行簽名及apk檔案的對齊。如果這些屬性都沒有,Release程式包不會進行簽名,自然也就不會進行對齊了。
可以直接在android{}內配置簽名信息,程式碼如下:

signingConfigs {
        debug {
            //miaomiao_keystore.jks檔案最好放在專案app目錄下
            storeFile file("miaomiao_keystore.jks")
            storePassword "123456"
            keyAlias "miaomiao"
            keyPassword "123456"
        }
        release {
            //miaomiao_keystore.jks檔案最好放在專案app目錄下
            storeFile file("miaomiao_keystore.jks")
            storePassword "123456"
            keyAlias "miaomiao"
            keyPassword "123456"
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
buildConfigField

欄位引數配置,android的gradle會根據buildTypes的配置自動生成BuildConfig.java檔案,直接在專案介面配置的java檔案內通過類名呼叫獲取,可以避免每次除錯與正式打包時容易忘記切換伺服器的問題,省去出錯麻煩.

//伺服器頭欄位
public static final String SERVER_HEADER = BuildConfig.SERVERHEAD;
1
2
以下一般為預設屬性即可:

debuggable: debug模式預設為true, release模式預設是false

jniDebuggable: debug模式與release模式預設都是false

renderscriptDebuggable: debug模式與release模式預設都是false
--------------------- 
作者:Droidrzy 
來源:CSDN 
原文:https://blog.csdn.net/droidrzy/article/details/61200115 
版權宣告:本文為博主原創文章,轉載請