编辑推荐
Android数据库程序设计旨在帮助开发人员在Google Android平台下创建和设计以数据为中心的移动应用程序。本书以讨论Android上各种本地数据存储方法为内容的开始,并最终通过探索检查外部数据库和可以在Android应用程序中利用的方法等内容结束。
内容简介
《Android数据库程序设计》详细阐述了与Android数据库程序设计相关的基本解决方案,主要包括在Android系统中存储数据、使用SQLite数据库、SQLite查询、使用Content Providers、表查询操作、UI关联、Android数据库应用、外部数据库、数据的收集与存储以及综合示例等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
目录
第1章 在Android系统中存储数据 1
1.1 使用SharedPreferences 1
1.2 SharedPreferences的常见使用案例 3
1.2.1 检查用户是不是第一次访问应用程序 3
1.2.2 应用程序最后一次更新时进行检查 4
1.2.3 保存用户登录用户名 5
1.2.4 保存应用程序的状态 5
1.2.5 缓存用户的位置信息 6
1.3 内部存储方法 7
1.4 外部存储方法 9
1.5 SQLite数据库 13
1.6 总结 17
第2章 使用SQLite数据库 18
2.1 创建高级的SQLite模式 18
2.2 SQLite数据库封装器 21
2.3 调试SQLite数据库 31
2.4 总结 33
第3章 SQLite查询 34
3.1 创建SQLite查询的方法 34
3.2 SELECT语句 35
3.3 WHERE筛选器和SQL操作符 40
3.4 DISTINCT子句和LIMIT子句 42
3.5 ORDER BY子句和GROUP BY子句 45
3.6 HAVING筛选器和聚合函数 50
3.7 SQL及Java间的性能比较 56
3.8 总结 61
第4章 使用Content Providers 63
4.1 ContentProvider 63
4.1.1 实现查询方法 68
4.1.2 实现delete()和update()方法 71
4.1.3 实现insert()和getType()方法 75
4.1.4 与ContentProvider进行交互 78
4.2 实际应用案例 81
4.3 总结 82
第5章 表查询操作 83
5.1 Contacts content provider结构介绍 83
5.2 查询Contacts 85
5.3 修改Contacts 89
5.4 设置权限 93
5.5 总结 94
第6章 UI关联 96
6.1 SimpleCursorAdapter与ListView 96
6.2 自定义CursorAdapter 100
6.3 BaseAdapter与自定义BaseAdapter 103
6.4 处理列表交互 109
6.5 对比CursorAdapters与BaseAdapters 110
6.6 总结 111
第7章 Android数据库应用 113
7.1 本地数据库应用案例 113
7.2 数据库缓存 117
7.3 典型应用程序设计 119
7.4 总结 120
第8章 外部数据库 122
8.1 外部数据库的分类 122
8.2 谷歌应用程序引擎GAE与Java数据对象数据库JDO 124
8.3 GAE:一个视频游戏应用的开发案例 125
8.4 PersistenceManager与查询 128
8.5 总结 136
第9章 数据的收集与存储 137
9.1 数据收集方法 137
9.2 web抓取入门 139
9.3 扩展HTTP servlet GET/POST方法 150
9.4 调度CRON计划任务 153
9.5 总结 154
第10章 综合示例 156
10.1 实现HTTP GET请求 156
10.2 返回至Android系统:解析响应 160
10.3 最后一步:再次关联到用户界面 166
10.4 总结 169
前言/序言
今天,我们生活在一个越来越多地依赖以数据为中心和数据驱动的世界中。如亚马逊之类的公司对用户查看和购买的商品进行信息跟踪,以便能够向用户推荐更多类似产品;如Google公司,存储通过它搜索的每一条查询,以便在未来能够提供更好的搜索查询建议;类似Facebook这样的社交媒体网站会记录用户与朋友之间的每一个事件,以便更好地了解数以百万计的用户。我们生活在以数据为中心的世界,开发以数据为中心的应用程序正是我们的当务之急。
在过去几年中,智能手机和平板电脑等移动设备的使用量一直呈爆炸式的增长。本书的目的是使用Google已经内置在Android操作系统当中的多种方法来探索数据以及Android系统本身。本书不仅力求让读者了解不同的数据存储方法,还会比较每一种方法的优缺点。最后,希望通过本书,用户能够高效创建、精心设计一个可扩展的数据中心应用程序。
本书的结构
第1章(在Android系统中存储数据):侧重于Android系统上所有可用的各种本地数据存储方法。每个存储方法都会附带较多的代码示例,以及优缺点的比较。
第2章(使用SQLite数据库):通过介绍自定义SQLite数据库的实现深入了解最复杂和最常用的本地数据存储形式--SQLite数据库。
第3章(SQLite查询):粗略介绍SQL查询语言。指导读者如何构建与任意SQLite数据库一起使用的功能强大的数据库查询。
第4章(使用Content Providers):扩展前面几章SQLite数据库的内容,向读者介绍如何使用Content Provider将其数据库共享给Android操作系统。介绍一个Content Provider的完整实施过程,并讨论了数据公开化的好处。
第5章(表查询操作):深入探讨Android操作系统所提供的最为广泛的Content Provider应用--Contacts。探讨了Contacts表的结构,并提供常见查询的实例。
第6章(UI关联):讨论用户将数据关联到用户界面的方法。因为数据以列表形式显示,因此本章的实例介绍了两种典型的列表适配器。
第7章(Android数据库应用):尝试避开程序设计,专注于更高的设计理念。本章讲述到目前为止所有可以使用的本地存储方法,并且强调这些本地方法的不足之处。由此接下来的几章介绍的都是外部存储方面的内容。
第8章(外部数据库):介绍使用外部数据库的概念,并向读者介绍几种常见的外部数据存储。最后介绍如何创建Google App Engine数据存储的实例。
第9章(数据的收集与存储):通过介绍应用程序收集可插入外部数据库数据的方法,用以扩展前面章节的内容。收集数据的方法包括使用可用的API,也包括编写自定义的Web抓取器模块。
第10章(综合示例):本章将会完成第8章和第9章当中开始编写的应用程序。其中涉及如何首先创建HTTP servlet,其次从移动应用程序中发起对这些HTTP servlet的HTTP请求。本章内容将作为全书的最终目标,向读者介绍如何将移动应用程序连接到他们的外部数据库,最后进行解析并以列表形式显示HTTP响应。
阅读本书所需基础
阅读本书需要了解Android操作系统的基本知识、一个可以创建Android和Google App Engine项目的程序开发集成环境(如Eclipse等),以及需要一个可以完成基本Web请求的互联网连接。
本书适合的读者
本书的读者对象是具有一定数据库经验和其他后端设计概念,并且想要了解移动应用程序中如何应用这些概念的开发人员。具有移动应用程序开发和(或)Android平台经验,但对后端系统和设计、实施数据库架构都不太熟悉的开发人员,可能会觉得这本书很有用。
即使对于已经具有丰富的Android程序设计和数据库实施经验的人员,本书可能有助于他们进一步巩固概念,并了解Android上更多的数据存储方法。
体例
在本书中,将会发现一些用来区分不同的信息所使用不同样式的字体。以下是这些样式的例子,并附有说明。
在文本中的代码单词表示如下:"想要转换为字节形式的字符串,传递到输出流的write()方法"。
代码块的样式设置如下:
Setvalues = new HashSet();
values.add("Hello");
values.add("world");
Editor e = sp.edit();
e.putStingSet("strSetKey", values);
e.commit();
Setret = sp.getSeringSet(values, new HashSet());
For(String r : ret) {
Log.i("SharedPreferencesExample", "Retrieved vals: " + r);
}
当需要引起对特殊代码段的注意时,我们将相关的行或条目设置为粗体显示,如下所示:
命令行内的输入或者输出如下:
adb-s emulator-xxxx shell
新术语和重要的字眼以粗体显示。
读者反馈
我们一直希望得到读者的回馈,这可以让我们了解用户对于这本书的看法,如喜欢什么而不喜欢什么。读者反馈有助于我们改进本书的内容,而这将会获得更大的收获。
可以通过发送E-mail至feedback@packtpub.com提交反馈信息,请务必在邮件主题当中提及本书的书名信息。
如果你在某一领域内有专长,并且有兴趣将其写成书或参与书的编写,请查阅网站www.packtpub.com/authors的作者指南信息。
用户支持
现在,读者已经是Packt图书的用户,我们有许多方式可以满足你的需求。
本书源代码下载
可以在http://www.packtpub.com站点下载所购买的所有Packt出版书籍中的实例代码。如果在其他地方购买了本书,可以访问http://www.packtpub.com/support页面进行注册,并通过电子邮件完成注册。
勘误表
尽管我们非常仔细地确保内容的准确性,但错误在所难免。如果读者发现其中的错误(文本错误或者代码错误)并将错误反馈给我们,我们将非常感激。这样,可以防止其他人阅读到这个错误,并帮助我们在本书的后续版本中改进。如果你发现了任何勘误内容,请访问http://www.packtpub.com/support,选择对应书籍,单击链接errata submission form,输入具体的勘误内容。一旦勘误内容得到确认,读者提交的内容将会上传至我们的网页或者增加到现有的勘误表中(列在勘误表一节的末尾)。在http://www.packtpub. com/support中可以通过选择主题查看现有的勘误表信息。
版权声明
互联网上一直面临着版权被盗版侵权的问题。Packt一直对版权内容予以保护。如果读者在互联网上遇见了我们作品的任何一种非法副本,请立即向我们提供地址和网站名称,以便我们做出相应处理。
请通过copyright@packtpub.com向我们反映涉嫌盗版材料的链接。
我们真心感谢你对保护作者所提供的帮助,我们将有能力为你提供更有价值的内容。
疑难解答
在阅读本书的过程中遇到任何问题,可以通过电子邮件questions@packtpub.com进行咨询,我们会尽力解决这些问题。
作者简介
Jason Wei 2011年毕业于斯坦福大学,在校期间他获得了数学计算科学专业的理学学士,同时辅修了统计学专业,接着获得了管理科学与工程专业的理学硕士,主要研究方向为机器学习。在大学期间的前两年里,他在硅谷进行第一次创业,而在他第二次创业(BillShrink公司)期间开始接触到Android系统。
从那以后,他开发了一些应用程序,从小屏幕上的娱乐程序到金融定价与建模工具等。他喜欢使用API进行开发,并参加了一些应用程序开发竞赛--赢得了包括Google、MyGengo、IndexTank等公司的奖项。除了开发应用程序之外,Jason还喜欢编写Android教程,并将自己的开发经验分享在他的博客当中(thinkandroid.wordpress.com)。他在博客当中所获得的成就,使他第一次成为了《Learning Android Game Programming》一书的技术审校。
目前,Jason在纽约从事量化交易员工作。
关于技术审校
Joseph Lau目前是斯坦福大学的在读研究生,攻读计算机科学硕士学位。暑假期间,他在LinkedIn和Google的各类技术职位做实习生。他的业余爱好是Android程序设计,并且编写了几个Android应用程序。他认为移动应用程序是21世纪技术创新的关键部分,他还认为如果目前还没有学习Android程序设计,那么现在就是去接触的最好时机。
Prashant Thakkar(Pandhi)具有7年以上的IT从业经验。擅长Java,类Struts、Hibernate的J2EE框架,以及相关的开放源代码框架。Prashant致力于Android已经两年多,并且还交付过关键业务企业移动应用程序。他还对在云端交付应用程序的Google App Engine感兴趣。Prashant在他的两个博客中记录了他的技术经验,分别是http://ppandhi. wordpress.com和http://androidpartaker.wordpress.com。
Android数据库程序设计 下载 mobi epub pdf txt 电子书 格式