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等类中方法进行访问操作。以上更像是数据库管理员和设计人员要做的事情。
如有不对之处请高手指教。