4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

パーソンリンク アドベントカレンダーAdvent Calendar 2021

Day 14

【Android】ストレージ系を簡単にまとめる

Last updated at Posted at 2021-12-13

株式会社パーソンリンクアドベントカレンダー14日目です!🎉
本日12/14は、南極の日だそうです。

1911(明治44)年のこの日、ノルウェーの探検家・アムンゼンと4人の隊員が人類で初めて南極点に到達した。
よろしくお願いします。

はじめに

Anroidアプリでファイルや画像を保存する時に、
保存ディレクトリを取得することがあるのですが、どこに保存すれば良いのか、どんな違いがあるのか、すごくややこしいので簡潔にまとめます。

その前に

Androidはメジャーバージョンが年に1回上がるらしいです。
Android9.0からAndroid10.0へ みたいな
バージョンが上がると非推奨になるメソッドや処理が当然ながら出てきますが、
今回は非推奨になっているものも含んで紹介します。
スマホ業界は、プライバシーを守るため、セキュリティの向上のために、バージョンを上げて対応していきますが、アプリ開発者はその対応に必死です。
→場合によってはこれに対応しないとリリースできないよーってなるみたいです。

内部ストレージ系

端末ストレージに保存する内部ストレージ系
Android11時点までの内容になっています
(最新はAndroid12がリリースされています)

名称 ディレクトリ取得メソッド アプリ削除時に消える? 非推奨?
内部データ領域 getFilesDir yes no
内部キャッシュ領域 getCacheDir yes no

外部ストレージ系

Android端末で外部って言うとSDカードなんかをイメージしますが、
必ずしも外部ストレージ=SDカードではないみたいです。

名称 ディレクトリ取得メソッド アプリ削除時に消える? 非推奨?
外部データ領域 getExternalFilesDir yes no
外部キャッシュ領域 getExternalCacheDir yes no
外部公開領域 getExternalStorageDirectory no yes
外部公開共有領域 getExternalStoragePublicDirectory no yes

最後に

アプリが消えても、データは残して欲しいという事で、
過去のアプリだとgetExternalStorageDirectoryを使ってるアプリなんかが結構あったみたいですが、非推奨になった為、データ保存によく使われるようになったのは、

  • getExternalFilesDir
  • MediaStore API
    - 担当しているプロジェクトでは、画像データでアプリが消えても残して欲しいという事でこちらを使用しました。
  • Strage Access Framework (SAF)

などみたいです。
Android 対象範囲別ストレージでググるとこの辺りが出てきます。

Android(java)は日本語記事が少なく調査が大変ですよね。
最後まで読んで頂き、ありがとうございました。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?