前置文章:
《 Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划》《Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析》
《Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析》
《Android 4.4 Kitkat Phone工作流程浅析(四)__RILJ工作流程简析》
《Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析》
《Android 4.4 Kitkat Phone工作流程浅析(六)__InCallActivity显示更新流程》
《Android 4.4 Kitkat Phone工作流程浅析(七)__来电(MT)响铃流程》
《Android 4.4 Kitkat Phone工作流程浅析(八)__Phone状态分析》
《Android 4.4 Kitkat Phone工作流程浅析(九)__状态通知流程分析》
《Android 4.4 Kitkat Phone工作流程浅析(十)__"通话显示"查询流程》
《Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析》
概述
在Android 4.4 中,Google 对Telephony_Phone进行了重构,前面也通过一些列文章分析了Android 4.4 中Telephony Phone的工作流程。但在2014年10月15日,Google发布了Android 5.0 预览版,正式版也在一个月之后发布。Android 5.0 变化非常大,无论从UI风格还是功能实现上,Google都进行了大刀阔斧的修改。同时,Telephony_Phone模块的架构也再次进行了调整,调整之后的Telephony_Phone各个模块之间耦合性更低,分工也更为明确,但整个流程却变复杂了许多。
下图是Android 4.2 到5.0,Telephony Phone模块结构变化示意图:
图 1 Android Telephony Phone Architecture Evolution
在Android 4.2 以及之前的版本中,Telephony Phone模块主要涉及Phone和Contacts以及Telephony Framework这几个部分。在Android 4.4 中,Phone模块被InCallUI和TeleService取而代之,其中InCallUI被打包到Dialer.apk中。InCallUI主要负责UI显示部分,TeleService则负责逻辑处理。
Android 5.0 中,Telephony Service也就是原来的TeleService,部分功能被提取到了Telecom Service和Telecom Framework中。整个Telephony Phone模块包括了5个部分:InCallUI、Telecom Service、Telecom F