接电话慢问题分析

用高速摄像机记录从滑动接听电话到进入通话界面的时间。一台样机比另外一台样机慢40%。

一开始以为是modem侧的QMI命令上报conversation就是慢的。

但是后面分析log,计算QMI命令从answer request发出,到上报conversation,时间都差不多。

00:58:03.457	[0x1544]	MCS QCSI Payload Packet
   Service_VOICE {
         voice_answer_call 

00:58:03.457	[0x1544]	MCS QCSI Payload Packet
   MsgType = Response
   Service_VOICE {
            voice_answer_call_respTlvs[0] {
                  result = QMI_RESULT_SUCCESS
                  
00:58:03.809	[0x1544]	MCS QCSI Payload Packet
   MsgType = Indication
            voice_all_call_status_indTlvs[0] {
                     call_state = CALL_STATE_CONVERSATION    

从AP log看,ril的answer和UNSOL_RESPONSE_CALL_STATE_CHANGED相差几十 ms。这个差异还不足以达到40%。

10-29 17:29:01.354  2050  2050 D RILJ    : [5025]> ANSWER [SUB1]
10-29 17:29:01.613  2050  2216 D RILJ    : [5025]< ANSWER  [SUB1]

10-29 17:29:01.618  2050  2216 D RILJ    : [UNSL]< UNSOL_RESPONSE_CALL_STATE_CHANGED [SUB1]

那么继续看获取通话状态时间差异。GET_CURRENT_CALLS命令返回一个只有20多ms,一个要370ms。嗯,问题在这里。

10-29 17:29:01.615  2050  2050 D RILJ    : [5026]> GET_CURRENT_CALLS [SUB1]
10-29 17:29:01.987  2050  2216 D RILJ    : [5026]< GET_CURRENT_CALLS {[id=1,ACTIVE,toa=129,norm,mt,0,voc,noevp,,cli=1,,3,audioQuality=3] } [SUB1]

通过qxdm log看,也确实如此。

获取通话:24ms:
00:58:03.780  Low [ DiagLogger.cpp     88] [RILQ] RIL[1][QcrilMainMessageQueue.cpp: 27] [main(1037,1037)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7799e58b38 Id: com.qualcomm.qti.qcril.android.RIL_REQUEST_GET_CURRENT_CALLS 
00:58:03.804  Low [ DiagLogger.cpp     88] [RILQ] RIL[1][Log.cpp: 49] [DispatcherModul(1037,1137)] d: 	[DispatcherModule-Looper]: Done handling msg = com.qualcomm.qti.qcril.android.RIL_REQUEST_GET_CURRENT_CALLS   


获取通话:370ms:
09:29:01.619  Low  [ DiagLogger.cpp     88] [RILQ] RIL[1][QcrilMainMessageQueue.cpp: 27] [main(1142,1142)] enqueue: [DispatcherModule-MessageQueue]: enqueuing priority(NORMAL) message 0x7103dad018 Id: com.qualcomm.qti.qcril.android.RIL_REQUEST_GET_CURRENT_CALLS      
09:29:01.989  Low  [ DiagLogger.cpp     88] [RILQ] RIL[1][Log.cpp: 49] [DispatcherModul(1142,1194)] d: 	[DispatcherModule-Looper]: Done handling msg = com.qualcomm.qti.qcril.android.RIL_REQUEST_GET_CURRENT_CALLS              

猜你喜欢

转载自blog.csdn.net/dreamfly130/article/details/83538028