目的

Android端末からRealmデータを取得する方法です。

環境

  • Mac catalina
  • Android Studio 3.5.3

参照サイト

Qiita Android端末内のRealmデータ確認
上記の内容とほとんど似ているものですが、
バージョン違いで異なっていたり、簡略化出来る箇所は省いております。

adbコマンドの確認

以降はMacのターミナルでのコマンド操作です。
Android StudioのTerminalでも出来そうですが。

まずPCよりadbコマンドを取得できるようにします。

adbコマンド
$ adb

-bash: adb: command not foundとなった場合は、ライブラリにPathが通ってないので設定します。
ライブラリの場所の確認は
Android Studio -> メニューのPreference -> Appearance & Behavior -> System Settings -> Android SDK

Android SDK Locationから確認出来ると思います。

PATHを通すコマンドは以下となります。(XXXはユーザ名など)

PATHを通す
export PATH=$PATH:/Users/XXX/Library/Android/sdk/platform-tools

可能であればprofileにも記載します。

profile設定
$ vi ~/.bash_profile 
$ source ~/.bash_profile 

これでadbコマンドを実行し、バージョンやコマンドオプションなどが表示されれば、OKです。

Realmデータ取得方法

Realmデータを取得します。
まず、データを保存できるディレクトリに移動します。
ちなみに、PC(Mac)とAndroid端末をUSBなどで接続します。
データ転送なしの状態でもRealmデータは取得できました。

そして、以下コマンドで端末にアクセス
私の環境はbonitoプロンプトになりました。

adbコマンド
$ adb shell
bonito:/ $ 

以下コマンドでアプリのRealmデータが有る場所まで移動します。
cdコマンドとrun-asコマンドを利用したほうが良いと思います。 YYYYの場所はアプリのapplicationIdです。com.xxxx.yyyyのような。
コマンド補完が効かないような気がします。

ディレクトリ移動
bonito:/ $ cd /data/data
bonito:/data/data $ run-as YYYY
bonito:/data/data/YYYY $ cd files

以下コマンドで、realmデータをMacから参照できるAndroid端末の領域にコピーします。
コピー後は抜けます。

ファイルコピー
bonito:/... $ cat default.realm > /sdcard/default.realm
$ exit(2回必要)

プロンプトが自分のPC環境になったことを確認し、以下コマンドでPCにRealmデータを転送します。

adbコマンド
$ adb pull /sdcard/default.realm ./

これで、RealmデータがPC上で参照できます。

Realm Studioなどでデータの確認が行なえます。

ちなみに

参照サイトにあるように Chromeブラウザから簡単に確認できる方法もあるようです。
上の取得方法だと少し面倒だと感じました。
次回はブラウザの手法を試してみます。

http://facebook.github.io/stetho/
https://github.com/uPhyca/stetho-realm