Android渠道版本及代码区分的方式
做手机软件经常遇到区分渠道和特殊功能的区分需求,比如你要分发不同的市场或者在集成第三方sdk的时候,需要做好分离,如果你把一家合作的sdk集成到给另一家的apk中去是不妥的,Android处理方式比以前塞班和WM时代要强不少,主要是引入了gradle
,可以利用productFlavors
把这些处理的很好,比如可可拼音输入法开发的时候要有开发和测试环境版,还有我自己的版本,因为我自己的版本功能要强大很多,但是这些功能普通用户用不上,所以都得隔离出来,只需要配置不同的信息就可以了,在buildConfigField
里面可以加入所需的判断信息,示例如下
flavorDimensions "cc"
productFlavors {
// 我自己的版本
coco {
dimension "cc"
buildConfigField("Boolean", "COCO", "true")
}
//开发板
dev {
dimension "cc"
buildConfigField("Boolean", "DEV", "true")
}
//测试环境版本,可以配置测试环境的服务器请求地址
tenv {
dimension "cc"
buildConfigField("String", "SOME_URL", "\"http://www.cocozq.com/\"")
buildConfigField("Boolean", "DEV", "true")
}
productFlavors.all { flavor ->
}
}