Android アプリが一定量のメモリを取得することに依存できますか、それとも電話のモデルや OS のバージョンによって異なりますか?
たとえば、メモリ キャッシュがあり、その制限を 5 MB に設定したとします。あるデバイスでは、アプリが 8 MB のメモリしか使用できず、別のデバイスでは 24 MB しか使用できない場合、メモリ キャッシュの上限を調整して、多かれ少なかれメモリを活用したいと考えています。
これを把握する方法はありますか、金額も異なりますか?
はい、最大ヒープ サイズはデバイスによって異なります。を呼び出して、デバイスのおおよそのアプリケーションごとのメモリ クラスを確認できますgetMemoryClass()
。
現在のデバイスのおおよそのアプリケーションごとのメモリ クラスを返します。これにより、システム全体が最適に機能するために、アプリケーションに課すメモリ制限の厳しさがわかります。戻り値はメガバイト単位です。ベースラインの Android メモリ クラスは 16 です (これはたまたま、これらのデバイスの Java ヒープ制限です)。より多くのメモリを搭載した一部のデバイスは、24 またはそれ以上の数値を返す場合があります。
アプリのヒープ サイズを変更する唯一の組み込みの方法はandroid:largeHeap="true"
、AndroidManifest.xml
. これにより、通常、ヒープ サイズが 48 から 128 に増加します。このアプローチは 3.x タブレットでのみ機能することに注意してください。それ以外の場合は、ルート化されたデバイスが必要になります。これは明らかに、開発者として信頼したいものではありません.
それはあなたを助けるかもしれません
16 MB は、特定の Android アプリケーションに与えられる最大メモリ制限です。一部の第 2 世代の電話では、プロセスごとに 24 MB またはそれ以上のメモリが返されます。