浏览Android SQLite数据库中的数据

时间:2010-03-27 19:01:07

标签: android database sqlite

Android用户有没有办法在他/她的手机上浏览SQLite数据库并查看数据库中的数据?

我经常使用SoftTrace beta程序。它很棒,但我无法找到将它跟踪的数据下载到PC上。

8 个答案:

答案 0 :(得分:26)

特定应用的数据库位于/data/data/[packagename]/databases

packagename是您在清单中定义的包,例如/data/data/org.vimtips.supacount/databases/counts.db

您可以使用adb shell查看并输入sqlite3 /data/data/org.vimtips.supacount/databases/counts.db

或者您可以使用第三方实用程序从设备中将其拉出来,使用adb pull /data/data/org.vimtips.supacount/databases/counts.db .等命令进行查看。

这假设您有权查看数据库,如果您没有自己编写应用程序,则可能没有...但在这种情况下,它实际上是编程问题吗?

答案 1 :(得分:18)

如果您使用的是Eclipse,则可以使用名为“Questoid SQLite Browser”的插件浏览Android模拟器上的SQL Lite数据库:

  1. 安装插件
  2. 重启eclipse
  3. 启动您的模拟器
  4. 切换到DDMS
  5. 使用插件打开数据库(如前面提到的@synic,数据库位于此处,例如/ data / data / my_project / databases)
  6. 以下是更详细的教程:http://www.tylerfrankenstein.com/browse-android-emulator-sqlite-database-eclipse

答案 2 :(得分:7)

以下free方法适用于我is not rooted的手机。积分转到this SO answer

  1. 使用adb backup -f backup.ab -noapk app.package.name
  2. 在Windows上下载SourceForge here上找到的Android Backup Extractor jar,然后运行java -jar abe.jar unpack backup.ab extractedbackup.tar。在Linux上,您可以按照我在开始时所称的答案中的dd说明进行操作。
  3. 从SourceForge here下载SQLite Database Browser,然后打开db中包含的extractedbackup.tar文件。
  4. 就个人而言,为了简化这个过程,我首先将adb添加到我的环境PATH中。然后我创建了一个备份文件夹,我存储了上面提到的所有文件。这使我不必在整个地方进行cd(更改目录)。

答案 3 :(得分:5)

Questoid插件的售价为9美元,需要注册。 Windows上的另一种替代方法是下载开源公共域SQLLite浏览器(下面的链接),然后从手机中提取数据库。在Eclipse中,您可以从文件浏览器执行此操作,转到手机或模拟器上的/ data / data / [packagename] / databases目录,然后单击右上角的“从设备中提取文件”。在本地保存数据库,然后使用SQLite浏览器打开。

http://sourceforge.net/projects/sqlitedbrowser/

答案 4 :(得分:4)

实际上,在我发现在模拟器上开发时,从数据库中获取“实时”结果的最常用(但仍然是hacky)方式是:

  1. 创建一个脚本以从模拟器中提取数据库,如下所示

    #!/bin/bash
    
    ANDROID_HOME=/path/to/sdk
    ADB=$ANDROID_HOME/platform-tools/adb
    REMOTE_DB_PATH=/data/data/com.yourpackage.name/databases/your_db
    LOCAL_DB_PATH=.
    
    while true; do
    
      echo copying DB...
      `$ADB pull $REMOTE_DB_PATH $LOCAL_DB_PATH`
      sleep 3
    
    done
    

    运行它。

  2. 安装SQLite Manager plugin for Firefox

  3. 打开数据库的本地副本(由步骤1中的运行脚本不断覆盖)

  4. 输入您的SQL:

    enter image description here

  5. 选择File->Reconnect

  6. 点击Run SQL
  7. 关键技巧是重新连接不会重置在步骤4中输入的SQL(例如,在SQLite Browser中),因此您可以重复步骤 5,6 以查看来自你的Android数据库的“实时”结果。

    请注意,这仅适用于模拟器,它不适用于真实设备(即使是有根设备)。

答案 5 :(得分:3)

如果您有幸获得IntelliJ Ultimate,那么您可以插入设备,打开右侧的“数据库”选项卡,单击+,选择SQLite。其余的都是微不足道的。

要记住的一件事是你必须不断点击数据库(或选定的表格)上的“同步”按钮来查看外部所做的更改,这非常烦人。

答案 6 :(得分:3)

您可以使用此库从您的应用中查看数据库。 https://github.com/sanathp/DatabaseManager_For_Android

使用此库,您可以从应用程序本身管理您的应用程序SQLite数据库。 您可以查看应用数据库中的表,更新,删除,向表中插入行

它是一个单独的java活动文件,只需将java文件添加到源文件夹中。当开发完成后,从你的src文件夹中删除java文件。

它给了我很多帮助。希望它也可以帮到你。

您可以在此处查看1分钟演示:http://youtu.be/P5vpaGoBlBY

答案 7 :(得分:1)

请参阅this回答。您可以使用Facebook的Stetho库,然后只需从Chrome浏览器浏览数据库:)