概述
在 Android 中,APK 运行在 App 进程,而 AMS 运行在 system_server 进程,AMS 承担着对 Activity 的生命周期的管理等工作,而 Activity 生命周期函数的回调又是在 App 进程中进行的,App 进程需要频繁的和 AMS 进程进行通信。那么理解 AMS 进程和 App 进程之间的通信就对 Activity 的启动流程的理解有很好的铺垫作用。因此在介绍 Activity 的启动流程之前我们先来学习一下 AMS 进程和 App 进程之间是如何通信的。
提起到 Android 进程间通信,我们自然就想到了 Binder。是的,AMS 和 APP 之间肯定也是通过 Binder 进行通信的。下面进行详细的介绍。
本文涉及到的类包含:
frameworks/base/core/java/android/app/ActivityManagerNative.java
frameworks/base/core/java/android/app/ActivityManagerNative$ActivityManagerProxy.java
frameworks/base/core/java/android/app/ApplicationThreadNative.java
frameworks/base/core/java/android/app/ApplicationThreadNative$ApplicationThreadProxy.java
frameworks/base/core/java/android/app/ActivityThread.java
frameworks/base/core/java/android/app/ActivityThread$ApplicationThread.java