简单讲讲Android组件化开发

组件化开发

简单来说,就是将一个APP的业务功能进行拆分,每一个功能都是一个单独的工程,每个工程都能独立运行,且只包含自己的业务,我们姑且叫这个独立的功能为一个组件服务,最后整个APP由多个拆分出的组件集成而成

单一工程开发模式的痛点
(1)对工程的任意修改调试都要编译整个工程,效率十分低下
(2)不利于多人团队协同开发
(3)业务模块间耦合严重
(4)无法做到功能复用
组件化也有缺点:
(1)组件化开发前期可能要花费更多的时间来进行模块拆分,需要良好的架构设计
(2)组件化可能会带来更多重复的代码

开发规范

(1)在刚创建好的工程中,点击"File -> New -> New Module… -> Android Library",创建一个新的library module,接下来我们所有的组件业务代码都将在该module下面开发
(2)资源名命名规则
所有资源文件的命名都需要以业务模块名为前缀,注意不要与其他业务模块前缀名冲突。假设我们在开发"登录"相关的业务,业务模块名为"login",则相关资源文件命名例子:
login_activity_quicklogin.xml,login_btn_submit.png等
(3)为防止第三方库版本号冲突,可以考虑将这些第三方依赖下沉到底层组件库中统一管理
(4)尽量不要使用数据库来存储数据。使用SharedPreferences时,每个业务模块只管理自己模块需要的数据,SharedPreferences文件名需要通过业务前缀来区分,防止不同组件间数据发生冲突。当某些数据需要全局共享时,可以考虑下沉到底层模块

模块之间的通信

页面跳转统一采用路由
阿里的ARouter:https://github.com/alibaba/ARouter
基本用法:

ARouter.getInstance().build("/test/1")
            .withLong("key1", 666L)
            .withString("key3", "888")
            .withObject("key4", new Test("Jack", "Rose"))
            .navigation()
// 在支持路由的页面上添加注解(必选)
// 这里的路径需要注意的是至少需要有两级,/xx/xx
@Route(path = "/test/activity")
public class YourActivity extend Activity {
    ...
}

采用EventBus
git地址: https://github.com/greenrobot/EventBus

你可能感兴趣的:(简单讲讲Android组件化开发)