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

我一直在使用Android工作室来开发我的应用程序,因为它是发布的。

直到最近,一切都很好,我必须调试和检查数据库文件。由于我不知道如何直接看到数据库,当我调试生成数据库文件时,我不得不将数据库文件从我的手机导出到PC上。

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

这太复杂了。有人有更好的方法来做到这一点在Android Studio(我知道它更容易在Eclipse) ?

537189 次浏览

这可能不是你想要的答案,但我没有更好的方法从手机下载DB。我的建议是确保您使用的是这种迷你ddms。它将超级隐藏,但如果你不点击非常小的伪装框在程序的左下角。(试着在它上面盘旋,否则你可能会错过它。)

同样,下拉菜单显示没有过滤器(右上)。它实际上有很多不同的方法,你可以通过PPID,名称等监视不同的进程/应用程序。我一直用这个来监控手机,但请记住,我不是在做那种需要120%肯定数据库没有做一些不寻常的事情的开发工作。

希望能有所帮助

enter image description here

通过ADB Shell连接到Sqlite3

我还没有找到任何方法来做到这一点,在Android工作室,但我访问db与远程shell,而不是每次拉动文件。

在这里找到所有信息: http://developer.android.com/tools/help/adb.html#sqlite < / p >

1-在命令提示符中进入你的平台工具文件夹

2-输入命令adb devices来获取你的设备列表

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

3-连接一个外壳到您的设备:

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连接到你的数据库:

sqlite3 <your-db-name>.db

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

Select * from table1 where ...;

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

SQLite备忘单

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

  1. 列出数据库中的表:

    .tables
    
  2. List how the table looks:

    .schema tablename
    
  3. Print the entire table:

    SELECT * FROM tablename;
    
  4. List all of the available SQLite prompt commands:

    .help
    

最后,我找到了一个最简单的解决方案,不需要打开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/

您需要做的就是复制并存储这个命令,然后您就可以一次又一次地使用它。

第三,如果你得到了Permission Denied或类似的东西,只需在上一个命令之前运行adb root

要知道sqlite数据库存储由你在android studio,你需要遵循简单的步骤:

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/ < / p >

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

http://sqlitebrowser.org/下载浏览器

这里是屏幕截图显示浏览器包含注册数据库

谢谢,

从Android Studio查看数据库:

选项1:

  1. 下载并安装< >强SQLiteBrowser < / >强

  2. 将数据库从设备复制到您的PC:

    • < p > Android Studio版本<3.0 < / >强:

      • 通过Tools > Android > Android Device Monitor打开摘要讨论

      • 点击你的设备在左边。
        你应该看到你的应用程序: enter image description here

      • 进入文件资源管理器(右边的一个选项卡),进入/data/data/databases enter image description here

      • 选择数据库只要点击它。

      • 进入“Android Device Monitor”窗口的右上角。点击'从设备中提取文件'按钮: enter image description here

      • 将打开一个窗口,询问您要将数据库文件保存在何处。保存它你想在你的PC上的任何地方。

    • < p > Android Studio版本>= 3.0:

      • 通过View > Tool Windows > Device File Explorer打开设备文件资源管理器

      • 进入data > data > PACKAGE_NAME > database,其中PACKAGE_NAME是你的包的名称(在上面的例子中是com。电影)

      • 右键单击数据库并选择Save As...保存它你想在你的PC上的任何地方。

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


选项2:

转到 Github仓库,并按照自述中的说明,以便能够在您的设备上查看您的数据库。你得到的结果是这样的:

enter image description here

就是这样。当然,在发布应用之前,你应该撤销所有这些步骤。

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

$ 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>=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拉用户访问。

$ 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

我把这个过程的unix命令行自动化放在一起,并把代码放在这里:

https://github.com/elliptic1/Android-Sqlite3-Monitor

它是一个shell脚本,以包名和数据库名作为参数,从附加的Android设备下载数据库文件,并针对下载的文件运行自定义脚本。然后,使用像“watch”这样的unix工具,你可以打开一个终端窗口,定期更新数据库脚本输出的视图。

事实上,我很惊讶没有人给出这个解决方案:

看看Stetho

为了不同的目的(其中之一是数据库检查),我在多个场合使用过Stetho。在实际的网站中,它们还讨论了用于网络检查和查看视图层次结构的特性。

它只需要一个小小的设置:1个gradle依赖项添加(你可以注释掉生产构建),几行代码来实例化Stetho,和一个Chrome浏览器(因为它使用Chrome devtools来做所有事情)。

< p > 更新: 你现在可以使用Stetho来查看Realm文件(如果你使用的是Realm而不是SQLite DB) < p > 更新# 2: 你现在可以使用Stetho来查看Couchbase文档 < p > 更新# 3: Facebook正致力于将Stetho的所有功能添加到其新工具Flipper中。Flipper已经具备了Stetho的许多功能。 所以,现在可能是做出改变的好时机。https://fbflipper.com/docs/stetho.html < / p >

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

SQLScout

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

这是一个非常古老的问题,我的答案与上面的一些答案相似,但做得更快。下面的脚本是Mac,但我相信有人可以修改它为Windows。

1)在Mac上打开脚本编辑器(你可以在Spotlight中搜索脚本编辑器)
2)复制并粘贴下面的文本,并修改它与你的SDK路径,包的名称,等(见下文)
3)保存脚本!!< / p >

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

替换下面脚本中的内容:

< em > path_to_my_sdk < / em > ==>>把完整的路径到你的sdk
< em > my_package_name < / em > ==>>应用程序的包名称
myDbName.db ==>数据库的>文件名

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

希望这能帮助到一些人。

我使用windows 7,我的设备是一个模拟的android设备API 23。我想对于任何真实的设备都是一样的,只要它是根设备,API不超过23

进入工具-> Android -> Android设备监视器。 进入文件资源管理器。在我的例子中,它是在data/data//app_webview/databases/file_0/1

我必须手动在名为"1"的文件末尾添加。db

我知道这个问题很老了,但我相信这个问题仍然存在。

从浏览器查看数据库

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

enter image description here

集成可以通过jitpack.io完成:

项目build.gradle:

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

应用build.gradle:

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

安装应用程序类

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

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

现在,对于您的发布构建类型(或产品风味),您将以下应用程序类添加到您的release(或产品风味)文件夹(也在java >your.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
@Override
public void onCreate() {
super.onCreate();
}
}

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

还要告诉AndroidManifest.xml你正在使用自己的应用程序类。这将在你的main文件夹中完成:

<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(或产品风味)文件夹(也在java >your.app.package):

public class MyApp extends AbstractDebugGhostExampleApplication {
private DebugGhostBridge mDebugGhostBridge;


@Override
public void onCreate() {
super.onCreate();


mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);
mDebugGhostBridge.startDebugGhost();
}
}

你可以得到工具在这里

我不得不把数据库从手机拉到PC。现在我使用这个制作精良的免费应用程序,它有很多功能。它使用扎根设备在__abc0上工作。< br > 如果你找到了如何让它在没有root的情况下工作,请告诉我

截图sqlitprime

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

Android Studio 3及以上,你可以在Android Studio的右下角看到“设备文件浏览器”;部分。

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

/data/data/{package_name}/databases/

enter image description here

右键单击db文件并另存为…(然后保存到桌面)。

然后使用SQLite sqlitebrowser.org(先下载并安装),单击“打开数据库”,选择保存的*.db文件,然后选择“浏览数据”选项卡并选择表以查看其内容。 enter image description here < / p >

经过所有的解决方案,我将建议

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

在构建中添加以下依赖项。Gradle文件

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

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

Stetho.initializeWithDefaults(this);

这需要你

import com.facebook.stetho.Stetho;

现在运行应用程序从android工作室,打开Chrome和在地址栏类型
chrome: / /检查/ < / >强

在资源选项卡>web SQL 检查数据库和表 在实时玩它很容易

更新: Stethos在最近的Chrome版本中被打破。如果有问题,尝试Edge开发工具代替优势:/ /检查/ #设备 -参见:https://stackoverflow.com/a/67674265/14232521

打开Android Studio底部的设备文件探索终端。

打开名为数据的文件夹,然后在Data中再次打开文件夹数据

打开文件夹数据

向下滚动文件夹列表,找到带有your.package.name。的文件夹。打开文件夹your.package.name > 数据库。你得到your.databaseName。右键单击your.databaseName并保存为C:/your/Computer/Directory。

进入C:/your/Computer/Directory,用DB SQLite打开your.databaseName

enter image description here

Android Studio 3。X

  1. 视图->工具Windows ->设备文件资源管理器
  2. 在文件资源管理器中data->data->com. com。(个人包)- >数据库
  3. 右键单击数据库并保存到本地机器。要打开文件,可以使用SQLite
  4. . Studio
下面是SQLite Studio的链接: https://sqlitestudio.pl/index.rvt?act=download < / p >
最简单的方法是连接您的设备并运行Android Studio 然后从工具栏:

  1. 视图——>工具窗口——>设备文件资源管理器
  2. 进入data/数据并找到您的包
  3. 找到你想要浏览并下载的DB文件
  4. 我推荐使用这个在线工具:https://sqliteonline.com/来探索db文件

另一种方法是使用Stetho库:

  1. 在build.gradle中添加Stello依赖:

    编译com.facebook.stetho: stetho: 1.5.0的< / p >

  2. 在你的应用程序类或主活动的onCreate()上放以下一行:

    < / p > Stetho.initializeWithDefaults(这个);

  3. 连接您的设备,运行应用程序并在Chrome上进入以下站点:

    chrome: / /检查/ #设备< / p >

就是这样。现在可以探索您的表了。

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

它是其他答案加加号的组合

  1. 安装DB浏览器的SQLite
  2. 从设备文件资源管理器中获取MyBase.db的确切位置比如"/data/data/com.whatever.myapp/databases/MyBase.db"
  3. 将项目窗口从Android设置为project -这样你就可以看到文件(build. exe)。gradle, gradle.properties、…等)
  4. 在项目窗口右键单击并选择在终端中打开
  5. 在终端中,你现在在应用程序的根目录中,所以执行:adb pull /data/data/com.whatever.myapp/databases/MyBase.db
  6. 在Android Studio的项目窗口中有一个文件mybase。db
  7. 双击项目中的db文件,现在就可以在db浏览器中浏览/编辑数据库了
  8. 当你准备好了,只需要在DB浏览器中写入更改,这样数据库就保存在硬盘上了
  9. 在终端使用命令:adb push MyBase.db /data/data/com.whatever.myapp/databases/MyBase.db,你只需从硬盘发送到设备上编辑的数据库。

如果你想在ANDROID STUDIO中浏览你的数据库,这是我正在使用的:

去文件/设置/插件,看看这个:

enter image description here

< p >… 在重新启动Android Studio之后,你可以像这样选择你下载的数据库文件: enter image description here < / p > < p >…点击“Open SQL Console”图标,你就会看到Android Studio中数据库的漂亮视图: ![在这里输入图像描述 . < / p >

Android工作室中查看数据库内容的简单方法。

#用于Android Studio 4.1 Canary 6及以上

你可以使用一个非常简单的Android Studio的功能数据库检查员。 在这里,您可以使用新的数据库检查器检查,查询和修改应用程序的数据库。例如,您可以通过修改数据库中的值来调试正在运行的应用程序,并在实时 不用离开Android Studio中的设备上测试这些更改

首先,将应用程序部署到运行API级别26或更高的设备上,并从菜单栏中选择查看>工具Windows >数据库检查器 .

#为Android Studio 4.0及更低版本

第一个,在Android Studio安装数据库导航器插件

enter image description here

第二个,重启Android Studio

第三,将数据库保存到默认位置,如:(C:\Users\User 名称\文档\AndroidStudio\DeviceExplorer\模拟器或设备\数据\数据\包名称\数据库)

enter image description here

第四,连接保存在数据库导航器中的dbname_db文件

enter image description here enter image description here < / p >

给出与步骤第三相同的DB文件路径

(C:\用户\用户名\文档\AndroidStudio\DeviceExplorer\模拟器或设备\数据\数据\包名\数据库\包名\dbname_db)

最后,只是测试DB连接和打开控制台,做任何你想做的事情。

enter image description here

如果你想要刷新DB,只需重复步骤第二个并保存它或刷新。

编码快乐! !

最简单的方法是使用Android调试数据库(GitHub上有7.7万颗星)

Android-Debug-Database .

优点:

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

使用方法:

  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或局域网)

更多信息请访问GitHub上的库页

按照上面的步骤在Android设备资源管理器中打开应用程序的数据库文件夹,在那里你可以看到六个文件,前三个命名为Android,最后三个命名为你的数据库名称。您只需要使用最后三个文件,将这三个文件保存在您首选的位置。您可以通过右键单击文件并单击save as按钮来保存这些文件(就像我的数据库名为room_database,因此三个文件分别命名为room_database、room_database-shm和room_database-wal。对应文件的重命名如下

< p > <代码> 1)从room_database到room_database.db 2) room_database-shm到room_database.db-shm 3) room_database-wal到room_database.db-wal

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

随着Android Studio 4.1 Canary和Dev预览的发布,你可以使用一个名为

<标题>数据库检查员h1 > < /

DB inspector

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

Live Queries

你可以使用运行SQL选项运行你的查询,或者如果你使用房间,然后打开数据库检查器并运行应用程序,你可以通过单击@Query注释左侧的运行按钮在你的界面中运行DAO查询。

live queries

在Android 4.1 Canary 5预览中引入了新的数据库检查器,您现在可以直接从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

最后,Android Studio通过数据库检查器选项卡支持此功能。您可以轻松应用视图/更新/查询操作。它现在还不是稳定的渠道,但你可以尝试Android Studio 4.1 Canary 5或更高版本。

你可以看到数据库检查器在这里的样子

你可以下载相应的在这里版本

使用android sqlite作为服务器端数据库

遵循以下步骤:

  1. 找到数据库<强> < / >强工具窗口,并像下图一样单击它

enter image description here

  1. 点击+图标,并像下图一样选择Android SQLite

enter image description here

  1. 连接你的android设备到你的电脑

  2. 选择你关心的包并选择如下图所示的数据库 enter image description here < / p >

  3. 在以上所有步骤之前,你必须确保你有正确的< >强许可< / >强来访问文件:/data/data/ database/ databasfile .db

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

enter image description here

enter image description here

最后一个重要的东西是

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

enter image description here

希望这对你有用!谢谢你!

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

下面是如何查看数据库中的数据:

步骤:

  1. 执行视图比;工具窗口>设备文件资源管理器

  2. 然后文件夹数据比;数据,你会看到应用程序列表。

  3. 这里向下滚动一点,看包装[你的包for 应用程序]。< / p >

  4. 找到你的包后,查看数据库文件夹并选择文件,右边 点击 it和保存 [download]

  5. 因为你不能直接看到数据,有一个工具,DB浏览器的SQLite, 去网站https://sqlitebrowser.org/

  6. 打开Db浏览器,单击开放数据库,选择数据库表 you . bb1文件

新编辑

现在(当你阅读这篇文章的时候),它甚至更容易,因为Android工作室已经附带了数据库检查员(就在右下角附近)。

点击它,你会看到数据库。 但是,确保最低空气污染指数为26,如果没有,通过build.gradle文件将其更改为minSdkVersion 26

Android Studio从4.1版开始就绑定了数据库检查员

但它有一个局限性:

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

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

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

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.

4.The databases in the currently running app appear in the Databases pane. Expand the node for the database that you want to inspect.

enter image description here

在Arctic fox Studio中,它位于底部工具栏中的“App Inspection"

app inspection