adb pull /data/data/包名/databases/库名
导出到电脑查看,需确保设备已获取ROOT权限或数据库文件可访问
View
-> Tool Windows
-> Device File Explorer
。/data/data/<包名>/databases/
。mydb.db
),右键选择Save As...
导出到本地。adb shell "run-as <包名> cp /data/data/<包名>/databases/mydb.db /sdcard/" adb pull /sdcard/mydb.db ./
run-as
需替换为应用的包名。SQLiteDatabase db = SQLiteDatabase.openDatabase("/path/to/db", null, SQLiteDatabase.OPEN_READONLY); String dump = DatabaseUtils.dumpCurrentRowToString(cursor); // 或直接读取文件
调试阶段快速查看数据,但需注意隐私风险(不建议用于生产环境)。
build.gradle
添加依赖: implementation 'com.facebook.stetho:stetho:1.6.0' implementation 'com.facebook.stetho:stetho-okhttp:1.6.0'
Stetho.initializeWithDefaults(this);
chrome://inspect
,查看数据库。工具名称 | 特点 |
---|---|
SQLite Browser | 开源工具,支持直接打开.db 文件,适合PC端分析。 |
DBeaver | 多数据库管理工具,支持SQLite,提供可视化操作。 |
Termux | 安卓终端模拟器,安装sqlite 包后可通过命令行操作数据库(需root权限)。 |
权限问题:
adb root
或root手机解决。数据库路径:
/data/data/<包名>/databases/
。解答:
// 示例:将数据库复制到SD卡 File dbFile = new File("/data/data/" + getPackageName() + "/databases/mydb.db"); File dest = new File(Environment.getExternalStorageDirectory(), "mydb_backup.db"); try (InputStream in = new FileInputStream(dbFile); OutputStream out = new FileOutputStream(dest)) { ByteStreams.copy(in, out); } catch (IOException e) { e.printStackTrace(); }
解答: