zoukankan      html  css  js  c++  java
  • Android Jetpack 组建介绍(一)——Lifecycler

    转自带你领略Android Jetpack组件的魅力

    Android Jetpack

    对于任何一个产品来说,我们开发中都会面对哪些问题?如:产品交互、用户体验、代码结构、数据获取、数据存储、网络优化、任务调度等等,虽然在现在的阶段这些问题已经有了很好的解决和优化,也有很多大神的开源组件方便开发者去使用,Android Jetpack就是Google给出的一个官方的处理方法(当然知识处理其中基本问题),Android Jetpack组件的优势:

    • 轻松管理应用程序的生命周期
    • 构建可观察的数据对象,以便在基础数据库更改时通知视图
    • 存储在应用程序轮换中未销毁的UI相关数据,在界面重建后恢复数据
    • 轻松的实现SQLite数据库
    • 系统自动调度后台任务的执行,优化使用性能

    Android Jetpack组件推荐的使用项目架构

    image

    上面架构组件的功能如下:

    • Activity和Fragment负责产品与用户的交互
    • ViewModel作为数据的存储和驱动
    • Resposity负责调度数据的获取
    • Room储存本地序列化的数据
    • Retrofit获取远程数据的数据

    按照谷歌推荐的项目架构配合Android Jatpack组件的使用,将会有不一样的开发体验,下面分析每个组件如何帮我们处理这些问题的。

    Android Jetpack组件介绍

    应用程序的开发和产品与用户的交互都是从UI开始的,用户可见的和开发者操作的结果都显示在界面上,所以界面的操作在卡法中占据很重要的地位,也是影响我们开发和使用体验的重要部分,常见的问题如:UI的声明周期处理、数据的显示和刷新、注册监听的释放等, Jetpack架构组件就可以帮我们规范化的解决他们。

    Lifecycler

    Lifecycler是一个生命周期感知组件,执行操作以响应另一个组件(例如活动和片段)的生命周期状态的更改,简单来说它可以监听活动组件声明周期的变化,在每个声明周期执行相应的方法,不同于以往想在生命周期中执行相应的方法需要设置接口,然后在声明周期中回调接口,这样会造成代码的耦合,也会引发声明周期的问题;

    Lifecycler的优点

    • Lifecycler实现了执行的逻辑和活动的分离,代码解耦并且增加了代码的额可读性
    • Lifecycler在活动结束时自定移除监听,避免了声明周期的问题

    Lifecycler的实现主要使用两个主要枚举来跟踪其关联组件的生命周期状态

    • Event:从框架和Lifecycle类派发的生命周期事件。 这些事件映射到活动和片段中的回调事件。
    • State:由Lifecycle对象跟踪的组件的当前状态。

    image

    Lifecycler的原理

    Lifecycler为每个活动组件添加了一个没有界面的Fragment,利用Fragment周期会根据活动声明周期变化的特性实现的特性,从而实现声明周期的感知,然后根据注解的Event查找执行相应的方法

  • 相关阅读:
    redis 配置文件说明
    Python 详解命令行解析
    Python 的字符编码
    pt-online-schema-change utf8mb4 错误解决方法【转】
    [MySQL 5.6] Innodb新特性之export/import 表文件
    查找数据库大小和表大小
    MySQL 增删列
    使用MySQL Shell创建MGR
    Qingcloud_MySQL Plus(Xenon) 高可用搭建实验
    MySQL事务提交流程
  • 原文地址:https://www.cnblogs.com/xl-phoenix/p/9907236.html
Copyright © 2011-2022 走看看