• Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.5——在flavors间合并java代码


    问题:

    你想要在单独的product flavors里面增加Acitivity或者其它java类。

    解决方案:

    创建合适的代码目录,增加java类,将它们和main代码合并。

    讨论:

    flavors和build types里面的string和layout会覆盖主目录下的相关值,java类不一样。如果main目录下面的代码涉及到一个指定的类,只要main目录里面没有,每个flavor和build type里面都可以对这个类的实现。

    听起来比实际还要复杂。3.2和3.4节讨论的app有两个代表不同客户的flavors。考虑现在app的一个版本需要在main activity里面增加一个按钮用于呼叫帮助。这个额外的按钮有个“Call for Help”的label。

    friendly,wayne的主activity如下:

    stark页面相似,只是有一个不同的header:

    点击“Call for help”按钮创建一个Intent,启动CallForHelpActivity。这个activity和它相关的layout,从main目录下面移除,复制到stark和wayne文件夹下。完整的项目结构如下:

    箭头指出,wayne flavor下面的java代码在classpath里面,但是stark下面的不在。两个flavors都包含CallForHelpActivity,但是两个都实现完全不同。

    wayne flavor的帮助页面只有一个简单的包含一个TextView的fragment:

    stark flavor的帮助页面由有多个入口的ListFragment组成:

    任何main目录下元素相关的类,必须在每个flavor下存在。每个实现可以完全独立。

  • 相关阅读:
    事务 ~ 锁
    JDBC
    C# ~ 由 IDisposable 到 GC
    C# ~ 泛型委托
    函数式编程
    反射
    测试初识
    C# ~ 从 委托事件 到 观察者模式
    C# ~ 从 IEnumerable / IEnumerator 到 IEnumerable<T> / IEnumerator<T> 到 yield
    Java初识
  • 原文地址:https://www.cnblogs.com/tootwo2/p/6407964.html
Copyright © 2020-2023  润新知