Android studio 使用Grandle进行分渠道打包

来源:互联网 发布:数据移植测试 编辑:程序博客网 时间:2024/05/21 10:07

前言:
使用工具:AndroidStudio
    适用场景:打包时自动识别生产环境和测试环境的不同的地址
    了解知识:Grandle的使用语言Groovy

1:配置地址文件(ps:debug:测试环境(线下);release:生产环境(线上))



debug下:www.baidu.com
release下:www.google.com        
SERVER2 = "http://www.baidu.com"
IMAGEREQUEST = "http://www.aaa.com:端口号"
WEB = "http://dev.xxx.com:端口号"
 
statistical = "https://dev.aaa.com:端口号/android/"

2:配置build.grandle文件(该文件路径是:app/build.grandle
    2-1:自定义方法获取地址: 定义变量类型(String)  变量名称(SERVER2)  获取变量值的方法getSERVER2('release/debug') 
            (release/debug:代表在app下创建的文件目录)



buildTypes{
release{
 
minifyEnabledtrue//开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
// 加载混淆配置文件
 
 
buildConfigField'String','SERVER2', getSERVER2('release')
buildConfigField'String','IMAGEREQUEST', getIMAGEREQUEST('release')
buildConfigField'String','WEB', getWEB('release')
buildConfigField'String','statistical', getstatistical('release')
 
signingConfig signingConfigs.releaseConfig
}
 
debug{
buildConfigField'String','SERVER2', getSERVER2('debug')
buildConfigField'String','IMAGEREQUEST', getIMAGEREQUEST('debug')
buildConfigField'String','WEB', getWEB('debug')
buildConfigField'String','statistical', getstatistical('debug')
 
signingConfig signingConfigs.debugConfig
}
}

2-2:自定义方法,读取properties文件获取地址(简单的例子,如果有多个可以进行添加多个,但是2-1中的位置还需要再次添加一个方法)
            注意自己定义的文件路径地址是否正确

 
// 获取配置文件内容的地址
def getSERVER2(String str) {
def SERVER2
def Properties properties = new Properties()
def proFile = file('src/main/filters/' + str + '/config.properties') // 配置文件地址的路径
if (proFile.canRead()) { // 读取
properties.load(new FileInputStream(proFile)) // 加载
if (properties != null) {
SERVER2 = properties['SERVER2'] // 赋值
}
}
SERVER2
}
 
def getIMAGEREQUEST(String str) {
def IMAGEREQUEST
def Properties properties = new Properties()
def proFile = file('src/main/filters/' + str + '/config.properties')
if (proFile.canRead()) {
properties.load(new FileInputStream(proFile))
if (properties != null) {
IMAGEREQUEST = properties['IMAGEREQUEST']
}
}
IMAGEREQUEST
}

3:调用地址
    3-1:在java代码中调用BuildConfig . 变量名称

   buildConfig的产出路径(编译后自动生成的文件)

                debug下SERVER2获取到的是:www.baidu.com
                release下SERVER2获取到的是:www.google.com


4:其他
    选择编译类型,在AndroidStudio的左侧有一个Build Variants
选中项目右侧显示要打包的场景(debug/release)

`

5:备注
至于好处就不多说了,实战看效果,就一目了然了!
0 0