9.5

  • application启动的两种方式:点击图标启动startActivity跳转启动,两种方式都会调用ActivityManagerServices(AMS)的startActivity完成。
    • AMS进行判断与准备工作
    • 将当前Activity置为pause
      • AMS通过ApplicationThread.schedulePauseActivity完成
      • ActivityThread主线程调用Activity.onPause,并通知WindowsManagerServices(WMS)改变窗口界面
      • 进程通知AMS已完成pause请求
    • AMS开始启动第二个Activity
      • 若第二个Activity所属进程不存在则先进行启动Process.start,调用应用程序主线程的main函数
      • 启动后通过attachApplication通知AMS
      • AMS通过ApplicationThread.scheduleLaunchActivity向应用程序请求启动指定的Activity,再由进程自己完成后续的显示工作

你可能感兴趣的:(9.5)