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
版權宣告:本文為博主原創文章,轉載請