Posts


Android 6.0 Launcher 启动 Activity 过程分析小结(四)

在如下三篇文章中过了一遍 Launcher 启动 Activity 的代码流程。

然而, 即使看过了多遍代码流程依旧有点云里雾里的感觉。不从整体上来把握,光抓住细节代码会始终不得要领。

由于是从 Launcher 组件启动一个 Activity 组件,其中还需要与 ActivityManagerService 通信,而这三个部分都是位于不同的进程内,涉及进程间通信,因此可以将整个过程划分为三个不同的部分来分析,在 Launcher 进程内的操作,在 ActivityManagerService 进程内的操作,在创建的应用程序进程内的操作。

[阅读全文]

Android 6.0 Launcher 启动 Activity 过程源码分析(三)

Android 6.0 Launcher 启动 Activity 过程源码分析(二) 分析完了对待启动 Activity 组件的验证过程,获得组件信息,以及 ActivityRecord 添加至栈顶,将其他 Activity 进入中止状态,最后将待启动的 Activity 组件进入 Resumed状态,然而,由于待启动的 Activity 组件的应用程序进程尚未启动,最后执行 startSpecificActivityLocked方法创建进程。

[阅读全文]

Android 6.0 Launcher 启动 Activity 过程源码分析(二)

Android 6.0 Launcher 启动 Activity 过程源码分析(一) 分析完了 Launcher 组件中启动的步骤,接下来的环节是该 ActivityManagerService 出场了。

通过 ActivityManagerNative.getDefault() 方法得到 ActivityManagerService 的代理对象后执行的 startActivity 方法,最终会发起进程间通信请求,通过 Binder 驱动,再调用 ActivityManagerService 中对应的方法。

[阅读全文]

Android 6.0 Launcher 启动 Activity 过程源码分析(一)

当 Android 系统在启动时,会扫描系统特定目录,然后自动安装里面的 Android 应用程序。当系统启动完成之后,会启动一个 Home 应用程序来显示安装在系统中的 Android 应用程序。

这个应用程序就是 Launcher 应用,也就是手机屏幕上显示的各种应用图标,Launcher 是 Android 系统启动的第一个应用程序。

而当我们点击应用程序图标时,也就开启了从 Launcher 启动 Activity 的过程。

[阅读全文]

Android 硬件抽象层调用流程小结

Android 从 5.0 开始使用新的相机 API Camera2 来代替之前的旧版本,从而支持更多的特性。

在学习新的 API 调用之外,也还是要了解一下 Android 底层发生了哪些变化,从而能够让我们对 API 的调用流程更加的清晰,知其所以然。

[阅读全文]