gradle多渠道打包替换 4000 图片、xml等资源文件
2017-02-23 16:01
351 查看
用gradle多渠道打包一般在build.gradle文件里面,productFlavors 标签下添加自己的渠道名,像下面这样
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
或者
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
gradle就会自动帮我们替换AndroidManifest.xml文件里面的
1
但最近有个需求,每个渠道的app图标和里面一些界面的图片和文字会不一样,按照上面的方法虽然也可以但会造成打包时会多余出无用的图片和增加一些垃圾代码。后来查了下,在main的同级目录下创建以渠道名命名的文件夹,然后在文件夹里面创建资源文件(资源文件在文件夹里面的路径要和原资源文件在main文件夹里面的路径要一致),然后资源文件就会自动替换或者合并。
比如在原资源文件目录main\res\mipmap-hdpi\ic_launcher.png,那xiaomi渠道要在xiaomi\res\mipmap-hdpi\ic_launcher.png放进资源文件,打包小米渠道的时候会自动替换图片。
还有合并的情况,比如在main下面Strings.xml文件内容是
2
1
2
比如在xiaomi下面Strings.xml文件内容是
1
打包xiaomi渠道会变成
2
1
2
当然在main下面的所有文件可以替换或者合并。。。
android { productFlavors { "xiaomi"{ manifestPlaceholders = [channelName: "xiaomi"] } "360market"{ manifestPlaceholders = [channelName: "360market"] } "baidu"{ manifestPlaceholders = [channelName: "baidu"] } "wandoujia"{ manifestPlaceholders = [channelName: "wandoujia"] } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
或者
android { productFlavors { "xiaomi"{} "360market"{} "baidu"{} "wandoujia"{} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [channelName: name] } }1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
gradle就会自动帮我们替换AndroidManifest.xml文件里面的
${channelName}
<meta-data android:name="channel" android:value="${channelName}"/>1
1
但最近有个需求,每个渠道的app图标和里面一些界面的图片和文字会不一样,按照上面的方法虽然也可以但会造成打包时会多余出无用的图片和增加一些垃圾代码。后来查了下,在main的同级目录下创建以渠道名命名的文件夹,然后在文件夹里面创建资源文件(资源文件在文件夹里面的路径要和原资源文件在main文件夹里面的路径要一致),然后资源文件就会自动替换或者合并。
比如在原资源文件目录main\res\mipmap-hdpi\ic_launcher.png,那xiaomi渠道要在xiaomi\res\mipmap-hdpi\ic_launcher.png放进资源文件,打包小米渠道的时候会自动替换图片。
还有合并的情况,比如在main下面Strings.xml文件内容是
<string name="loading">加载中…</string> <string name="loading_no_more">已加载全部</string>1
2
1
2
比如在xiaomi下面Strings.xml文件内容是
<string name="loading">正在加载中,不要着急吗客官…</string>1
1
打包xiaomi渠道会变成
<string name="loading">正在加载中,不要着急吗客官…</string> <string name="loading_no_more">已加载全部</string>1
2
1
2
当然在main下面的所有文件可以替换或者合并。。。
相关文章推荐
- gradle多渠道打包替换图片、xml等资源文件
- Android Studio Gradle多渠道打包(动态设定App名称,应用图标,背景图片,状态栏颜色)、配置签名文件
- Gradle实现多渠道打包(不同资源文件打不同的包)
- Android Studio Gradle多渠道打包(动态设定App名称,应用图标,背景图片,状态栏颜色)、配置签名文件
- Android利用Gradle多渠道打包如何动态替换资源,文字
- Gradle打包src中的资源文件的配置方法(mapper.xml等)
- maven 打包时动态替换properties,xml资源文件中的配置值
- android studio多渠道打包,定制个性化,替换不同资源文件,代码
- java打包jar访问图片等文件资源
- Gradle 进行 Android 多渠道多包名换图片全自动打包
- android反编译之获得res下的xml配置文件及图片等资源
- apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
- Android apk反编译图解(得到程序的java源代码,图片、XML配置、语言资源等文件)
- apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
- (爱加密系列教程十)apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
- Android apk反编译图解(得到程序的java源代码,图片、XML配置、语言资源等文件)
- 访问打包在Jar文件中的图片资源
- mavn打包子模块时,没有把xml资源文件打包到jar文件的解决方法。
- 利用apktool将APK反编译,生成程序的图片、XML配置、语言资源等文件
- Android apk反编译图解(得到程序的java源代码,图片、XML配置、语言资源等文件)