浏览Android SQLite数据库中的数据

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

我使用SoftTrace beta程序很多。 这是伟大的,但我无法find将其跟踪的数据下载到PC。

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

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

你可以用adb shell来查看它,并inputsqlite3 /data/data/org.vimtips.supacount/databases/counts.db

或者,您可以从设备中使用第三方实用程序来查看它,并使用adb pull /data/data/org.vimtips.supacount/databases/counts.db .命令adb pull /data/data/org.vimtips.supacount/databases/counts.db .

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

如果您正在使用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

这是free方法,为我工作在一个is not rooted的电话。 信贷去这个答案 。

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

就个人而言,为了使这个过程更容易,我首先添加adb到我的环境path。 然后我做了一个备份文件夹,我存储上面提到的所有文件。 这使我无需cd(改变目录)到处都是。

Questoid插件的价格为9美元,需要注册。 Windows上的另一种select是下载开放源代码的公共域SQLLite浏览器(下面的链接),然后从手机中提取数据库。 在Eclipse中,您可以通过文件浏览器进入到手机或模拟器上的/ data / data / [packagename] / databases目录,然后单击右上angular的“从设备上拉取文件”。 在本地保存数据库,然后用SQLite浏览器打开。

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

实际上,当我在模拟器开发的时候,从数据库中获得“实时”结果的最有效(但仍然是哈希)方法是:

  1. 创build一个脚本来从仿真器中拉出数据库,就像这样

     #!/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. 安装Firefox的SQLite Manager插件

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

  4. input你的SQL:

    在这里输入图像说明

  5. selectFile->Reconnect

  6. 点击Run SQL

关键的技巧是重新连接不会重置步骤4中input的SQL(例如,在SQLite浏览器中 ),所以您可以重复步骤5,6以查看android数据库的“实时”结果。

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

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

有了这个库,您可以从您的应用程序本身pipe理您的应用程序SQLite数据库。 您可以查看应用程序数据库中的表,更新,删除,插入行到您的表

它的一个单一的Java活动文件,只是将Java文件添加到您的源文件夹。当开发完成从您的src文件夹删除java文件多数民众赞成它。

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

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

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

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

看到这个答案。 你可以使用来自Facebook的Stetho库,然后从Chrome浏览器数据库:)