999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android系統平臺的Wi—Fi Direct模塊功能機制研究

2014-04-29 00:00:00王大鵬
無線互聯科技 2014年4期

摘 要:Wi-Fi Direct(Wi-Fi直連)是較新的短距離無線通信技術,目前主流的移動操作系統都提供了對該技術的支持。其中,Android系統占有的市場份額最大。本文針對Android系統上Wi-Fi直連功能及構成進行深入的分析和研究,旨在呈現Android系統內Wi-Fi直連功能模塊構成和運行流程,以對技術開發人員了解并運用Wi-Fi直連功能提供啟示和指導作用。

關鍵詞:Wi-Fi Direct;Android平臺;底層機制

Wi-Fi直連是Wi-Fi聯盟為實現特定的應用,對現有的部分IEEE802.11技術標準進行整合并創新制定的一套新的標準集合,規定了Wi-Fi直連技術特有的層次結構、拓撲網絡、運行機制和功能實現及特點[1]。該技術具有連接迅速、速率高和覆蓋廣等特點,有著廣泛的應用前景和競爭優勢。Android系統從4.0版本開始,即在軟件棧中增加了Wi-Fi直連支持代碼,在底層Linux內核中增加了Wi-Fi直連驅動,實現支持Wi-Fi直連功能。在Android平臺上,Wi-Fi直連功能代碼涉及Android應用框架層、標準庫層、HAL(硬件抽象層)和Linux內核層。

1 Wi-Fi直連底層模型

Wi-Fi直連底層模型由HAL和內核層代碼構成。其中,內核層是Android系統定制的Linux內核,是Android軟件棧的最底層。HAL位于內核層之上,是對內核層設備模塊驅動的統一封裝,為上層軟件棧提供內核設備模塊驅動操作接口。

1.1 內核層Wi-Fi直連模塊

Android的內核層取自傳統的Linux內核,并對其進行特定的修改和優化,使更加適應嵌入式設備,提升系統的運行性能。在內核層,Wi-Fi直連模塊主要由設備驅動和wpa_supplicant后臺進程組成。后臺進程負責接收上層操作請求和上傳硬件響應事件,通過socket與Wi-Fi直連硬件驅動進行通信,完成這些請求和事件的交互。

1.2 HAL層內Wi-Fi直連模塊

HAL是Android系統在內核層與上層應用框架之間構建的一個驅動抽象層[2]。用于封裝內核中Wi-Fi等設備的驅動,統一驅動調用接口供上層框架調用,使Android不過度依賴Linux內核。Wi-Fi直連的HAL基于傳統的HAL架構模式,在系統源碼中的wifi.c文件內實現,將各種操作功能接口封裝成*.so動態鏈接庫,供應用框架層通過JNI調用,實現對Wi-Fi直連設備驅動的功能操作和事件監聽。

2 Wi-Fi直連功能模塊構成

基于HAL提供的操作接口,應用框架層將各種Wi-Fi直連功能以API的形式供應用程序調用,從而構成Wi-Fi直連的功能模塊體系。該體系主要由Wi-Fi直連功能管理器、狀態機和事件監聽器構成,負責對下下達設備操作命令,維護并監聽設備狀態。對上提供功能操作調用接口。

2.1 功能管理器

Wi-Fi直連的功能管理器主要由系統源碼中的WifiP2pManager類實現,該類運行在主線程上,用于調用操作Wi-Fi直連的各項功能。將用戶對Wi-Fi直連功能的操作請求命令通過進程間通信,以異步消息為載體發送到Wi-Fi直連狀態機上,并最終由Wi-Fi直連狀態機交由wpa_supplicant后臺進程處理。由于需要跨進程交互操作命令,且Android系統中不同進程間不能共享內存,所以此處采用Android系統中的AIDL實現跨進程訪問。

2.2 狀態機

Wi-Fi直連狀態機,主要由系統源碼中的WifiP2pService類實現,以狀態機的形式維護著Wi-Fi直連設備的各種狀態,并能夠根據當前狀態對上層請求的操作命令和事件監聽器發出的底層事件進行處理。狀態機在其內部使用Wi-Fi直連的各種狀態構建了一顆狀態樹,當狀態機接收到用戶請求的操作命令時,先根據當前狀態對請求命令進行判斷,查看是否需要轉換到新的狀態,然后再對請求命令進行處理,最終通過HAL內wifi.c將命令發送給wpa_supplicant進程,讓其與內核驅動進行交互。同樣,當狀態機收到事件監聽器傳回的底層事件時,先根據當前狀態進行和收到的事件判斷是否需要轉換到新的狀態,然后再處理事件,最后采用Android廣播機制將事件廣播出去。

2.3 事件監聽器

Wi-Fi直連事件監聽器主要由系統源碼中的WifiMonitor類實現,是由狀態機啟動的監聽線程,通過線程循環內的waitForEvent(),監聽wpa_supplicant進程發出的各種Wi-Fi直連驅動事件,并對事件進行處理,處理結果通過線程間通信采用異步消息的形式發送給狀態機。waitForEvent()是阻塞函數,在收到底層事件之前,監聽線程阻塞。waitForEvent()方法進一步調用HAL的wifi_wait_for_event()函數監聽wpa_supplicant事件。

3 Wi-Fi直連運行流程

Android設備啟動時,Android框架層的本地服務首先啟動Wi-Fi直連狀態機,再由狀態機通過JNI調用HAL函數,加載Wi-Fi內核模塊wlan.ko(該模塊位于Android系統的/system/lib/modules/文件夾下)[3]。然后,狀態機調用HAL內wifi_start_P2P_supplicant()函數,加載Android系統/data/misc/wifi/文件夾中的Wi-Fi直連配置文件P2P_supplicant.conf,啟動Wpa_supplicant進程。最后,功能管理器將接受上層應用發出的各種操作請求,交由狀態機處理,操作各種Wi-Fi直連功能。

[參考文獻]

[1]韓毅剛,等.計算機網絡與通信[M].北京:機械工業出版社,2013.

[2]金泰延,等.Android框架揭秘[M].北京:人民郵電出版社,2012.

[3]胡偉.Android系統架構及其驅動研究[J].廣州廣播電視大學學報,2010第4期.

主站蜘蛛池模板: 美美女高清毛片视频免费观看| 国产微拍一区二区三区四区| 欧美精品伊人久久| 欧美日韩综合网| 国产丝袜第一页| 午夜国产理论| h视频在线播放| 99久久精品国产精品亚洲| 国产日本一区二区三区| 91久久偷偷做嫩草影院免费看| 日韩精品高清自在线| 亚洲第一成人在线| 亚洲精品视频网| 亚洲天堂精品在线| 日韩亚洲高清一区二区| 日本人又色又爽的视频| 国产精品尤物铁牛tv| 国产原创第一页在线观看| 亚洲大尺码专区影院| 台湾AV国片精品女同性| 五月激激激综合网色播免费| 欧美日韩在线观看一区二区三区| 国产9191精品免费观看| 一级毛片网| 亚洲看片网| 一级一级特黄女人精品毛片| 国产综合另类小说色区色噜噜| 亚洲天堂日韩av电影| 国产探花在线视频| 久久a毛片| 久久无码免费束人妻| 亚洲免费三区| 色哟哟精品无码网站在线播放视频| 成年女人18毛片毛片免费| 91在线国内在线播放老师| 一区二区理伦视频| 毛片网站免费在线观看| 亚洲欧洲一区二区三区| 国产国模一区二区三区四区| 成年人免费国产视频| 亚洲精品在线观看91| 国产成人精品优优av| 免费无码网站| 久久综合丝袜长腿丝袜| 亚洲日韩精品无码专区| 国产视频大全| 国产精品99久久久久久董美香 | 青青草91视频| 国产日韩精品欧美一区灰| 日韩性网站| 中文字幕在线观看日本| 亚洲中文字幕无码mv| 亚洲人成影院在线观看| 国产精品欧美在线观看| 国产在线精品美女观看| 国产激爽大片高清在线观看| 亚洲a级在线观看| 色综合中文综合网| 国产精品片在线观看手机版| 亚洲精品午夜天堂网页| 好久久免费视频高清| 国产91透明丝袜美腿在线| 欧美一级在线看| 日本高清免费一本在线观看| 久久综合结合久久狠狠狠97色| 日本精品影院| 午夜电影在线观看国产1区| 高清国产va日韩亚洲免费午夜电影| 成年人免费国产视频| 中文字幕伦视频| 亚洲女人在线| 91久久精品国产| 2020极品精品国产| 国产va在线观看| 久久精品丝袜| 国产精品hd在线播放| 国产丝袜啪啪| 国产第四页| 色婷婷狠狠干| 91区国产福利在线观看午夜 | 国产无码精品在线播放| 欧美啪啪视频免码|