You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Android Studio ROOM开发:模拟器测试时数据库存储位置查询

Android模拟器数据库存储位置详解

嘿,这两个问题都是Android开发调试数据库时经常碰到的痛点,我给你一步步理清楚:

1. 手机模拟器中的数据库存储在何处?

对于Android模拟器里的应用来说,数据库默认存放在应用的私有目录下,路径是:

/data/data/<你的应用包名>/databases/

举个例子,如果你的应用包名是com.example.myroomapp,那具体路径就是/data/data/com.example.myroomapp/databases/

这个目录是应用的私有空间,默认只有当前应用能访问,其他应用(包括系统)没有权限直接读取。如果要查看这个目录里的文件,有两个常用方式:

  • 用Android Studio自带的 Device File Explorer:直接在侧边栏打开它(找不到的话可以通过View > Tool Windows > Device File Explorer调出),顺着路径找到你的应用包名就能看到数据库文件。
  • adb命令行:先执行adb shell进入模拟器的shell环境,再用cd命令切换到上述路径,用ls查看文件列表。

2. 使用Room开发时,数据库在电脑上的具体存储位置?

其实模拟器的文件系统是封装在镜像文件里的,直接在电脑上找原始路径并不方便,而且不同系统(Windows/macOS)的路径也不一样:

  • Windows系统:模拟器的镜像文件通常存在C:\Users\<你的用户名>\.android\avd\<模拟器名称>.avd\
  • macOS系统:路径一般是~/.android/avd/<模拟器名称>.avd/

但这个路径下的文件是模拟器的磁盘镜像,没法直接打开查看数据库内容。更实用的方式是把数据库文件导出到电脑上:

方法一:用Device File Explorer导出

  1. 打开Android Studio的Device File Explorer,找到你的应用包名,进入data/data/<包名>/databases/
  2. 你会看到Room生成的几个文件:<你的数据库名>.db<你的数据库名>.db-shm<你的数据库名>.db-wal(后两个是SQLite的临时文件,导出主.db文件就行)
  3. 右键点击.db文件,选择Save As...,就能把它保存到电脑上你指定的位置,之后用SQLiteStudio、DB Browser for SQLite这类工具就能打开查看。

方法二:用adb命令导出

如果你习惯用命令行,也可以直接用adb pull命令把数据库文件拉到电脑上:

# 格式:adb pull <模拟器里的数据库路径> <电脑上的目标路径>
adb pull /data/data/com.example.myroomapp/databases/myroomdb.db ~/Desktop/

(Windows下把目标路径换成C:\Users\你的用户名\Desktop\就行)

内容的提问来源于stack exchange,提问作者griesgram

火山引擎 最新活动