アプリケーションの 1 つのサービスを停止すると、メモリ使用量はサービスの実行時と同じになります。このサービスを始めないと増えません。メイン アクティビティによってサービスが停止されたときに、Android がサービスのメモリを解放しないのはなぜですか?
3 に答える
1
Android は、コンテキスト オブジェクト (Activity、Service ...) を含む各オブジェクト割り当てに対してシステム メモリを割り当てません。
各 Android アプリはそのDVM上で実行されるため、Androidは OS の状態、使用可能なメモリ、およびその他の要因に応じて、その VM に特定のメモリを提供します。
アプリケーションはそのメモリを使用し、KVMがより多くのメモリを要求した場合、OS はより多くのメモリを割り当てようとします。そのため、Linux プロセス レベルでは、オブジェクトの割り当ての影響を確認できません。実際、最新の VM でそれを確認できるとは思えません。
割り当て解除についても同様です。
ここを見てください:JVMメモリはKVMではありませんが、同じ概念を共有しています。
于 2013-05-11T21:36:38.650 に答える
0
オブジェクトへの参照がなくなった場合、GC は最終的にそれを解放します。メモリが少なくなるとGCが実行されるため、メモリ不足によるエラーは表示されません。
サービスが停止したら、必ずオブジェクトを解放してください。
于 2013-05-11T21:25:11.590 に答える
0
後でガベージ コレクターを実行して、参照されていないオブジェクトを削除することができます。オブジェクトを解放した直後には発生しません。
于 2013-05-11T20:21:36.410 に答える