前言
AMS
AMS(Activity Manager Service)是系统进程的一部分,是 Binder Server,用于管理、记录、查询运行的组件信息。
AMS 是管理Activity和组件运行状态的系统进程,主要功能如下:
- 组件状态管理(四大组件)
- 组件状态查询
- Task相关操作
- 其他操作(系统运行时信息,如内存、cpu信息,的查询等)
通过以下方法获取ActivityManager
对象,进而获取相关信息。
ActivityManager ams = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
App启动流程
Android系统是基于Linux系统的,原则上说它的应用程序并不只是apk一种,能运行在Linux系统上的应用程序通过一定的方式都能运行在Android系统上,一些系统级别的应用程序就是这种形式存在的。
通常app有两种启动途径:
- 在Launcher中点击应用图标启动
- 通过startActivity启动。
启动流程:
AMS
-->startActivity()
ApplicationThread.schedulePauseActivity()
、ActivityThread.handlePauseActivity()
WMS
-->remove from window
- 当前Activity
activityPaused
、completePauseLocked
- 处理启动新Activity流程,
attachApplication
、realStartActivityLocked
ApplicationThread.scheduleLaunchActivity()
、performLaunchActivity
Activity.attach()
、Activity.onCreate