diy886
V2EX  ›  Android

有办法设置打包 apk 时,不打包部分资源吗

  •  
  •   diy886 · Dec 27, 2019 · 16652 views
    This topic created in 2503 days ago, the information mentioned may be changed or developed.

    公司的项目是一套多用,基本就是换个 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"
                }
            }
        }
    

    不知道是不是写错了,有经验的大佬帮忙看下,谢谢了

    14 replies  •  2019-12-28 12:55:26 +08:00
    stephonhu
    stephonhu
    Dec 27, 2019❤️1
    1
    可以在 src 下和 main 同级创建对应 productFlavors 名字的文件夹,里面目录和 main 一样,然后把启动页放到对应 productFlavors 的 drawable 下就好了呀
    yaming116
    yaming116
    Dec 27, 2019 via iPhone
    2
    做一个脚本替换资源打包好了呀,简单的就是一个客户一个文件夹,客户再多就自己写一个 web 界面管理
    diy886
    diy886
    OP
    Dec 27, 2019
    3
    @stephonhu 然后用 exclude 排除其他文件夹吗?
    iseejun
    iseejun
    Dec 27, 2019
    4
    脚本跑起来呀,第三方打包都是替换公共资源
    目前我这边就是这样做
    diy886
    diy886
    OP
    Dec 27, 2019
    5
    @iseejun 老哥怎么搞,有没有教程文章啥的,没弄过啊
    0DBBFF
    0DBBFF
    Dec 27, 2019
    6
    https:
    //developer.android.com/
    studio/
    build
    /optimize-your-build#reduce_resources

    上面去掉换行的连接
    mrleft
    mrleft
    Dec 27, 2019
    7
    一楼说得对 gradle flavour 本身就能实现
    Tomey
    Tomey
    Dec 27, 2019
    8
    一楼的做法是可以实现的
    sunrain
    sunrain
    Dec 27, 2019
    9
    百度 tools:discard
    royliu
    royliu
    Dec 27, 2019
    10
    我们项目也有这个需求,就是通过一楼说的在对应 productFlavors 中建同名目录和资源就行。
    PhxNirvana
    PhxNirvana
    Dec 27, 2019
    11
    自动化打包
    Minson
    Minson
    Dec 27, 2019
    12
    一楼正解
    allenframe
    allenframe
    Dec 27, 2019
    13
    3、4 年前就有的 Android 打包方案,属于基础;还不涉及到复杂的需求,都不需要用到脚本
    diy886
    diy886
    OP
    Dec 28, 2019 via Android
    14
    @stephonhu 老哥你这方法正是我想要的,谢谢了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4976 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 09:11 · PVG 17:11 · LAX 01:11 · JFK 04:11
    ♥ Do have faith in what you're doing.