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

對Android源碼分析總結

移動開發 Android
也許大家對與Android源碼還不是很了解,看完本文后對您一定會大有幫助,下文除了學習Android源碼基本性質外還對Android源碼的編程技巧給予說明。

Android中進行處理Android源碼中,hardware/ril目錄中包含著Android的telephony源碼,下面就由我向大家介紹這些目錄其中包含了三個子目錄,下面是對三個子目錄進行具體的分析說明。

一、目錄hardware/ril/include分析:

只有一個頭文件ril.h包含在此目錄下。ril.h中定義了76個如下類型的宏:這些宏代表著客戶進程可以向Android源碼telephony發送的命令,包括SIM卡相關的功能,打電話,發短信,網絡信號查詢等。好像沒有操作地址本的功能?

二、目錄hardware/ril/libril分析。本目錄下代碼負責與客戶進程進行交互。在接收客戶進程命令后,調用相應函數進行處理,然后將命令響應結果傳回客戶進程。在收到來自網絡端的事件后,也傳給客戶進程。

文件ril_commands.h:列出了telephony可以接收的命令;每個命令對應的處理函數;以及命令響應的處理函數。 文件ril_unsol_commands.h:列出了telephony可以接收的事件類型;對每個事件的處理函數;

以及WAKE Type??? 文件ril_event.h/cpp:處理與事件源(端口,modem等)相關的功能。ril_event_loop監視所有注冊的事件源,當某事件源有數據到來時,相應事件源的回調函數被觸發(firePending -> ev->func())

listenCallback函數:當與客戶進程連接建立時,此函數被調用。此函數接著調用processCommandsCallback處理來自客戶進程的命令請求processCommandsCallback函數:具體處理來自客戶進程的命令請求。

對每一個命令,ril_commands.h中都規定了對應的命令處理函數(dispatchXXX),processCommandsCallback會調用這個命令處理函數進行處理。dispatch系列函數:此函數接收來自客戶進程的命令己相應參數,并調用onRequest進行處理。

RIL_onUnsolicitedResponse函數:將來自網絡端的事件封裝(通過調用responseXXX)后傳給客戶進程,RIL_onRequestComplete函數:將命令的最終響應結構封裝(通過調用responseXXX)后傳給客戶進程。

response系列函數:對每一個命令,都規定了一個對應的response函數來處理命令的最終響應;對每一個網絡端的事件,也規定了一個對應的 response函數來處理此事件。response函數可被onUnsolicitedResponse或者onRequestComplete調用。

三、目錄hardware/ril/reference-ril分析。本目錄下代碼主要負責與modem進行交互。 文件reference-ril.c:此文件核心是兩個函數:onRequest和onUnsolicited 。

onRequest 函數:在這個函數里,對每一個RIL_REQUEST_XXX請求,都轉化成相應的AT command,發送給modem,然后睡眠等待。當收到此AT command的最終響應后,線程被喚醒,將響應傳給客戶進程(RIL_onRequestComplete -> sendResponse)。

onUnsolicited函數:這個函數處理modem從網絡端收到的各種事件,如網絡信號變化,撥入的電話,收到短信等。然后將時間傳給客戶進程(RIL_onUnsolicitedResponse -> sendResponse)文件atchannel.c:負責向modem讀寫數據。其中,寫數據(主要是AT command)功能運行在主線程中,讀數據功能運行在一個單獨的讀線程中。

Android源碼at_send_command_full_nolock:運行在主線程里面。將一個AT command命令寫入modem后進入睡眠狀態(使用 pthread_cond_wait或類似函數),直到modem讀線程將其喚醒。喚醒后此函數獲得了AT command的最終響應并返回。

函數readerLoop運行在一個單獨的讀線程里面,負責從modem中讀取數據。讀到的數據可分為三種類型:網絡端傳入的事件;modem對當前AT command的部分響應;modem對當前AT command的全部響應。對第三種類型的數據(AT command的全部響應),讀線程喚醒(pthread_cond_signal)睡眠狀態的主線程。

【編輯推薦】

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

2010-02-05 15:47:00

Android JDK

2021-08-10 07:00:00

Nacos Clien服務分析

2023-11-02 20:05:17

KubernetesPod管理

2009-07-01 10:55:23

2022-10-18 17:59:46

Bootstrap源碼父類

2014-07-18 09:51:05

挖掘數據分析

2024-01-29 08:28:01

Spring事務失效

2014-04-29 13:16:42

OpenGLAndroid庫加載過程

2013-04-03 15:45:51

Android瀑布流android_wat

2010-03-03 16:14:56

Android系統市場

2018-08-20 13:46:59

Android逆向分析終端安全

2018-07-19 15:57:46

ViewStub源碼方法

2011-09-15 09:52:45

Delphi XE2

2017-02-17 11:19:00

Android內存泄露分析總結

2011-03-15 11:33:18

iptables

2014-08-26 11:11:57

AsyncHttpCl源碼分析

2011-10-31 13:42:46

Android客戶端人人網

2011-05-26 10:05:48

MongoDB

2011-11-14 10:27:22

FlashAndroidAdobe

2010-02-23 16:32:14

Python編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区三区在线 | 亚洲va欧美va天堂v国产综合 | 亚洲欧美激情视频 | 国产一区精品在线 | 国产精品国产精品国产专区不片 | 美女黄视频网站 | 亚洲成人av | 精品久久久久久久久久 | 亭亭五月激情 | 欧美中文一区 | 久久久99精品免费观看 | 精品欧美一区免费观看α√ | 尤物在线| 欧美一级网站 | 成人av在线网站 | 福利网站导航 | 国产在线拍偷自揄拍视频 | 免费在线看黄视频 | 拍拍无遮挡人做人爱视频免费观看 | 欧美精品一区在线 | 亚洲精品久久久久久久久久久 | 国产亚洲精品美女久久久久久久久久 | 91五月天| 中文字幕精品一区久久久久 | 国产精品久久久久久久久久三级 | 国产日韩一区二区三区 | 国产乱码久久久久久 | 一级黄色片日本 | 久久久网 | 欧美一区二区三区在线 | 美女在线视频一区二区三区 | 午夜精品久久久久久久久久久久 | 一区二区三区日韩 | 国产激情视频在线免费观看 | 午夜精品 | 日韩一区在线观看视频 | 亚洲精品一级 | 免费精品一区 | 午夜国产精品视频 | 在线国产一区 | 四虎成人免费电影 |