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

Android gradle的buildTypes內部配置java

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.debugandroid

        }
        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:app

配置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
buildConfigFieldgradle

字段參數配置,android的gradle會根據buildTypes的配置自動生成BuildConfig.java文件,直接在項目接口配置的java文件內經過類名調用獲取,能夠避免每次調試與正式打包時容易忘記切換服務器的問題,省去出錯麻煩.ui

//服務器頭字段
public static final String SERVER_HEADER = BuildConfig.SERVERHEAD;
1
2
如下通常爲默認屬性便可:.net

debuggable: debug模式默認爲true, release模式默認是false插件

jniDebuggable: debug模式與release模式默認都是false

相關文章
相關標籤/搜索