2017-07-28 3 views
0

私は〜1GBのメモリフットプリントでアプリケーションを書いています。 メモリが4GBのデバイスでもアプリケーションは正常に動作しますが、メモリが3GB未満のデバイスでは、積極的なメモリ再利用がトリガーされ、OOMキラーがトリガされ、システムレベルでのユーザーエクスペリエンスが低下することがあります(たとえば、以前のアプリ、バックグラウンドの音楽プレーヤーが死んでしまう)アンドロイドでメモリストレス、メモリリクルートアグレッシブ、またはOOMキルレベルを検出するにはどうすればよいですか?

システムのメモリステータスを照会し、それに応じて私のアプリケーションのメモリ使用量を調整できるかどうかは疑問だ。システムがActivityManager.RunningAppProcessInfo.IMPORTANCE_SERVICEレベルのプロセスを強制終了する前に、メモリを控えめに使用してください。

これは可能ですか?

答えて

1

まず、あなたがあなたを見て、あなたのアプリケーションをプロファイルすることが本当に多くのメモリが常に割り当てられていることが必要です。

次にあなたがonTrimMemory()コールバック(APIを持って14+ )、デバイスが不足している場合は、一部のリソースを解放するために使用できます。

オペレーティングシステムが、プロセスから不要なメモリをトリミングするのに最適な時間であると判断したときに呼び出されます( )。これは、たとえばバックグラウンドで実行されたときに が発生し、多くのバックグラウンドプロセスを必要に応じて実行するのに十分なメモリがない場合です( )。

関連する問題