Android数据库最佳实践

Android数据库最佳实践
作 者: Adam Stroud 廖祜秋
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  本书作者 Adam Stroud 于 2010 年开始从事 Android 开发。他是 Runkeeper,、Mustbin 和 Chef Nightly 等创业公司的早期员工。从零开始主导这些团队的 Android 应用开发。他热爱 Android 和开源,除了写代码外,他还写了另外一些 Android 的书籍。他喜欢成为技术社区的一份子,经常在技术社区做分享和演讲。本书写成时,Adam 开始了新的一次创业,任技术联合创始人,负责 Android 应用的开发。廖祜秋,开源爱好者,《构建 F8 App / React Native 开发指南》译者和维护者,Fresco 文档译者和维护者,Infer 文档译者和维护者。

内容简介

本书介绍了关系型数据库和 SQLite 相关的理论知识,同时也介绍了在 Android 开发中和数据相关的方方面面,包括数据类型的定义、数据的增删改查、数据的持久化和展示、使用 content provider 共享数据、使用 Intent API 传递数据,以及和远程服务器进行数据交互等。本书的内容从相关 API 的基本使用到最佳实践都有涉猎,对于提升 Android 开发水平,写出更高质量的应用很有帮助。阅读本书,并不需要对 Android 开发有很多的经验,但是要求读者有一些 Android 开发基础,理解Android 的基础组件。如果对 Android / Java 的线程模型有一些了解的话,对快速理解内容会很有帮助。

图书目录

第1章 关系型数据库\t1

数据库简史\t1

层次模型\t2

网状模型\t2

关系模型简介\t3

关系模型\t3

关系\t3

关系的属性\t5

关联\t6

参照完整性\t7

关系语言\t8

关系代数\t9

关系演算\t12

数据库语言\t13

总结\t14

第2章 SQL介绍\t15

数据定义语言\t15

表\t16

索引\t18

视图\t21

触发器\t22

数据操作语言\t26

INSERT\t26

UPDATE\t28

DELETE\t29

查询\t29

ORDER BY\t31

连接\t32

总结\t35

第3章 SQLite介绍\t36

SQLite 的特性\t36

SQLite 的特征\t36

外键支持\t37

全文索引\t37

原子事务\t38

多线程支持\t39

SQLite 的不足\t39

有限的连接支持\t39

视图只读\t40

有限的 ALTER TABLE 支持\t40

SQLite 数据类型\t40

总结\t42

第4章 Android中的SQLite\t43

移动设备上的数据持久化\t43

Android 中的数据库 API\t43

SQLiteOpenHelper\t44

SQLiteDatabase\t53

数据库升级策略\t53

重建数据库\t54

修改现有数据库\t54

复制表和删除表\t55

数据访问和主线程\t56

查看数据库中的数据\t56

使用 adb 访问数据库\t56

使用第三方工具访问数据库\t67

总结\t70

第5章 在 Android 中使用数据库\t72

操作数据\t72

行插入\t73

行更新\t76

行替换\t78

行删除\t79

事务\t80

使用事务\t80

事务与性能\t81

查询\t82

快捷查询方法\t82

原始查询方法\t83

Cursor\t84

读取 Cursor 数据\t84

管理 Cursor\t86

CursorLoader\t86

创建 CursorLoader\t87

启用 CursorLoader\t90

重启 CursorLoader\t91

总结\t91

第6章 Content Provider\t92

REST API\t92

URI\t93

暴露数据\t93

方法实现\t93

Content Resolver\t98

对其他应用程序暴露 Content Provider\t99

Provider 级权限\t99

单独读写权限\t100

URI 路径权限\t100

Content Provider 权限\t100

Content Provider 合约类\t102

允许外部程序访问\t104

实现 Content Provider\t104

继承 android.content.ContentProvider\t105

insert()\t108

delete()\t109

update()\t111

query()\t112

getType()\t117

何时该使用 Content Provider\t118

劣势\t119

优势\t120

总结\t121

第7章 数据库和UI\t122

从数据库到 UI\t122

使用 cursor loader 处理线程交互\t122

绑定 cursor 的数据到 UI\t123

cursor 作为观察者\t128

在 Activity 中使用 Content Provider\t130

Activity 的实现细节\t131

创建 cursor Loader\t132

处理返回数据\t133

处理数据变化\t139

总结\t143

第8章 使用Intent共享数据\t144

发送 Intent\t144

显式 Intent\t144

隐式 Intent\t145

启动一个目标 Activity\t145

接收隐式 Intent\t147

构造 Intent\t148

Action\t148

Extra\t149

Extras 数据类型\t150

什么不该放到 Intent 中\t153

Share 菜单\t154

总结\t156

第9章 网络通信\t157

REST 和 Web Services\t157

REST 简介\t157

REST 风格的 Web API\t158

访问 Web API\t159

使用 Android 标准 API 访问 Web Service\t159

使用 Retrofit 访问 Web Service\t168

使用 Volley 访问 Web Service\t174

数据持久化\t181

数据传输和电量消耗\t181

数据传输和用户体验\t182

本地持久化\t182

SyncAdapter\t182

AccountAuthenticator\t183

SyncAdapter\t186

手动同步远程数据\t191

RxJava 简介\t191

Retrofit + RxJava\t191

使用 RxJava 进行数据同步\t194

总结\t200

第10章 Data Binding\t201

在项目中使用 Data Binding\t201

View 的 Data Binding 布局\t202

将 Activity 和布局绑定\t203

使用 Binding 对象更新 View\t205

处理数据变化\t208

使用 Data Binding 来去除重复代码\t211

Data Binding 的表达式语言\t214

总结\t216