Androidの実機からSQLiteのDBをローカルPCに取り出してツールで確認したいけどサイズが0で困っているあなたへ

困り果てたのは私です。

環境

IED:Android Studio2.3.3

実機:VAIO Phone a(Android version6.0.1)

PC :Mac book pro 15inch

現症

実機端末に作成したSQLiteのDBをMacにコピーしてツールを使って中を確認しようとしたところ、PCにコピーはされるがサイズがゼロで困り果ててしまいました。

解決策

以下試してみましたが上手く行かず。。。

qiita.com

こっちのサイトを参考にさせて貰って上手く行きました。

dev.classmethod.jp

 

まず、adbコマンドでadb shellを起動します。

①adb shell

接続されている端末に入れます。

コマンドがshell@端末名:/$に変更されます。

このままではDBのアクセス権がないため、ユーザを切り替えます。

②run-as パッケージ名

これでDBにアクセスできるようになります。

あとは、外部からアクセスできるSDカード等にコピーして取り出します。

参考にしたサイトでは、

cat /data/data/<パッケージ名>/databases/<dbファイル名> > /sdcard/my.db

となっていますが、カレントディレクトリが<パッケージ名>なので正しくは

③cat databases/<dbファイル名> > /sdcard/my.db

では?

取り敢えず上記で上手くできました。

一旦EXITコマンドでディレクトリを最初まで戻って

④adb pull sdcard/my.db /コピーしたいPCのディレクトリ(Macならuser/user名/ディレクトリ)/my.db

 これで自分のPCのすきなところにコピーできます。

あとはSQLiteを開くアプリ等で開きます。

 

よかったよかった。これで先に進める。