1. 使用SQLite的官方管理工具,它是一个命令行工具,在android的SDK中自带了sqlite3.exe(我的在目录E:\SDK\platform-tools下)。
为了使用方便,需将其路径注册到系统环境变量path中,即将:%Android_Home%加在path中,这样只运行sqlite3,就能直接打开sqlite管理工具了。
在这个命令行工具中可以执行两种命令:SQL命令和控制台命令-----
A.其中SQL命令必须以分号(;)结尾
B.控制台命令必须以实心点(.)结尾,如:
.help ------------------显示帮助信息
.quit ------------------退出控制台信息
.tables ------------------查看数据库的表列表
.exit ------------------退出sqlite命令行
具体操作步骤如下(参考博客:http://www.linuxidc.com/Linux/2011-06/37135.htm)
在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令。
【1】在Android程序中,一般创建的数据库存放在 /data/data/[应用程序包名]/databases 的目录下。
【2】cd 命令:文件夹跳转命令。ls命令:查看某个文件夹下面有哪些文件。
【3】使用"sqlite3 [数据库名称] " 命令来对某数据库进行一系列的操作。
【4】在经过第【3】步骤后,可以使用.tables 命令查看某数据库中包含哪些表。若要查询某表中包含的数据,在 sqlite> 命令后输入查询的SQL语句即可查询,但要注意的是要以分号[;]来结束该语句的输入。
【5】若在命令行中输入 adb shell 后,提示:adb不是内部或外部命令,也不是可运行的程序,或批处理文件,遇到这种情况是由于环境变量没有设置好的问题导致的。解决方法:在安装的Android sdk 包目录下的找到adb工具所在目录,一般是在...\android-sdk-windows\tools目录或者在...\android-sdk-windows\platform-tools目录下。把该目录添加到path环境变量中就OK了。
下图是我运行时的截图:
由于出现 sqlite3 notfound 错误,时间关系所以没再继续往下了,下次再用这种方法,这种问题可参考下面两篇博客解决。
http://blog.csdn.net/myairen1365/article/details/21026767
http://www.android100.org/html/201303/19/1897.html
2.为了更方便地管理SQLite数据库,也可以使用第三方的可视化数据库管理工具,例如SQLiteExpert Professional, 这是一种较为流行的基于Windows平台的SQLite数据库管理工具。
具体操作步骤如下:
若是真机运行程序里的数据库,要先执行以下步骤:
用真机测试时,通常在Android studio或Eclipse的DDMS(真机中程序运行时,连上电脑,Android studio里的Android Device Monitor就可看到)点不开data文件夹,这样就查看不了真机里的数据库。
需要在linux中改变手机数据库访问权限(即能在DDMS中打开真机中的数据库)
Step1.用有root权限的真机
Step2.在cmd中进入SDK下的platform-tools目录
Step3.按照以下命令行一步步输入
E:\SDK\platform-tools> adb shell
$ su
# chmod 777 data
# cd data
# chmod 777 data
# cd data
# chmod 777 com.example.hyh.cgmms(要访问的包名)
# ls
----------成功之后显示手机中所有的安装包的名称-------(这一步就可以进入data/data目录了,但还是进不了要访问的包com.example.hyh.cgmms)
# cd com.example.hyh.cgmms(要访问的包名)
# chmod 777 databases
# cd databases
# ls
-----------------此时只可以看到有哪些数据库,并没有对数据库操作的权限
# chmod 777 XXX.db(要访问的数据库的名称)
---------------此时,才真正搞定,才能用第三方软件查看SQLite数据库
备注:每一行命令后都要加“回车符”执行,参考资料
http://www.programgo.com/article/79103073074/
展示一下这个过程:
DDMS中成功后显示如下:
真机完成上述步骤后,可执行下面步骤导出Device中的数据库数据(模拟器可跳过上述步骤)
Step1.通过file explorer-> data ->data,找到运行的项目包名,点击“database”,找到你所创建的数据库名称,我这里是“TcBluetooth.db”
Step2.选中数据库“TcBluetooth.db”,右上角有3个亮着的按钮,分别是数据导出电脑、其他数据导入到模拟器和删除,这里我们点击第一个,自己选择一个位置进行保存。
Step3.运行SQLite expert Personal,点击file -> open database ,选择数据库,选择表,即可查看数据,实现数据库的管理
Ps:此处在打开软件SQLite expert Personal 时,出现错误access violation at address,按照下列方法试了半天,又出现:您不能在64位可执行文件上设置DEP属性
无奈,卸载后重新下载安装了一下软件,还是同样的错误,多次循环捣鼓,不知怎么出现一个兼容报告,说程序上次运行错误,然后,再打开程序,就莫名好了,奇怪!