2010-03-27 71 views
39

Android用戶有沒有辦法瀏覽他/她手機上的SQLite數據庫並查看數據庫中的數據?瀏覽Android SQLite數據庫中的數據

我使用SoftTrace beta程序很多。這很棒,但我無法找到將其跟蹤的數據下載到PC的方式。

回答

26

/data/data/[packagename]/databases

的包名特定應用的生命的數據庫是你在你的清單中定義的包,例如/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 .的命令。

這假設您有權查看數據庫,如果您沒有自己編寫應用程序,則可能沒有這個數據庫......但在這種情況下,它實際上是一個編程問題嗎?

+23

這裏描述的技術可用於模擬器和固定電話,但不適用於生產型手機。 – CommonsWare 2010-03-27 20:21:07

+1

@CommonsWare有什麼方法可以在生產型手機中查看我們應用程序的數據庫嗎? – Ads 2012-11-02 07:26:15

+0

已經有一段時間了。我的手機沒有紮根,我可以 - 在開發者模式下 - 用adb輕鬆連接。我猜這是一個更近的發展。 – Yashima 2013-02-15 12:48:13

18

如果您使用的是Eclipse,你可以使用一個名爲「Questoid SQLite的瀏覽器」插件來瀏覽你的Android模擬器的SQL精簡版數據庫:

  1. 安裝插件
  2. 重新啓動Eclipse
  3. 開始你的模擬器
  4. 切換到DDMS
  5. 與插件打開數據庫(如@synic前面提到的,DB就設在這裏例如:/數據/數據/ MY_PROJECT /數據庫)

這裏是一個更詳細的教程:http://www.tylerfrankenstein.com/browse-android-emulator-sqlite-database-eclipse

+1

+1 .. beats必須將DB從設備/仿真器中拉出並加載到第三方sqlite瀏覽器(或更糟糕的是,使用adb外殼) – 2012-11-12 07:39:08

+1

謝謝@tyler它真的幫助。 – 2013-09-16 20:41:06

+0

我的數據文件夾是空的,或者它不允許我看到它 – 2013-10-15 20:05:24

5

的Questoid插件似乎花費$ 9和需要註冊。 Windows上的另一種替代方法是下載開源公共域SQLLite瀏覽器(下面的鏈接),然後從手機中提取數據庫。在Eclipse中,您可以從文件瀏覽器執行此操作,轉到手機或模擬器上的/ data/data/[packagename]/databases目錄,然後單擊右上角的「從設備中拉出文件」。在本地保存數據庫,然後用SQLite瀏覽器打開。

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

+0

Questoid的網站現在似乎重定向到CellObject。他們的工具似乎沒有花費任何東西(儘管您可以捐贈),並且他們的代碼鏈接在Google Code上。我剛剛安裝了SQLite Browser,它對我來說工作得很好,無需先將數據庫文件拖到我的工作站。 – spaaarky21 2013-01-10 20:32:52

7

這裏是free方法爲我工作在手機上是is not rooted。積分爲this SO answer

  1. 使用adb backup -f backup.ab -noapk app.package.name
  2. 在Windows下載SourceForge上here發現Android Backup Extractor罐子,然後運行java -jar abe.jar unpack backup.ab extractedbackup.tar。在Linux上,你可以按照我在一開始就給出的答案中的dd指示。
  3. 從SourceForge here下載SQLite Database Browser,然後打開extractedbackup.tar中包含的db文件。

就個人而言,爲了使這個過程更容易,我首先將adb添加到我的環境路徑中。然後我創建了一個備份文件夾,用於存儲上述所有文件。這使我無需在整個地方cd(更改目錄)。

+1

這應該是公認的答案:它在生產電話上工作,截至2015年12月6日:)謝謝。 – 2015-06-12 12:49:13

3

如果你很幸運能夠獲得IntelliJ Ultimate,那麼你可以插入設備,打開右側的'數據庫'標籤,點擊+,選擇SQLite。其餘的是微不足道的。

需要注意的一件事是,您必須不斷點擊數據庫(或選定的表格)上的「同步」按鈕才能看到外部進行的更改,這非常煩人。

+0

@丹尼斯 - 很好的知道,IntelliJ社區不提供這個功能嗎? – 2014-05-26 13:55:10

+2

@JustinC唉,數據庫工具只有在Ultimate:http://www.jetbrains.com/idea/features/editions_comparison_matrix.html – 2014-05-26 14:53:10

3

您可以使用此庫從您的應用程序查看數據庫。 https://github.com/sanathp/DatabaseManager_For_Android

有了這個庫,您可以從您的應用程序本身管理您的應用程序SQLite數據庫。 您可以查看您的應用程序數據庫中的表格,更新,刪除,插入行到您的表格

它的單個java活動文件,只需將java文件添加到您的源文件夾。當開發完成後,刪除java文件從你的src文件夾多數民衆贊成它。

它幫助了我很多,希望它也能幫助你。

您可以查看1分鐘的演示在這裏:http://youtu.be/P5vpaGoBlBY

4

其實從數據庫中獲取的「活」的結果,而制定關於模擬器,我發現的最可用的(但仍哈克)的方式是這樣的:

  1. 創建一個腳本拉從仿真數據庫,像這樣

    #!/bin/bash 
    
    ANDROID_HOME=/path/to/sdk 
    ADB=$ANDROID_HOME/platform-tools/adb 
    REMOTE_DB_PATH=/data/data/com.yourpackage.name/databases/your_db 
    LOCAL_DB_PATH=. 
    
    while true; do 
    
        echo copying DB... 
        `$ADB pull $REMOTE_DB_PATH $LOCAL_DB_PATH` 
        sleep 3 
    
    done 
    

    運行它。

  2. 安裝SQLite Manager plugin for Firefox

  3. 打開數據庫的本地副本(其總是被行書從第1步覆蓋)

  4. 輸入SQL:

    enter image description here

  5. 選擇File->Reconnect

  6. 點擊Run SQL

關鍵的訣竅是,重新連接不重置的步驟4 SQL進入(因爲它,例如,在SQLite Browser),這樣你就可以重複步驟5,6 看到「活」來自你的android數據庫的結果。

請注意,這隻適用於模擬器,它不適用於真正的設備(即使是根植的設備)。

1

請參閱this的答案。您可以使用Facebook上的Stetho庫,然後從Chrome中瀏覽您的數據庫: