三星Galaxy与Pixel设备上Room数据库的存储位置咨询
Room数据库在Android 11+设备上的存储位置说明
为什么看不到/data/data/下的应用条目
从Android 11(API 30)开始,系统强化了应用沙箱和Scoped Storage机制,第三方应用(包括文件管理器)默认无法访问其他应用的私有目录。你的三星Galaxy S20 FE和Pixel设备都运行Android 11或更高版本,因此无法直接在/data/data/下看到你的应用文件夹是正常的权限限制,并非数据库存储位置改变。
Room数据库的实际存储位置
Room默认将数据库存储在应用的内部私有目录中,路径格式为:/data/data/[你的应用包名]/databases/
这个路径并未改变,只是系统限制了外部访问。
如何查看/导出数据库文件
使用ADB命令(仅debug版本应用可用):
连接设备到电脑,执行以下命令:adb shell run-as com.your.app.package cd databases ls执行后即可看到你的Room数据库文件(通常是
.db和.db-shm、.db-wal文件),还可以用pull命令将文件导出到电脑:adb pull /data/data/com.your.app.package/databases/your_database_name.db ./通过Android Studio的Device File Explorer:
打开Android Studio并连接调试设备,在右侧边栏打开「Device File Explorer」,依次展开data > data > [你的应用包名] > databases,即可直接查看、下载或删除数据库文件。此方法同样仅适用于debug版本应用,且设备需开启调试模式。
特殊情况
如果你在创建Room数据库时通过RoomDatabase.Builder的自定义配置指定了外部存储路径,数据库会存储在你设置的位置,但这种场景需要额外申请存储权限,默认Room不会采用这种配置。
内容的提问来源于stack exchange,提问作者Dave Westerman
相关产品推荐
相关产品推荐

