Android 工程模块化设计注意事项

栏目: Android · 发布时间: 5年前

内容简介:在最新的一个项目里,因为遇到了多客户端的需求,是一个类似滴滴的项目,需要分货主端和车主端,互相有些差异也有一些共用的地方。那么怎么做是最便于维护与拓展的呢,我当时想了这样几个方案:– 单 Project 单 Module,通过 gradle 进行差异化打包,而日常开发中对于能复用的页面添加 type 参数来区别。优点是简单方便。缺点是维护起来比较混乱。– 单 Project 分主 Module 与次 Module,比如以车主端为主 Module,主要代码与资源都在该 Module 里面,而货主端引用该 Mo

在最新的一个项目里,因为遇到了多客户端的需求,是一个类似滴滴的项目,需要分货主端和车主端,互相有些差异也有一些共用的地方。那么怎么做是最便于维护与拓展的呢,我当时想了这样几个方案:

– 单 Project 单 Module,通过 gradle 进行差异化打包,而日常开发中对于能复用的页面添加 type 参数来区别。优点是简单方便。缺点是维护起来比较混乱。

– 单 Project 分主 Module 与次 Module,比如以车主端为主 Module,主要代码与资源都在该 Module 里面,而货主端引用该 Module,并进行定制化开发。优点是同样比较简单方便,也较为清晰。缺点是货主端会引入很多用不上的资源。

– 单 Project 基础 Module 两个客户端 Module,把基础控件和能共用的部分都封装到基础 Module 里,两个客户端 Module 各自引用它们。优点是清晰易维护。缺点是使用多 Module 本身存在的一些问题。

– 俩 Project,写完一个客户端后复制粘贴代码。优点是成本低难度最小,缺点是改起来恶心。

就观感而言应该是单 Project,分基础 Module 和 客户端 Module 最佳。但是多个 Module 协同开发之间还是存在一些问题的,因此写下此篇文章。由于文章还没竣工,不敢妄称指南,先取名为注意事项。

跨 Module 引用 kotlin 的代码异常,提示「Unresolved reference: xxx」

问题详情:在基础 Module 里写入的一些 Kotlin 方法,在客户端 Module 引用时编译不能通过,提示「Unresolved reference: xxx」,基础 Module 设置的 Application 在运行时会提示「Unable to instantiate application xxx.BaseApplication: java.lang.ClassNotFoundException」。

问题排查:创建了 Java 文件发现一切正常,因此判断是 kotlin 的问题。猜测是因为 kotlin 的作用域与 Java 不一样,但是设置了对应作用域修饰符后依旧无用。搜索结果里有很多干扰内容,最后 ‘Unresolved reference’ errors for android library module referenced in app module 解决了问题,因为作为 Library 的基础 Module 没有正确配置 kotlin。检查是否有以下内容:

apply plugin: 'kotlin-android'

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion:<version>"
}

我是遗漏了 apply plugin: 'kotlin-android' ,但是假如客户端 Module 不调用对应方法的话是能正常运行的,而且也是通过 AS 的 new module 创建的,所以这一块应该是属于 AS 的 bug 吧。

很多这样类似的问题有人喜欢称之为坑与踩坑,我不太喜欢这种说法,我觉得主要还是因为我蠢。

//后续内容待更新

标签:Android, Module , 多客户端 , 模块化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法交易与套利交易

算法交易与套利交易

赵胜民 / 厦门大学出版社 / 2010-9 / 35.00元

《算法交易与套利交易》主要介绍算法交易和一些套利交易的策略,以便于读者对相关方面的内容进行阅读和学习。在《算法交易与套利交易》的第一部分,我们回顾了投资学一些相关的基本内容。其中,前两章介绍了证券投资的收益和风险等特征,以及马可维茨的最优资产配置模型。第3章则介绍了股票投资分析当中常用的资本资产定价模型(CAPM)、套利定价模型(APT),以及因素模型。然后,第4、5章分别讲到了金融证券估值模型、......一起来看看 《算法交易与套利交易》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具