在Android Studio中查看数据库文件的内容

时间:2013-07-08 14:54:15

标签: android android-studio android-sqlite ddms

我一直在使用 Android Studio 来开发我的应用程序,因为它已经发布。

直到最近,一切都运行良好,我必须与检查数据库文件一起调试。由于我不知道如何直接查看数据库,因此当我调试生成数据库文件时,我必须将数据库文件从手机导出到PC。

为了做到这一点,我必须打开DDMS > File Explorer。一旦我打开DDMS,我就必须重新连接USB,我就失去了调试线程。检查数据库文件后,我必须关闭DDMS并再次重新连接USB以返回调试模式。

这太复杂了。有没有人有更好的方法在Android Studio中执行此操作(我知道它在Eclipse中更容易)?

28 个答案:

答案 0 :(得分:269)

从Android Studio查看数据库:

编辑:要在模拟器上查看数据库,请按以下步骤操作(对于实际设备,请滚动到底部):

  1. 下载并安装SQLiteBrowser
  2. 将数据库从设备复制到PC:

    • Android Studio版本< 3.0

      • 通过Tools > Android > Android Device Monitor

      • 打开 DDMS
      • 点击左侧的设备 你应该看到你的申请: enter image description here

      • 转到文件资源管理器(右侧的其中一个标签),转到/data/data/databases enter image description here

      • 只需点击即可选择数据库

      • 转到Android设备监视器窗口的右上角。点击“ 从设备中提取文件 ”按钮: enter image description here

      • 将打开一个窗口,询问您要保存数据库文件的位置。 保存在您的PC上随时随地。

    • Android Studio版本> = 3.0

      • 通过View > Tool Windows > Device File Explorer

      • 打开设备文件浏览器
      • 转到data > data > PACKAGE_NAME > database,其中PACKAGE_NAME是您的软件包的名称(上例中的 com.Movie

      • 右键单击数据库并选择Save As...保存在您的PC上随时随地。

  3. 现在,打开您安装的 SQLiteBrowser 。单击“打开数据库”,导航到保存数据库文件的位置,然后单击打开。您现在可以查看数据库的内容。


  4. 要在移动设备上查看数据库:

    转到this Github存储库并按照自述文件中的说明操作,以便能够在您的设备上查看您的数据库。你得到的是这样的:

    enter image description here

    就是这样。但是,在发布应用程序之前,您应该撤消所有这些步骤。

答案 1 :(得分:185)

通过ADB Shell连接到Sqlite3

我在Android Studio中找不到任何方法,但是我使用远程shell访问数据库,而不是每次都提取文件。

在此处查找所有信息: http://developer.android.com/tools/help/adb.html#sqlite

1-在命令提示符中转到platform-tools文件夹

2-输入命令adb devices以获取设备列表

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx   device

3-将shell连接到您的设备:

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell

4-导航到包含db文件的文件夹:

cd data/data/<your-package-name>/databases/

5-运行sqlite3连接到你的db:

sqlite3 <your-db-name>.db

6-运行你喜欢的sqlite3命令,例如:

Select * from table1 where ...;
  

注意:查找下面要运行的更多命令。

SQLite cheatsheet

在SQLite数据库中查看表有几个步骤:

  1. 列出数据库中的表格:

    .tables
    
  2. 列出表格的外观:

    .schema tablename
    
  3. 打印整个表格:

    SELECT * FROM tablename;
    
  4. 列出所有可用的SQLite提示命令:

    .help
    

答案 2 :(得分:68)

不使用模拟器时最简单的方法

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name

注意事项:

我有一段时间没有测试过这个。它可能不适用于API&gt; = 25。 如果cp命令不起作用,请尝试以下操作之一:

# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>

# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name

说明:

第一个块将数据库的权限配置为可读。这会利用run-as,允许您模拟您的软件包的用户进行更改。

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as

接下来,我们将数据库复制到世界可读/可写目录。这允许adb pull用户访问。

$ cp /data/data/your.package.name/databases/database_name /sdcard

然后,替换现有的读/写权限。这对您的应用程序的安全性很重要,但是在下次安装时将替换这些权限。

$ run-as your.package.name
$ chmod 660 databases/database_name 
$ chmod 660 databases
$ exit # Exit the shell started with run-as

最后,将数据库复制到本地磁盘。

$ exit # Exits shell on the mobile device (from adb shell) 
$ adb pull /sdcard/database_name

答案 3 :(得分:39)

Android Studio 3 及更高版本中,您可以在Android Studio的右下方看到“设备文件资源管理器”部分。

打开它,然后你可以看到文件树,你可以在这条路径中找到一个应用程序数据库:

/data/data/{package_name}/databases/

enter image description here

答案 4 :(得分:21)

最后,我找到了一个最简单的解决方案,无需打开DDMS。

实际上,解决方案基于@Distwo所提到的,但它不一定非常复杂。

首先,请记住设备中数据库文件的路径,它应该相同。    例如我的是:/data/data/com.XXX.module/databases/com.XXX.module.database

第二次,执行此命令将数据库文件拖到PC上

 adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

您需要做的只是复制并存储此命令,然后您可以反复使用它。

第三次,如果您获得了拒绝权限或类似内容,只需在上一个命令之前运行adb root

答案 5 :(得分:15)

试试这个android studio插件SQLScout。您可以实时查看和编辑您的应用数据库。

SQLScout

编辑:请记住它是一个付费插件,但有24小时试用,适合头痛时间。

答案 6 :(得分:7)

在完成所有解决方案后,我会建议

使用 Stethos
让我们看看它有多简单

在build.gradle文件中添加以下依赖项

compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

然后转到mainActivity onCreate方法 添加以下行

Stetho.initializeWithDefaults(this);

这将要求您

import com.facebook.stetho.Stetho;

现在从android studio运行应用程序时,打开Chrome并在地址栏中输入
chrome:// inspect /

在资源选项卡中> Web SQL 检查数据库和表 轻松实时地玩

答案 7 :(得分:5)

要知道你在android studio中创建的sqlite数据库存储位置,你需要按照简单的步骤:

1.Run your application
2.Go to Tools--->Android---->Device Monitor
3.Find your application name in left panel
4.Then click on File Explorer tab
5.Select data folder
6.Select data folder again and find your app or module name
7.Click on your  database name
8.On right-top window you have an option to pull file from device.
9.Click it and save it on your PC
10.Use FireFox Sqlite manager to attach it to your project.

有关详细信息,此链接将非常有用。 http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

要查看db文件中的数据,您需要下载sqlite浏览器或在任何浏览器中添加相同的插件,这样您就需要在浏览器中打开文件并查看数据。

http://sqlitebrowser.org/

下载浏览器

以下是显示包含注册数据库的浏览器的屏幕截图

谢谢,

答案 8 :(得分:5)

Android 4.1 Canary 5 Preview中引入的新数据库检查器,您现在可以从IDE-https://developer.android.com/studio/preview/features?linkId=86173020#database-inspector

直接在运行的应用程序中检查,查询,修改和调试SQLite数据库

还支持数据库实时查询-https://developer.android.com/studio/preview/features?linkId=86173020#query

enter image description here

答案 9 :(得分:4)

最简单的方法是连接设备并运行Android Studio 然后从工具栏:

  1. 查看->工具窗口->设备文件资源管理器
  2. 进入数据/数据并找到您的包
  3. 找到要浏览的数据库文件并下载
  4. 我建议使用此在线工具:https://sqliteonline.com/探索数据库文件

另一种方法是使用Stetho库:

  1. 向您的build.gradle添加Stello依赖项:

    编译'com.facebook.stetho:stetho:1.5.0'

  2. 将以下行放在Application类或主活动的onCreate()上:

    Stetho.initializeWithDefaults(this);

  3. 连接设备,运行应用程序,然后在Chrome上输入以下网站:

    chrome:// inspect /#devices

就是这样。您现在可以浏览表格。

注意:建议移至生产环境之前删除依赖项。

答案 10 :(得分:3)

即使这是一个非常老的问题,但我认为今天仍然有意义。在最新版本的android studio中,我找到了一种查看方法[我不确定以前的版本中是否可用。 ]

这是您如何查看数据库中的数据的方法:

步骤:

  1. 转到查看>工具窗口>设备文件资源管理器

  2. 然后打开文件夹 data> data ,您将看到应用程序列表。

  3. 向下滚动一点,然后查看软件包 [您的软件包 应用]。

  4. 找到您的软件包后,请参见 databases 文件夹并选择文件,右 点击,然后保存 [下载]

  5. 由于您无法直接看到数据,因此有一个工具 SQLite的数据库浏览器, 转到网站 https://sqlitebrowser.org/

  6. 打开Db浏览器并单击打开数据库,然后选择数据库表 下载后,它将向您显示数据。

答案 11 :(得分:3)

Android Studio 中查看数据库内容的简便方法。

首先,在Android Studio中安装 Database Navigator 插件

enter image description here

第二,重新启动Android Studio

第三,将数据库保存到默认位置,例如: (C:\ Users \ User  名称\ Documents \ AndroidStudio \ DeviceExplorer \仿真器或设备\数据\数据\包名称\数据库)

enter image description here

第四,在 Database Navigator

中连接保存的 dbname_db 文件

enter image description here enter image description here

提供与步骤第三

中使用的数据库文件路径相同的路径

([C:\ Users \ User Name \ Documents \ AndroidStudio \ DeviceExplorer \ emulator或device \ data \ data \ package name \ databases \ package naem \ dbname_db)

最后,只需测试数据库连接并打开控制台,然后执行您想做的任何事情。

enter image description here

如果要刷新数据库,只需重复步骤第二,然后保存或刷新即可。

快乐的代码!!!!

答案 12 :(得分:2)

对于Android Studio 3.X

  1. 查看->工具窗口->设备文件资源管理器
  2. 在文件资源管理器中的data-> data-> com。(您的应用程序包)->数据库中
  3. 右键单击数据库,然后保存在本地计算机上。要打开,可以使用SQLite文件 只需在其上拖动数据库文件即可。

这里是SQLite Studio的链接: https://sqlitestudio.pl/index.rvt?act=download

答案 13 :(得分:2)

Android Studio 自 4.1 版起捆绑了 Database Inspector

但它有一个限制:

<块引用>

数据库检查器仅适用于 API 级别 26 及更高级别的 Android 操作系统中包含的 SQLite 库。它不适用于与您的应用捆绑在一起的其他 SQLite 库。

答案 14 :(得分:2)

随着Android Studio 4.1 Canary and Dev preview 的发布,您可以使用名为

的新工具。

Database Inspector

DB inspector

安装AS 4.1+,运行应用程序,打开数据库检查器,现在您可以在数据库检查器面板的左侧查看数据库文件,然后选择表以查看内容。

Live Queries

您可以使用运行SQL 选项运行查询,或者如果您使用 Room 然后打开数据库检查器并运行应用程序,则可以在以下位置运行DAO查询:单击@Query批注左侧的运行按钮来显示您的界面。

live queries

答案 15 :(得分:2)

打开Android Studio底部的设备文件浏览终端。

打开名为 Data 的文件夹,然后在Data内再次打开 Data 文件夹。

Open the folder data

向下滚动文件夹列表,找到具有 your.package.name 的文件夹。打开文件夹 your.package.name > 数据库 。您得到 your.databaseName 。右键单击您的数据库名称,然后将其另存为C:/您的/计算机/目录。

转到C:/ your / Computer / Directory,使用DB SQLite

打开 your.databaseName

enter image description here

答案 16 :(得分:1)

它是其他答案加上一个加号的组合

  1. 安装DB Browser for SQLite
  2. 从设备文件资源管理器中获取MyBase.db的确切位置,例如“ /data/data/com.whatever.myapp/databases/MyBase.db”
  3. 将项目窗口从Android设置为Project-这样您就可以看到文件(build.gradle,gradle.properties等)
  4. 在“项目”窗口中,右键单击并选择“在终端中打开”
  5. 在终端中,您现在已从硬键进入应用程序的根目录控制器,因此执行:adb pull /data/data/com.whatever.myapp/databases/MyBase.db
  6. 现在,在Android Studio的“项目”窗口中,您有了文件“ MyBase.db”
  7. 双击Project中的数据库文件,您现在可以在数据库浏览器中浏览/编辑数据库
  8. 准备就绪后,只需在数据库浏览器中执行“写入更改”,以便将数据库保存在hardisk中
  9. 在终端中使用以下命令:adb push MyBase.db /data/data/com.whatever.myapp/databases/MyBase.db,您只需从Hardisk发送到已编辑的数据库设备即可。

答案 17 :(得分:1)

如果您想从ANDROID STUDIO中浏览数据库,这就是我正在使用的内容:

转到“文件/设置/插件”并查找以下内容:

enter image description here

... 重新启动Android Studio后,您可以像这样选择下载的数据库文件: enter image description here

...单击“打开SQL控制台”图标,然后您将在Android Studio中看到数据库的漂亮视图: ![enter image description here

答案 18 :(得分:1)

最简单的方法是使用Android Debug Database(在GitHub上为6.7k星)

Android-Debug-Database

优势:

  • 快速实施
  • 查看所有数据库和共享的首选项
  • 直接编辑,删除,创建数据库值
  • 在给定的数据库上运行任何SQLite查询
  • 搜索数据
  • 下载数据库
  • 添加自定义数据库文件
  • 无需root设备

使用方法:

  1. debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'添加到build.gradle (module)
  2. 启动应用;
  3. 在日志中(在LogCat中)找到调试链接(即D/DebugDB: Open http://192.168.232.2:8080 in your browser,该链接将有所不同)并在浏览器中将其打开;
  4. 享受功能强大的调试工具!

重要提示:

  • 不幸的是,不能与模拟器一起使用
  • 如果要通过USB使用它,请运行adb forward tcp:8080 tcp:8080
  • 您的Android手机和笔记本电脑应连接到同一网络(Wifi或LAN)

有关更多信息,请访问GitHub上的library page

答案 19 :(得分:1)

我不得不将数据库从手机拉到PC。现在我使用这个制作精良且免费的应用程序,它具有很多功能。它适用于API 4.1+ Rooted 设备。
如果您发现如何在没有root的情况下使其工作,请告诉我。

Screenshot SqlitePrime

https://play.google.com/store/apps/details?id=com.lastempirestudio.sqliteprime

答案 20 :(得分:1)

我知道这个问题相当陈旧,但我相信这个问题仍然存在。

从浏览器中查看数据库

我创建了一个开发工具,您可以将其作为lib集成到您的Android应用程序项目中。该工具在您的应用中打开服务器套接字,以通过Web浏览器进行通信。您可以浏览整个数据库并直接通过浏览器下载数据库文件。

enter image description here

可以通过jitpack.io完成整合:

project build.gradle:

//...
allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
//...

app build.gradle:

//...
dependencies {
    //...
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'
    //...
}
//...

设置应用程序类

为了只在某些构建类型或产品风格中编译DebugGhostLib,我们需要一个抽象的Application类,它将以特殊的风格派生。将以下课程放在main文件夹中(java&gt; your.app.package下):

public class AbstractDebugGhostExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Do your general application stuff
    }
}

现在,对于您的发布版本类型(或产品风格),您将以下Application类添加到release(或产品风格)文件夹(也在java&gt; {{1}下面}):

your.app.package

这是引用DebugGhostLib的应用程序类。

另请告诉您的public class MyApp extends AbstractDebugGhostExampleApplication { @Override public void onCreate() { super.onCreate(); } } 您正在使用自己的应用类。这将在您的AndroidManifest.xml文件夹中完成:

main

现在,对于您的调试版本类型(或产品风格),您将以下Application类添加到<manifest package="demo.app.android.sanid.com.debugghostexample" xmlns:android="http://schemas.android.com/apk/res/android"> <!-- permissions go here --> <application android:name=".MyApp"> <!-- register your own application class --> <!-- your activities go here --> </application> </manifest> (或产品风格)文件夹(也在debug&gt; {{1}下面}):

java

您可以获得tool here

答案 21 :(得分:1)

像服务器端数据库一样使用android sqlite

请按照以下步骤操作:

  1. 找到 数据库 工具窗口,然后按如下图所示单击它

enter image description here

  1. 点击图标,然后选择 Android SQLite ,如下图所示

enter image description here

  1. 将您的android设备连接到计算机

  2. 选择您需要的软件包,然后选择数据库,如下图所示 enter image description here

  3. 在执行上述所有步骤之前,必须确保您具有访问文件:/data/data//database/databasefile.db的权限 权限

所有这些步骤之后,您将看到如下数据库内容:

enter image description here

enter image description here

最重要的是

每次更新数据库数据时,都必须单击更新图标。

enter image description here

希望这对您有用!谢谢!

答案 22 :(得分:1)

我使用的是Windows 7,我的设备是一个模拟的Android设备API 23.我认为它对于任何真实设备都是一样的,只要它是root用户且API不高于23

转到工具 - &gt; Android - &gt; Android设备监视器。 转到文件资源管理器。就我而言,它位于数据/数据// app_webview / databases / file_0 / 1

我必须在名为&#34; 1&#34;

的文件的末尾手动添加.db

答案 23 :(得分:1)

这是一个非常古老的问题,我的回答类似于上面的一些答案,但做得更快。下面的脚本适用于Mac,但我确定有人可以为Windows修改它。

1)在Mac上打开脚本编辑器(您只需在Spotlight中搜索脚本编辑器)
2)复制并粘贴下面的文本,并使用您的SDK路径,包名等进行修改(见下文) 3)保存脚本!!

是的,那就是它!只需按下顶部的播放按钮即可获取更新的数据库文件,该文件将存放在您的桌面上。

在下面的脚本中替换以下内容:

path_to_my_sdk ==&gt;&gt;为你的sdk提供完整的路径 my_package_name ==&gt;&gt;申请的包裹名称
myDbName.db ==&gt;&gt;数据库的文件名

set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db"
do shell script getLocalDb

希望这有助于某人。

答案 24 :(得分:0)

这可能不是您正在寻找的答案,但我没有更好的方法从手机下载数据库。我建议的是确保你使用这个mini-DDMS。如果你没有点击程序最左边的非常小的camoflage框,它将是超级隐藏的。 (试图将鼠标悬停在它上面,否则你可能会错过它。)

还有没有过滤器的下拉菜单(右上角)。它实际上有很多不同的方法可以通过PPID,名称和更多来监控不同的流程/应用程序。我一直用这个来监控手机,但请记住,我没有做那种需要120%肯定的开发工作,数据库没有做出与众不同的事情。

希望有所帮助

enter image description here

答案 25 :(得分:0)

按照上述步骤在Android Device Explorer中打开应用程序的数据库文件夹,在那里您可以看到六个文件,前三个文件名为android,后三个文件名为您的数据库名称。您只需要处理最后三个文件,就可以将这三个文件保存在您的首选位置。您可以通过右键单击文件并单击另存为按钮来保存这些文件(例如,我将数据库命名为room_database,因此将三个文件分别命名为room_database,room_database-shm和room_database-wal。 :-

1) room_database to room_database.db 2) room_database-shm to room_database.db-shm 3) room_database-wal to room_database.db-wal

现在在任何SQLite浏览器中打开第一个文件,这三个文件将全部填充到浏览器中。

答案 26 :(得分:0)

最后,Android Studio通过“数据库检查器”选项卡支持此功能。您可以轻松地应用查看/更新/查询操作。目前尚不处于稳定状态,但是您可以尝试使用Android Studio 4.1 Canary 5和更高版本。

您可以看到数据库检查器的外观here

您可以下载适当的版本here

答案 27 :(得分:0)

我想知道为什么这里没有提到这个解决方案!

...在 Android Studio 4.1 及更高版本中...

<?php //Sentence Code if(!empty($sentence)){ if (strlen($sentence) > 20) { $newstring = subtr($sentence, -9); } else { echo 'ERROR! Your sentence is too short. At least 20 characters are required.</br>'; } } ?>

1.Run your app on an emulator or connected device running API level 26 or higher.

2.Select View > Tool Windows > Database Inspector from the menu bar.

3.Select the running app process from the dropdown menu.

enter image description here