需求背景
前段時間產(chǎn)品經(jīng)理提了個需求歼指,測試環(huán)境爹土,預(yù)發(fā)布環(huán)境,生產(chǎn)環(huán)境編譯下的app需要在同一步手機同時存在踩身,實現(xiàn)是可以的胀茵,但是得有三個環(huán)境下的不同applicationId,百度地圖key,域名挟阻,桌面logo琼娘,剛開始是想需要什么環(huán)境就換什么類型,很麻煩赁濒,每次都要換一次重新編譯轨奄,我就在想有什么便捷的方法一鍵設(shè)置更換,gradle其中的Flavors功能可以實現(xiàn)我想要的拒炎。
開發(fā)思路
這個是主項目中build.gradle中的配置挪拟,有三個環(huán)境我命名為 xiaoming_test,xiaoming_ready击你,xiaoming_product玉组,并有不同的applicationId,BAIDU_MAP_KEY,HTTP_HEAD,HTTP_HEAD_JAVA,app_icon丁侄,(解釋一下惯雳,有兩條域名是因為后面后臺是用java開發(fā)而做的區(qū)分),到這里應(yīng)該大家有疑問,舉個栗子,我們一般開發(fā)的第三方key是在mainifests進行注冊申請的鸿摇,而我們gradle如何去引用資源的石景。這里有兩種引用方式,直接引用,自定義引用。
直接引用
引用logo在application的icon屬性命名為app_icon拙吉,$表示引用這個命名潮孽,對應(yīng)的是gradle的配置。
自定義引用
在mainifests自定義為HTTP_HEAD筷黔,value值通過${HTTP_HEAD}引用往史,getHttpHead()獲取自定義注冊的域名值。從而實現(xiàn)每次請求對應(yīng)的域名佛舱,只需在gradle里設(shè)置椎例。
如何快速切換環(huán)境
只需打開studio的BuildVariarts設(shè)置挨决,選擇需要的環(huán)境即可重新編譯不同的apk,方便快捷的做到一鍵設(shè)置快速打包订歪。