データの保存場所について

データの保存場所について

データの保存場所について #

2021年4月23日に公開された 0.8.10.88 でデータの保存場所を変更しました。

これまで、/2chMate フォルダに一部のデータが保存されていましたが、これからは /Android/data/jp.co.airfront.android.a2chMate/ になります。

この2つのフォルダの以下のような違いがあります。

  • /2chMate フォルダ (共有ストレージ)

    • 「ストレージ」の権限が必要
    • アンインストール後もデータが残る (危険)
    • 「外部ストレージ」の権限を取得すれば、他のアプリが作ったデータであってもアクセス可能 (危険)
    • Android 10 以降は「ストレージ」の権限があってもアクセス不可
      • ターゲットがAndroid 10で、requestLegacyExternalStorage=true が設定されたアプリは例外としてアクセス可能 (ただし、めちゃくちゃ遅い)
  • /data/Android/アプリID/ (アプリ固有ストレージ)

    • 自分のアプリのフォルダには権限が不要
    • アンインストールすると同時に消える (安全)
    • 他のアプリのデータに対して:
      • Android 10以降は他のアプリのデータにアクセス不可
        • ターゲットがAndroid 10で、requestLegacyExternalStorage=true が設定されたアプリは例外としてアクセス可能

ややこしすぎて、たぶん間違いも含まれていると思いますが、まとめるとこうです。

  • Android 11 をターゲットにしたアプリでは、/2chMate フォルダにアクセスできない
  • ChMate はターゲットを 10 に据え置いて requestLegacyExternalStorage=true にすることで、対応を先延ばしにしていた
  • 2021年11月からターゲットを 11 にしなければストアで公開できない
  • ターゲットを11にしてもアプリが動作するように仕様を変更する必要があった

0.8.10.90 (2021-05-07) での変更点 #

Android 10以降で、お絵かきのデータにアクセスできず、再利用ができないという問題があったため、仕様を変更いたしました。 /{Pictures}/oekaki に保存されます。 お絵かきの画像データはアプリをアンインストールした後も残ります。 また、今までは書き込み画面からお絵描きを削除すると、画像データ自体も削除されていましたが、画像データ自体は削除されないように変更しました。

画像の保存機能について #

0.8.9.102 で「新しい画像の保存処理を使用する」の設定を追加しました。 将来的にこの設定はデフォルトでONにする予定です。

0.8.9.34(2017-06-21) 以降、SAF を使うようになりました。SDカードを含めた任意の場所に書き込めるのがメリットですが、保存にかかる処理時間が長くなる問題がありました。 また、初心者はフォルダの作成や指定方法がわからず、フォルダを選択する画面で行き詰ってしまうということもわかりました。

0.8.9.102(2021-06-17) 以降は「新しい画像の保存処理を使用する」をONにすると、SAFを使わない方法で保存されるようになります。フォルダを作ったり、SDカードに直接書き出すことはできなくなりますが、手間がかからず簡単に保存できるようになります。保存先は標準の画像フォルダ内の ChMate フォルダになります。

  • 初期のChMate
    • File API
  • 0.8.9.34 (2017-06-21)
    • Android 5 未満は File API
    • Android 5 以降は SAF(Storage Access Framework)
  • 0.8.9.102 (2021-06-17)
    • 新しい処理を有効化した場合
      • Android 10 未満は File API
      • Android 10 以降は MediaStore API

使用しているAPIについて #

画像の保存 #

  • Android 5.0未満
    • RAW File
  • Android 5.0以降
    • Storage Access Framework

お絵描きデータの保存 #

  • Android 10未満
    • RAW File
  • Android 10以降
    • MediaStore API

お気に入りのバックアップ #

  • Android 4.4未満
    • 未対応
  • Android 4.4以降
    • Storage Access Framework