自分に問いかけるべき質問
1. メモリ要件は?
データを処理するために大量のメモリ (物理的ではなく、ヒープ内にある) が必要ですか、それとも最小限ですか? 現在、ほとんどのデバイスには 64 MB のヒープ サイズが付属していますが、これは製造元によって異なります。同じAPIレベルでも違います。最小値を見つけて、その量のヒープ メモリが使用可能であることを確認します。
実行時に消費しているメモリを監視するには、これを確認してください
現在のデバイスで利用可能なヒープメモリの量を調べるには、これとこれを確認してください。
Android は Windows とは異なり、すべてのアプリは同じ量のヒープ メモリで開始され、そのデバイス上のすべてのアプリで一定であることを忘れないでください。つまり、アプリはこの使用可能なメモリを超えて拡張することはできません。マニフェストでこのタグを使用して追加のメモリを要求できます android:largeHeap="true"
が、この機能は 3.0 より前の OS バージョンでは使用できません。
ほとんどすべてのメモリが他のアプリケーションによって使用されているモバイルの 1 つで、このアプリケーションを試してみました。私のアプリケーションは写真をキャプチャできません。そして、いくつかのアプリケーションを削除すると、アプリケーションは正常に動作します。
Android を実行しているアプリが他のすべてのアプリ側を配置すると、ヒープ サイズによって定義されたメモリがアプリにあることを意味し、OS がより多くのメモリが必要であると判断した場合、またはより多くのメモリを割り当てられなかった場合、それらのプロセスが強制終了されるため、上記の仮定は非常に紛らわしいものです。Android は、現在実行中のタスクに高い優先度を与えます。そのため、アプリを操作している場合、メモリがヒープ サイズよりも少なくなる可能性はほとんどありません。他のアプリで問題が発生する別の理由が考えられます。
2. API 要件は何ですか?
古い API とレベルでは利用できない特別な API を使用している場合、アプリが単にその API バージョンをサポートしないと言うか、その特定の機能をバックポートするかの 2 つのオプションがあります。
3. ハードウェア要件は何ですか?
特殊なソフトウェアまたはハードウェアを使用しているかどうか、その特殊なハードウェアをすべてのデバイスで使用できるかどうかを自問してください。例、NFC、ブルートゥース。
4. ディスプレイの要件は何ですか? このアプリはモバイル専用ですか、それともモバイルとタブレットの両方に対応していますか? タブレットとモバイルの中間に位置する 7 インチはどうでしょうか。
5. ローカリゼーションの要件は何ですか?
このアプリは特殊文字セットに依存していますか? 特定のデバイスにこれらの文字がない場合はどうなりますか。
そして、参考までに、あなたが言及したオブジェクトの量は、数 MB 以上を占めるべきではありません。ただし、ビットマップを扱うときは注意してください。これを読む