安卓电话面试,Android-Jetpack-,21年Android面经分享

Jetfier 会在编译阶段直接修改依赖产物的字节码,简单粗暴。

架构大图

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 等),样板代码少不了,可维护性也变差。

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值