Androidの理論は、優先度の高い別のプロセス(つまり現在のフォアグラウンドプロセス)がより多くのメモリを必要とするときに、実行中のアプリケーションがコールバックメカニズムによってメモリを解放する必要があるということです。さらに、メモリ要求がさらに増加すると、OSは他のアプリケーションを強制終了させます。
したがって、アプリケーションでシステムのすべてのメモリを実質的に使用できるようにするには、フォアグラウンドに留まるようにするか、他の方法よりメモリ要求が優先されるようにする必要がありますメモリの要求(残念ながら、後者の部分が正確にどうなるかは言えませんでした)。
特定のアプリケーションの外でメモリを解放するために手動で行うことはできません。 OSは正しいことをしています。メモリが必要なので、アプリケーションは「すべての重要でないデータを削除します」と指示します。その後、より多くのメモリが必要な場合、失われるように指示します。メモリを解放するための手動アプローチは、基本的に同じことをします。
編集:他の "メモリフリー"アプリケーションが何をしているのか不思議に思います。答えは、彼らは手動でアプローチし、OSが実行しているのと同じことを実行していることです。実行中のプロセスにシグナルを送ります。これが不必要な理由は、あなたがそれを必要とする前に、無料のラムが実際にあなたに何も役に立たないということです。余分なスペースが必要になる前に、OSがこの作業を行います。これにより、絶対に必要とされる前にプロセスが強制終了されることはありません。
ごみがない場合はどうなりますか?これ以上参照されないメモリは解放できません。そのような保証は存在できません(弱いフォームは依然としてVMに大きな制限があり、最終的に効率を低下させます)。 – delnan
vmが必要なときにRAMを解放します。したがって、すべての目的および目的のために、ライブオブジェクトに割り当てられていないすべてのメモリが常に利用可能です。私は、あなたの操作やユーザーがこれを達成することにより、(もし可能であれば)かなりのメリットを受けることは間違いないと思っています。 – jpm
ここには事があります。私はramを解放しようと試みてsystem.gc()と呼ばれるアプリを持っています。通常は何も起こりませんが、ラムを解放する別のアプリのウィジェットをクリックすると、フリーラムが100%増加し、UIの応答性が向上します。 –