一、Room简介ROOM:轻量级ORM数据库,本质上是一个SQLite。ORM(ObjectRelationalMapping):对象关系映射该模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。Android采用Sqlite作为数据库存储。Sqlite代码写起来繁琐且容易出错,所以开源社区里逐渐出现了各种ORM(ObjectRelationalMapping)库。这些开源ORM库都是为了方便Sqlite的使用,包括数据库的创建,升级,增删改查等。常见的ORM有ORMLite,Gr
一、StartUp简介应用程序启动库提供了一种在应用程序启动时初始化组件的简单、高效的方法。库开发人员和应用程序开发人员都可以使用StartUp来简化启动序列并显式设置初始化顺序。StartUp允许您定义共享单个内容提供程序的组件初始化程序,而不是为每个需要初始化的组件定义单独的contentprovider。这可以显著缩短应用程序启动时间。简单的说就是通过一个公共的contentprovider来集中管理需要初始化的组件,从而提高应用的启动速度。二、StartUp使用1、在build.gradle中添加所需依赖dependencies{implementation"androidx.star
一、StartUp简介应用程序启动库提供了一种在应用程序启动时初始化组件的简单、高效的方法。库开发人员和应用程序开发人员都可以使用StartUp来简化启动序列并显式设置初始化顺序。StartUp允许您定义共享单个内容提供程序的组件初始化程序,而不是为每个需要初始化的组件定义单独的contentprovider。这可以显著缩短应用程序启动时间。简单的说就是通过一个公共的contentprovider来集中管理需要初始化的组件,从而提高应用的启动速度。二、StartUp使用1、在build.gradle中添加所需依赖dependencies{implementation"androidx.star
前言项目地址:https://github.com/Peakmain/ComposeProject上篇文章我们讲到TopAppBar的封装,主要是封装一个标题居中的TopAppBar,包括支持沉浸式状态栏。今天我们来实现一个Banner的封装Banner框架介绍和使用项目源码地址:Banner.kt源码效果我们首先看下我们今天要做的效果轮播图效果图.gif框架使用详细使用文档:https://github.com/Peakmain/ComposeProject/wikiBanner(data=viewModel.bannerData,//设置数据onImagePath={//设置图片的url地
前言项目地址:https://github.com/Peakmain/ComposeProject上篇文章我们讲到TopAppBar的封装,主要是封装一个标题居中的TopAppBar,包括支持沉浸式状态栏。今天我们来实现一个Banner的封装Banner框架介绍和使用项目源码地址:Banner.kt源码效果我们首先看下我们今天要做的效果轮播图效果图.gif框架使用详细使用文档:https://github.com/Peakmain/ComposeProject/wikiBanner(data=viewModel.bannerData,//设置数据onImagePath={//设置图片的url地
Lifecycle用来存储有关组件(如Activity或Fragment)的生命周期状态,并允许其他对象观察此状态。一、使用1、基本使用Lifecycle使用很简单,Fragment和AppCompatActivity已经实现了LifecycleOwner接口,因此只需要以下两步:自定义类,实现DefaultLifecycleObserver接口在Fragment/AppCompatActivity中调用getLifecycle().addObserver()publicclassMyObserverimplementsDefaultLifecycleObserver{@Overridepub
Lifecycle用来存储有关组件(如Activity或Fragment)的生命周期状态,并允许其他对象观察此状态。一、使用1、基本使用Lifecycle使用很简单,Fragment和AppCompatActivity已经实现了LifecycleOwner接口,因此只需要以下两步:自定义类,实现DefaultLifecycleObserver接口在Fragment/AppCompatActivity中调用getLifecycle().addObserver()publicclassMyObserverimplementsDefaultLifecycleObserver{@Overridepub
概述Lifecycle是用来管理感知生命周期的Jetpack基础组件,主要是为了方便需要依赖生命周期来搭建的业务逻辑。其本质原理是观察者模式,即把生命周期组件作为被观察的对象,通过注册观察者,构建状态或者事件变化通知,从而达到感知生命周期的。生命周期感知型组件可执行操作来响应另一个组件(如Activity和Fragment)的生命周期状态的变化。这些组件有助于您编写出更有条理且往往更精简的代码,此类代码更易于维护。Lifecycle主要构成三个重要角色通过Lifecycle-common的源码,归结Lifecycle的三个重要角色LifeCycleOwner生命周期拥有者,即Activity与
概述Lifecycle是用来管理感知生命周期的Jetpack基础组件,主要是为了方便需要依赖生命周期来搭建的业务逻辑。其本质原理是观察者模式,即把生命周期组件作为被观察的对象,通过注册观察者,构建状态或者事件变化通知,从而达到感知生命周期的。生命周期感知型组件可执行操作来响应另一个组件(如Activity和Fragment)的生命周期状态的变化。这些组件有助于您编写出更有条理且往往更精简的代码,此类代码更易于维护。Lifecycle主要构成三个重要角色通过Lifecycle-common的源码,归结Lifecycle的三个重要角色LifeCycleOwner生命周期拥有者,即Activity与
LiveData:生命周期感知和数据观察能力感知生命周期Jetpack引入看Lifecycle方便其他组件感知生命周期,只需实现LifecycleEventObserver接口并注册生命周期对象,LiveData内部封装了一个LifecycleBoundObserver对象classLifecycleBoundObserverextendsObserverWrapperimplementsLifecycleEventObserver实现LifecycleEventObserver接口,赋予生命周期感知能力2.继承ObserverWrapper对象,数据观察着封装类,赋予数据观察能力当调用obs