原文出自:http://blog.sina.com.cn/s/blog_9906ec890101knaz.html
在命令行下不能使用sqlite3命令是因为在system/xbin目录下没有sqlite3这个可执行文件,需要向这个目录中加入sqlite3这个可执行文件,原装的android手机操作系统中是有这个可执行文件的,但由于我刷机的时候用的是一个精简的ROM,所以没有sqlite3这个文件,导致不能在命令行下查看手机内存中的数据库文件。
一、sqlite3文件的获取
1、可以选择从网上下载,百度google一下,网上应该有不少可下载的资源
2、如果eclipse中android的插件都安装成功能正常使用的话,首先创建一个与你手机系统版本一样的虚拟机,比如你的手机系统是android4.0,那么就用AVD Manager创建一个Android4.0版本的虚拟机,然后运行这个虚拟机。虚拟机正常运行起来之后,使用eclipse中的android插件File Explorer来查看虚拟机中的目录及文件。示意图如下:
在eclipse的左下方有左图所示的一个图标,点击之后选择Other会弹出如下图所示的窗口,在窗口中选择File Explorer视图
点击确定之后在eclipse中便打开了虚拟机中的目录结构如下图所示
在system/xbin目录下能找到sqlite3这个文件,找到这个文件,选中,然后将这个文件从虚拟设备中取出,保存到你的电脑上,选中文件后点击下图所示图标即可将文件取出,示意图如下:
至此,你已经获得了sqlite3文件。
二、将sqlite3文件放到手机system/xbin目录下
步骤1、将手机与电脑相连接,在电脑上通过命令行进入android手机shell命令行,并获得root权限
详细过程:
打开cmd窗口,
输入adb shell(如果提示没有找到adb命令的话,请将adb.exe的路径加入到环境变量中,或者命 令行进入adb.exe所在目录下使用adb命令,此处不详细说明如何配置环境变量)
输入su,获得root权限(如果你的手机没有root权限的话,需要首先刷root,网上一键root的软件 有很多,此处不详细说明如何刷root,刷出root后会有很多用处)
步骤2、再次通过eclipse的File Exploere视图将sqlite3文件先放到/mnt/sdcard目录下,操作步骤同 从虚拟机中取出sqlite3文件相似,不过需要选择的突变命令是Push a file onto the device(在 pull a file from the device右边)
步骤3、首先改变/system目录的只读而不可写入文件属性,然后在命令行下将sdcard下的sqlite3 文件复制到这个system/xbin目录下
详细过程:
输入mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
输入cat /mnt/sdcard/sqlite3 > /system/xbin/sqlite3
过程详细示意图:
三、修改sqlite3文件属性,添加可执行的权限
输入chmod 755 /system/xbin/sqlite3,然后就可以在命令行中使用sqlite3命令查看手机内存中的.db文件了。
如果出现sqlite3 不能使用的一些错误:可能是sqlite3的版本太低导致的,重新弄一个高版本的就可以
同时,在cmd下查询数据库时中文为乱码的解决方法(出自http://blog.163.com/starfish_yang/blog/static/686256852011414103459493/):
1、打开CMD.exe命令行窗口
2、通过 chcp命令改变代码页,UTF-8的代码页为65001
F:\trash>chcp 65001
执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。
3、修改窗口属性,改变字体
在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。