在 Android Studio 中查看设备上的 SQLite 数据库

Posted

技术标签:

【中文标题】在 Android Studio 中查看设备上的 SQLite 数据库【英文标题】:View SQLite database on device in Android Studio 【发布时间】:2015-03-29 00:40:51 【问题描述】:

我使用的是最新版本的 android Studio。当我在模拟器上运行我的应用程序时,我可以通过以下方式查看我的数据库:

tools -> Android Device Monitor -> clicking on the emulator in the left panel -> file explorer -> data -> data -> com.project-name

但在设备上运行我的应用时,此选项不可用。

我已经检查了相关问题:

    Android - viewing SQLite databases on device?这里投票最多的答案建议将数据库复制到SDcard,甚至是eclipse。 Access sqlite database on android device

这些问题来自 2011 年和 2010 年。 有没有我可以使用的插件或其他外部工具?

【问题讨论】:

“但在设备上运行我的应用程序时,此选项不可用”——正确。这与您选择的 IDE 无关。您可以使用 adb shell run-as(请参阅 this answer 到您的第二个链接问题)。 如果您只想查看您的数据库,您可以从 Playstore 下载 DB Browser。 @Opiatefuchs 我刚刚下载了 DB Browser。如何找到我的数据库? 选择“搜索数据库”并输入您的数据库的确切名称... View contents of database file in Android Studio的可能重复 【参考方案1】:

通过 ADB Shell 连接到 Sqlite3

我在 Android Studio 中没有找到任何方法来执行此操作,但我使用远程 shell 访问数据库,而不是每次都拉取文件。

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

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 数据库中的表:

    列出数据库中的表:

    .tables
    

    列出表格的外观:

    .schema tablename
    

    打印整个表格:

    SELECT * FROM tablename;
    

    列出所有可用的 SQLite 提示命令:

    .help
    

来源:This所以回答..

【讨论】:

它显示无法打开数据库..第五步之后... :( @Ben 您的设备需要植根才能在物理设备上进行这项工作。否则,您必须使用模拟器,例如 Android Studio 中提供的模拟器。 在 Windows 10 上,我得到了 sqlite3 .db : /system/bin/sh: sqlite3: not found - 我是否必须为 sqlite3 设置一些路径变量? @Ben 您可能需要 root avd,和/或在步骤 3 'root adb -s emulator-xxxx shell' 以 root 身份启动 adb 第 5 步 sqlite 在 cmd 中打开后,但无法在命令提示符下输入任何内容【参考方案2】:

查看实时数据库的最简单方法是:

#适用于 Android Studio 4.1 Canary 6 及更高版本

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

要开始使用,请将您的应用部署到运行 API 级别 26 或更高级别的设备上,然后从菜单栏中选择 View > Tool Windows > Database Inspector

#适用于 Android Studio 4.0 及更低版本

使用Android Debug Database 库

Android 调试数据库允许您编辑删除创建数据库共享首选项 以非常简单的方式直接在浏览器中取值 在您的数据中搜索 Debug Room 内存数据库 无需root设备

使用:


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

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

启动/运行应用程序


在LogCat的日志中找到调试链接

i.e. D/DebugDB: Open http://192.168.232.2:8080 in your browser

链接会有所不同,请在任意浏览器中打开

就是这样享受!!!

如果您通过 USB 使用它,请运行 ADB forward tcp:8080 tcp:8080 Android 手机和笔记本电脑应连接到同一网络

欲了解更多详情,请访问library。

【讨论】:

【参考方案3】:

Android Studio 4.1 版本有一个新的原生方式叫做 Database Inspector,查看this 答案!

会在android studio底部显示

【讨论】:

请考虑将您的答案作为评论发布 对不起,我还没有足够的声誉:(,所以我会让答案更有用! 谢天谢地【参考方案4】:

以下是Android中查看sqlite数据库最简单的解决方案。

https://github.com/facebook/stetho

查看 SQLite DB 的步骤

1) 添加gradle依赖

compile 'com.facebook.stetho:stetho:1.5.0' 
implementation 'com.facebook.stetho:stetho:1.5.0' - for kotlin

2) 在应用程序类中

public class MyApplication extends Application 
  public void onCreate() 
   super.onCreate();
   Stetho.initializeWithDefaults(this);
  
 

3) 转到谷歌浏览器并输入“chrome://inspect/#devices”以查看已连接 设备并且可以访问 SQlite DB。

【讨论】:

即使在Java中,现在也应该替换为实现,而不是编译。【参考方案5】:

This app 非常有用,免费并且将保持免费(由开发人员确认)。非常容易添加、编辑和删除。

它适用于有根设备和模拟器。另外,如果您有数据库文件,那么 您可以从所有设备的 SDCard 中浏览它,包括非 root 用户。

【讨论】:

以上是关于在 Android Studio 中查看设备上的 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法在三星设备上的 Android Studio 3.4.1 中运行项目

是否可以在 MAC 上的 Android Studio 中使用 IOS 模拟器设备?

Android Studio - 真正的 Android 设备上的 Google 地图在发布 apk 时仍为空白

设备上的 Android Studio 慢速调试

Flutter Android Studio 中缺少设备文件资源管理器选项

为啥 Android Studio 预览版中的 Activity 外观与设备上的不同?