成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習Android程序時總結之談

移動開發 Android
學習Android程序時需要注意很多事情,比如什么是Android程序,以及Android程序的構成是什么?

希望我學習Android程序時的一點經驗能給大家帶來幫助,導致WebDeployment出錯的原因也許還有很多,不過在你遇到錯誤時,可以先檢查一下你程序中的字符串,暫時把他們置為””,試試看。沒準就是他引起的問題啊。

1. onUnsolicite(主動上報響應)
static void onUnsolicited (const char *s, const char *sms_pdu);短信的AT設計真是麻煩的主,以致這個函數的第二個參數完全就是為它準備的。

response 的主要的解析過程,由at_tok.c中的函數完成,其實就是字符串按塊解析,具體的解析方式由每條命令或上報信息自行決定。這里不再詳述,onUnsolicited只解析出頭部(一般是+XXXX的形式),然后按類型決定下一步操作,操作為 RIL_onUnsolicitedResponse和RIL_requestTimedCallback兩種。

a)RIL_onUnsolicitedResponse:將 unsolicited的信息直接返回給上層。通過Parcel傳遞,將 RESPONSE_UNSOLICITED,unsolResponse(request號)寫入Parcel先,然后通過 s_unsolResponses數組,查找到對應的responseFunction完成進一步的的解析,存入Parcel中。最終通過 sendResponse將其傳遞回原進程。

流程:
sendResponse-->sendResponseRaw-->blockingWrite-->write to s_fdCommand(前面建立起來的和上層框架的socket連接)這些步驟之后有一些喚醒系統等其他操作。不再詳述。通過event機制(參考文章二)實現的timer機制,回調對應的內部處理函數。

通過internalRequestTimedCallback將回調添加到event循環,最終完成callback上掛的函數的回調。比如pollSIMState,onPDPContextListChanged等回調, 不用返回上層, 內部處理就可以。

2. switch s_type(命令的具體響應)及handleFinalResponse(標準響應)命令的類型(s_type)在send command的時候設置(參考文章二)。

有NO_RESULT,NUMERIC,SINGLELINE,MULTILINE幾種,供不同的AT使用。比如AT+CSQ是singleline, 返回at+csq=xx,xx,再加一行OK,比如一些設置命令,就是no_result, 只有一行OK或ERROR。

這幾個類型的解析都很相仿,通過一定的判斷(比較AT頭標記等),如果是對應的響應,就通過 addIntermediate掛到一個臨時結果sp_response->p_intermediates隊列里。如果不是對應響應,那它其實應該是穿插其中的自動上報,用onUnsolicite來處理。

具體響應,只起一個獲取響應信息到臨時結果,等待具體分析的作用。無論有無具體響應,最終都得以標準響應handleFinalResponse來完成,也就是接受到OK,ERROR等標準response來結束,這是大多數AT命令的規范。

Android會設置s_commandcond這一object,學習Android程序也就是at_send_command_full_nolock等待的對象。到這里,響應的完整信息已經完全獲得,send command可以進一步處理返回的信息了(臨時結果,以及標準返回的成功或失敗,都在sp_response中)。

可以看到確實是通過at_send_command_singleline來進行的操作,response在p_response中。p_response如果返回失?。ㄒ簿褪菢藴薯憫腅RROR等造成),則通過RIL_onRequestComplete發送返回數據給上層,結束命令。如果成功,則進一步分析p_response->p_intermediates, 同樣是通過at_tok.c里的函數進行分析。并同樣將結果通過RIL_onRequestComplete返回。

RIL_onRequestComplete:
RIL_onRequestComplete和RIL_onUnsolicitedResponse很相仿,功能也一致。

通過Parcel來傳遞回上層,同樣是先寫入RESPONSE_SOLICITED(區別于 RESPONSE_UNSOLICITED),pRI->token(上層傳下的request號),錯誤碼(send command的錯誤,不是AT響應)。

學習Android程序如果有AT響應,通過訪問pRI->pCI->responseFunction來完成具體 response的解析,并寫入Parcel。然后通過同樣的途徑:完成最終的響應傳遞。到這里,我們分析了自動上報與命令響應,其實response部分,也就告一段落了。三篇分析RIL的文章也到此結束。

【編輯推薦】

  1. Android應用程序組建原理深入剖析
  2. Android SMS短信服務相關概念簡述
  3. PythonAndroid數據庫相關代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應用程序的四個關鍵點
責任編輯:chenqingxiang 來源: 計世網
相關推薦

2010-02-07 15:12:24

學習Android

2010-02-02 13:37:12

如何學習Python

2010-02-22 09:43:42

學習Python語言

2010-02-05 17:10:01

Android Ado

2010-01-18 10:53:26

2010-01-21 18:00:59

C++語言

2010-02-03 15:52:02

Python學習研究

2010-02-05 15:47:00

Android JDK

2010-03-02 14:37:05

Android開源語言

2010-01-27 16:52:31

C++語言學習

2010-01-27 15:54:49

C++實現程序

2010-01-26 17:53:05

C++入門學習

2010-03-02 16:50:31

Android操作系統

2010-01-25 11:21:01

C++語法

2011-07-04 13:49:17

2009-12-23 10:07:57

學習WPF

2009-11-16 15:32:05

PHP數組函數

2010-01-21 17:22:21

VC++

2010-02-24 09:39:25

Python交互式

2010-03-10 14:28:24

CISCO交換機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久网 | 91麻豆精品国产91久久久更新资源速度超快 | 羞羞涩涩在线观看 | 91精品久久久久久久久久 | 国产成人综合亚洲欧美94在线 | 午夜视频在线观看网址 | 欧美国产日韩在线观看 | 一区二区三区四区av | 亚洲精品日韩一区二区电影 | 日韩一区二区三区四区五区六区 | 影音先锋男 | 午夜大片 | 九九热精品在线 | 免费的一级视频 | 黄色精品 | 国产精品99久久久久久久久久久久 | 精品国产视频在线观看 | 亚洲成人黄色 | 国产福利二区 | 亚洲视频在线看 | 亚洲高清一区二区三区 | 国产高清在线精品 | 欧美一区二区三区日韩 | 国产在线一区观看 | www国产亚洲精品久久网站 | 亚洲国产成人av好男人在线观看 | 黄色播放 | av国产精品 | 日韩欧美国产一区二区 | 日韩免费视频一区二区 | 亚洲视频中文字幕 | 国产精品久久久久久av公交车 | 国产成人综合一区二区三区 | 国产精品免费一区二区三区四区 | 国产永久免费 | 黄色网络在线观看 | 成人在线精品视频 | 97人人爱 | 91久久精品| 色999日韩 | 91免费电影 |