Androidのアプリ内領域のリソース制限を調べる

By Iguchi
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Androidってアプリ内でどのくらいデータを保存できるのだろう?
ということで調べてみました。

検証のために以下のコードを書いて、contextにどんどん値を書き込むリソース制限チェックアプリを作成しました。

このアプリを実行し、しばらくたつとエクセプションをキャッチしました。以下はその時のリソース制限チェックアプリの画面です。
実行結果

書きこめたサイズは233,214,000Byte(約233MByte)。
エクセプションは「No space left on device」

あとは、これが何のサイズか調べればいいか。

ん?

なんかAndroid端末の様子がおかしい。
まず、以下のお知らせが来てました。

お知らせ

そして、他のアプリ(メーラーなど)を開いてみたところ以下のメッセージが。
メールエラー
うーん、なんどやってもこのエラーが出る。他のアプリにも影響しているのか??

とりあえず今回作ったアプリケーション情報を見てみました。
アプリケーション情報

222MB使用している。だいたい書きこんだサイズと一致してますね。書きこみは成功しているようです。

次に、端末の情報も見てみました。
端末情報1

あと40KB・・・。やばい。

急いで今回作ったアプリをアンインストール。

そして、アプリケーションを消したあとの端末の情報を見ると
端末情報2

223MBに復活!。メールも見れるようになりました。

ちなみに今回使用した端末であるHT03Aのスペックも調べてみました。以下です。

端末情報
512MB。これが端末内で使用できるサイズになりそうですね。

ふむふむ。なるほど。これらか予想できることとして、今回作ったアプリで端末のROMを使用できるだけ使用しているように見えます。
アプリ内での使用メモリ制限は今のところはないということですかね。

まとめると、

  • アプリ毎に使用できるサイズに、今のところ制限はない
  • アプリ内で使用できるサイズは、端末のROMのサイズ
  • 書きこめるサイズが少なくなると、空き容量低下の「お知らせ」が来る
  • 書きこめなくなるとエクセプションは「No space left on device」
  • アプリ内領域を使用しすぎると他のアプリにも影響が出てしまう

どのくらい使えるか知らないまま使うより、どれだけ使えるか、どんな影響があるか知った上で使った方が安心ですよね。

以上になります。

関連する投稿