Android内に、
ただ、これだけのテーブルを作って、
CREATE TABLE player (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
number INTEGER NOT NULL,
name TEXT NOT NULL,
UNIQUE (number, name)
);
これだけのデータを入れて、
[
{ "number": 1, "name": "柴田勲" },
{ "number": 2, "name": "土井正三" },
{ "number": 3, "name": "張本勲" },
{ "number": 4, "name": "王貞治" },
{ "number": 5, "name": "シピン" },
{ "number": 6, "name": "高田繁" },
{ "number": 7, "name": "河埜和正" },
{ "number": 8, "name": "福嶋智春" },
{ "number": 9, "name": "新浦壽夫" }
]
で、実際にきちんと格納されているかどうか。
みんなはどうやって見てます?
コード上でログで吐く
selectAll() など書いてログに出力する。
うん、見づらい。
Flip Tables で List を見やすくログに表示する
コマンドラインとかSQLiteBrowser
.dbファイルをPC上にコピーして、それをそれらで開く。
$ sqlite3 test.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> select * from player;
id number name
---------- ---------- ----------
1 1 柴田勲
2 2 土井正三
3 3 張本勲
4 4 王貞治
5 5 シピン
6 6 高田繁
7 7 河埜和正
8 8 福嶋智春
9 9 新浦壽夫
はい、いちいちPC上にコピーするのが面倒。
IDEのDatabaseビューア
dbファイルパーミッションの厳格化でIDEから直接見ることはできない。
ので、いちいち、PC上にコピー。
毎回、ビューアの設定やパスの指定や同期の確認。
はい、操作多すぎ。
Facebook製 Stetho
Stetho - A debug bridge for Android applications
デバッグコードを多少埋め込む。
dependencies {
compile 'com.facebook.stetho:stetho:1.5.0'
}
public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
Stetho.initializeWithDefaults(this);
}
}
埋め込んだら、Chromeで開く。
chrome://inspect/#devices
なんで、ID列が2列あるんだよっ!?
リードオンリー。
Android Debug Database
一行のみ。
debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'
ログに出力されるURLをクリック。
ブラウザに表示される。
クエリー実行や行ごとの編集もブラウザから可能。
これにしよう。
「Make Debugging Great Again」ですね!
しかし、Room で見れない。
「room」 - Issues · amitshekhariitbhu/Android-Debug-Database
まとめ
どうにも、「File Explorer」を使ってのファイルコピー操作がだるい。
確認のたびに、接続や同期、ファイル上書き確認が必要。
しかも、コピーするファイルって、
data/data/your-application-package/databases 以下
your-database-name
your-database-name-shm
your-database-name-wal
の3つが必要なんじゃね?
しらんけど。