如何在Android设备上查看SQLite数据库?

use*_*ser 125 database sqlite android adb

我在SQLite数据库中有一组数据.我需要在设备上查看数据库.我怎么做?

我已经检查了ddms模式.文件资源管理器中的数据为空.

And*_*ane 183

以下是逐步说明(主要取自其他答案的组合).这甚至可以在没有root的设备上运行.

  1. 连接设备并以调试模式启动应用程序.

  2. 您可能希望用来adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"查看数据库文件名是什么.

注意: com.yourpackge.name是您的应用程序包名称.您可以从清单文件中获取它.

  1. 将数据库文件从应用程序文件夹复制到SD卡.

    adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"

注意: filename.sqlite是您在创建数据库时使用的数据库名称

  1. 将数据库文件拉到您的机器:

    adb pull /sdcard/filename.sqlite

这会将数据库从SD卡复制到ADB所在的位置.

  1. 安装Firefox SQLite Manager:https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

  2. 打开Firefox SQLite Manager(工具 - > SQLite管理器)并从上面的步骤3打开数据库文件.

  3. 请享用!

  • 只是想提一下,我无法将文件"捕获"到SD卡,而是必须在那里'cp',否则我会在SD卡中获得一个空文件. (8认同)
  • 同样重要的是要注意,如果你想将数据库复制到SD卡,你的应用程序(你正在"运行"的那个)需要`android.permission.WRITE_EXTERNAL_STORAGE`权限.否则,它会告诉你"许可被拒绝". (4认同)
  • 它不适用于所有设备(例如Nexus 9).对于那些我推荐这个解决方案http://stackoverflow.com/a/29257875/291427 (2认同)

Yai*_*lka 78

这里开始,您可以尝试:

  1. Facebook的开源Stetho库

在build.gradle中:

dependencies {
  // Stetho core
  compile 'com.facebook.stetho:stetho:1.5.1'        
  //If you want to add a network helper
  compile 'com.facebook.stetho:stetho-okhttp:1.5.1'
}
Run Code Online (Sandbox Code Playgroud)

在应用程序对象中初始化库:

Stetho.initializeWithDefaults(this);
Run Code Online (Sandbox Code Playgroud)

您可以在Chrome中查看您的数据库 chrome://inspect

  1. 另一种选择是这个插件(不是免费的)
  2. 最后一个是这个免费/开源库,可以在浏览器中查看数据库内容https://github.com/amitshekhariitbhu/Android-Debug-Database


Bob*_*Bob 57

我到目前为止找到的最好的方法是使用Android-Debug-Database工具.

它的使用和设置非常简单,只需添加依赖关系并通过Web连接到设备数据库的界面.无需根电话或添加活动或任何其他活动.以下是步骤:

步骤1

将以下依赖项添加到应用程序的Gradle文件并运行该应用程序.

debugCompile 'com.amitshekhar.android:debug-db:1.0.0'
Run Code Online (Sandbox Code Playgroud)

第2步

打开浏览器并在端口8080上访问手机的IP地址.该URL应如下所示:http://YOUR_PHONE_IP_ADDRESS:8080.您将看到以下内容:

注意:您还可以通过调用方法始终从代码中获取调试地址URL DebugDB.getAddressLog();

在此输入图像描述

为了获得我手机的IP,我目前使用Ping Tools,但有很多替代品.

第3步

而已!


官方文档中的更多详细信息:https: //github.com/amitshekhariitbhu/Android-Debug-Database


san*_*h_p 53

查看和管理Android应用数据库的最佳方法是使用库DatabaseManager_For_Android.

它是一个单独的Java活动文件; 只需将其添加到源文件夹即可.您可以在应用程序数据库中查看表,更新,删除,向表中插入行.你的应用程序内的一切.

开发完成后,从src文件夹中删除Java文件.而已.

您可以查看5分钟演示,Android SQLite数据库的数据库管理器.


Dee*_*epu 17

你可以这样做:

  1. adb shell
  2. cd /go/to/databases
  3. sqlite3 database.db
  4. sqlite>提示符下键入.tables.这将为您提供database.db文件中的所有表.
  5. select * from table1;

  • 这有效。有点。在第 1 步之后,您应该执行“作为 PACKAGE.NAME 运行”,否则您将没有读取权限。 (5认同)
  • 这是有效的。路径为“/data/data/COM.YOUR_PACKAGE.NAME/databases”,其中“COM.YOUR_PACKAGE.NAME”是您要查看其数据库的包的名称。然而,4 号并没有起作用。 (2认同)

Abh*_*kra 14

如果您使用的是真实设备,并且它没有root,则无法查看您的数据库FileExplorer,因为由于某些安全原因,该文件夹在Android系统中被锁定.如果你是在一个模拟器使用它,你会发现它FileExplorer,/数据/数据/你的包名/数据库/ yourdatabse.db.

  • 我已经扎根了,但是文件资源管理器中的数据仍然是空的 (3认同)

CLO*_*UGH 7

试试AndroidDBvieweR!

  • 您的设备无需生根
  • 无需导入应用程序的数据库文件
  • 很少配置,你很高兴!

AndroidDBvieweR

  • 好的应用程序,但您需要为应用程序的"build.gradle"文件添加依赖项. (2认同)
  • 不是每个人都想将第三方库添加到项目中.特别是因为这需要更改您的代码. (2认同)

And*_* T. 4

我一直在使用SQLite Database Browser来查看Android开发中SQLite DB的内容。您必须先从设备中提取数据库文件,然后在 SQLite DB 浏览器中打开它。