安卓在5.0之后在TeleService和IncallUI之间多加了一层TeleComm,个人感觉是不想让IncallUI和Phone进程联系过于紧密,也便于其他通话方式的添加(不仅仅局限于通过电信运营商拨打传统电话),
拨号成功后,对方接听了此路通话,那么通话界面将更新当前通话中的通话状态,并开始通话计时,可以理解为:Modem——>RIL——>TeleService——>Telecom——>Dialer,一层一层上报通话状态为,“通话中....”,的消息处理和发送过程.
系统的分层
Dialer,Telecom和TeleService三大应用可以理解为:Dialer应用是普通的Android App应用,其运行进程的用户信息和进程信息,也能说明此问题;Telecom应用运行在system_service进程上,其进程用户名为system系统用户,说明他在运行在Android Framework框架层;TeleService应用运行的进程名是com.android.phone,用户名是radio,承载着Telephony Call协议栈,同样可以认为他运行在Android Framewrok框架层;最后RIL他运行在HAL(硬件抽象层)。
————————————————
版权声明:本文为CSDN博主「达帮主」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35427437/article/details/102963199
上文出自:https://blog.csdn.net/qq_35427437/article/details/102963199
学习android的通讯模块Telephony,那么先看下其框架结构:
应用层:包含android的应用程序
应用框架层:也就是常说的framework,包含常用的API框架
系统运行层:包含c/c++核心库和HAL层等
核心层:包含TCP/UDP/IP,camera drivers等
Android Telephony业务跨越AP,BP,AP和BP之间