Android携帯用のシンプルなアプリ(TCHS JROTC)を作りました。私はGalaxy S2 Epic 4gでこのアプリを作ったが、完璧に処理した。 Evo 4gやNexus Sなどの他の携帯電話を除いて、約8枚の画像アイコンを持つ特定の画面を強制的に閉じます。私はそれをデバッグし、 "Not Enough Memory"と言うエラーをスローします。これは私のコードが完全に完璧で完璧に機能していると思っていたものです。誰もが、単にアイコンの画像を一度にアクティビティをダンプするのではなく、アプリケーションを段階的にロードする方法を考えていますか?ありがとう!Android Appが多すぎるメモリを使用しています。 RAMを少なくして実行するにはどうすればよいですか?
答えて
あなたのアプリのメモリ消費量を減らすためにできることは、アイコンにピクセルの別のエンコーディングを使用することです。
ピクセルをRGB888、ARGB8888、ARGB4444、RGB565などでエンコードすることができます。ビットマップがアセットの形式で格納されている場合、ビットマップをロードする方法は次のとおりです。この例は、「Androidゲームを始める」という本の例です。あなたがAndroidゲームを書くことに興味がない場合でも絶対にお勧めです。
InputStream inputStream = assetManager.open("bob.png");
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_4444;
Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, options);
この例では、ARGB4444エンコーディングが使用されています。たとえば、ARGB8888よりも少ないメモリを使用します。
私はちょうどアンドロイドプログラミングの初心者です。しかし、私はそれはあなたがあなたのプロジェクトに直接入れるのではなく、外部メモリ/ SDカードにイメージを保存すると、あなたのアプリのメモリフットプリントを減らすかもしれないと思う。こうすることで、結果の.apkファイルの一部になります。これには余分なバイトがいくつかあります。 :-)この点について私が間違っている場合は、私を修正してください。私はちょうど学んでいます。
最後の点が間違っています。異なるファイルシステムの場所にファイルを格納しても、メモリ不足(ヒープ)問題の解決には役立ちません。 – cistearns
私はドロウアブルを使っていましたが、それは非常にばかな間違いでした。私は彼らが適切なサイズに私のアプリを2MBから567または何かKBに行ったそれらをrescaledときに私は小さな肥大化する必要があったときに巨大な写真を保存!それはすべての強制的な問題を解決し、それは私の問題でした。しかし、助けてくれてありがとう! – user1064249
- 1. Gensim Word2Vecが多すぎるメモリを使用しています
- 2. curl_multi_exec()が多すぎるメモリを使用しています
- 3. アンドロイドエミュレータが使用しているRAMの量を変更するにはどうすればよいですか?
- 4. Appバーを使用して検索を実行するにはどうすればよいですか?
- 5. どのように多くのRAMが異なるPythonオブジェクトを使用していますか?
- 6. Google App Scriptを使用して、多くの行で同様の機能を実行するにはどうすればよいですか?
- 7. デバイスでデータベースを使用してAndroidアプリケーションを実行するにはどうすればよいですか?
- 8. Eclipseを使用してBluestackアプリケーションプレーヤーでAndroidアプリケーションを実行するにはどうすればよいですか?
- 9. Kotlinを使用して単一のAndroidテストを実行するにはどうすればよいですか?
- 10. Androidを使用してURLを実行するにはどうすればよいですか?
- 11. Android:実行していないアプリケーションをサービスに登録するにはどうすればよいですか?
- 12. Javaが多すぎるメモリを消費しています
- 13. Androidのキーストアを使用してFlex Mobile Appに署名するにはどうすればよいですか?
- 14. Visual C++ express 10が多すぎるメモリを使用しています
- 15. Entity Frameworkが実行しているクエリが多すぎます
- 16. NDKを使用してcコードを使用してAPIレベルを実行しているデバイスを確認するにはどうすればよいですか?
- 17. Android - 画像をダウンロードして実行時に使用するにはどうすればいいですか?
- 18. XcodeをビルドしてApplescriptを使用して実行するにはどうすればよいですか?
- 19. Javaを使用してVMWare VMのRAM/CPUを変更するにはどうすればよいですか?
- 20. メモリ使用量の多いアプリケーションでメモリが不足しないようにするにはどうすればよいですか?
- 21. 多くのビットマップでメモリ使用量を最適化するにはどうすればよいですか?
- 22. MSBuildを使用して(実際に)AfterPublishを実行するにはどうすればよいですか?
- 23. 規制を使用して多くのルートを制限するにはどうすればよいですか?
- 24. IntelliJを使用してエミュレータでアンドロイドテストを実行するにはどうすればよいですか?
- 25. Appengineのフロントエンドインスタンスはますます多くのRAMを使用していますが、これをどのように減らすことができますか?
- 26. C++を使用してRAMから実行可能ファイルを実行するにはどうすればよいですか?
- 27. AndroidでViewサブクラスを正しく記述して使用するにはどうすればよいですか?
- 28. しばらくしてからWP7 Silverlightアプリケーションを実行するにはどうすればよいですか?
- 29. プロトコルを使用して同時実行スレッドを実装するにはどうすればよいですか?
- 30. アンドロイドコマンドで現在実行中のアプリケーションのメモリ使用量を調べて、メモリの使用量を確認するにはどうすればよいですか?
メモリ不足エラーを正常に処理できない場合は、コードは完璧ではありません – LordT
異なるDPIのアイコンを提供していますか?つまり、それらを 'drawable-xhdpi' /' drawable-hdpi'/'drawable-mdpi'と' drawable-ldpi'か、すべてを 'drawable'にダンプしましたか? – Jens
メモリ不足の時点でのログ出力と、その画面で何をしているのかについてのより深い説明を見ると非常に役に立ちます。私はあなたが使用しているイメージがあなたのUIに適した大きさであることを確認します。必要以上に大きいイメージを使用するとメモリフルサイズでロードしてからサイズを変更する必要があります。それ以上に、実際にはメモリリークがあり、MATを使用してGoogle IOビデオを検索することをお勧めします。 – cistearns