Android 学习之 SQLite操作

最近时间太紧了,好久没有更新文章了,今天抽出点时间记录一下最近学习内容

Android 使用SQLite数据库,这个不用多说了。http://www.sqlite.org

开始有点不了解,看了许久相关内容才明白,看来我对数据库一直都不是很敏感啊!

系统环境:

Windows 7 PowerShell

android 2.1 emulator

 

以下操作均在adb shell中完成,不知道adb shell 是什么? 这个我就不多说了,Google 一下吧,呵呵!

言归正传,android系统中的SQLite使用其实很简单,SQLite数据库其实可以看作一个文件,扩展名为.db,以android2.1系统为例,它已经内嵌了SQLite3.5.9版本,我们可以使用SQLite相关命令对其进行操作

sqlite3 [databases name]

之后会进入sqlite>状态

这里可以正常使用sql语句对相应的表进行操作。不知道数据库里有哪些表?没关系

.help 可以看到相关命令,sqlite中所有的内部命令都是 . 开头的。可以看到.tables命令查看表名,后面的你就知道该怎么做了吧。

 

举例:尝试在模拟器中找了一下联系人的数据库文件,注意这个如果是在手机上,没有root权限,应该是不能访问的,这里只是举例。

adb shell

进入 /data/data/com.android.providers.contacts/databases 目录

sqlite3 contacts2.db 连接数据库文件

sqlite> 提示符下输入 .tables 查看所有表,如下:

_sync_state                       status_updates
_sync_state_metadata              v1_settings
activities                        view_contacts
agg_exceptions                    view_contacts_restricted
android_metadata                  view_data
calls                             view_data_restricted
contact_entities_view             view_groups
contact_entities_view_restricted  view_raw_contacts
contacts                          view_raw_contacts_restricted
data                              view_v1_contact_methods
groups                            view_v1_extensions
mimetypes                         view_v1_group_membership
name_lookup                       view_v1_groups
nickname_lookup                   view_v1_organizations
packages                          view_v1_people
phone_lookup                      view_v1_phones
raw_contacts                      view_v1_photos
settings

后面简单写了一个select语句看看表内容。我们这里看到绝大多数使用数据的apk,都会在/data/data中对应的目录中有sqlite数据库文件,这也应该是android的系统规则吧。

自己的推断,如果有错误,请高手指教。

 

以下操作在Windows中完成

SQLite数据看似单薄但是它具备关系型数据库的所有基本特性:表、试图、索引、触发器等,所以这些都在命令行中完成,估计有点繁琐。所以找了一下相关的GUI工具,推荐一个:

SQLite Administrator 网址 http://sqliteadmin.orbmu2k.de/

推荐它主要是因为它免费、免安装绿色、功能界面都不错。当然还有功能更强大,在SQLite官网中你可以找到很多http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

 

举例:继续上面的内容,通过adb命令,我们是可以将数据库文件导出的,如下

adb pull /data/data/com.android.providers.contacts/databases/contacts2.db e:\

这样我们就可以利用相应的gui工具对数据库进行分析和操作了。

 

以上只是对android开发过程中的数据库部分操作总结,如果对android中的数据库内容操作还是要通过SQLiteOpenHelper等类中方法进行访问操作。以上更像是数据库管理员和设计人员要做的事情。

 

如有不对之处请高手指教。

posted @ 2010-09-08 16:13  Ginoz  阅读(1040)  评论(0编辑  收藏  举报