android官方架构room,Android 官方架构组件介绍之 Room(翻译)
持久库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(翻译)相关推荐
- Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架构
BaseDemo 介绍 BaseDemo 是Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架 ...
- android核心架构Framework组件介绍
作为一个android开发者,核心架构是必须要了解的.只有了解每个核心层的作用,才能更深入的理解和学习.本篇主要讲解Java Framework层核心代码流程. 文章目录 一,Android系统架构 ...
- Android知识点复习(一)-Android系统架构
架构图如下: 从上到下依次分为四层: Android应用框架层(Applications) Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地 ...
- Android程序员现状:没有架构师的命,却得了架构师的病!
Android开发的现状貌似已经是一个老生常谈的问题了.但今天不想写Android开发的现状,什么Android前景如何.Android凉凉之类被别人写烂了的话题. 今天我们来聊聊我们自己,我们And ...
- Android框架式编程之MVP架构
MVP是Google官方发布的Android开发相关的架构知识.本文要讲解的是一种最基本的MVP的实现方式,它使用手动的依赖注入来提供具有本地和远程数据源的存储库.异步任务处理回调. 基本的MVP示例 ...
- 【Android】【Android相关网址】Android官方网站索引
Android官方网站索引 摘要 为了获取最新最权威的Android相关知识,包括源码.开发者指导.技术指南.技术革新.架构变动等,现在整理出Android官方网站的索引列表. 文章目录 Androi ...
- Android Automotive (二)系统架构
Android Automotive (二)系统架构 前面简单介绍了一下Android Automotive 的架构,具体Android Automotive 在系统的每个层,都做了哪些东西,这里总结 ...
- Android开发精要1--Android系统架构
1.1 Android系统架构概况 下图是Android系统架构图,从图中可以看出,划分为三个部分: 1>应用部分 :包含在Android设备上运行的所有应用,它们是Android系统中直接面向 ...
- Android 开发有什么好的架构么?
做了几年Android开发,也算是个半吊子的开发者了.但是从大公司到小公司,要么程序的结构乱七八糟,别说耦合什么的了,根本找不到功能的代码:要么就是有个看似牛逼的架构师(往往是j2me或者j2ee转过 ...
- Android开发之快捷键Google官方版本包含Mac版本
Android studio官方快捷键区分Windows和Mac版本 表1. Windows/Linux 和 Mac 操作系统的默认键盘快捷键. 说明 Windows/Linux Mac 常规 全部保 ...
最新文章
- asp连接mysql odbc,在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
- 目标检测(Google object_detection) API 上训练自己的数据集
- 线性时间排序--桶排
- Git初学使用命令记录
- scikit-learn决策树算法类库使用小结及可视化方法
- SQL Server索引进阶第十篇:索引的内部结构
- protobuf生成java类
- Tensorflow模型变量保存
- mysql图书管理系统er图,图书管理系统er图.doc
- 01-2制作U盘启动盘--装机助理工具
- 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码
- oracle 更新数据语句,数据更新语句update
- 副产品举例_CMA知识点:联产品和副产品成本计算法
- php7垃圾回收机制l_从几个简单的程序看PHP的垃圾回收机制
- mysql binlog events_使用SHOW binlog events查看binlog内容
- ios开发开发之:关于时间戳转化成时间
- 一、MySQL数据库设置默认时区
- 实习生风采 · 贰 | 张倬胜同学:攻关「孟子」轻量化预训练模型
- 配置apache以fastcgi运行php
- aseprite手机版_texture packs泰拉瑞亚
热门文章
- 【Intellij IDEA系列】IDEA使用git提交代码流程
- 算法--360面试:使用递归实现:a0=1,a1=1;a2=a0+a1;a3=a1+a2...以此类推,求a30
- Adapter适配器和base-adapter-helper库的使用
- IOS XCode11开发嵌入网页
- MyBatis Generator:代码生成器
- C语言 跨函数使用内存.
- Oracle 存储结构_表空间简介
- nginx启动不了_nginx 变量与监控
- java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...
- 极限中0除以常数_高中物理必知的50个关键常数