为了查询android下SQLite数据库,我发现SQLite及其它的所有的数据库,被储存于/data/data/<package_name>/databases目录下,然而我打开手机目录并没有发现这个目录。
这时我查到这个目录需要用adb shell打开,步骤如下:(我用的是真机调试)
1.手机设置--开发者选项,进入之后勾选USB调试功能,没有开发者选项的进入关于手机---软件版本,不停的点击版本号即可调处开发者选项。
2.载入ADB工具,快捷键WIN+R打开,输入cmd,打开命令控制台,输入cd+空格+adb工具包的路径,比如cd c:/urser/administrator/desktop/adb 这个路径是放在桌面上的路径,如果用一些刷机软件直接进入adb控制台的就不需要加载了。
此处也可以对adb进行环境变量配置,然后可以直接在命令行中运行adb shell
3.连接手机,首先输入dab devices,如果弹出XXXXXdeviecs,X表示机型以及一些杂七杂八的英文,表示连接,直接输入adb shell即可进入linux环境直行shell命令。
(输入adb shell可能出现“more than one device and emulator”,此时可以运行
adb kill-server
taskkill /f /im adb.exe
这两个命令后再重新运行adb shell)
4.进入命令界面后 输入 ls 指令 会列出文件的目录
5.cd 进入你想要的目录里
(当进入data目录下使用ls查看目录时可能出现opendir failed, Permission denied的情况
这时需要root权限,输入su回车,手机同意root即可)
6.一层一层进去后会发现 databases目录 你的数据文件就在这个目录下放着
7.sqlite3 test (test就是你创建的数据库的名称 注意:不要加.db 后缀)
8.现在你就进入你创建的test数据库了使用 .tables 就可以查看所有的表了;
ps1:
有的安卓手机系统,如,小米上没有sqlite3这个文件,需要从网上下载并且移动到"/system/xbin"目录下
sqlite3这个文件可以到百度上自行搜索下载或者到虚拟机上创建一个手机将其sqlite3文件复制过来,
adb push "E:\Thunder Download\sqlite3_not_found\sqlite3" "/system/xbin" (前面那个引号是我下载的sqlite3文件目录,后面的是要复制到的目录)
有时会出现如下的错误信息:
Read-only file system
此时可以输入如下 adb shell命令解决
adb root
adb remount
ps2:
将sqlite3转移到指定目录下后可能出现如下错误:
error only position independent executables (pie) are supported.
这是因为安卓系统大于5.0导致的,解决方案是把系统版本刷低,若是虚拟机上操作重新创建一个低版本的虚拟机就行了,比真机方便。
以上为博主查找自己安卓开发时,创建sqlite并打开数据库文件时遇到的一些问题,希望对大家能有所帮助。