0

私が自分のプロジェクトに取り組み始めたとき、私はプログラミングの方法がまったくわからず、ただ学んでいただけでした。私のプログラムは多くのビットマップ グラフィックスを必要とし、早い段階でメモリの問題に遭遇しました。アプリ マニフェストで LargeHeap を有効にして、グラフィックスにより多くのメモリを使用できるようにしましたが、それ以来、Android がガベージ コレクタでメモリを処理する方法について詳しく学びました。ビットマップを変更した速度に GC が追いつくことができるかどうかをテストするために小さなデモ アプリを作成し、すべてが正常に機能することを確認しました。

しかし、現在 170 MB のばかげたヒープを持っている大きなプロジェクト内で GC を利用しようとすると (プログラムは一般的な用途ではないため、ヒープは実際には問題ではありません...私はうるさいだけです)、メモリ消費量が増えていきます。過去に自分のアプリでアンドロイドの奇妙な動作に気づいたことがありますが、最終的には「プログラムがシステムに対して大きすぎる可能性があります」と結論付けたので、自分のプログラムが大きすぎると信じるのが理にかなっているのだろうかと思っていましたまたは、ガベージ コレクターが十分な速さで作業を行うには集中力が必要ですか? つまり、アプリの 170 MB ヒープはばかげていますよね?

編集-問題の解決策と私の質問への答えは、GCを利用するようにプログラム全体を書き直すことから得られると考えています。しかし、私が言ったように、それには全体を書き直す必要があります!! -だから私はむしろ気にしないでください:D

4

1 に答える 1

0

まず、GC について心配する必要があります。通常、(ギャラリーの場合と同様に) 複数の画像が読み込まれます。BMP に基づく画像がロードされ、保存されます。したがって、それらのサイズは実際にはピクセル数に依存します。

これはよく似た問題です。したがって、Imageサイズとアスペクト比を調整すると、すべてうまくいくはずです。

于 2013-02-15T10:46:10.070 に答える