Android オペレーティング システムのメモリ管理に関するこの質問に非常に興味があるので、そのトピックに関する非常に詳細な回答を期待しています。
私が知りたいこと:
- Android アプリケーション (システム アプリではない) が使用できるメモリの最大量(メガバイト単位/ RAM 全体に対するパーセンテージ) は?
- Android のバージョン間に違いはありますか?
- デバイスの製造元に関する違いはありますか?
最も重要な:
- アプリが実行時に使用できる RAM の量をシステムが決定する際に考慮されること/依存することは何ですか(アプリごとのメモリの最大値が静的な数値ではないことを前提としています)。
これまでに聞いたこと(2013年まで):
- 初期の Android デバイスのアプリあたりの上限は 16 MB でした
- その後、この上限は 24MB または 32MB に増加しました
私が非常に興味を持っている理由:
これらの制限は両方とも非常に低いです。
最近、デバイスの RAM をチェックするためにAndroid タスク マネージャーをダウンロードしました。私が気付いたのは、約 40 ~ 50 メガバイトの RAM を使用するアプリケーションがあることです。これは、前述の最大 RAM 使用量 (たとえば 32 MB) を明らかに超えています。では、Android はアプリが使用できる RAM の量をどのように決定するのでしょうか? アプリがその制限を超える可能性はありますか?
さらに、約 30 ~ 40 メガバイトを使用すると、 OutOfMemoryExceptionで一部のアプリがクラッシュする (システムによって強制終了される?) ことに気付きました。一方、クラッシュしたり強制終了されたりしないアプリは、しばらくすると (おそらくメモリ リークが原因で) 100 MB 以上を使用して携帯電話で実行されます。そのため、どれだけの RAM を節約できるかを判断する際には、明らかにアプリ自体にも依存します。これはどのように可能ですか?(768 MB RAM の HTC One S でテストを実施しました)
免責事項: 私は Android タスク マネージャー アプリとは一切関係ありません。