ActivityManagerService 业务的整个逻辑关系被各种复杂的数据结构包裹着,因此对ActivityManagerService 的分析主要就是对各种数据结构的分析,明白了这些数据结构,理解ActivityManagerService的业务内容就水到渠成了。

AMS提供了一个ArrayList mHistory来管理所有的activity,activity在AMS中的形式是ActivityRecord,task在AMS中的形式为TaskRecord,进程在AMS中的管理形式为ProcessRecord。如下图所示

Activity研究-LMLPHP

从图中我们可以看出如下几点规则:

1. 所有的ActivityRecord会被存储在mHistory管理;

2. 每个ActivityRecord会对应到一个TaskRecord,并且有着相同TaskRecord的ActivityRecord在mHistory中会处在连续的位置;

3. 同一个TaskRecord的Activity可能分别处于不同的进程中,每个Activity所处的进程跟task没有关系;

因此,在分析Activity管理之前,先了解一下这个规则。

详细见源文章:

http://blog.csdn.net/windskier/article/details/7096521

http://blog.csdn.net/windskier/article/details/7172710

05-20 08:43