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

23

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

工具 -> Android 设备监视器 -> 在左侧面板中单击模拟器 -> 文件浏览器 -> 数据 -> 数据 -> com.project-name

但是在设备上运行应用程序时这个选项不可用。

我已经检查了相关问题:

  1. Android - 如何在设备上查看SQLite数据库? 这里最受欢迎的答案建议将数据库复制到SD卡,甚至适用于eclipse。
  2. 如何访问Android设备上的SQLite数据库?

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


"但是在设备上运行我的应用程序时,这个选项不可用" - 正确。这与你选择的集成开发环境无关。你可以使用 **adb shell run-as**(参见[这个答案](https://dev59.com/NG445IYBdhLWcg3wcZ8N#14193376)回答你第二个链接的问题)。" - CommonsWare
如果你只想查看你的数据库,你可以从Playstore下载DB Browser。 - Opiatefuchs
@Opiatefuchs 我刚刚下载了DB Browser。我该如何找到我的数据库? - Ojonugwa Jude Ochalifu
选择“搜索数据库”,并输入您的数据库的确切名称... - Opiatefuchs
1
可能是在Android Studio中查看数据库文件内容的重复问题。 - Subin Babu
最佳解决方案是@Bob在https://dev59.com/XGIk5IYBdhLWcg3wg-jK上的答案。 - Jeffrey
5个回答

20

通过ADB Shell连接到Sqlite3

我没有找到在Android Studio中连接的方法,但我使用远程shell访问db而不是每次都拉取文件。

在此处查找所有信息: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- 连接一个shell到您的设备:

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

4- 导航到包含您的数据库文件的文件夹:

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. 列出表格的外观:

  3. .schema tablename
    
    打印整个表格:
    SELECT * FROM tablename;
    
  4. 列出所有可用的SQLite提示命令:

  5. .help
    

来源:这里的stackoverflow回答。


第五步后显示无法打开数据库... :( - Benedict
1
@Ben,你的设备需要被root才能在物理设备上运行。否则,你必须使用模拟器,例如Android Studio提供的模拟器。 - Shahbaz Sheikh
1
在Windows 10上,我使用sqlite3 <your-db-name>.db命令时出现了/system/bin/sh: sqlite3: not found的错误提示 - 我需要设置一些路径变量来让sqlite3正常工作吗? - jublikon
@Ben 你可能需要在第三步中将你的avd进行root,或者以root身份启动adb,命令为'root adb -s emulator-xxxx shell'。 - Shubham A.
在第五步之后,SQLite 在命令提示符中已经打开,但是无法在命令提示符中输入任何内容。 - Ananta Prasad

3

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

#对于 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

enter image description here

  • Android Debug Database 允许您以一种非常简单的方式直接在浏览器中编辑、删除、创建数据库共享首选项
  • 搜索您的数据
  • 调试 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手机和笔记本电脑应该连接到同一个网络

有关更多详细信息,请访问


2
Android Studio 4.1版本中有一个新的本地方式,称为数据库检查器(Database Inspector),请查看this答案!

enter image description here

这将显示在Android Studio底部:{{link1:在此输入图片描述}}

请考虑将您的答案发布为评论。 - phoenixstudio
1
对不起,我还没有足够的声誉:( 因此,我会让答案更有用! - vini b
1
谢天谢地有这个。 - DIRTY DAVE

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

https://github.com/facebook/stetho

查看SQLite数据库的步骤

1)添加gradle依赖项

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

2) 在Application类中

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

3) 打开谷歌浏览器并输入 'chrome://inspect/#devices' 可以查看连接的设备并访问 SQlite 数据库。


即使在Java中,现在也应该将其替换为实现,而不是编译。 - Steven T.

1

这个应用程序非常有用,免费并将保持免费(由开发者确认)。非常容易添加、编辑和删除。

它适用于已root的设备和模拟器。如果您有DB文件,那么您可以从所有设备(包括非root设备)的SDCard中浏览它。

enter image description here


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