学习android内核 -- AmS相关内容记录

来源:互联网 发布:sketch只能在mac上用吗 编辑:程序博客网 时间:2024/06/15 23:07

ActivityManagerService.java (下面简称AmS),WindowManagerService.java,View.java 这三大类被称为Android 内核的三大核心功能。


AmS主要功能:

1.统一调度各应用程序的Activity。

2.内存管理。(Activity的回收)

3.进程管理。(向外提供了查询系统正在运行的进程信息的API)



AmS中定义了几个重要的数据类,分别用来保存进程(Process),活动(Activity),任务(Task)


1.ProcessRecord进程数据类:

a.进程文件信息:该进程的APK文件内部信息。


b.进程的内存状态信息:用于OOM处理;这些信息用来判断是否内存不够。如果不够,则根据内存状况,会回收一些优先级比较低的内存。


c.进程中包含的Activity,Provider.Service的数据集等,都是些list。


2.ActivityRecord数据类:保存每个Activity的信息.(2.3版本前名为HistoryRecord)

a.环境信息:该Activity的工作环境;比如:属于哪个package,所在的进程名称,文件路径,数据路径,图片,主题等,

b:运行状态信息:比如 idle,stop,finishing等,这些变量为boolean类型,这里的不是等同于程序中的oncreate,onstop那些状态



该类也是一个Binder,可以被IPC调用,一般要WmS中调用

3.TaskRecord类:

有三大关键变量:
1.int taskId;  每一个任务对应一个Int标识

2.Intent intent; 记录创建该Task时对应的intent

3.int numActivities; 记录该TASK中的Activity数目

注:该类没有记录Activity的列表,这意味着不能直接通过任务id找到其所包含的activity。

如果想查找则应通过Ams中的ArrayList<ActivityRecord> activities,可通过遍历然后根据ActivityRecord中的TaskRecordtask变量来确定是否属于指定的任务。



原创粉丝点击