持久库Room

Room在SQLite上提供了一个抽象层,以便在利用SQLite的全部功能的同时使流畅的数据库访问。

需要处理一些重要的结构化数据的App通常会从本地的持久数据中受益匪浅。最常见的就是使用本地缓存,这样的话下次如果设备无法联网用户也能浏览本地数据并进行更改。等下次联网后再和服务器进行同步。

Android的Framework为了支持处理原始SQL而提供了SQLite这一强大的API,当时SQLite的API还是相对比较低级,在使用的时候需要花费大量的经历:

没有对原始SQL语句的编译时验证,随着数据库表格的更改,你需要更新相关SQL操作,而这个过程可能耗时且容易出错。

你需要使用大量的样板代码在SQL查询和Java数据对象之间进行转换。

Room在为SQL提供抽象层的同时也会考虑到上述的问题。

下面是Room中三个主要组件:

Database:此组件用于创建数据库的持有者,同时在类层级上使用注解来定义一系列的Entity,这些Entity对应着数据库中的表格。Database类中的方法则用来获取对应的DAO列表。Database是App层与底层SQLite之间的连接点。

在应用中要使用此组件的话需要继承RoomDatabase。然后通过Room.databaseBuilder()或者Room.inMemoryDatabaseBuilder().获得该类的实例。(讲到这里其实读者可以发现,这不就是GreenDao吗?

android官方架构room,Android 官方架构组件介绍之 Room(翻译)相关推荐

  1. Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架构

    BaseDemo 介绍 BaseDemo 是Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架 ...

  2. android核心架构Framework组件介绍

    作为一个android开发者,核心架构是必须要了解的.只有了解每个核心层的作用,才能更深入的理解和学习.本篇主要讲解Java Framework层核心代码流程. 文章目录 一,Android系统架构 ...

  3. Android知识点复习(一)-Android系统架构

    架构图如下: 从上到下依次分为四层: Android应用框架层(Applications) Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地 ...

  4. Android程序员现状:没有架构师的命,却得了架构师的病!

    Android开发的现状貌似已经是一个老生常谈的问题了.但今天不想写Android开发的现状,什么Android前景如何.Android凉凉之类被别人写烂了的话题. 今天我们来聊聊我们自己,我们And ...

  5. Android框架式编程之MVP架构

    MVP是Google官方发布的Android开发相关的架构知识.本文要讲解的是一种最基本的MVP的实现方式,它使用手动的依赖注入来提供具有本地和远程数据源的存储库.异步任务处理回调. 基本的MVP示例 ...

  6. 【Android】【Android相关网址】Android官方网站索引

    Android官方网站索引 摘要 为了获取最新最权威的Android相关知识,包括源码.开发者指导.技术指南.技术革新.架构变动等,现在整理出Android官方网站的索引列表. 文章目录 Androi ...

  7. Android Automotive (二)系统架构

    Android Automotive (二)系统架构 前面简单介绍了一下Android Automotive 的架构,具体Android Automotive 在系统的每个层,都做了哪些东西,这里总结 ...

  8. Android开发精要1--Android系统架构

    1.1 Android系统架构概况 下图是Android系统架构图,从图中可以看出,划分为三个部分: 1>应用部分 :包含在Android设备上运行的所有应用,它们是Android系统中直接面向 ...

  9. Android 开发有什么好的架构么?

    做了几年Android开发,也算是个半吊子的开发者了.但是从大公司到小公司,要么程序的结构乱七八糟,别说耦合什么的了,根本找不到功能的代码:要么就是有个看似牛逼的架构师(往往是j2me或者j2ee转过 ...

  10. Android开发之快捷键Google官方版本包含Mac版本

    Android studio官方快捷键区分Windows和Mac版本 表1. Windows/Linux 和 Mac 操作系统的默认键盘快捷键. 说明 Windows/Linux Mac 常规 全部保 ...

最新文章

  1. asp连接mysql odbc,在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
  2. 目标检测(Google object_detection) API 上训练自己的数据集
  3. 线性时间排序--桶排
  4. Git初学使用命令记录
  5. scikit-learn决策树算法类库使用小结及可视化方法
  6. SQL Server索引进阶第十篇:索引的内部结构
  7. protobuf生成java类
  8. Tensorflow模型变量保存
  9. mysql图书管理系统er图,图书管理系统er图.doc
  10. 01-2制作U盘启动盘--装机助理工具
  11. 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码
  12. oracle 更新数据语句,数据更新语句update
  13. 副产品举例_CMA知识点:联产品和副产品成本计算法
  14. php7垃圾回收机制l_从几个简单的程序看PHP的垃圾回收机制
  15. mysql binlog events_使用SHOW binlog events查看binlog内容
  16. ios开发开发之:关于时间戳转化成时间
  17. 一、MySQL数据库设置默认时区
  18. 实习生风采 · 贰 | 张倬胜同学:攻关「孟子」轻量化预训练模型
  19. 配置apache以fastcgi运行php
  20. aseprite手机版_texture packs泰拉瑞亚

热门文章

  1. 【Intellij IDEA系列】IDEA使用git提交代码流程
  2. 算法--360面试:使用递归实现:a0=1,a1=1;a2=a0+a1;a3=a1+a2...以此类推,求a30
  3. Adapter适配器和base-adapter-helper库的使用
  4. IOS XCode11开发嵌入网页
  5. MyBatis Generator:代码生成器
  6. C语言 跨函数使用内存.
  7. Oracle 存储结构_表空间简介
  8. nginx启动不了_nginx 变量与监控
  9. java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...
  10. 极限中0除以常数_高中物理必知的50个关键常数