Feeder icon indicating copy to clipboard operation
Feeder copied to clipboard

Android中如何方便直观地查看数据库

Open zhangsr opened this issue 9 years ago • 0 comments

本文旨在抛出如题问题,并提供Feeder项目中的解决方案,希望大家一起讨论一起提升。

效果

在终端输入命令 image

弹出数据库浏览的可视化界面: image

原理

通过adb将app对应的数据库文件拷贝到pc目录,然后调用pc上的数据库浏览软件打开。

实现

1 定义变量

PKG=me.zsr.feeder
DB=feed_db

2 权限更改,拷贝文件到外部方便读取的目录,如/sdcard/

adb shell "run-as $PKG chmod 755 /data/data/$PKG/databases"
adb shell "run-as $PKG chmod 666 /data/data/$PKG/databases/$DB"
adb shell "rm /sdcard/$DB"
adb shell "cp /data/data/$PKG/databases/$DB /sdcard/$DB"

3 清除旧数据库文件,将当前新的数据库文件从Android设备拉取到pc目录,这里放在~/Temp/下

rm -f ~/Temp/${DB}
adb pull /sdcard/${DB} ~/Temp/${DB}l

4 根据不同的操作系统,选择不同的数据库浏览软件打开

if [[ "$OSTYPE" == "linux-gnu" ]]; then
    slitebrowser ~/Temp/${DB}
elif [[ "$OSTYPE" == "darwin"* ]]; then
    open -a sqlitebrowser ~/Temp/${DB}
else
    printf "Unknown os type : $OSTYPE"
fi

源码

完整脚本源码:inspect_db.sh 如果拉取了Feeder项目,也可以编译运行 Feeder app 到 Android 设备中,像效果图那样执行脚本,数据库界面就出来了。

zhangsr avatar Nov 26 '15 11:11 zhangsr