以前 Eclipse 時代,除錯 SQLite 都是將資料庫檔案匯出到電腦,然後再用軟體開啟檢視。現在我們用 Android Studio,有沒有更方便的方法呢?
SQLScout
安裝
SQLScout 是一個 Android Studio 的外掛,通過點選:
Setting —> Plugings —> Browse Repositories
搜尋 SQLScout 安裝即可。
要是下載不動,可以到這裡下載,然後點選 Install plugin from disk 匯入。
載入
成功安裝後重啟 Android Studio,會發現右邊的側邊欄出現了 SQLite Exporer,展開後點選「+」會出現三個選項:
我們從下往上說吧。
Local SQLite Database
如果要除錯的資料庫已經匯出在電腦裡了,就選擇這一項來載入。
Android (Download Database Locally)
通常情況下,我們要除錯的資料庫是在手機上的,可以用這個功能把資料庫提取出來。選擇需要除錯的裝置、專案包名及資料庫名就可以了。
Android (Live Device Connection)
上面兩種方法的缺點很明顯,都無法實時更新資料庫。
Live Device Connection 是 SQLScout 2.0 新增的功能,和上面的區別是,它可以實時管理、更新資料庫。
使用之前需要在在 project 的 build.gradle 裡面新增:
allprojects {
repositories {
jcenter()
maven {
url 'http://www.idescout.com/maven/repo/'
}
}
}複製程式碼
在 module 的 build.gradle 裡面新增:
compile 'com.idescout.sql:sqlscout-server:2.0'複製程式碼
在啟動的 Activity 的 onCreate 方法新增一句程式碼:
SqlScoutServer.create(this, getPackageName());複製程式碼
除錯
整個介面如下:
它們分別是:
- 資料庫列表:要除錯的資料庫列表,展開顯示資料庫中的表,可以右鍵開啟 SQL 編輯器。
- SQL 編輯器:輸入 SQL 語句的地方,支援自動補全及程式碼高亮。
- 資料控制檯:用類似 Excel 的格式展示查詢的資料,也可以在這裡編輯資料。
- 資料關係圖:用於展示表和欄位的關係。
是不是很好用,簡直就是神器啊!但這麼好用的東西是收費的。
窮屌絲用不起怎麼辦?接著往下看啊。
Android Debug Database
這是一個開源的專案(免費),專案地址在這。
先在 module 的 build.gradle 裡面新增:
debugCompile 'com.amitshekhar.android:debug-db:1.0.0'複製程式碼
讓手機和電腦處於一個區域網下,當專案跑起來的時候,在 logcat 裡面會列印出這麼一行:
D/DebugDB: Open http://XXX.XXX.X.XXX:8080 in your browser複製程式碼
把地址複製到瀏覽器,就會看到一個這樣的介面:
很容易理解,裡面幾個欄目分別是:
- Query:寫 SQL 語句的地方
- Databases:資料庫
- Tables:資料庫中的表
- Data:表中的資料,支援編輯、搜尋
就是這麼簡單,妥妥的。