这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » android开发 查看手机中的db文件,查看sqlite数据库的表结构

共2条 1/1 1 跳转至

android开发 查看手机中的db文件,查看sqlite数据库的表结构

高工
2018-11-09 08:11:41     打赏

我们的app里面用到sqlite数据库的时候, 会生成一个db文件,保存在我们手机中。有的时候,在调试数据库,很想看一下里面的表结构是否正确,这个时候就十分苦恼,因为这个db文件不能够直接拿出来,我们知道,在DDMS里面有一个FileExplorer,它里面保存着手机中的各个文件夹,但是尝试打开里面的文件夹的时候,却发现怎么点都没有东西,是真的没有吗?其实是我们没有获取到访问这个文件夹的权限。下面我们就开始一步一步的拿到真机调试中的db文件。

1

2

注意:确保你的手机是root过的。


一、打开adb.exe


 到sdk目录下,找到platform-tools,adb.exe就在这个文件夹下,尝试双击打开,发现cmd一闪而过,然后就没了,打不开?这里提供一个打开adb.exe的方法,在文件夹空白区域,按住键盘shift,同时点击鼠标右键,在弹窗中选择“在此处打开命令窗口”,会弹出如下cmd窗口(也可以直接打开cmd,然后进入相应的路径):

1

2



二、打开DDMS(Android Device Monitor)


打开DDMS后,选择FileExplorer,然后我们可以看到其下的各个文件夹,我们要找的.db文件就保存在data文件夹下

1

2



如果FileExplorer下没有东西的话,可以尝试选择左边的手机型号。此时我们点击data,会发现data是无法打开的,然后我们进行下一步,通过cmd执行命令为我们获取相应的权限。

1

2

三、获取权限 

在获取权限的时候,需要一步一步的获取文件夹权限。 

1、获取data文件夹权限


 在第一步打开的cmd中, 输入命令 adb shell su -c "chmod 777 /data" , 回车。

 这时data文件夹的权限就获取到了,打开data可以看到其下的文件夹,

1

2

3



2、获取dada/dada文件夹权限


 与第一步类似,继续输入命令  adb shell su -c "chmod 777 /data/data",回车。

 这样就获取到了dada/dada文件夹权限,打开dada/dada,里面保存了个个应用包名文件夹,找到我们需要找的app包名,然后再进一步打开,

1

2

3

3、获取应用db文件


 继续输入命令  adb shell su -c "chmod 777 /data/data/包名",回车。这时,就打开了这个app的文件夹,db文件,保存在databases里面。

 继续输入命令  adb shell su -c "chmod 777 /data/data/包名/databases",回车。这时,databases可以打开了,我们可以看到保存在其中的db文件。

 继续输入命令  adb shell su -c "chmod 777 /data/data/包名/databases/*",回车。这时,databases下的db文件都被设为可读状态

1

2

3

4



4、导出db文件


 选择需要导出的文件,然后点击右上角的导出按钮,选择保存地址即可

1

2

四、查看数据库结构


权限实际测试命令


shell@rk3288_box:/ $ su -c chmod 777 /data/data                                

shell@rk3288_box:/ $ su -c chmod 777 /data/data/com.xxx.ui                    

shell@rk3288_box:/ $ su -c chmod 777 /data/data/com.xxx.ui/databases       


shell@rk3288_box:/ $ su -c chmod 777 /data/data/com.xxx.ui/databases/* 


之后就可以在DDMS中导出到本地





管理员
2018-11-09 09:00:19     打赏
2楼

谢谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]