6
2

More than 1 year has passed since last update.

スマホでストレージの空き容量が無くなった時に、アプリデータがどうなるか試してみた

Posted at

はじめに

面倒なのであまりやらないんですが、ストレージの空き容量が無くなった時にアプリが動いてて、どうなるのかなーって思いますよね。
まあOSが不安定になったり、動かなくなったりするので、アプリ側はあまり心配もしてないんですが、自前アプリで動作確認してみました。

スマホはフラッシュメモリーなので、長く使ってると、ライトエラーも起きますしねえ。

結果

android 11エミュレータで試しました。

  • プリファレンスへ出力
    • 消えたりしなかった。書き込もうとした分は書き込めてなかった。
  • ファイルへ出力
    • ファイル内容は丸っと消えた。途中まで書き込めたりもするだろうね、きっと。試してないけど。対策すればいいんだけど面倒だね。
  • sqliteへ出力
    • DBファイルは無事。書き込めないので例外が発生して、落ちた。

iPhone XRで試しました。

androidと違い、空き容量200MBぐらいでダメになりました。設定のiPhoneストレージで確認したので、使用セクターの使ってない部分の合計が200MB近いとかなのかな

  • NSUserDefaultsへ出力
    • 消えたりしなかった。書き込もうとした分は反映されなかったと思う。ごめんちょっと記憶が曖昧:sweat_smile:
  • ファイルへ出力
    • writeToFile:atomically:をYES指定では当然問題なし。[NSKeyedArchiver archiveRootObject:toFile:]も問題なし。他の方法はきっと問題あり。
  • sqliteへ出力
    • DBファイルは無事。書き込めないけど。

終わりに

以上、自社アプリそのままで、試せる範囲で試しました。
試してないけど、空き容量ありでのライトエラーでもきっと同じ結果。

自社androidアプリ、ファイル出力のが丸っと消えてたので、対策はした。まあ一時ファイルに保存して、成功したらオリジナルを削除して、リネームするのみ。

6
2
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
6
2