宮沢賢治のオールナイトニッポン

アプリ開発/プログラミング学習における厄介事を垂れ流します。flutter/dart/python...

Shared Preferencesのファイルはどこにあるのか? / Where are Shared Preferences Stored in 【Flutter/Android】?

開発中のアプリにおいて、userの入力したデータをすべてひっくるめて、Google Driveにバックアップする機能を実装しようとしています。

そのなかでShared Preferencesのデータがどこに保存されているのか確認する必要がありました。調べていくと下記のSO記事を見つけました。

stackoverflow.com

いわく、/data/data/PACKAGE NAME/shared_prefs/FlutterSharedPreferences.xml Androidの場合はここにあるよ、と。確かめてみます。 適当なデータをShared Preferences経由で保存し、下記のようにデータにアクセスします。

final file = File(
        '/data/data/MY PACKAGE NAME/shared_prefs/FlutterSharedPreferences.xml');
    String contents = await file.readAsString();

    if (contents != null)
      print(
          'This is /data/data/MY PACKAGE NAME/shared_prefs/FlutterSharedPreferences.xml -> ...\n$contents');
    else
      print('its NULL');

ありました!!!StringList形式と通常のStringのデータがあります。 f:id:teruponn56:20210323131204p:plain 同様にStethoパッケージを使って、Chrome Dev Toolsでも確認をしてみます。はい、もちろん同様のデータが確認できます。StringListのデータだけ、なんか不明な文字列に変換されている仕様なんですよね。最初見たときは、なんか文字化けしてるとおもいました。 :p f:id:teruponn56:20210323131359p:plain