JetPack

最近闲来无事,写个blog吧,写什么呢,想了想还是写使用了有很长一段时间的JetPack吧,我个人还是很喜欢这套框架的,编码量少,减少样板代码,数据变化动态更新ui,管理生命周期,减少内存溢出,巴拉巴拉等等,哈哈

Jetpack是一系列库、工具、架构组成的,帮助开发人员快速方便的构建Anroid App。

Jetpack的全家福

è¿éåå¾çæè¿°

Architecture:

设计稳健,可测试,易维护

 

UI:

界面组件,让您的应用使用起来不仅轻松而且愉快

 

Foundation:

基础组建可供横向功能,向后兼容,支持kotlin语言

 

Behavior:

行为组建可帮助您的应用与标准组件相结合

 

对于没有使用过Jetpack开发的同学看着Architecture可能比较陌生,其他应该还是眼熟的

下面主要介绍一下Architecture里每个组件的作用

1.Databinding这个组件是将UI与源数据绑定起来,可以减少大量的定义view findViewById 以及各种setXX

2.Lifecycles观测Activity和Fragment的生命周期变化的,主要采用了观察者模式和注解的方式来实现的,内部定义了一个无UI的ReportFragment来观测生命周期然后,然后发射Event,获取当前的生命周期状态通过State枚举类,对这个组件感兴趣的同学可以去读一下源码,里边的几个核心类是Lifecycle LifecycleOwner LifecycleRegister等

3.LiveData当数据更改的时候可以动态的通知试图,LiveData是生命周期感知的,当处于处于后台运行,或者压入栈中的时候即使数据更改了,也不会通知视图的,在主线程中跟新数据的使用setValue,在子线程中更新数据的时候使用postValue,当生命周期从不可见到可见的时候,可以收到最新数据

4.Room是基于Sqlite封装的数据库,相对于sqite更容易上手,不用写各种sql语句,通过注解的方式创建表、操作数据库等,易于歉意,易于测试,支持RxJava,可配置

5.ViewModel

关注生命周期的方式管理界面的相关数据,防止内存泄漏,ViewModel里是处理数据相关的内容,里边不要有Activity或者Fragment相关的Context,如果需要用到context可以挤成AndroidViewModel,ViewModel可以多个framgent共享同一个ViewModel来实现数据共享

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值