Android模拟器在哪里存储SQLite数据库?

我正在开发一个将数据存储在SQLite数据库中的Android应用程序。 我的问题是,当你使用模拟器时,这个数据库文件在什么地方存储在文件系统中?

我已经看到它存储在

/data/data/package_name/databases

但是我需要知道我的本地硬盘驱动器上实际映射的位置。 数据库在模拟器的多次运行中仍然存在,即使在closures机器之后也是如此,所以它不能驻留在RAM中。

模拟器的文件系统不映射到硬盘上的目录。 模拟器的磁盘映像存储为映像文件,您可以通过Eclipse(在工具栏中查找G1外观图标)或通过仿真器二进制文件本身进行pipe理(有关选项的说明,请运行“emulator -help”) 。

您最好使用命令行中的adb插入正在运行的模拟器。 如果你可以得到特定的目录和文件名,你可以做一个“adb pull”来把数据库文件从仿真器中取出,放到常规的硬盘上。

编辑 :删除build议,这也适用于无根据的设备 – 它只适用于模拟器,并在您操作adb作为根的设备。

请参阅此链接或按照下面的答案。


以下评论中提到的更新:

您不必再从DDMS的angular度来看,只需从Eclipse 窗口中打开文件浏览器>显示视图>其他…似乎应用程序不需要运行,甚至可以浏览不同的应用程序文件内容。 我正在运行ADB版本1.0.29


或者,你可以尝试旧的方法:

在Eclipse IDE上打开DDMS透视图

Window> Open Perspective> Other> DDMS

最重要的是:

您的应用程序必须运行,因此您可以查看文件夹和文件的级别

然后在“ 文件资源pipe理器”选项卡中 ,按照以下path:

data> data> your-package-name> databases> your-database-file

然后select文件,单击屏幕右下angular的光盘图标以下载.db文件。 如果要将数据库文件上载到仿真器,可以单击电话图标(在磁盘图标旁边),然后select要上载的文件。

如果你想看到.db文件的内容,我build议你使用SQLite数据库浏览器,你可以在这里下载。

PS:如果你想从真实的设备上看到数据库,你必须根据你的手机。

其他答案严重过时。 使用Android Studio ,您可以这样做:

  1. 点击“ Toos”>“Android”>“Android设备Monidtor”

在这里输入图像描述

  1. 点击文件资源pipe理器

在这里输入图像描述

  1. 导航到你的数据库文件,然后点击保存button。

在这里输入图像描述

我写了一个简单的bash脚本,将数据库从android设备拖到您的计算机(Linux,Mac用户)

文件名:android_db_move.sh用法:android_db_move.sh com.example.app db_name.db

 #!/bin/bash REQUIRED_ARGS=2 ADB_PATH=/Users/Tadas/Library/sdk/platform-tools/adb PULL_DIR="~/" if [ $# -ne $REQUIRED_ARGS ] then echo "" echo "Usage:" echo "android_db_move.sh [package_name] [db_name]" echo "eg. android_db_move.sh lt.appcamp.impuls impuls.db" echo "" exit 1 fi; echo"" cmd1="$ADB_PATH -d shell 'run-as $1 cat /data/data/$1/databases/$2 > /sdcard/$2' " cmd2="$ADB_PATH pull /sdcard/$2 $PULL_DIR" echo $cmd1 eval $cmd1 if [ $? -eq 0 ] then echo ".........OK" fi; echo $cmd2 eval $cmd2 if [ $? -eq 0 ] then echo ".........OK" fi; exit 0 

数据库作为SQLite文件存储在/ data / data / PACKAGE / databases / DATABASEFILE中:

  • PACKAGE是AndroidManifest.xml中声明的包(标签“manifest”,属性“包”)
  • DATABASEFILE是在您调用SQLiteOpenHelper构造函数时传递的名称,如下所述: http : //developer.android.com/guide/topics/data/data-storage.html#db

您可以在文件资源pipe理器选项卡中看到(从/到/从文件系统复制)模拟器中的数据库文件,selectDDMS透视图

由于该问题不限于Android Studio,所以我正在为Visual Studio 2015(为Xamarin工作)提供path。

工具-Android-Android设备监视器

在这里输入图像描述

特别感谢这个问题的其他回答者。

简单的解决scheme – 适用于仿真器和连接设备

1查看当前可用的设备/仿真器列表。

 $ adb devices 

连接的设备列表

G7NZCJ015313309器件仿真器-5554器件

9885b6454e46383744设备

2在设备/仿真器上运行备份

 $ adb -s emulator-5554 backup -f ~/Desktop/data.ab -noapk com.your_app_package.app; 

3提取data.ab

 $ dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -; 

您将在/db文件夹中find数据库