2011-05-01 47 views
6

無法打開數據目錄我只是源於我的電話,因爲我需要查看在我的應用程序uisng數據庫。但是,即使我的手機已經植入,我仍然無法在Eclipse File Explorer中打開數據文件夾。可以在植根Android手機

有什麼我忘了?我需要告訴Eclipse我是超級用戶還是什麼?我可以訪問模擬器上的數據文件夾,但不能訪問我的實際設備。

我真的想我的設備上開發,仿真器要慢得多,我不能讓互聯網連接工作。

任何想法?

回答

5

另一個選項是檢查數據庫使用設備本身的Root Explorer。它可以讀取.db文件。如果你需要修改它們,有SQLite editor(由同一家公司),但我沒有太多的經驗。


更新:我用我的手機打達到這個頁面之後:在該職位http://www.screaming-penguin.com/node/7742

取而代之的是仿真的,我有我的電話連接到USB(三星的Captivate,定製2.2 ROM),並啓用了USB調試。

我運行下面的命令,作爲一個例子:

$adb -d shell 
# su 
# cd /dbdata/databases/com.android.browser 
# sqlite3 browser.db 
sqlite> .tables 
.tables 
android_metadata bookmarks folders searches 
sqlite> select * from bookmarks; 
(listed all my bookmarks) 

基本上,可以在任何數據庫上從亞行運行任何SQL命令你打開(提供運行它作爲SU)

+0

是的 - 但hackbod有一個很好的觀點,即如果您的應用程序屬於您自己的應用程序,則無需成爲root用戶即可。你可以在它的build中設置debuggable,然後使用run-as,然後直接cd到/ data下的應用程序私有路徑,或者給sqlite3提供你想要探索的數據庫的完整路徑名。 – 2011-05-01 23:19:10

+0

嘿,我應該在哪個終端寫這些命令,這是DDMS裏面的東西嗎?我從來沒有找到它.. – networkprofile 2011-05-02 17:00:54

+0

@Sled nope,只是命令提示符(你可能需要添加adb到你的PATH) – Aleadam 2011-05-02 17:04:49

5

在Android中的當前版本,你不需要這麼做。只需在清單中輸入android:debuggable =「true」,然後就可以使用shell的「run-as <package_name>」切換到應用程序的uid,以便訪問其數據目錄。

這肯定適用於2.3或更高版本;它也可能在2.2工作,我不記得具體什麼時候走了進去。

+0

而難看在已經固定的設備上的hack等效物可能會使用來自adb外殼的'su'。更重要的是,據我所知,無論是這種方式還是更官方的運行方式(儘管將設備上的ro安全設置更改爲可以讓PC上的文件瀏覽器看到/ data下的內容) - 只有一個沒有SIM卡)推測會。 – 2011-05-01 16:52:42

2

另一種選擇考慮將讓您的應用程序的測試版本增加了一個按鈕,該數據庫在複製到SD卡,你可以瀏覽它來自PC。

或者,您可以將數據庫文件的模式設置爲共享,但您仍然無法瀏覽到它 - 您必須告訴文件瀏覽器直接轉到數據庫文件(即鍵入它的完整路徑),因爲你不能瀏覽諸如/ data本身的干預級別的文件夾。我不知道如果瀏覽器讓你這樣做(它今天不開放,但我從來沒有使用它,因爲我命令行shell ;-)