adbコマンドを使ってアプリを手動で削除する

adbコマンドを使ってアプリを手動で削除するのは、スマホのアプリを作成する上では必要ないと思っていましたが、Android Wearアプリを作る場合には覚えておいた方がいいです。

というのもWearに一度インストールしたアプリは、Wear上での操作では削除することができないからです。

スマホ経由でインストールしたアプリの場合、スマホ側でアプリを削除すればWearにインストールされたアプリも一緒に消えてくれますので、一般的にはあまり問題にならないのかもしれません。

しかしWearアプリを開発していると、デバッグのためなどでWearに直接アプリをインストールすることが多くなります。こうなるとWearがデバッグ用のアプリで埋め尽くされる事態になってくるのです。

インストールされているパッケージの一覧を確認する

adb shell pm list package

ターミナルからコマンドを入力すると、対象デバイスにインストールされているパッケージの一覧が表示されます。

adb shell pm list package

アプリを削除するためにはパッケージ名が必要になるので、このコマンドで確認しましょう。

ちなみにパソコンに複数の端末が接続されている場合、adbコマンドを送るデバイスを指定する必要があるので注意しましょう。

アプリを手動で削除する

adb uninstall アプリのパッケージ名

adb uninstall

Wearのアプリを削除する場合は、コマンドの結果が返ってくるまで時間がかかります。

Wearの初期化のほうが早いかもしれない

ちなみに、Wearを初期化してしまえば済む話でもあるので、手動で消さなくてもなんとかなる話ではあります。Wearは初期化したところでスマホとペアリングし直すだけでほぼ元に戻ると言っても過言ではないため、初期化したほうが手っ取り早いのかもしれません。

ただ、サンプルアプリを1個インストールする度に初期化するのも馬鹿らしいので、コマンドを使えば簡単にアプリを消せるということを知っておくと何かと便利かもしれません。

データベースのデバッグ adb shellでDBの内容を確認する

アプリでデータベースを利用する場合、動作確認のためにその中身を確認したい時があります。

データベースへの書き込みを行ってみたものの、ちゃんと保存されているのか確認したい・・・よくあると思います。そんな場合に、adb shellを利用します。

adb shell

Androidアプリを開発するなら簡単なadbコマンドは知っておいたほうがいいと思います。ちなみにadb shellで端末やエミュレータにアクセスする手順は必ずしも以下のとおりでなくてもいいです。

まずはAndroid Studioからエミュレータを起動します。起動したらAndroid StudioのTerminalツールウィンドウを開きます。

Terminalツールウィンドウを開く

adb shellと入力すると、端末にログインできます。

データベースは特別な指定をしていない限り、/data/data/パッケージ名/databases/データベースファイル名に作成されています。

この例の場合は/data/data/jp.gcreate.sample.sampledatabase.app/databases/Sample.dbとなっています。

データベースファイルの場所

これがSQLiteのデータベースファイルになるので、ローカルにコピーしてツールを使って確認するなりしましょう。今回は中身を確認するだけなので、そのままターミナルからsqlite3コマンドを使ってみます。

sqlite3コマンド

sqlite3 データベースファイル名でSQLiteコマンドが実行されます。

sqlite3コマンド

このモードではSQLを使っていろいろできます。私が最初戸惑ったのはこんなかんじです。

  • 基本的に全てSQL文であると判断される
  • エンターでコマンドが実行されるわけではない
  • SQL文は最後に`;`つけない限り改行だと判断される
  • SQLiteのシステムコマンドを使いたい場合は最初にドットをつける

とりあえず以下のコマンドを知っていればなんとかなると思います。

  • `.help`コマンドでヘルプが見れます。
  • `.exit`コマンドで脱出できます。
  • `.schema`コマンドで、データベースファイル内のテーブル構造なんかが確認できます。
  • `.tables`コマンドで、データベースファイル内にどんなテーブルがあるか確認できます。
  • `SELECT * from テーブル名;`で、テーブル内のデータを確認できます。`

実際に実行してみると以下の様な感じで確認できます。

sqlite3コマンドでのデータベース内の確認

SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE Sample(_id integer primary key autoincrement , InputText text not null , InputDate text not null );
CREATE TABLE android_metadata (locale TEXT);
sqlite> .tables
Sample            android_metadata
sqlite> SELECT * from Sample;
1|abc|2014/09/10 12:42:22
2|welcome to JAPAN!|2014/09/10 12:42:40
3|this is test|2014/09/10 12:42:50
4|aaa|2014/09/10 12:43:04
sqlite> 

私はドットインストールでSQLiteを勉強しました。AndroidのSQLiteは簡易版なので、使えないプロパティとかもあったりしますが、基本的なところはこれでなんとかなると思います。

Read full post gblog_arrow_right