四时宝库

程序员的知识宝库

android 多渠道打包及assets文件下资源删除

背景

最近遇到一个需求,主体代码不变,需要的是根据applicationId:"com.xxx.android.packpage"来选择不同的资源来打不同的包(马甲包).思路其实很简单,所有的资源名都必须一样,然后在build.gradlet里添加productFlavors{}。

build.gradlet 添加productFlavors

其中buildConfigField可以设置全局变量,通过编译后可在在Activity 上调用BuildConfig.xx即可读取。

    productFlavors {
        test {
            applicationId "com.xx.test"
            versionCode 1
            versionName "1.0.0"
            buildConfigField("String", "xx", "\"xx\"")

        }
    }

配置资源

1.在项目app->src->新建test资源目录

如图:


2.编译通过后


打包移除assets文件下资源

1.移除所有

android.applicationVariants.all { variant ->
       if (variant.buildType.name == 'release') {//release版本
           variant.mergeAssets.doLast {
               //删除assets文件夹下的所有zip文件
               //includes: ['*.zip']
               delete(fileTree(dir: variant.mergeAssets.outputDir))
           }
       }

指定文件移除 如 .zip,.class等文件

android.applicationVariants.all { variant ->
      if (variant.buildType.name == 'release') {//release版本
          variant.mergeAssets.doLast {
              //删除assets文件夹下的所有zip文件
              //includes: ['*.zip']
              delete(fileTree(dir: variant.mergeAssets.outputDir,includes: ['*.zip','*.class']))
          }
      }
  }

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接