
公司的项目是一套多用,基本就是换个 appicon 和启动页就给另一个客户使用,于是就用 productFlavors 来打包,大概是这样配置的
productFlavors { a { manifestPlaceholders = [app_icon: "@drawable/logo_a"] buildConfigField "int", "loading_bg, "R.drawable.bg_a" } b { manifestPlaceholders = [app_icon: "@drawable/logo_b"] buildConfigField "int", "loading_bg", "R.drawable.bg_b" } . . . 原来还好,就一两个,但是现在有大概 30 个客户了,就有很多启动页都被一起打包进 apk,apk 变得很大。
试过混淆 shrinkResources true 没有用
也试了 sourceSets exclude 的配置也没生效
sourceSets { b { resources { exclude "**/bg_a.png" } } } 不知道是不是写错了,有经验的大佬帮忙看下,谢谢了
1 stephonhu 2019-12-27 10:58:53 +08:00 可以在 src 下和 main 同级创建对应 productFlavors 名字的文件夹,里面目录和 main 一样,然后把启动页放到对应 productFlavors 的 drawable 下就好了呀 |
2 yaming116 2019-12-27 11:00:44 +08:00 via iPhone 做一个脚本替换资源打包好了呀,简单的就是一个客户一个文件夹,客户再多就自己写一个 web 界面管理 |
4 iseejun 2019-12-27 11:09:01 +08:00 脚本跑起来呀,第三方打包都是替换公共资源 目前我这边就是这样做 |
6 0DBBFF 2019-12-27 11:42:32 +08:00 |
7 mrleft 2019-12-27 12:01:46 +08:00 一楼说得对 gradle flavour 本身就能实现 |
8 Tomey 2019-12-27 12:56:27 +08:00 一楼的做法是可以实现的 |
9 sunrain 2019-12-27 13:07:29 +08:00 百度 tools:discard |
10 royliu 2019-12-27 13:32:15 +08:00 我们项目也有这个需求,就是通过一楼说的在对应 productFlavors 中建同名目录和资源就行。 |
11 PhxNirvana 2019-12-27 15:25:52 +08:00 自动化打包 |
12 Minson 2019-12-27 15:37:25 +08:00 一楼正解 |
13 allenframe 2019-12-27 20:55:15 +08:00 3、4 年前就有的 Android 打包方案,属于基础;还不涉及到复杂的需求,都不需要用到脚本 |