AndroidでSQLiteのデータベースを作成すると
/data/data/[パッケージ名]/databases
ディレクトリの中に、プログラムで指定したデータベース名のファイルが作成されます。
そのファイルの内容を確認したい場合、下記のコマンドをコマンドプロンプト(ターミナル)で実行することでデータベース・ファイルの内容をコマンドプロンプト(ターミナル)内で確認できます。
adb shell run-as [パッケージ名] cat databases/[データベース・ファイル名]
Rubyをインストールしてある環境で下記のコマンド実行することで、スマホ内にあるデータベース・ファイルをパソコンにコピーできます。
adb exec-out run-as [パッケージ名] cat databases/[データベース・ファイル名] | ruby -pne '' > /[保存したいパソコンのディレクトリ]/[保存したいファイル名]
例えば、パッケージ名がjp.co.xxx.yyy
データベースのファイル名がdatabase.db
保存したいパソコンのディレクトリが/Users/taro/Desktop
保存したいファイル名がdump.db
の場合、
adb exec-out run-as jp.co.xxx.yyy cat databases/database.db | ruby -pne '' > /Users/taro/Desktop/dump.db
を実行するとスマホ内のdatabase.dbのコピーであるdump.dbファイルが/Users/taro/Desktopに生成されます。
同様にしてアプリ内に保存したpreferencesのファイルもパソコンにコピーできます。
アプリで作成したpreferencesの値はxmlファイルとして/data/data/[パッケージ名]/shared_prefs
に保存されます。
上記のデータベースのファイルをコピーしたのと同様に
adb exec-out run-as [パッケージ名] cat shared_prefs/[preferencesのxmlファイル名] | ruby -pne '' > /[保存したいパソコンのディレクトリ]/[保存したいファイル名]
を実行するとpreferencesのkeyとvalueが記録されたxmlファイルをスマホからパソコンにコピーできます。
毎回コマンドを入力するのは面倒なのでバッチファイル(.bat)やシェルスクリプト(.sh)を作成しておくとマウスのクリックひとつでスマホからパソコンにファイルをコピーできるので便利でしょう。
※コマンドプロンプト(ターミナル)でどこのディレクトリからでもadbやrubyコマンドを実行できるようにPathを通しておきましょう。