目录
  • Android 多渠道打包进阶版
    • 1、资源文件配置
    • 2、依赖配置
    • 3、签名配置

上一篇文章链接//www.jb51.net/article/221446.htm

Android 多渠道打包进阶版

文章开始前,先看一下下面这种情况:

android {    productFlavors {        //100 个多渠道配置    }//多渠道签名的配置  signingConfigs {     xiaomi {        storeFile file("../xiaomi.keystore")        storePassword 'xiaomi'        keyAlias 'xiaomi'        keyPassword 'xiaomi'        v1SigningEnabled true        v2SigningEnabled true     }     huawei {        storeFile file("../huawei.keystore")        storePassword 'huawei'        keyAlias 'huawei'        keyPassword 'huawei'        v1SigningEnabled true        v2SigningEnabled true     }  }  buildTypes {       debug {//        debug这里设置不起作用,可能是编译器的问题?//         productFlavors.xiaomi.signingConfig signingConfigs.test//         productFlavors.huawei.signingConfig signingConfigs.test       }       release {           productFlavors.xiaomi.signingConfig signingConfigs.xiaomi           productFlavors.huawei.signingConfig signingConfigs.huawei           //....100 个签名配置       }  }//不同渠道不同资源文件配置  sourceSets{      xiaomi.res.srcDirs 'src/main/res-xiaomi'      huawei.res.srcDirs 'src/main/res-huawei'      xxx.res.srcDirs 'src/main/res-xxx'      xxx.res.srcDirs 'src/main/res-xxx'      xxx.res.srcDirs 'src/main/res-xxx'      //....100 个资源文件配置  }//不同渠道不同的依赖文件  dependencies {      xiaomiApi('xxxxxxx')      huaweiImplementation('xxxxxxxx')      xxxApi('xxxxxxx')      xxxApi('xxxxxxx')      xxxApi('xxxxxxx')      //....100 个渠道不同依赖配置  }    }

不难发现,当渠道比较多的时候,不同渠道不同的配置就会很繁琐,有没有更方便的方法呢?答案是肯定的。

1、资源文件配置

sourceSets{    def sets = getSourceSets()//获取资源设置集合    productFlavors.all{//遍历多渠道        if('huawei'.equals(name))//针对特殊的渠道做特殊处理          sets.getByName(name).res.srcDir 'src/main/res-xxx'        else          sets.getByName(name).res.srcDir 'src/main/res-'+name        //相当于 xiaomi.res.srcDir 'src/main/res-xiaomi'        //      huawei.res.srcDir 'src/main/res-huawei'        //      .....    }}

2、依赖配置

def dependenMap =[xiaomi: 'xiaomi依赖',                  huawei: 'huawei依赖',                  ...                  xxx: 'xxx 依赖']dependencies{    productFlavors.all{        if('huawei'.equals(name))//针对特殊的渠道做特殊处理           dependencies.add(name+"Implementation",project(dependenMap[name]))        else           dependencies.add(name+"Api",project(dependenMap[name]))                //xiaomiApi('xiaomi依赖')        //huaweiImplementation('xiaomi依赖')        //xxxxApi('xxx依赖')    }}

3、签名配置

signingConfigs {    xiaomi{        storeFile file("../xiaomi.keystore")        storePassword 'xiaomi'        keyAlias 'xiaomi'        keyPassword 'xiaomi'        v1SigningEnabled true        v2SigningEnabled true    }    huawei{        storeFile file("../xiaomi.keystore")        storePassword 'xiaomi'        keyAlias 'xiaomi'        keyPassword 'xiaomi'        v1SigningEnabled true        v2SigningEnabled true    }    ....更多签名配置}buildTypes {    debug {            }    release {         productFlavors.all {             if('huawei'.equals(name))//针对特殊的渠道做特殊处理               productFlavors[name].signingConfig signingConfigs.xxx                    else               productFlavors[name].signingConfig signingConfigs[name]                }    }}

到此这篇关于Android 多渠道打包进阶版的文章就介绍到这了,更多相关Android 多渠道打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

更多相关文章

  1. Android应用最上层悬浮窗实现不依赖于Activity的弹框
  2. Android单元测试 - 如何开始?
  3. Android(安卓)Studio 导入别人的项目
  4. APP开发实战114-Android(安卓)Studio打包介绍
  5. roboguice - Android上的依赖注入框架
  6. Android(安卓)Studio中的六种依赖
  7. Android(安卓)进行单元测试难在哪-终
  8. 加速 Android(安卓)依赖下载
  9. Android(安卓)Apache Commons工具库依赖列表

随机推荐

  1. Android获取mac地址方法,6.0以上也可用
  2. Looper类浅析
  3. android上拔出sd卡导致flash上媒体也消失
  4. Android蓝牙编程经验总结——同时传输数
  5. Android Monkey Test
  6. [置顶] android 开发问题集(一):SDK更新后
  7. android 数据话持久化——SQLite
  8. Android Bluetooth 相关说明
  9. Eclipse ADT 创建Android项目----工程目
  10. Android(安卓)SDK 2.3与Eclipse最新版开