如何从adb shell安装或访问sqlite3

我需要一种方法来安装或以某种方式访问​​adb shell中的sqlite3。 我根植了我的设备。

我试图find一个答案但是关闭的我可以来的是: 当我尝试使用adb shell打开数据库时,为什么我在root用户的Nexus One上出现“sqlite3:not found”错误?

但我不认为在Linux系统上推送我的Windows sqlite3.exe是个好主意?

那么有可能以某种方式安装sqlite3终端浏览器吗?

[解]

从不同的评论和一些在#android-dev(irc)周围询问,我find了一个解决方案。 首先,我将数据库文件复制到我的桌面。 但拳头我不得不安装BusyBox,因为不包括cp?!? 在那之后,我遇到了一个问题,除了/ sdcard /之外,我无法从任何地方拉或推。 然后我可以使用/ sdcard /作为“中间站”并拉/推我的数据库。

然后我筋疲力尽! 我真的不得不让我的sqlite终端探索。 然后我有了启动模拟器从/ system / xbin / sqlite3中拉出sqlite二进制文件的想法。 然后使用rw重新安装/系统:

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 

并将sqlite推送到/ sdcard /,并从那里将其复制到/ system / xbin /

现在它起作用了:D

我使用Rajath的技术…… Adb从模拟器/设备“拉”数据库,处理它,然后adb“推”回到模拟器设备上/中。

另外:我使用Android Market的免费SQLite编辑器。 我还没有扎根我的LG Ally,因此只能使用SQLite编辑器在我的SD卡上编辑数据库表。

Rajath建议使用adb来推送和从模拟器/设备中提取数据库。 使用windows(或其他)sqlite3程序对数据库进行的工作。 他不建议将Windows sqlite3放到Android设备上,恕我直言。

我注意到java / android“query()”将具有用户输入的实际SQL命令发送到一个程序。 我的结论是sqlite3在Android的某个地方。

使用模拟器时,Dev Tools可用,并且列表底部的下方是终端模拟器。 这允许在模拟器中探索Android的文件结构。 但是,从PC使用“adb shell”具有root权限。

祝你好运。 仙人掌米奇

从谷歌播放下载此应用程序将帮助您在Android上安装sqlite3 https://ps.google.com/store/apps/details?id=ptSoft.util.sqlite3forroot

您可以使用adb shell执行此操作而不会出现问题。

在终端或CMD中(假设您已设置ADB路径并且您的手机具有ROOT)键入:

  1. $ adb shell
  2. $ cd data/data/com.nameofyourpackage/databases/
  3. $ ls to find the name of your database
  4. $ sqlite3 nameofyourdb.db

然后,您可以使用.tables .schema查看创建相应查询所需的数据。

您不需要root来从您的设备中提取数据库。 只需运行以下命令:

 adb shell run-as  "cp databases/.db /sdcard/ && exit" adb pull /sdcard/.db ~/Downloads/ 

从那里,您可以将sqlite3用于您正在使用的任何操作系统( http://www.sqlite.org/download.html ),或者使用sqlite浏览器,例如“DB Browser for SQLite”( http:// sqlitebrowser。组织/ )