Android多渠道打包修改资源文件
16lz
2021-01-26
公司到后面越来越多时候是在基础版本上做更改,提供出OEM版本Demo,网上有很多这样例子,自己也效仿者做了一个,写在这里做记录。
主要是通过在app/build.gradle配置
android {*** productFlavors { //开发环境 develop { buildConfigField "int", "ENV_TYPE", "1" applicationId 'om.soubu.walledemo.develop' resValue("string","dynamic_text","oem1的动态文字") manifestPlaceholders = [ app_name: "开-WalleDemo", app_icon: "@drawable/icon_develop", oemImage : "@drawable/oem1" ] } //测试环境 check { buildConfigField "int", "ENV_TYPE", "2" applicationId 'om.soubu.walledemo.check' resValue("string","dynamic_text","oem2的动态文字") manifestPlaceholders = [ app_name: "测-WalleDemo", app_icon: "@drawable/icon_check", oemImage : "@drawable/oem2" ] } //生产环境 product { buildConfigField "int", "ENV_TYPE", "3" applicationId 'com.soubu.walledemo.product' resValue("string","dynamic_text","oem3的动态文字") manifestPlaceholders = [ app_name: "WalleDemo", app_icon: "@drawable/icon_product", oemImage : "@drawable/oem3" ] } }}配置完后在AndroidManifest.xml中填写String 或者ImageView的占位符
注意配置APP的logo与名字,还有资源文件的
android:allowBackup="true" android:icon="${app_icon}" android:label="${app_name}" android:supportsRtl="true" android:theme="@style/AppTheme"> android:name=".MainActivity"> android:name="android.intent.action.MAIN"/> android:name="android.intent.category.LAUNCHER"/> android:name="OEM_Image" android:resource="${oemImage}" />
在代码中去根据不同的版本信息进行 img.setImageResource(Util.getMetaDataInt(this,"OEM_Image"));
tvChannel.setText(R.string.dynamic_text);
参考了两个Demo.附上链接
Android利用Gradle多渠道打包如何动态替换资源,文字
还有一个好像是walle的一个Demo,但是我找不到地址了就把它github附上吧
walle
Demo下载
源码下载
更多相关文章
- android 动态调试 遇到的问题
- Android(安卓)studio新建项目之后由于gradle配置问题导致项目无
- 谈谈Android中WIFI 架构和控制流程
- android初入门工具及配置
- IJKPlayer 实现视频播放业务
- 2.7-2 Android(安卓)studio gradle 文件 配置完整版
- Android(安卓)Wifi的工作流程
- Andriod(三):配置文件build.gradle与AndroidManifest.xml
- Google Analytics Advanced Configuration - Google Analytics