Androidを支える技術<II>輪読会 4.5, 5.1
日付:3/11
章:5.1
調査者:takasshii.icon
プロセスの生成〜アプリのプロセスの流れ
Zygoteは渡されたクラスをforkして指定されたuidを設定し、ActivityThreadのmain()メソッドを実行する ActivityThreadのattach()が呼び出され、ActivityThreadがActivityManagerServiceからアプリのパスを受け取る
ActivityManagerServiceはこれ以降、プロキシ経由でActivityThreadを操作できる
bindApplication()を行うことで必要な情報をアプリのプロセスに渡して起動
アプリのプロセスがActivityを生成する流れ
ActivityManagerServiceがActiviyThreadのscheduleLaunchActivity()を呼び出す
ActivityRecordに対応するtokenが作られる
tokenはBinder越しにscheduleLaunchActivity()の引数としてアプリのプロセスに渡される
UIスレッドからhandleLaunchActivity()が呼び出され、Actiivtyが作成される
tokenをキーにonCreateなどのライフサイクル処理を行う
応用
code:sample.kt
質疑応答