App打包和测试的时候会设置不同的AppName,这里在gradle中进行AppName的配置可以避免在正式打包的时候修改文件中AppName的值,
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' debuggable false resValue "string","AppName","Turman" } debug { resValue "string","AppName","TurmanTest" } }
编译之后可以直接从resValue string中获取。
同样,通过这种配置也可以在BuildConfig中设置一些开关变量,比如:
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' debuggable false buildConfigField "boolean", "OPEN_LOG", "false" } debug { buildConfigField "boolean", "OPEN_LOG", "true" } }
可以在正式发布时关闭日志。
manifest中的一些配置也可以实现编译时动态配置:
productFlavors { centaline {} baidu {} baidu_search {} qihu360 {} tencent {} xiaomi {} wandoujia {} huawei {} qihu360_pop {} qihu360_search {} szbus {} productFlavors.all { flavor -> flavor.manifestPlaceholders = [MTJ_CHANNEL_VALUE: name,BAIDUMOBAD_EXCEPTION_LOG:true] } }