JavaでAndroidアプリを作成しましたが、エミュレーターでは正常に動作しますが、実際の電話ではクラッシュしout of memory error
ます. 私のアプリの合計サイズは 141 MB です。データが多すぎるため、またはアプリにメディアを保存するためのより良い方法があるため、このエラーが発生しないようにするにはどうすればよいですか?
ここにいくつかの画像があります
1 オーディオ ギャラリー
ビデオギャラリー
画像、音声、動画などのアプリにデータを保存することはお勧めしません。同様に、曲、画像、動画をアプリに提供すると、著作権や著作権侵害の訴訟につながる可能性があります。ただし、独自のデータがある場合は、アプリにクライアント/サーバーアーキテクチャを実装する必要があります。サーバーからアイテムをホストし、必要に応じてアプリでアイテムを取得します。
デバイスが保持できるメモリについては、
ヒープ サイズは、アプリを実行しているハードウェアによって異なります。たとえば、G1 では 16 MB、nexus では 32 MB です。それについてあなたができることはたくさんあるとは思わないでください。3.0 未満のバージョンを対象とする場合は、そうです。
Google が示しているように、これを使用すると、アプリのユーザーを苛立たせる傾向があります。アプリはより多くのメモリを消費するため、他のアプリがより早くメモリから追い出されます。一部のユーザーは、この動作を気に入らないでしょう。そして、これがタブレットのオプションだけになる可能性は非常に高いです - 私は、Ice Cream Sandwich の携帯電話が必ずしも android:largeHeap をサポートするとは考えていません。
リソースが読み込まれると、メモリが初期化されると思います...Androidのヒープメモリを超えるアクティビティでリソースを読み込もうとしていることが、メモリ不足になっている理由です。