Androidがプロセスを管理する方法
Windowsでは、デスクトップアプリは表示されているかどうかに関係なく実行を続けることができますが、AppleのiOSではアプリはバックグラウンドでいくつかの限られたタスクを実行することしかできません。 Androidはその間のどこかに位置しています - フォアグラウンドで実行されているアプリは優先されますが、アプリはiOSよりもバックグラウンドで実行する方がはるかに自由です。.
私たちは、Androidがあなたの携帯電話やタブレットで実行されているアプリやプロセスをどのように管理しているのかを詳しく見ていきます。.
プロセスライフサイクルの階層
Android上のプロセスは、最も重要なものから最も重要でないものまで、常に5つの異なる状態のいずれかになります。
- 前景プロセス注:使用しているアプリはフォアグラウンドプロセスと見なされます。他のプロセスもフォアグラウンドプロセスと見なすことができます。たとえば、それらが現在フォアグラウンドにあるプロセスと対話している場合などです。任意の時点でフォアグラウンドプロセスはわずかしかありません.
- 目に見えるプロセス:目に見えるプロセスはフォアグラウンドにはありませんが、それでも画面に表示されるものに影響を与えています。たとえば、フォアグラウンドプロセスは、その背後にあるアプリケーションを表示できるダイアログです。バックグラウンドで表示されているアプリケーションは、表示されているプロセスです。.
- サービスプロセス:サービスプロセスは、画面に表示されているアプリとは関係ありません。ただし、音楽の再生やバックグラウンドでのデータのダウンロードなど、バックグラウンドで何かをしています。たとえば、音楽の再生を開始して別のアプリに切り替えると、その音楽の再生はバックグラウンドで行われ、サービスプロセスによって処理されます。.
- バックグラウンドプロセス:バックグラウンドプロセスは現在ユーザーには見えません。彼らは電話を使用しての経験には影響を与えません。いつでも、多くのバックグラウンドプロセスが現在実行されています。あなたはこれらのバックグラウンドプロセスを「一時停止した」アプリケーションと考えることができます。それらはメモリに保存されているので、戻ってもすぐに使用を再開できますが、貴重なCPU時間やその他のメモリ以外のリソースは使用されていません。.
- 5.空のプロセス:空のプロセスにはアプリデータが含まれなくなりました。それは後でアプリの起動をスピードアップするためにキャッシュの目的で保存されるかもしれません、あるいはシステムは必要に応じてそれを殺すかもしれません.
たとえば、携帯電話の電源を入れて音楽アプリを開いたとします。あなたがそれを使用している間、音楽アプリはフォアグラウンドプロセスになります。音楽の再生を開始して音楽アプリを終了すると、音楽はサービスプロセスとして再生され続けます。.
別の例としてAngry Birdsを見てみましょう。あなたがそれをプレイしていた間、怒っている鳥は前景のプロセスになります。 Angry Birdsを離れてGmailアプリケーションにアクセスしてEメールを表示すると、Angry Birdsがバックグラウンドプロセスになります(バックグラウンドで何もする必要がないため)。Gmailはフォアグラウンドプロセスになります。 Angry Birdsに戻ると、それが前景プロセスになり、ゲームがすぐに再開されます。 Angry Birdsは、一部のRAMを除いて、バックグラウンドでリソースを使用していませんでしたが、キャッシュされた状態で再開の準備ができているため、すぐに再開します。.
Androidはプロセスを自動的に管理します
Androidはこれらのプロセスを自動的に管理するのに優れた仕事をしています。Androidではタスクキラーが不要なのはこのためです。.
Androidがより多くのシステムリソースを必要とするとき、それは最初に最も重要でないプロセスを殺し始めます。あなたが不足している場合、Androidはメモリを解放するために空とバックグラウンドのプロセスを殺し始めます。より多くのメモリが必要な場合 - たとえば、メモリがあまりないデバイスで特に要求の厳しいゲームをプレイしている場合、Androidはサービスプロセスを停止し始め、ストリーミング音楽やファイルのダウンロードは停止する.
ほとんどの場合、あなたがそれを心配する必要なしに、Androidはこれをすべて行います。 Androidは、アプリやその他のデータをキャッシュするためにデバイスのRAMをインテリジェントに使用します。.
もちろん、Androidは非常に高い柔軟性を備えたアプリを提供しているため、誤動作の余地があります。たとえば、コーディングが不十分なアプリは、バックグラウンドで常に実行されているサービスプロセスを開始し、CPU時間をすべて使い果たし、バッテリ寿命を大幅に短縮する可能性があります。.
Avastのようなアンチウイルスアプリで気づくでしょう! Androidの場合、アンチウイルスアプリは通知アイコンを使用します。通知アイコンを無効にしようとすると、Avast!それに対してお勧めします。目に見える通知アイコンを持つことによって、Avast!自分自身を優先度の高いアプリにして、Androidがそれをバックグラウンドアプリと見なして殺してしまうのを防ぎます。.
Androidアプリはイベントに応答して起動できる
Androidアプリはイベントに応じて起動することもできます。たとえば、開発者は起動時に自動的に実行され、バックグラウンドでサービスを実行するようにアプリをプログラムできます。写真を撮ったとき、データ接続が変更されたときなど、他のさまざまなイベントに応答してアプリを起動できます。これにより、アプリはバックグラウンドで常に実行されることなく、イベントに応じてアクションを実行できます。.
プロセス管理
手動でプロセスを管理する必要はありませんが、必要に応じてそれを実行する方法がいくつかあります。 Android 4.0以降のマルチタスクメニューを使用して、基本的なプロセス管理を行うことができます。これにアクセスするには、Nexusデバイスの専用マルチタスクボタンをタップします。他のAndroidデバイスでは、ホームボタンをダブルタップまたは長押しする必要があります。.
メニューに表示されているアプリは、おそらく「バックグラウンドプロセス」状態です。あなたはあなたのデバイスのメモリからそれを削除します左右にアプリをスワイプすることでそれらを殺すことができます。これは必ずしも必要ではありませんが、アプリをすぐに強制終了したい場合に役立ちます。.
また、[設定]画面に移動して[アプリ]をタップし、アプリをタップして、[強制停止]ボタンを使用して不正なアプリを強制終了することもできます。.
AndroidはLinuxをベースにしており、Android上のすべてのアプリは異なるLinuxユーザーID、つまりユーザーアカウントに割り当てられています。これにより、アプリは互いに分離されます。あなたがあなたのデバイスを根絶するならば、アプリはそれらのユーザサンドボックスをエスケープし、根の特権で走ることができます.
Image Credit:FlickrのJDハンコック