のディスクにファイルを書き込むアンドロイドアプリを書いた。今では、ファイルシステムがのストレージスペースを使い果たしたときに何が起こるのだろうかと思います。私はそう思う。 java.io.FileOutputStream.write()
は私が捕まえなければならないIOException
を投げるでしょう。Androidの空き容量が不足している
私のスーパー忍者の力には頼りたくありません。私はtry-catchをどこかに置くことを忘れていたか、正しく処理していないかもしれません。したがってこのシナリオをテストしたい。
悲しいことに、悲しいことに、私はそうしても良い練習について何の言葉も見つけられませんでした。私は手動でこのようなもので、ファイルシステムを詰めるコールドもちろん
、私は推測する:
write()
が別個のファイルを生成するか、単一のものに追加するか
size = N
dir = /some/path
data = generateDataForSize(size)
while(write(data, dir));
while(round(size/=2) > 1)
write(generateDataForSize(size), dir)
。 generateDataForSize()
と大きなサイズでいくつかの問題があるかもしれませんが、今のところそれを置いておきましょう。
私の悩みは、これを私のアプリのどこかに入れなければならないことです。私はその$%#を掃除しなければなりません!手動でさて、私はそれを自分のディレクトリの中に入れて、私はちょうどadbシェル上の1行ですべてを破棄することができます。
とにかく、私は行方不明でこれに行くための簡単な方法はありますか?アンドロイドはアプリごとに利用可能なストレージ容量を一時的に制限するような仕組みを提供していますか?すべて単体テストやアンドロイドSDKツールのソルト?どのように他の人(あなた)がこれを行うのですか?
TL; DR:効率的にそれはいっぱいだとき、FSに書き込みのテストケースのためのFSを詰め込む方法。
編集:私は根付いていない実際のデバイス上でテストしています。エミュレータは、HAXMが起動していても致命的に遅くなります。エミュレータを使用すると、悲しいことに、オプションではありません。
AVDに利用できるスペースを制限したTasos Moustakasのヒントは素晴らしいですが、私はあなたがandroid:installLocation="preferExternal"
との問題を避けて、あなたのアプリをsdに書き込むか、限られたsdにファイルを書き込むかどうかは、これが受け入れられる解決策だと思います。
私がやったことは、受け入れられた答えはかなりです。しかし、それでもいくつかの手作業が必要なので、もっと答えを投稿してください。
まず、どこアプリをテストするのですか? AVDエミュレータまたは物理デバイス? –