- ベストアンサー
アンドロイドのメモリー管理
- アンドロイドOSの自動的なメモリー開放プロセスについて
- メモリー不足でアプリを終了させる際の基準と優先順位について
- メモリー管理を怠ると常駐型アプリが終了する可能性について
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どのプロセスを強制終了させるかを判断するため、状態に基づいて各プロセスの重要度を判定し、必要であれば重要度の低いもの(下記の区分けでは 5に含まれるもの)から強制終了するようです。 重要度の高い順に並べると下記の様になります。 1.フォアグラウンド プロセス(ユーザーが行っている作業に必要なプロセス) 2.可視プロセス(ユーザーが見ている画面に影響を及ぼすことのできるプロセス) 3.サービス プロセス 4.バックグラウンド プロセス 5.空のプロセス ※参考:Android Developer http://developer.android.com/intl/ja/guide/topics/fundamentals.html
その他の回答 (1)
>特定のアプリを保護する、或いは終了に際して優先順位 >を付けることは可能でしょうか? 保護というか、アプリを終了不可にすることは可能です。ただし、これはアプリの開発段階でそのように設定して作ります。勝手に終了されると困るようなアプリでは、この設定を行って勝手にメモリを解放されないようにしています。 >メモリー管理を怠った際に、SPモードや着信制御アプリのような常駐型のアプリが終了して >しまうことを心配しての質問です。 アプリの開発段階で、そうしたアプリは終了しないようにしているはずですので心配はないでしょう。ただし、すべてのアプリが正しく作られているわけではありません。そのへん、いい加減に作ってあるアプリは勝手に終了してしまうこともあるかも知れません。このあたりは実際に使ってみるしかないでしょう。著名なアプリは、たいていそのあたりはきちんと作っているはずですので、勝手に終了することはないはずです。 また、Androidではアプリというのはパソコンのように1つのプログラムがタスクとして実行されているようなものではなくて、いくつものプロセスによって複合的に動いています。あるアプリを起動しても、実は画面に表示されるアクティビティとプリファレンスのアクティビティとバックで処理するサービスと……みたいにいくつものプロセスが実行されている、ということも多々あるのです。ですから、一見するとアプリは終了しているのだけど、実は1つだけサービスのプロセスが起動したままになっていて、それが背後で何らかの処理をし続けている……なんてこともあります。 ですから、見た目で終了しているからといって本当に完全に止まっているかどうかは別だったりします。タスクマネージャなどでは、こうしたものも有無をいわさずタスクKillしてしまったりするので、こうしたタスクマネージャを使うと、本来終了しては困るものなども終了することになるので、そのあたり注意して利用されるのがよいと思います。
お礼
丁寧なご説明ありがとう御座います。 プログラムの走り方がwinとかとは違うのですね。 その辺をわきまえて使っていきたいと思います。
補足
早速の解説ありがとう御座います。 大変良くわかりました。 参考文を拝見したですが、 1)オートスタートするプロセス→サービスプロセス 2)空のプロセス→ウィンドウズのプリフェッチのようなもの という理解で良いのでしょうか?