查看使用Room Persistence Library创建的数据库的内容

时间:2017-06-08 07:32:43

标签: android android-room

有没有更简单的方法来查看在Android Studio中使用Room Persistence Library创建的数据库的内容?




16 个答案:

答案 0 :(得分:44)

Emulator -> Android Studio -> Device File Explorer -> /data/data/{$packageId}/databases/ -> Save As -> https://sqlitebrowser.org/

答案 1 :(得分:33)

在android studio 3.1中。*

通常在工具窗口栏中单击“ Device File explorer”,您可以在屏幕的右下角找到它。

data/data/your-application-package/databases中打开目录

具有新架构的3个文件在数据库目录中创建

your-database-name
your-database-name-shm
your-database-name-wal

您必须将所有3个导出到同一目录中

然后在任何sqlite浏览器中打开第一个文件(仅具有your-database-name)。

现在您可以看到所有数据.......

your-database-name-shm
your-database-name-wal

这两个额外的文件需要打开db文件 如果您仅打开数据库文件,则在该文件中找不到任何表

答案 2 :(得分:28)

方法1

您可以使用Android-Debug-Database,然后可以从浏览器中对数据进行CRUD,然后就可以从浏览器中看到您的偏好数据。

方法2

如果你不想在浏览器中使用,你必须检查其他文件,需要检查你的数据更改,使用Genymotion Emulator。所以你必须根你的模拟器。试着root你的模拟器,PLZ见https://stackoverflow.com/a/44039429/2772552。 如果你不好,请告诉我。

答案 3 :(得分:10)

下载并安装DB Browser for SQLite

在Android Studio版本> = 3.0中:

通过以下方式打开设备文件资源管理器:

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

在“设备文件资源管理器”中,转到:

数据> 数据> PACKAGE_NAME > 数据库

其中PACKAGE_NAME是软件包的名称(在下面的示例中为com.edgedevstudio.sample)

Device File Explorer

右键单击数据库,然后选择另存为。 将其保存在PC上的任何位置。

打开,SQLite的数据库浏览器,然后单击“打开数据库”并打开数据库。 enter image description here

  

在上述示例中,您应找到“ 待办事项列表”,而不是   “ todolist-shm”或“ todolist-wal”

     

如果不导出3个数据库文件(db_name,db_name-shm和db_name-wal,其中db_name =数据库名称),则将无法读取数据库。

答案 4 :(得分:10)

2020年4月15日-为简便起见,请按照以下步骤操作:

  1. 下载SQLiteBrowser程序:Download SQLite for all OS
  2. 单击“设备浏览器”,该位置位于Android Studio的右下角。
  3. 您将看到很多文件。别担心!遵循路径:数据/数据/ {您的应用包名称}
  4. 右键单击“数据库”,然后在计算机中另存为。
  5. 打开SQLiteBrowser并单击“打开数据库”,然后选择名称与您的数据库名称相同的文件。
  6. 您可以查看文件并选择与数据库表名称相同的文件。
  7. 最后一步,您可以在“数据库结构”附近看到“浏览数据”选项。选择该选项后,您可以看到数据库的数据。

您可以看到步骤,只需跟随下图上的数字

You can see steps on image.

@canerkaseler

答案 5 :(得分:7)

我个人使用Android Debug Database

  

Android调试数据库是用于调试数据库的功能强大的库   和Android应用程序中的共享首选项。

快速入门

将此添加到您应用的build.gradle

debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'

只需启动应用程序,您将在logcat中看到如下所示的条目:

D/DebugDB: Open http://192.168.1.104:8080 in your browser

enter image description here


enter image description here


有关更多信息,请查看github repo

答案 6 :(得分:2)

我是按照以下步骤操作的:

1)从以下链接下载数据库浏览器。

https://sqlitebrowser.org/

2)从IDE转到设备文件资源管理器 并复制生成的enter image description here之类的三个文件,然后选择所有三个文件: 您的db,您的db-shm,您的db-wal

按ctrl + shift + s并将其粘贴到某个文件夹。完成。

3)最终使用DbBrowser App打开your-db。

答案 7 :(得分:2)

在最新版本的Android Studio 4.1 Canary中,Android Studio提供了名为 Database Inspector 的新工具。

您可以使用此Database Inspector工具查看数据库文件及其内容,还可以编辑数据库内容。

enter image description here

如果您使用的是string textboxTagPattern= @"(<input)([^>]*)(type=\"")(text)(\"")([^>]*)(/>)"; Regex rgx = new Regex(textboxTagPattern, RegexOptions.IgnoreCase); MatchCollection questionInputText = rgx.Matches(Question); var arr = Question.Replace("<input", "^<input").Split('^'); string ques = ""; int count = 0; for (int i = 0; i < arr.Length; i++) { //If it is of <input type="text"> format and the id is not present if (arr[i].IndexOf("type=\"text\"") != -1) { count++; if (arr[i].IndexOf("id") == -1) { arr[i] = arr[i].Insert(arr[i].IndexOf("input ") + "input ".Length, "id=\"Answer" + count + "\" "); // According to this logic the 2nd and 3rd textboxes will have the same //id(id=Answer3), which is wrong. How can I correct it? } } ques = ques + arr[i].Replace("\n", ""); } ,那么它也提供了在Android Studio中运行 Route::get('products/{slug}/{id}/details','ProductController@productDetail')->name('productDetail'); <a href="{{ route('productDetail', ['laptop-slug','2']) }}"> <h4 class="prodcardtitle">${element.code} - ${element.name}</h4> </a> 的便利。您可以看到Room Persistence批注左侧的运行按钮。

enter image description here

如果您使用的是@Query,它将实时反映数据库内容的更改,

enter image description here

答案 8 :(得分:1)

使用Stetho

将其作为dependancy添加到您的Android项目中。

Stetho.initializeWithDefaults(this)中调用activity,然后使用chrome inspect工具查看数据库。在Chrome网址栏中输入以下内容:chrome://inspect

Presto!您可以看到自己的Room database

答案 9 :(得分:1)

使用Android Studio 4.1 Canary 6和更高版本,您可以使用新的数据库检查器检查,查询和修改应用程序的数据库。例如,您可以通过修改数据库中的值并测试设备上的更改来调试正在运行的应用程序。

https://developer.android.com/studio/preview/features#database-inspector

答案 10 :(得分:1)

您现在可以在 Android Studio 的 Database Inspector 中查看它

下图

Database Inspector Tab in Android Studio

答案 11 :(得分:0)

<!DOCTYPE html>
{% load static %}
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <div style="color: red;">
      <a href="{% url 'admin:index' %}">admin</a>
      {% block contents %}
      {% endblock %}
    </div>
  </body>
</html>

{% extends 'post/base.html' %}
{% block contents %}
{% for post in object_list %}
  {% autoescape off %}{{ post.text }}{% endautoescape %}
  {{ post.text|safe }}
{% endfor %}
{% endblock %}

答案 12 :(得分:0)

我最近尝试了Sethto By Facebook

  

Stetho是用于Android应用程序的复杂调试桥。什么时候   启用后,开发人员可以使用Chrome开发者工具功能   本机属于Chrome桌面浏览器

您只需要包括gradle依赖项并在MainApp中调用即可。而已。 您可以使用chrome://inspect/(包括sqlite数据库)访问chrome窗口中的所有工具。

以下是屏幕快照,由模拟器上的 Room Database 检查。到目前为止,我只在模拟器中尝试过。

enter image description here

答案 13 :(得分:0)

从设备文件浏览器获取数据库(3个文件)后,如上面的评论所述

我真的推荐简单的程序,例如使用“用于SQLite的数据库浏览器” https://sqlitebrowser.org/

答案 14 :(得分:0)

在最新版本的 Android Studio 中,您可以在 Database Inspector 工具窗口中使用 App Inspection

enter image description here



转到App Inspection。然后选择进程。 Database Inspector 现在将显示数据库内容。

enter image description here

答案 15 :(得分:0)

谷歌官方: 现在有一种非常简单的方法可以直接从 Android Studio 查看您的 Room DB。如此简单你会笑=) 看看这个:https://developer.android.com/studio/inspect/database