如何从adb shell安装或访问sqlite3

时间:2011-03-30 11:49:46

标签: android sqlite adb

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

我试图找到答案,但我能来的封闭是:  Why do I get a "sqlite3: not found" error on a rooted Nexus One when I try to open a database using the adb shell?

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

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

[溶液]

从#android-dev(irc)的不同评论和一些询问中,我找到了一个解决方案。首先,我将数据库文件复制到我的桌面。但拳头我不得不安装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

4 个答案:

答案 0 :(得分:5)

从google play下载此应用程序将帮助您在android https://play.google.com/store/apps/details?id=ptSoft.util.sqlite3forroot

上安装sqlite3

答案 1 :(得分:1)

我使用Rajath的技术...... 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权限。

祝你好运。仙人掌米奇

答案 2 :(得分:1)

您可以使用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
  5. 然后,您可以使用.tables .schema查看创建相应查询所需的数据。

答案 3 :(得分:-1)

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

adb shell run-as <package-name> "cp databases/<db_name>.db /sdcard/ && exit"
adb pull /sdcard/<db_name>.db ~/Downloads/

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