亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2014-04-29 00:00:00王大鵬
        無線互聯(lián)科技 2014年4期

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

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

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

        1 Wi-Fi直連底層模型

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

        1.1 內核層Wi-Fi直連模塊

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

        1.2 HAL層內Wi-Fi直連模塊

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

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

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

        2.1 功能管理器

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

        2.2 狀態(tài)機

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

        2.3 事件監(jiān)聽器

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

        3 Wi-Fi直連運行流程

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

        [參考文獻]

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

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

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

        浪荡少妇一区二区三区| 欧美激情肉欲高潮视频| 偷偷色噜狠狠狠狠的777米奇| 同性男男黄g片免费网站| 精品欧洲AV无码一区二区免费| 国产精品亚洲在线播放| 国产精品理论片在线观看| 天堂а√在线中文在线新版| 2021年国产精品每日更新| 亚洲成人色黄网站久久| 二区三区三区视频在线观看| gv天堂gv无码男同在线观看| 日本一本久道| 日本少妇比比中文字幕| 国产精品一区二区三区免费视频| 成人性生交大片免费| 亚洲成年网站在线777| 青青草视全福视频在线| 美女露出自己的性感大胸一尤内衣| 少妇下蹲露大唇无遮挡| 亚洲日韩精品欧美一区二区三区不卡| 天堂av一区二区在线| 亚洲 欧美 偷自乱 图片| 亚洲aⅴ天堂av天堂无码麻豆| 思思99热| 久久综合伊人有码一区中文字幕| 亚洲一区二区三区四区五区黄| 99精品视频在线观看免费| 日韩亚洲欧美精品| 久久精品亚洲精品国产区| 日韩精品久久久久久免费| 人妻丰满av∨中文久久不卡| 国产亚洲一区二区三区三州| 一区二区三区字幕中文| 九九99久久精品国产| 久久精品国产精品亚洲婷婷| 亚洲本色精品一区二区久久| 熟女少妇精品一区二区| 特黄aa级毛片免费视频播放| 手机免费在线观看日韩av| 噜噜噜噜私人影院|