According to the official developer documentation, here are options for data storage on Android:
- Shared Preferences – Store private primitive data in key-value pairs.
- Internal Storage – Store private data on device memory. Shared Data on Android – プライベートデータをデバイスのメモリに保存します。
- 外部ストレージ – 共有外部ストレージにパブリックデータを格納します。
- SQLite データベース – プライベートデータベースに構造化データを格納します。
- ネットワーク接続 – 独自のネットワークサーバーで Web 上にデータを格納します。
ネットワーク接続オプション以外のオプションはすべてデバイス上にデータを持続的に格納するものです。 SharedPreferences と SQlite Databases の両方は、デバイス上に保存されるプライベートなデータです。 これらのファイルは、エミュレータやルート化されたデバイスでない限り、他のアプリケーションやユーザーからアクセスできません。 以下は、私が開発中のデバッグのためにこれらのプライベート データにアクセスし検査する方法の一部です。
On an emulator or rooted device
If you run an emulator or rooted device.The only a private data on the device. デバイスのプライベート ストレージにアクセスできる必要があります。 Android StudioのGUIまたはコマンドラインからファイルにアクセスできます:
- GUI – Android Studioで、メニューからAndroid Device Monitorを起動します。 ツール/Android/Android Device Monitorを起動します。 ファイルエクスプローラタブを開き、data/data/<アプリパッケージ名>/を表示します。 探しているファイルを見つけると、そこからファイルをプッシュしたりプルしたりできます。
- コマンドライン – adb経由でデバイスにファイルをプッシュしたりデバイスからファイルをプルすることもできます:
adb pull remote-dir local-dir <-- Copy from device to local machine
adb push local-dir remote-dir <-- Copy from local machine to device
On non-rooted device
If you not running on a emulator or rooted device. コマンドラインから:
adb shell
run-as <app-package-name>F
cd data/data/...
これで、端末の内部ストレージにあるファイルにアクセスできるようになりました。 シェルを終了するには、exit と入力します。
exit <-- exit out of adb shell
Sqlite データベースファイル
エミュレーター、ルート化したデバイス、または adb shell / run as で SQLite データベースファイルにアクセスできるようになったら、デバイス上のスキーマと SQLite データベースに検査するいくつかのオプションが用意されています。
GUI ツールで SQLite データベースを検査する
まずデバイスからファイルを取り出し、GUI ソフトウェアを使ってスキーマとコンテンツを確認します。 私は、データベース スキーマ、テーブル コンテンツを見ることができ、いくつかの簡単な SQL スクリプトを実行することができる SQLite ブラウザを使用しています。
Inspect SQLite db via sqlite3 command line tool
私にとってより簡単な方法は、adb シェルからデータベースを検査するために sqlite3 コマンドライン ツールを使用することです –
adb shell
cd data/data/<your package-name>/databases/
sqlite3 <db-name>
.tables
.schema <table-name>
あるいは、デバイスからデータベース ファイルを取得後、シェル内ではなくローカルで sqlite3 を使用することができます。
adb pull <db-name>
sqlite3 <db-name>
Wiping off app data
SharedPreferences や SQLite db を Android で扱う場合、データを消去してやり直す必要があることがよくあります。 そこで、いくつかのオプションを紹介します。
- アプリをアンインストールして再インストールする
- デバイスの設定/アプリ/アプリを探してクリック/ストレージ/データの消去
開発やデバッグのプロセスを支援するもっと簡単な方法があります: ADB Idea という Android Studio プラグインをインストールすることです。 このプラグインをインストールするには、Android Studio/Preferences/Pluginsに移動し、Browse repositoriesをクリックして、”ADB Idea “を検索します。 インストール後、Android Studioを再起動すると、Tools/Android/ADB Ideaの下にプラグインオプションが表示されるのが確認できます。 試してみてください。 私は、アプリのデータを消去する必要がある場合、このプラグインが非常に役立つと思います。
ライブラリを使用する
ライブラリを使用して、Android デバイス上のプライベート ファイルにアクセスし検査する方法が他にもあります。