Recyclerview源码分析二

在上一篇文章中,我们主要分析了RecyclerView中的几个重要的内部类。今天我们就把它们串起来,看它们分别是如何工作的。

Recyclerview源码分析一

RecyclerView是我们开发中最常用的控件,RecyclerView是如何工作的,如何处理缓存的有助于解决一些使用RecyclerView的bug和优化RecyclerView

startActivity流程分析

Activity的启动过程分为两种,一种是根Activity的启动过程,另一种是普通Activity的启动过程。根Activity指的是应用程序启动的第一个Activity,因此根Activity的启动过程一般情况下也可以理解为应用程序的启动过程。普通Activity指的是除应用程序启动的第一个Activity之外的其他Activity。

创建应用程序进程

一个App打开另一个App的Activity或者绑定另外一个App的服务的过程,如果另外一个App的进程不存在,都会先创建另外一个App的进程,再执行后续操作。

应用程序进程创建过程可以分为以下几部分:

  1. AMS发送启动应用程序进程请求
  2. Zygote接收请求并创建应用程序进程。
  3. ActivityThread初始化

WindowManagerService分析

Window

Window字面意思为窗口,是一个抽象类,负责管理View,它的唯一子类为PhoneWindow。它的官方定义如下:

Abstract base class for a top-level window look and behavior policy. An instance of this class should be used as the top-level view added to the window manager. It provides standard UI policies such as a background, title area, default key processing, etc.

The only existing implementation of this abstract class is android.view.PhoneWindow, which you should instantiate when needing a Window.