▼Androidメモ▼
プロセスとスレッド
プロセスとスレッド
- コンポーネントの開始時に、 同一アプリ内に開始中のコンポーネントが存在しなかったら、 1つのプロセスと1つのスレッド(UIスレッド)を新規生成して開始。
- コンポーネントの開始時に、 同一アプリ内に開始中のコンポーネントが存在したら、既存のプロセスとスレッドを利用。
- デフォルト状態では、アプリ内のコンポーネントは同一プロセス・同一スレッドで実行される
- プロセスはAndroidManifestのandroid:process属性で変更可能。
- スレッドはThreadクラスで追加可能。
- UI操作はUIスレッドのみで行う。
プロセスの優先順位
Androidはできるだけ長い間プロセスを保持しようとするが、メモリ不足の時はシステムの判断で使ってないアプリを終了させていく。プロセスを終了させる際の優先順位は次の通り。アストロファイルマネージャの「メニュー→ツール→プロセスマネージャー」で確認可能。
優先順位 名前 説明 1 フォアグラウンド
(Foreground)画面表示中でユーザーからの要求を受け付けるアクティビティのプロセス。
メモリオーバー時のみ破棄。2 目に見える
(Visible)フォアグラウンドではないが画面表示に影響を与えるプロセス。
メモリオーバー時のみ破棄。3 サービス
(Service)サービスが保持しているプロセス。
音楽再生、ファイルダウンロード、ウィジェットなど。4 バックグラウンド
(Background)画面非表示中のアクティビティのプロセス。 5 空のプロセス
(Empty)無処理のプロセス。
−戻る−