Android 多渠道打包进阶版

 更新时间:2021年09月01日 11:44:37   作者:SongSenior  
上篇文章更了Android 多渠道打包,这篇文章将做一个后续继续更Android 多渠道打包进阶版,上次意未尽的朋友可以继续啦,第一次点进来的朋友也可以看上次文章

上一篇文章链接//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 多渠道打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android日期选择器对话框DatePickerDialog使用详解

    Android日期选择器对话框DatePickerDialog使用详解

    这篇文章主要为大家详细介绍了Android日期选择器对话框DatePickerDialog的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Android 源码浅析RecyclerView ItemAnimator

    Android 源码浅析RecyclerView ItemAnimator

    这篇文章主要为大家介绍了Android 源码浅析RecyclerView ItemAnimator,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android开发多手指触控事件处理

    Android开发多手指触控事件处理

    这篇文章主要为大家介绍了Android开发多手指触控事件处理教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Android实现带有记住密码功能的登陆界面

    Android实现带有记住密码功能的登陆界面

    这篇文章主要为大家详细介绍了Android实现带有记住密码功能的登陆界面,主要采用SharedPreferences来保存用户数据,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android Eclipse 注释模板的使用(图文说明)

    Android Eclipse 注释模板的使用(图文说明)

    为提高代码的可读性以及后期的可维护性,为我们的代码加上规范化的注释是很有必要,不仅有利于提高自己的专业素养,也能方便他人
    2013-12-12
  • android中sqlite的按条件查找的小例子

    android中sqlite的按条件查找的小例子

    android中内嵌轻量级数据库sqlite,涉及到的操作无外乎增删改查,今天就来说一说其中的查找操作,更多的时候我们用到的查找是要按条件查找的 例如表的结构如下:
    2013-06-06
  • 快速掌握Android屏幕的知识点

    快速掌握Android屏幕的知识点

    相信不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,所以在此我将此部分知识重新梳理出来分享给大家!有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2016-11-11
  • Android ListView分页功能实现方法

    Android ListView分页功能实现方法

    这篇文章主要为大家详细介绍了Android ListView分页功能的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android实现监听电话呼叫状态的方法

    Android实现监听电话呼叫状态的方法

    这篇文章主要介绍了Android实现监听电话呼叫状态的方法,涉及Android权限控制及电话状态监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • kotlin 协程上下文异常处理详解

    kotlin 协程上下文异常处理详解

    这篇文章主要为大家介绍了kotlin 协程上下文异常处理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论