カテゴリー
Kotlin言語

Android:Kotlin:設定やデータをファイルへ保存

アプリの設定やデータを、ファイルへ保存してみます。ここでは SharedPreferences(共有環境設定)というしくみを使ってみます。詳しくは Android Developers ドキュメントの App data and filesSharedPreferences にあります


Androidアプリでデータを保存できる場所

  • 内部ストレージの中・・・対象となるアプリだけが利用できるファイル(アプリの設定やデータなど。他のアプリからはアクセスできない)。Android10(API29)以上ではこの場所は暗号化されており機密性が高い
  • 外部ストレージの中(SDカードなど)・・・共有ストレージ領域を用意すると一定の権限を持っている他のアプリからもアクセスできる
  • データベースの中(SQLite)
  • ネットワークの先(クラウドサービスなど)

SharedPreferences とは

  • SharedPreferences は、Androidデバイスの内部ストレージにデータを保存するためのしくみです。保存できるデータ形式に制限がありますが、比較的簡単に利用できます
  • SharedPreferences を使った場合、内部ストレージには XML 形式のファイルとしてデータが保存されます
  • SharedPreferences で保存できるデータ・・・Boolean, Float, Int, Long, String

SharedPreferences による読み出し、保存

// SharedPreferences を開く
// Androidで用意されているファイルを利用する場合は getPreferences() 
// val spf = getPreferences(Context.MODE_PRIVATE)
val spf = getSharedPreferences("DataFileName", Context.MODE_PRIVATE)

// SharedPreferences からデータの読み込み
var str = spf.getString("strdata", "NOT FOUND")

// SharedPreferences へデータを保存
val ed = spf.edit()
ed.putString("strdata", "Sample Data String")
ed.apply()   // すぐに書き込みする必要があるときは ed.commit()

SharedPreferences で保存されたXMLファイルを確認する

  • Android デバイスの内部ストレージに保存される XMLファイルは、Android Studio を使って確認できます
  • Android Studio の仮想マシン(AVD)でアプリを実行します(USB接続した実機でもOK)
  • Android Studio で「View > Tool Windows > Device File Explorer」を選択
  • /data/data/パッケージ名/shared_prefs の中にXMLファイルがあるので、ダブルクリックして表示できます