上一篇
安卓开发如何查看数据库
- 行业动态
- 2025-04-22
- 2809
安卓开发中查看数据库的方法
使用 Android Studio 的 Database Inspector(推荐)
适用场景:Android Studio 4.1+ 版本,支持实时查看 SQLite 数据库
操作步骤:
- 连接设备或启动模拟器,运行 App。
- 在 Android Studio 底部工具栏点击
Database Inspector
图标(或通过View > Tool Windows > Database Inspector
)。 - 选择目标进程(如
app
),展开后可看到数据库列表。 - 点击数据库名称(如
mydatabase.db
),再展开表名,双击表可查看数据。 - 支持 SQL 语句执行(点击
Execute SQL
按钮),SELECT FROM table_name;
。
优点:
- 无需 root 设备,直接集成在开发环境。
- 支持数据修改、删除等操作。
缺点:
- 仅支持 SQLite 数据库,无法查看其他类型数据库(如 Room 持久化库需关联 SQLite)。
- 低版本 Android Studio 可能不支持。
通过代码查询数据库内容
适用场景:快速验证数据库操作逻辑,或在无图形界面时调试。
示例代码:
// 假设使用 SQLiteOpenHelper 创建数据库 SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("SELECT FROM table_name", null); if (cursor.moveToFirst()) { do { // 读取字段数据 String data = cursor.getString(cursor.getColumnIndex("column_name")); Log.d("DatabaseData", "Data: " + data); } while (cursor.moveToNext()); } cursor.close();
关键点:
- 使用
rawQuery
执行 SQL 语句。 - 通过
Log
输出数据到控制台。 - 记得关闭
Cursor
释放资源。
使用第三方工具(如 SQLite Browser)
适用场景:需要导出数据库文件或在真机上直接查看。
操作步骤:
- 导出数据库文件:
- 通过 ADB 命令导出:
adb shell "run-as com.example.app cp /data/data/com.example.app/databases/mydatabase.db /sdcard/" adb pull /sdcard/mydatabase.db
- 或在代码中将数据库拷贝到外部存储(需权限)。
- 通过 ADB 命令导出:
- 打开数据库文件:
- 使用 SQLite Browser(https://sqlitebrowser.org/)或 DBeaver 等工具加载
.db
文件。 - 支持可视化增删改查操作。
- 使用 SQLite Browser(https://sqlitebrowser.org/)或 DBeaver 等工具加载
优点:
- 支持复杂查询和数据分析。
- 可长期保存数据库文件用于对比。
缺点:
- 需要设备有读写权限(Android 10+ 需申请
MANAGE_EXTERNAL_STORAGE
)。 - 真机需 root 或通过 ADB 拉取文件。
方法对比表
方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
Database Inspector | Android Studio 调试 | 实时性强,无需额外操作 | 仅支持 SQLite,依赖工具版本 |
代码查询 | 快速验证逻辑 | 灵活,可直接输出日志 | 需手动编写代码,不适合复杂分析 |
第三方工具 | 导出文件或真机调试 | 功能强大,支持多种格式 | 需权限或 root,操作较繁琐 |
相关问题与解答
问题1:为什么 Database Inspector 看不到我的数据库?
解答:
- 确认 App 已运行且数据库已初始化(如在
onCreate
中调用SQLiteOpenHelper
)。 - 检查数据库路径是否正确(默认路径为
/data/data/包名/databases/
)。 - 确保 Android Studio 版本为 4.1+,并启用了 Inspector。
- 如果使用 Room,需在
@Database
注解中设置exportSchema
为 true。
问题2:如何删除应用的数据库文件?
解答:
- 通过 ADB 删除:
adb shell "rm /data/data/com.example.app/databases/mydatabase.db"
- 通过代码删除:
File dbFile = context.getDatabasePath("mydatabase.db"); if (dbFile != null && dbFile.exists()) { dbFile.delete(); }
- 通过设置应用清除数据:
进入手机设置 → 应用 → 选择目标 App → 存储 → 清除数据(会重置所有数据