1

私の Android アプリケーションのサイズはデバイス上でわずか 5MB ですが、アプリケーションを実行すると、約 12 ~ 18 MB (および ics デバイスではそれ以上) の RAM を大量に使用します。アプリケーションが大量の RAM を使用している理由について、これについての説明を見つけようとしています。解析からのプッシュ サービスも使用しています。私のアプリケーションは画像を多用します。これが理由として考えられます。アプリケーションの RAM 消費を減らすにはどうすればよいですか。

4

2 に答える 2

5

その理由として最も可能性が高いのは、アプリが画像を多用することです。概して、イメージはディスクよりも RAM の方がかなり多くのメモリを占有します。イメージが使用するメモリ量を確認するには、次の式を使用します。

For ARGB images: memory(in bytes) = width * height * 4

これは、ARGB イメージがピクセルごとに 4 つのチャネルを持っているためです。

For RGB images: memory(in bytes) = width * height * 3

これは、RGB イメージが 1 ピクセルあたり 3 つのチャネルを持っているためです。

したがって、使用するメモリを減らすには、画像のサイズを小さくするか、必要のない画像からアルファ チャネルを削除してください。

于 2012-07-09T18:22:30.893 に答える
3

デバイス上の 5MB には、大量の圧縮データが含まれています。JPG や PNG として圧縮された画像などは、アプリの実行時にかなり大きなビットマップにデコードされます。

例として、300kB の PNG がメモリ内で 6MB のビットマップに変わることがあります。

ICS では、ハードウェア アクセラレーションで使用するためにイメージがコピーされるため、さらに多くのメモリが使用されます。

RAM の消費量を減らすには、小さいイメージを使用し (サイズを小さくして、圧縮率を高くするのではなく)、使用するビューの数を減らし、メモリ リークが発生していないことを確認します。

于 2012-07-09T18:12:03.007 に答える