2011-03-30 45 views
13

我需要一種方式來安裝或以某種方式訪問​​sqlite3在adb shell中。我植根於我的設備。如何從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系統上sqlite3.exe好主意嗎?

那麼有可能以某種方式安裝sqlite3終端瀏覽器?

[解決方法]

從不同的意見,有的到處打聽在#Android的開發(IRC),我找到了解決辦法。首先,我將數據庫文件複製到我的桌面。但拳頭我不得不安裝BusyBox,因爲cp不包括在內?!?之後,我遇到了無法從/ sdcard /中拔出或推出的問題。然後,我可以使用/ sdcard /作爲「中間站」並拉/推我的分貝。

然後我筋疲力盡!我真的必須有我的SQLite終端探索。然後我得到了啓動模擬器從/ system/xbin/sqlite3中取出sqlite二進制文件的想法。然後掛載/系統RW:

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

,推動源碼到/ SD卡/,並從那裏將它複製到/ System/XBIN/

現在,它的工作原理:d

+0

「我需要一種方法來安裝或以某種方式訪問​​adb shell中的sqlite3」 - 爲什麼?如果您已經植根設備,只需下載數據庫並使用「windows sqlite3.exe」或更好的SQLite客戶端(例如,用於Firefox的SQLite Manager擴展)查看它。你在設備上使用'sqlite3'獲得什麼? – CommonsWare 2011-03-30 11:54:18

+1

如果你想玩弄你的應用程序的分貝,爲什麼不把分貝拉出來,並在你的電腦上操縱它 – rajath 2011-03-30 11:55:04

+0

如何在adb外殼中使用我的sqlite3瀏覽器? – DNRN 2011-03-30 12:00:47

回答

1

我用Rajath的技術... Adb從仿真器/設備「拉」數據庫,在其上工作,然後adb「推」回到仿真器設備上。

另請參見: 我使用Android Market的免費SQLite編輯器。我沒有紮根我的LG Ally,因此只能用SQLite編輯器在我的SD卡上編輯數據庫表。

Rajath建議使用adb來將數據庫推入或拉出模擬器/設備。使用windows(或其他)sqlite3程序的數據庫上的工作。他並不建議將windows sqlite3安裝到Android設備上,恕我直言。

我注意到,java/android「query()」會將實際的SQL命令programmacitacly發送給具有用戶輸入的程序。我得出結論,sqlite3是在Android的某個地方。

當使用模擬器Dev Tools可用時,在列表底部的方式是終端模擬器。這允許在模擬器中探索Android的文件結構。但是,使用PC上的「adb shell」具有root權限。

祝你好運。仙人掌米奇

1

安裝sqlite3的您可以與亞行外殼做到這一點沒有問題。

在終端或CMD(假設你已經在亞行路徑,而且你的手機有ROOT)類型:

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

然後您可以使用.tables.schema查看您需要創建相應查詢的數據。

+0

我正在獲取Permission denied,當我執行ls命令查找數據庫時。可能是什麼問題? – 2014-11-06 11:44:58

+1

你必須在模擬器上或植根。 – Nick 2014-11-06 14:47:31

+0

能夠從主機運行它會很好。例如:'adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db'select * from「secure」;''。在我的情況下,它得到堆棧,我必須登錄到adb shell並從那裏運行它。 – pevik 2015-11-05 11:16:20

-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),或源碼的瀏覽器,如「DB瀏覽器的SQLite」(http://sqlitebrowser.org/