如何在Android模拟器上访问现有的SQLite数据库?

14

我刚开始接触在Android中使用数据库,但是我不知道如何查看创建的数据库。

我已经创建了数据库适配器类,并在我的主活动类中运行它。我在模拟器中运行没有问题,但是如何查看内容呢? 我正在阅读的一本书上说,“使用DDMS检查Android设备/模拟器的文件系统。数据库是在数据库文件夹下创建的”,并在Eclipse中的数据库文件夹下有一个数据库的图片。 我不知道第一部分是什么意思(使用DDMS?),也不知道人们提到的/data/data文件夹在哪里。

即使在CMD中运行SQLite3并键入“.tables”,也找不到任何数据库。

5个回答

23

在Eclipse中,依次点击菜单栏 Window > Open Perspective > Other > DDMS。像下面答案中的图片一样导航到数据库,选择数据库,然后点击右上角的软盘图标从设备上拉取文件。

在模拟器中,DDMS中的位置应该是 /data/data/com.yourNamespace/databases 文件夹下的内容,在File Explorer选项卡中查看。

enter image description here 这是DDMS界面的截图。在右侧的File Explorer选项卡中,您可以深入到databases文件夹。这些都是虚拟文件夹,所以您无法在系统中找到它们。如果要检查数据库,您需要选择从设备中拉取文件的icon(抱歉,在此屏幕截图中被裁剪掉了),然后在SQLite中打开该文件。


11

从命令行中获取应用程序的数据库

->adb -e shell

--->su root

--->cd data/data/app.name.com/databases

--->cp databasename.db /sdcard/DCIM/

--->exit

--->exit

->adb pull sdcard/DCIM/databasename.db


1
我无法在数据文件夹中看到任何东西,但这个命令帮助我拉出了数据库文件。谢谢。 - ashishdhiman2007
我能够提取数据库并使用DB Browser for SQLite查看完整的数据库架构。谢谢!太好了。 - ankurdayalsingh

3

在Android Studio中,您可以在模拟器上运行应用程序并单击“设备文件资源管理器”explore data/data/{appname}/database

查看data/data/{appname}/database。然后右键单击并保存数据库文件。就是这样简单。


2
如果您的手机没有被root,只有您的应用程序可以访问您的数据库,并且无法通过DDMS查看它。您需要实现一个功能将数据库复制到存储卡上(确保您具有外部存储权限)。从那里,您可以使用像aSQLiteManager这样的应用程序查看您的数据库。
或者,您可以使用Log方法和游标打印出您需要的任何信息,但第一种方法将为您提供更图形化的浏览数据库的方式。

1

数据库在模拟器上创建。应该在 /data/data/[package]/databases/ 中。 您可以使用 DDMS 导航模拟器的文件系统并将数据库文件从中提取到本地进行检查。

或者您可以在 shell(adb shell)上使用 sqlite3 进行检查。


SQLite3 表示没有数据库。 - Rob
SQLite没有这样说。进入那个文件夹并查看内容。如果文件不存在,则表示您未能创建数据库。 - ahmet alp balkan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接