Android-架构新组件---让天下没有难做的-App,安卓移动开发实训报告

架构大图

Jetpack 不属于 Android Framework,不是 Android 开发的必需品,它只是应用层开发的一种辅助手段,帮我们解决了一些常见问题,比如版本兼容、API 易用性、生命周期管理等。其中 Architecture 部分的组件(Android Architecture Components,以下简称 AAC)组合起来形成了一套完整的架构解决方案,在没有更好的方案被发明出来之前,我们姑且把 AAC 当做 Android 架构领域的最佳实践,它的出现一定程度上避免了很多不必要的轮子。

官方给出的架构指导非常明确地表达出了每个架构组件的位置:

这张图背后隐含了三大设计思想:

  • 关注点分离(SOC / Separation Of Concerns)
  • 数据驱动 UI(Reactive)
  • 唯一真相源(SSOC / Single Source Of Truth)

SOC 具体到工程实践中就是分层合理,单层的职责越明确,对上下游的依赖越清晰就意味着它的结构更稳定,也
更可测(testable)。一个 App 从全局来看,可以划分为三部分:首先是 UI Controller 层,包含 Activity 和 Fragment;其次是 ViewModel 层,既可以做 MVVM 的 VM、MVP 的 P,也可以做 UI 的数据适配,这一层可以实现数据驱动 UI;最后是 Repository 层,它作为 SSOC,是一个 Facade 模式,对上层屏蔽了数据的来源,可以来自 local,也是来自 remote,数据持久化策略向上透明。

一张架构蓝图,三大设计原则,接下来深入细节,看看组件之间如何配合才能实现这个架构

Lifecycle

与 React/Vue 或者 iOS 相比,Android 的生命周期都比较复杂,如果要监听生命周期,一般情况下只能覆写 Activity / Fragment 的回调方法(onCreate、onResume、onPause、onDestroy 等),样板代码少不了,可维护性也变差。

如果要对生命周期进行简化,可以抽象成一个图,点表示状态,线表示事件:

Lifecycle 负责处理这些点(states)和线(events),Activity / Fragment 是 LifecycleOwner,监听者则是 LifecycleObserver,一个非常清晰的观察者模式。

class MyObserver : LifecycleObserver {

@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun connectListener() {
}

@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun disconnectListener() {
}
}

如果我们的组件需要强绑定声明周期,那么只需要借助 Lifecycle 去监听生命周期的状态和事件即可,再也不用覆写各种回调方法了。下面将要讲到的 Li

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值