-
第三方API的KEY的管理
Android開發(fā)氮块,基本都會用到第三方SDK,例如百度地圖、支付寶支付等探入。
通常第三方的KEY都是保存在AndroidManifest中:
<!-- 百度地圖的KEY-->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="百度地圖注冊的KEY"/>```
每次更換KEY或者多渠道打包震檩;總是在Gradle和Mainfest中來回更改琢蛤,有時候一個疏忽,可能就漏了一個抛虏,怎能讓人不蛋疼博其。
能不能將他們統(tǒng)一配置到某個位置,統(tǒng)一管理迂猴,輕松更改呢慕淡?Google替我們想到了。利用manifestPlaceholders
- ######方法
AndroidManifest中的KEY沸毁,我們用一個變量代替峰髓,在build.gradle中動態(tài)的替換,還以百度地圖SDK的KEY為例:
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="${baidu_key}"/>```
在build.gradle中:
debug {
manifestPlaceholders = [baidu_key: 百度地圖的KEY]
}
release {
manifestPlaceholders = [baidu_key: 百度地圖的KEY]
}```
其它的第三方KEY管理類似息尺,例如新加入友盟SDK
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="${baidu_key}"/>
<meta-data
android:name="UMENG_APPKEY"
android:value="${umeng_key}"/>
在build.gradle中:
debug {
manifestPlaceholders = [baidu_key: 百度地圖的KEY携兵,umeng_key: 友盟的KEY]
}
release {
manifestPlaceholders = [baidu_key: 百度地圖的KEY,umeng_key: 友盟的KEY]
}```
搞定搂誉,類似第三方KEY都可以在gradle中管理
-
Gradle中版本管理
gradle中眉孩,包含包名、VersionCode、versionName浪汪、compileSdkVersion以及第三方依賴庫等大量信息巴柿,管理起來,稍有不慎就會誤刪或者改錯死遭,導致編譯失敗广恢,能不能像管理第三方KEY一樣,將所有需要修改的參數(shù)統(tǒng)一管理起來呀潭,只修改參數(shù)钉迷,不干擾其他因素這樣在版本升級中,無需打開gradle在繁雜的代碼中修改各種版本號钠署,例如:
需要修改compileSdkVersion 時糠聪,只需要修改COMPILE_SDK_VERSION,何樂而不為谐鼎,那就開始吧:
- 命名規(guī)則:命名自定義舰蟆,但是最好見名知意,字母大寫狸棍,類似于全局常量命名身害,后面加修飾符號
- 例如:minSdkVersion,命名MIN_SDK_VERSION草戈,修飾符號 as int 塌鸯,
完整命名:minSdkVersion MIN_SDK_VERSION as int
針對所有需要統(tǒng)一管理的參數(shù)命名之后,就類似于上面的圖片唐片,這個時候問題來了丙猬,命名之后,具體參數(shù)我們在哪里記錄费韭,并讓gradle找到的我們設置的參數(shù)呢淮悼?
在Project目錄下,找到gradle.properties
gradle.properties中揽思,去配置我們聲明的參數(shù):
這樣,在版本升級中见擦,更改VERSION_NAME和VERSION_CODE就是再簡單不過钉汗,還不容易出錯
-
然鵝,不僅僅如此:
開發(fā)中經(jīng)常使用到的第三方庫鲤屡,以依賴方式添加的庫损痰,管理起來也一樣方便,例如酒来,現(xiàn)在如日中天的Rxjava庫卢未、Retrofit庫,RxAndroid庫:
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'io.reactivex:rxandroid:1.2.0'
compile 'io.reactivex:rxjava:1.1.6'```
對應版本,也可以在gradle.properties統(tǒng)一管理辽社,不過在build.gradle中命名方式伟墙,類似于第三方KEY的命名:
compile "io.reactivex:rxandroid:${RX_ANDROID_VERSION}"
compile "io.reactivex:rxjava:${RX_JAVA_VERSION}"
compile "com.squareup.retrofit2:retrofit:${RETROFIT_VERSION}"
compile "com.squareup.retrofit2:converter-gson:${RETROFIT_VERSION}"
同理,對應的版本號在gradle.properties

通過gradle滴铅,并不需要復雜操作戳葵,統(tǒng)一管理各種第三方KEY和依賴庫的版本,避免開發(fā)中出錯汉匙,希望大家能使用這些開發(fā)的小技巧拱烁,提高開發(fā)效率,代碼無bug, 月活過百萬噩翠,月薪6位數(shù)戏自,迎娶白富美,打哭產(chǎn)品伤锚,走上人生巔峰