VMヒープのサイズは、電話に応じて16MB、24MB、32MBを超えることはできません。 しかし、ネイティブヒープの最大サイズはいくらですか?アプリがフォアグラウンドにあるときにどれだけのネイティブメモリを割り当てることができるか。アンドロイドアプリケーションに割り当てることができる最大のネイティブメモリ
ありがとうございました。
VMヒープのサイズは、電話に応じて16MB、24MB、32MBを超えることはできません。 しかし、ネイティブヒープの最大サイズはいくらですか?アプリがフォアグラウンドにあるときにどれだけのネイティブメモリを割り当てることができるか。アンドロイドアプリケーションに割り当てることができる最大のネイティブメモリ
ありがとうございました。
技術的にはNDKに制限はありません。 Someoneはこれを尋ねた後、this android-ndk Groups threadと呼ばれていました。 releventの引用:それは唯一のJavaヒープ上にあるため
は「また、これはNDKリストであることを考えると、限界は実際に 、あなたに課されていないネイティブヒープ内 配分上の制限はありません。 ...」
ダイアンHackborn
彼女は、それが悪用されるべきでないことを言うために行くんし、それがアプリケーションよりもある場合を死滅させることができます。
これには簡単な答えはありません。デバイスと同じくらい多くのメモリを使用して、他のプログラムで使用しているメモリを差し引いて使用することができます。 Androidはメモリが不足していると判断すると、バックグラウンドタスクを開始するため、ソフトの制限があります。ほとんどのデバイスにはスワップ領域がありません。あなたはandroid.app.ActivityManager.MemoryInfoを使ってDalvikからデバイスのメモリに関する統計を得ることができます(私はNDKに相当すると仮定します)。
adb shell dumpsys meminfo PACKAGENAME
あなたのアプリのネイティブとdalvikのメモリ使用量を提供します。
Android Oでは、メモリの使用状況が変化しているようです。ビットマップはネイティブメモリに保存されていると思います。どのようにそれに対処しますか?たとえば、mem-cacheのサイズはどのように決めますか?私はここでこれについて尋ねました:https://stackoverflow.com/q/48091403/878126 –