zoukankan      html  css  js  c++  java
  • TRA-20201101

    Tip

    好消息,好消息
    Android module 在 编译期 有办法使用不同的代码啦
    说人话就是 : A 是一个 module , B 和 C 使用了 A 。 B 和 C 可以分别设置使用 A 里的不同的代码。这不是使用代码里的判断来进行的,而是使用 gradle 设置项目依赖完成的

    用处

    • 在有多个项目依赖于同一个 module 的时候,可以指定使用不同的内容来进行编译(即选择不同的文件进行打包)
      • 不同的配置使用不同的源码,源文件
      • 不同的配置使用不同的资源文件

    步骤如下(假设 module 名称为 A , 依赖 module 的两个 module 是 B 和 C ) :

    1. A module 的 build.gradle 中增加编译类型的声明。
    android {
        // 声明一个类型叫做  type
        publishNonDefault true
        flavorDimensions "type"
        // type 又两个取值,一个叫做 type1 , 一个叫做 type2
        productFlavors {
            type1 {
                dimension "type"
            }
    
            type2 {
                dimension "type"
            }
        }
    }
    
    1. 设置不同的 type 所使用的文件
    • 不同的源码
      • src/main/java 里新建目录 src/type1/java/ , 并在目录下新建对应的 package ,这样在编译 type1 的时候会使用 该目录下的文件。 type2 的同理。
    • 不同的资源(我还未测试)
      • 同上,目录为 src/type1/res
    1. B module 如果要使用 A 的 type1 。在 build.gradle 中加入
    android {
        // 这表示对于 B module 依赖的库,默认使用其  type1  flavor ,如果没有的话, 就使用 type2 .
        // 但是注意,这会应用到所有的依赖库上。
        // 那为什么不单独对于某个以来进行配置呢? 因为 我不会啊。
            missingDimensionStrategy 'type', 'type1', 'type2'
    }
    

    Rev

    看了一些 webRTC 的知识,包括

    • webRTC 的功能
      • 音视频捕获输出编解码
      • 信道沟通

    webRTC数据通道介绍
    基于 web 的 webRTC 官方demo
    知乎上的一篇 webRTC 简介

    Alg

    49. 字母异位词分组

    算法简单的让人惊叹,当然了都是依赖 kotlin 强大的运算符的支持滴。。。

            val m = strs.groupBy {
                 // 按照下面的规则对 strs 里的元素进行分组,分成一个 map.
                val r = it.toList().sorted().joinToString("")
                r
            }
            return m.values.toList()
    
  • 相关阅读:
    iOS万能跳转界面的方法
    CocoaPods版本更新
    iOS--开发小技巧(持续更新)
    RunTime--手势应用场景(很方便)
    牛逼的标签效果(封装好)
    直播点赞动画
    UI基础--自定义UISwitch
    StatusBar 更改状态栏颜色(ios7)
    ios版本更新提示
    IOS 两个UIImage 合成一个Image
  • 原文地址:https://www.cnblogs.com/wkmcyz/p/13909155.html
Copyright © 2011-2022 走看看