# DemoRoomDatabase **Repository Path**: cjz010/DemoRoomDatabase ## Basic Information - **Project Name**: DemoRoomDatabase - **Description**: Android Room - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-08-31 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android Room 本项目是对 Android 架构组件以及他们如何协同工作的介绍。但,此项目侧重于介绍Android架构组件的子集:LiveData, ViewModel 和 Room。下图显示这些组件组成体系结构的基本形式: ![image](architecture.png) * Entity:使用Android架构组件时,这是一个带注释的类,用于描述数据库表。 * SQLite database:在设备上,数据存储在SQLite数据库中。为简单起见,省略了其他存储选项,例如Web服务器。Room持久性库为您创建和维护此数据库。 * DAO:数据访问对象。 SQL查询到函数的映射。您曾经必须在SQLiteOpenHelper类中精心定义这些内容。当您使用DAO时,您可以调用方法,而Room负责其余的操作。 Room database:SQLite数据库之上的数据库层,负责处理您过去使用SQLiteOpenHelper处理的普通任务。数据库持有者,用作底层SQLite数据库的访问点。 Room数据库使用DAO向SQLite数据库发出查询。 * Repository:你自己创建的类。用来管理多个数据源。 * ViewModel:为UI提供数据。充当存储库和UI之间的通信中心。隐藏数据源自UI的位置。 ViewModel实例在配置更改后仍然存在。 * LiveData:可以观察到的数据持有者类。始终保存/缓存最新版本的数据。数据发生变化时通知其观察者。 LiveData可识别生命周期。 UI组件只是观察相关数据,不会停止或恢复观察。 LiveData自动管理所有这些,因为它在观察时意识到相关的生命周期状态变化。 # 本项目架构 ![image](demo.png)