開發Android應用程式時操作SQLite資料庫的方法

在開發Android app時,通常使用SQLite來儲存資料,本文彙總了幾個開發時瀏覽與管理SQLite資料庫的方法。不管那種方法,建置有資料庫的模擬器必須事先啟動完畢。

方法一、使用IntelliJ IDEA的Database

如果你使用的是IntelliJ IDEA來開發的話,它的Database是最方便和簡單的方法,只要設定完成就能直接操作。

  1. 按下最右側的【Database】功能鈕,再按〔+〕增加【Android SQLite】資料來源
    add datasource

  2. IDEA會自動偵測並取到資料庫,確認正確後按下〔OK〕建立好新的資料來源
    connect

  3. 點擊剛建立好的Android SQLite,再按上方的【Synchroize】以同步資料庫綱要
    sync

  4. 同步後就能看到資料庫內部的綱要結構了。資料表的右鍵功能表有著Database的各種操作可使用,
    schema

  5. 開啟Console後便可下SQL指令
    browse

方法二、用IDEA或Android Studio的Device File Explorer

<

p>IDEA或Android Studio右下側的Device File Explorer可以瀏覽模擬器內部儲存的目錄與檔案,資料庫位置一般是「/data/data/程式的package名稱/databases/資料庫檔名」。

按File Explorer右鍵功能表的【Save As...】,將需要查看的資料庫檔案複製到本機硬碟,再用SQLite的瀏覽工具繼續操作。

file explorer

Android Studio可以安裝Database Navigator或Android SQL等Plugin來瀏覽複製出的資料庫檔案。或用Chrome瀏覽器的SQLite擴充來瀏覽,例如SQLite Manager或SQLite Reader等擴充。

方法三、用adb取出資料庫檔案

Device File Explorer雖然很方法,但操作效率不高,我們可以用Android Studio裡的Terminal或命令提示字元,以下列指令直接取出資料庫檔案:

adb pull  /data/data/程式的package名稱/databases/資料庫檔名 D:\folder

本地存放位置必須是資料夾,C:\或D:\等會出現無法建立檔案的錯誤訊息。

檔案存出後就能用方法二的瀏覽工具來操作了。

方法四、使用Stetho

Stetho是Facebook開源的Android套件,它的官網上的介紹是:

Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. Developers can also choose to enable the optional dumpapp tool which offers a powerful command-line interface to application internals.

把Stetho植入我們程式後,就能用Chrome的DevTool來操作。引入Stetho的步驟如下:

  1. 修改App的build.gradle,在dependencies裡加入下列設定:
    implementation 'com.facebook.stetho:stetho:1.5.0'
    implementation 'com.facebook.stetho:stetho-js-rhino:1.4.2'
  1. 在MainActivity的onCreate method加入下列敘述:
    Stetho.initializeWithDefaults(this);

IDEA或Android Studio按〔Alt+Enter〕會import:

import com.facebook.stetho.Stetho;
  1. Build app後,在Chrome網址欄位輸入「chrome://inspect/」,在偵測到模擬器後,按下方的【Inspect】開啟DevTool視窗,資料庫在【Resources】分頁裡。

Stetho

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *