代码之家  ›  专栏  ›  技术社区  ›  Justin C

在android sqlite数据库中浏览数据

  •  39
  • Justin C  · 技术社区  · 16 年前

    Android用户有没有办法浏览手机上的sqlite数据库并查看数据库中的数据?

    我经常使用SoftTrace测试版程序。它很棒,但我找不到方法将它跟踪的数据下载到PC上。

    8 回复  |  直到 9 年前
        1
  •  26
  •   synic    16 年前

    特定应用程序的数据库位于 /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 . .

    这假定您拥有查看数据库的权限,如果您不自己编写应用程序,则可能没有该权限…但在这种情况下,它实际上是一个编程问题吗?

        2
  •  18
  •   tyler.frankenstein    15 年前

    如果使用Eclipse,可以使用名为“questoid sqlite browser”的插件浏览Android模拟器上的SQL Lite数据库:

    1. 安装插件
    2. 重新启动Eclipse
    3. 启动模拟器
    4. 切换到DDMS
    5. 使用插件打开数据库(如前面提到的@synic,数据库位于此处,例如/data/data/my_project/databases)

    以下是更详细的教程: http://www.tylerfrankenstein.com/browse-android-emulator-sqlite-database-eclipse

        3
  •  7
  •   Community Mohan Dere    9 年前

    这里是 free 我在电话里使用的方法 is not rooted . 信贷流向 this SO answer .

    1. 使用 adb backup -f backup.ab -noapk app.package.name
    2. 在Windows上下载 Android Backup Extractor 在sourceforge上找到jar here 然后运行 java -jar abe.jar unpack backup.ab extractedbackup.tar . 在Linux上,您可以按照 dd 从我一开始就相信的答案中得到的指示。
    3. 下载 SQLite Database Browser 来自sourceforge here ,然后打开 db 文件包含在 extractedbackup.tar .

    就我个人而言,为了使这个过程更简单,我首先在我的环境路径中添加了adb。然后我创建了一个备份文件夹,在其中存储上面提到的所有文件。这使我不必到处都要CD(更改目录)。

        4
  •  5
  •   joseph_morris    14 年前

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

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

        5
  •  4
  •   Denys Kniazhev-Support Ukraine    11 年前

    实际上,当我在Emulator上开发时,从数据库中获取“实时”结果的最有效(仍然是黑客)方法是:

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

      <预先> <代码>!/BI/BASH 安卓主页=/path/to/sdk adb=$android_主页/平台工具/adb remote_db_path=/data/data/com.yourpackage.name/databases/your_db LoalAldByPosith= 虽然真实;做 回声复制数据库… `$adb pull$远程数据库路径$local数据库路径` 睡眠3 完成 < /代码>

      运行它。

    2. 安装 firefox的sqlite manager插件

    3. 打开数据库的本地副本(经常被步骤1中运行的脚本覆盖)

    4. 输入您的SQL:。

    5. 选择“重新连接” file->Reconnect

    6. 单击 run sql

    关键的诀窍是,重新连接不会重置步骤4中输入的SQL(例如,在 sqlite browser ),因此您可以重复步骤 5,6 以查看来自您的Android数据库的“Live”结果。

    请注意,这只适用于仿真器,而不适用于真正的设备(甚至是根设备)。

    从数据库 仿真器开发 我发现的是:

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

      #!/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

    关键技巧是重新连接不会重置步骤4中输入的SQL(例如,在 SQLite Browser )以便重复步骤 5、6 从Android数据库中查看“实时”结果。

    请注意,这只适用于仿真器,而不适用于真正的设备(甚至是根设备)。

        6
  •  3
  •   sanath_p    12 年前

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

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

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

    它帮了我很多。希望它也能帮到你。

    您可以在这里观看1分钟的演示: http://youtu.be/P5vpaGoBlBY

        7
  •  3
  •   Denys Kniazhev-Support Ukraine    11 年前

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

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

        8
  •  1
  •   Community Mohan Dere    9 年前

    this 回答。你可以使用Facebook上的stetho库,然后从chrome上浏览你的数据库:)