网站建设 翰臣科技,建设网站要什么手续,手机钓鱼网站制作,烟台网站建设询问企汇互联专业1、Telephony 架构 Telephony整体架构和Android架构一样的,包括APP层,框架层,HAL层,内核层。 其中HAL层不同平台实现方式不同,其中MTK SPRD 平台使用AT通道的方式实现,高通使用QMI方式实现。 2、通话业务介绍 APP包括Dialer.apk、TeleService.apk、Tele…1、Telephony 架构 Telephony整体架构和Android架构一样的,包括APP层,框架层,HAL层,内核层。 其中HAL层不同平台实现方式不同,其中MTK SPRD 平台使用AT通道的方式实现,高通使用QMI方式实现。 2、通话业务介绍
APP包括Dialer.apk、TeleService.apk、Telecom.apk。其中Dialer.apk跑在com.android.dialer进程中,TeleService.apk跑在常驻进程com.android.phone进程中,Telecom.apk跑在system进程中。框架包括包括 telephony fw、telecom fw。Code分别位于frameworks/opt/telephony、frameworks/base/telecomm。
Android 5.0是 只有Dialer和TeleService 这个两个APP。Google为了解除通话app和系统框架的耦合,Android 6.0新增了Telecom apk。并提供系统接口设置默认的通话APP。具体逻辑在Telecom.apk中。 2.1、Telecom的启动过程 虽然Telecom app设置了android:directBootAware="true",提前启动属性。 但是将telecom service注册并拉起,并不是AMS执行Telecom app所执行的,而是在开机时框架执行的,具体流程如下。 相关开机Log打印如下 2.2、TeleService的启动过程
TeleService一般也称为phone进程,phone进程设置了android:directBootAware="true",系统启动完成后,会将phone进程拉起。 phone进程的启动过程大致如下,android版本不同,细节处还有所差异。 相关启动Log如下 2.3、RILD的启动 不同平台,RILD启动不一样,需要参考不同平台代码,如有兴趣,可以参考此案例分析过程。
MTK RILD 无法启动问题分析_mtkrilj-CSDN博客 3、去电流程 其中,蓝色表示普通CS通话,红色表示VOLTE通话 3.1、Dialer-Telecom
通话流程比较复杂,Dialer调用TelecomService服务的placeCall来进行通话。 Telecom app 中CallsManager会执行startOutgoingCall主要建立通话Call对象,实现Dialer和Telecom双向Binder通信。其bind详细流程如下。 Telecom保存了Dialer的IInCallService 对象用于通知通话状态,而Dialer则保存了Telecom的的IInCallAdapter对象用于操作通话,如暂停挂断,DTMF等,实现两个进程间双向通信。
3.2、Telecom-Telephony-Framework placeOutgoingCall主要建立通话Call对应框架Connection,实现Telecom和TeleService双向Binder通信。
3.3、 Framwork-IMS framework中创建ImsCall对象,与IMS apk中的ImsCallSessionProxy进行双向通信,ImsCall中保存 IMS apk中的ImsCallSession对象,ImsCallSessionProxy中保存ImsCallSessionListener进行双向通信,其具体类图如下。 3.4、相关Log如下 4、来电流程 其中,蓝色表示普通CS通话,红色表示VOLTE通话
4.1、IMS-Framwork 4.2、Telephony-Telecom-InCallUI 4.3、相关Log如下 5、三方通话和电话会议
5.1、三方通话 通话支持一路Active状态,一路Hold状态。用户可以在两路通话之间进行切换。
//Dialer三方 12-28 15:27:58.334 I/DialerCallList(21480): com.android.incallui.call.CallList.onUpdateCall:845 [DialerCall_6, ONHOLD, [Capabilities: CAPABILITY_SUPPORT_HOLD CAPABILITY_MUTE CAPABILITY_SUPPORTS_VT_REMOTE_RX CAPABILITY_SUPPORTS_VT_REMOTE_TX CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL], [Properties:], children:[], parent:null, conferenceable:[Call [id: TC@12, state: ACTIVE, details: [i