当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Android模拟器在哪里存储SQLite数据库?》经验,为你挑选了6个好方法。

我正在开发一个将数据存储在SQLite数据库中的Android应用程序.我的问题是,当您使用模拟器时,此数据库文件存储在文件系统中的哪个位置?

我已经看到它存储在

/data/data/package_name/databases

但我需要知道实际映射到我本地机器硬盘的位置.即使在关闭机器之后,数据库仍会在模拟器的多次运行中持续存在,因此它不能只驻留在RAM中...



1> rogcg..:

以下评论中提到的更新:

您不需要再进入DDMS透视图,只需从Eclipse 窗口>显示视图>其他打开文件资源管理器...看起来应用程序不需要运行,我可以在不同的应用程序文件中浏览内容.我正在运行亚行版本1.0.29


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

在Eclipse IDE上打开DDMS透视图

(窗口>打开透视图>其他> DDMS)

而最重要的是:

你的申请必须是运行所以你可以看到文件夹和文件的层次结构.

然后在文件资源管理器选项卡中,您将遵循以下路径:

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

然后选择文件,单击屏幕右上角的磁盘图标下载.db文件.如果要将数据库文件上载到模拟器,可以单击电话图标(在磁盘图标旁边)并选择要上载的文件.

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

PS:如果要从真实设备中查看数据库,则必须将手机设为root.


如果有人想知道,你必须点击"文件资源管理器"标签.
@NileshNikumbh选择文件,然后单击磁盘图标并选择要存储它的位置.您还需要下载SQLite浏览器.http://sourceforge.net/projects/sqlitebrowser/安装后,只需打开.db文件,选择"浏览数据"选项卡,然后选择要查看的列.

2> Eric Mill..:

模拟器的文件系统未映射到硬盘驱动器上的目录.模拟器的磁盘映像存储为映像文件,您可以通过Eclipse(在工具栏中查找G1外观图标)或通过模拟器二进制文件本身进行管理(运行"emulator -help"以获取选项说明) .

您最好从命令行使用adb来插入正在运行的模拟器.如果您可以获取特定目录和文件名,则可以执行"adb pull"以将数据库文件从仿真器中取出并放到常规硬盘驱动器上.

编辑:删除了这也适用于无根设备的建议 - 它仅适用于模拟器和以root身份运行adb的设备.


我通过Eclipse的ddms关闭了数据库.做出我的改变,然后推回去.工作就像一个魅力.
将数据库从仿真器拉到本地计算机的示例是:'adb pull /data/data/com.activeandroid.test/databases/Application.db~/Development/Application.db`**

3> Yuchen Zhong..:

其他答案严重过时.使用Android Studio,这是这样做的方法:

    单击工具> Android> Android设备监视器

在此输入图像描述

    单击文件资源管理器

在此输入图像描述

    导航到您的db文件,然后单击" 保存"按钮.

在此输入图像描述



4> Tadas Valait..:

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

filename: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



5> Foyzul Karim..:

由于问题不仅限于Android Studio,因此我给出了Visual Studio 2015的路径(为Xamarin工作).

工具 -  Android-Android设备监视器

在此输入图像描述

找到上图中提到的数据库文件,然后单击图2中所示的"拉"按钮.

将文件保存在所需的位置.

您可以使用SQLite Studio或DB Browser for SQLite打开该文件.

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



6> S. Miller..:

在Android Studio 3.4.1中,您可以使用Android Studio的搜索功能找到“设备文件资源管理器”,然后转到模拟器的/ data / data / package_name / database目录。

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有