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导出
- 打开Android Studio的Device File Explorer,找到你的应用包名,进入
data/data/<包名>/databases/ - 你会看到Room生成的几个文件:
<你的数据库名>.db、<你的数据库名>.db-shm、<你的数据库名>.db-wal(后两个是SQLite的临时文件,导出主.db文件就行) - 右键点击
.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




