浏览Android SQLite数据库中的数据

Jus*_*n C 39 database sqlite android

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

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

syn*_*nic 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 ..

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

  • 此处描述的技术适用于模拟器和root电话,但不适用于生产电话. (23认同)
  • @Ads我一直在使用`adb shell run-as my.ugly.package.name cat databases/data.db> data.db`,它可以让你在没有root访问权限的情况下执行`pull`.我拿出的数据库有时会有奇怪的行.奇怪的行似乎是副本的一些工件,因为在模拟器中使用`sqlite3`会产生正常的行.谁知道.. (2认同)
  • @Nolan`adb`破坏了CRLF,所以修改命令去剥离它们:`adb shell run-as my.ugly.package.name cat databases/data.db | sed的/\r $ //'> data.db`按照这个帖子:http://stackoverflow.com/a/14353315/105137 (2认同)

tyl*_*ein 18

如果您使用的是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


the*_*ang 7

这是在free手机上为我工作的方法is not rooted.归功于这个SO答案.

  1. 使用 adb backup -f backup.ab -noapk app.package.name
  2. 在Windows Android Backup Extractor上,在这里下载SourceForge上找到的jar ,然后运行java -jar abe.jar unpack backup.ab extractedbackup.tar.在Linux上,您可以按照dd我在开头给出的答案中的说明进行操作.
  3. 下载SQLite Database Browser从SourceForge 这里,然后打开db包含在文件extractedbackup.tar.

就个人而言,为了简化这个过程,我首先将adb添加到我的环境PATH中.然后我创建了一个备份文件夹,我存储了上面提到的所有文件.这使我不得不在整个地方cd(更改目录).


jos*_*ris 5

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

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