2012-01-20 3 views
6

タイトルのように、私はまだ16 MBのヒープサイズの制限の周りに自分のアプリケーションを設計する必要がありますか?私が尋ねる理由は、私が2年近く前のDroid 2でうまく動作するゲームを開発しているということです。しかし、16MBのヒープサイズ制限を持つAVDを使用してアプリケーションをテストすると、メモリエラーが発生します。 DDMSを使用してアプリケーションを監視すると、ゲームに割り当てられる合計メモリは約20 MBになります。巨大な違いはありませんが、私のゲームを16 MBの制限の下で動作させることは、ビジュアルを傷つけるでしょう。Androidのヒープサイズの制限は、まだ16 MBの制限を念頭に置いてアプリケーションを設計する必要がありますか?

今、2008年だったら、私はこの質問をしていません。しかしG1はデビューしてから約4年後の2012年です。過去1年間に作られたほとんどの電話機では、アプリケーションで16MB以上のメモリを割り当てることができます。あるいは、私は16 MBの制限を念頭に置いて自分のアプリケーションを設計しないことで自分自身を悩ませていますか?

+0

私は5年間、古い携帯電話を保管していました。私は5年間もDroid 2Gを保つことを期待しています。 – Chloe

答えて

6

ヒープリミットは、デバイスの解像度(および場合によってはその他の要因)によって異なります。高解像度デバイスでは、ヒープリミットは30MB、低解像度G1では16MBです。一般的に、低解像度のデバイスは低解像度のグラフィックス(より少ないスペースを占める)を使用し、高解像度のデバイスは高解像度のグラフィックス(より多くのスペースを占める)を使用するように、グラフィックを適宜変更する必要があります。

+2

ありがとう、あなたのポストは私が最初にエミュレータ内の私のアプリケーションでクラッシュを起こしていた理由を理解してくれました。 AVDを大画面解像度に設定しましたが、それに応じてヒープサイズを上げませんでした。私が戻って元のG1に似た何かに画面の解像度を変更したとき、私のゲームは16 MBのヒープサイズの制限を超えないで完璧に走った。 – AntiWiggin

2

はい、私たちはまだそれが必要ですが、すべての場合ではありません。 ネイティブコードを使用している場合、cコンパイラによって割り当てられたメモリにはこの制限が含まれません。したがって、アプリケーションの必須コンポーネントにさらに多くのメモリを割り当てることができます。 2番目の方法は、OpenGLを使用して画像を描画するためにテクスチャを使用することです。これらのテクスチャのメモリには制限されたメモリが含まれていません。これらの技術はすべてのケースで

もう一つ重要なことを実装することはできません

しかし、あなたはそれの30%が一つのアプリケーションに使用可能な、完全にalso.Onlyこれらの30メガバイトを使用することはできません。

+0

"1つのアプリケーションで使用できるのは30%だけです。" 5つのアプリを一緒に開くのはどうですか? –

関連する問題