《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > Android系統(tǒng)非標準設(shè)備驅(qū)動程序設(shè)計
Android系統(tǒng)非標準設(shè)備驅(qū)動程序設(shè)計
來源:微型機與應(yīng)用2011年第14期
孟小華, 黃宗軒
(暨南大學 計算機科學系, 廣東 廣州510632)
摘要: 在深入研究Android硬件抽象層HAL和Java本地接口JNI技術(shù)原理的基礎(chǔ)上,提出了一個Android非標準硬件驅(qū)動程序的設(shè)計方案。以一個非標準設(shè)備的驅(qū)動程式的實現(xiàn)為例介紹了驅(qū)動程序的功能模塊分層設(shè)計,討論了使用HAL Stub技術(shù)對硬件抽象層HAL模塊進行優(yōu)化的方法。
Abstract:
Key words :

摘   要: 在深入研究Android硬件抽象層HAL和Java本地接口JNI技術(shù)原理的基礎(chǔ)上,提出了一個Android非標準硬件驅(qū)動程序的設(shè)計方案。以一個非標準設(shè)備的驅(qū)動程式的實現(xiàn)為例介紹了驅(qū)動程序的功能模塊分層設(shè)計,討論了使用HAL Stub技術(shù)對硬件抽象層HAL模塊進行優(yōu)化的方法。
關(guān)鍵詞: Android; 設(shè)備驅(qū)動程序; 硬件抽象層; JNI

    Android系統(tǒng)是Google推出的基于Linux內(nèi)核和Java架構(gòu)的操作系統(tǒng),在很短的時間內(nèi)已成為主流的手機操作系統(tǒng),并已逐步擴展應(yīng)用到嵌入式系統(tǒng)、平板電腦和上網(wǎng)本上。它既有Linux系統(tǒng)所具有的硬件平臺可移植性,也因使用Java語言開發(fā)應(yīng)用程序帶來了應(yīng)用軟件只編寫一次即可在所有平臺運行的巨大優(yōu)勢。Android雖然主要基于已有的技術(shù),但在體系結(jié)構(gòu)設(shè)計上有較大的創(chuàng)新。其主要設(shè)計目標之一就是要使應(yīng)用程序和系統(tǒng)能獨立于具體的計算機體系結(jié)構(gòu)和硬件平臺,表現(xiàn)在設(shè)備驅(qū)動程序設(shè)計上,對于已有的Linux標準設(shè)備驅(qū)動程序可以直接繼續(xù)使用,只需為其增加應(yīng)用層JNI接口。但對于Linux沒有的非標準設(shè)備則提倡在Linux內(nèi)核中驅(qū)動部分只做很少的接口工作,盡量把驅(qū)動程序的主要處理放在Android的上層架構(gòu)中,即在應(yīng)用層實現(xiàn)。本文對Android系統(tǒng)的底層實現(xiàn)技術(shù)進行深入的研究,包括Android的硬件抽象層和JNI技術(shù)實現(xiàn)等。并以S3C2440開發(fā)板上的LED燈設(shè)計顯示驅(qū)動程序為例,提出了一種非標準硬件設(shè)備驅(qū)動程序的設(shè)計和實現(xiàn)方案。
1 Android系統(tǒng)驅(qū)動程序架構(gòu)
1.1 驅(qū)動程序分層體系結(jié)構(gòu)

    Android是基于Linux的,它使用了Linux內(nèi)核,但應(yīng)用程序使用Java語言開發(fā),所以應(yīng)用程序在調(diào)用設(shè)備驅(qū)動時不能像一般的Linux應(yīng)用程序那樣直接使用系統(tǒng)調(diào)用,必須通過Java虛擬機的JNI的本地(Native)方法使用設(shè)備。另一方面,Android要成為一個通用性強的平臺,必須加強它的可移植性。這也是在Android架構(gòu)添加一個硬件抽象層(HAL)的原因,目的是為設(shè)備的調(diào)用提供一個更高級的封裝圖1所示為Android驅(qū)動程序架構(gòu)。
    HAL Stub是以Linux共享庫(*.so)的形式存在,在整個驅(qū)動架構(gòu)中,它是設(shè)備驅(qū)動程序運行在用戶空間的一部分,它向上為Dalvik虛擬機提供硬件設(shè)備的抽象接口,向下通過系統(tǒng)調(diào)用與Linux內(nèi)核中的驅(qū)動程序進行數(shù)據(jù)交互。在這個過程中HAL可以對驅(qū)動程序的數(shù)據(jù)進行處理,也就是說在Linux內(nèi)核中的驅(qū)動程序部分只需要提供一個與硬件設(shè)備傳輸數(shù)據(jù)接口的功能,而其余具體的操作可以由HAL完成。
1.2 Android的硬件抽象層
    Android的硬件抽象層HAL(Hardware Abstract Layer)在Android的架構(gòu)中是在庫這一層中,通過這一層,硬件廠商可以把部分設(shè)備的驅(qū)動源碼封裝在這一層而不公開源代碼。
    對圖1分析,設(shè)計HAL就是為了把應(yīng)用框架和Linux內(nèi)核分離出來,讓Android使用Linux內(nèi)核而又不完全依賴Linux內(nèi)核。當然,驅(qū)動程序并不是完全從Linux內(nèi)核中分離出來,一些基本的處理必須由內(nèi)核來完成,HAL只是分擔了Linux設(shè)備驅(qū)動的部分功能,至于這部分的功能占驅(qū)動程序功能的比例目前并沒有一個標準。

    在Android系統(tǒng)發(fā)展過程中,HAL的實現(xiàn)也逐步有了一些變化,舊的HAL是一種模塊化的思想,通過共享庫的形式由Runtime在JNI時以函數(shù)調(diào)用方法調(diào)用,這種做法并沒有通過封裝,即上層應(yīng)用可以直接調(diào)用硬件。另外,這種方法可被多個進程使用,映射到多個進程空間中浪費內(nèi)存資源。
    現(xiàn)在HAL提出一種Stub的思想,HAL Stub是一種代理的概念,Stub同樣是以共享庫(*.so)格式存在,但上層應(yīng)用并不像加載動態(tài)庫那樣調(diào)用Stub。這種HAL是由模塊與Stub結(jié)合而成,Runtime通過模塊提供的統(tǒng)一接口獲取并操作Stub。Stub向HAL提供操作的回調(diào)函數(shù),Runtime向HAL取得指定模塊的操作函數(shù)后,調(diào)用這些回調(diào)函數(shù)。這是一種間接函數(shù)調(diào)用的方式,HAL里包含了多個Stub。圖2為HAL Stib原理。

1.3 Android的JNI實現(xiàn)原理
    JNI是Java Native Interface的縮寫,是在Sun的Java平臺中首先定義出來的,它允許Java代碼與其他語言代碼進行交互。Android中JNI的設(shè)計目的也是一樣:
    (1) 應(yīng)用程序需要與硬件平臺交互時,Java庫中的類不可能支持;
    (2) 本地已經(jīng)使用其他語言編寫的庫允許Java程序訪問;
    (3) 某些功能用較低級的語言實現(xiàn)的執(zhí)行效率較高,讓Java程序調(diào)用這些函數(shù)。
    在Android應(yīng)用層中的程序或組件都是用Java語言開發(fā)的,這些Java代碼編譯后變成Dex格式的字節(jié)碼,由Dalvik虛擬機執(zhí)行,在執(zhí)行過程中需要調(diào)用本地庫時,由虛擬機載入這些本地庫,然后讓Java函數(shù)調(diào)用庫中的函數(shù),虛擬機相當于一座橋梁,讓Java與本地庫能夠透過標準的JNI界面互相溝通。
  應(yīng)用程序在虛擬機里執(zhí)行,通過函數(shù)System.loadLibrary( )通知虛擬機載入指定的庫,例如在Java代碼中包含代碼如:
  … …
  System.loadLibrary(“sample_jni”);
  … …
  虛擬機就會在Android文件系統(tǒng)的“/system/lib/”目錄中查找libsample_jni.so庫文件,虛擬機載入libsample_jni.so后,Java代碼就可以與庫文件結(jié)合起來一起執(zhí)行。
  這些用C語言編寫的本地庫必須遵循規(guī)范,當虛擬機執(zhí)行System.loadLibrary()函數(shù)時,首先執(zhí)行本地庫里的JNI_OnLoad()函數(shù),這個函數(shù)需要實現(xiàn)的功能是:返回給虛擬機此本地庫使用的JNI版本;對庫進行初始化。如果本地庫里沒有實現(xiàn)JNI_OnLoad()函數(shù),虛擬機就會默認本地庫使用最老的JNI 1.1版本。
  JNI_OnUnload()函數(shù)與裝入函數(shù)相對應(yīng),在虛擬機釋放該本地庫時,會調(diào)用JNI_OnUnload()函數(shù)進行資源回收動作。
  在應(yīng)用層的Java代碼通過虛擬機調(diào)用本地函數(shù),一般要依賴于虛擬機查找?guī)炖锏谋镜睾瘮?shù),如果需要調(diào)用比較頻繁,每次都要尋找一遍,就會花費較多的時間影響效率,在這里可以通過registerNativeMethods()函數(shù)把gMethods[]表格所含的本地函數(shù)注冊到虛擬機里。
2 Android硬件驅(qū)動程序設(shè)計
  Android是一個開放平臺,在嵌入式移動設(shè)備領(lǐng)域里具有很好的應(yīng)用前景,但在不同的設(shè)備上往往有不同的硬件支持,要在Android中添加這些硬件應(yīng)用,不是單純地在Linux內(nèi)核中添加驅(qū)動模塊,還必須在用戶空間和應(yīng)用框架中添加對應(yīng)的支持。下面以給S3C2440開發(fā)板添加一個LED顯示控制驅(qū)動功能為例展示Android平臺添加新硬件支持的過程。
2.1 硬件驅(qū)動程序的框架
  LED控制功能通過應(yīng)用程序來開關(guān)開發(fā)板上的LED燈。在應(yīng)用層中LED控制程序調(diào)用LED控制服務(wù)(Android Service),應(yīng)用層中的LED控制服務(wù)通過JNI讓虛擬機加載LED控制的本地庫,然后向HAL獲取LED Stub,由Stub調(diào)用在Linux內(nèi)核中的LED驅(qū)動。圖3為LED控制功能的架構(gòu)設(shè)計。

 

 

    從LED控制功能的架構(gòu)來分,整個功能可以分成五個模塊:LED驅(qū)動模塊、LED Stub模塊、LED本地服務(wù)模塊、LED服務(wù)管理模塊和LED應(yīng)用模塊。
2.2 HAL中的Stub的設(shè)計與實現(xiàn)
    圖4是LED Stub的實現(xiàn)過程。LED Stub是硬件抽象層中LED控制的代理,當LED控制的本地服務(wù)需要調(diào)用LED Stub時,通過函數(shù)hw_get_module( )結(jié)合LED Stub的模塊ID向HAL申請LED Stub,本地服務(wù)獲得Stub對象后,可以把Stub看作一個抽象硬件進行操作。

    下面是定義LED Stub的HAL結(jié)構(gòu)體:
struct led_module_t {
      struct hw_module_t common;
}
struct led_module_t {
      struct hw_module_t common;
      int fd;
      int(*ns_set_on)(struct led_control_device_t*dev,int32_t led);
     int(*ns_set_off)(struct led_control_device_t*dev,int32_t led);
}
    將結(jié)構(gòu)體led_module_t初始化一個實例名為HAL_MODULE_INFO_SYM,這個名稱不能修改,實例里包含了Stub的模塊信息,主要包括:
     tag:標記了結(jié)構(gòu)體的類型,這里的值為HARDWARE_MODULE_TAG;
  id:LED Stub的模塊ID,在本地服務(wù)向HAL獲取Stub時調(diào)用的函數(shù)hw_get_module()中,通過這里的id查找LED Stub;
  methods:是結(jié)構(gòu)體hw_module_methods_t的實例,為HAL定義回調(diào)函數(shù)open()。
  這里的open()函數(shù)是一個必須實現(xiàn)的回調(diào)函數(shù)接口,在本地服務(wù)獲得Stub對象后調(diào)用,它負責申請結(jié)構(gòu)體led_control_device_t的空間,填充信息,注冊具體操作的回調(diào)函數(shù)接口并打開LED驅(qū)動。
  結(jié)構(gòu)體led_control_device_t繼承了hw_device_t,在open()函數(shù)調(diào)用時填充的主要信息包括:
  tag:結(jié)構(gòu)體的類型,這里的值為HARDWARE_DEVICE_TAG;
  module:Stub的模塊,也就是實例HAL_MODULE_INFO_SYM中的hw_module_t部分;
  close:釋放LED Stub的回調(diào)函數(shù);
  fd:打開設(shè)備驅(qū)動文件返回的文件描述符;
  ns_set_on:打開LED燈的回調(diào)函數(shù)指針;
  ns_set_off:關(guān)閉LED燈的回調(diào)函數(shù)指針。
  回調(diào)函數(shù)指針“*ns_set_on”和“*ns_set_off”分別指向?qū)崿F(xiàn)函數(shù)hal_ led_on()和hal_led_off(),在實現(xiàn)函數(shù)中通過系統(tǒng)調(diào)用ioctl()對LED燈進行開關(guān)控制。
2.3 硬件控制服務(wù)的JNI實現(xiàn)
    LED控制本地庫編譯后為“libled.so”保存在Android文件系統(tǒng)的“/sysem/lib/”目錄下面,LED控制服務(wù)的Android進程運行后由虛擬機實例裝入本地庫,具體實現(xiàn)過程如圖5所示。

    LED控制服務(wù)調(diào)用System.load()函數(shù),它的虛擬機實例就會裝入LED控制本地庫,虛擬機會首先調(diào)用 JNI_OnLoad()函數(shù)完成:
    (1) 把虛擬機環(huán)境信息保存到本地庫的一個結(jié)構(gòu)體“JNIEnv”的實例中;
    (2) 建立一個應(yīng)用層中的LED控制服務(wù)與本地庫的JNI函數(shù)表;
  (3) 返回虛擬機本地庫使用的JNI版本。
    加載完后,應(yīng)用層中的LED控制服務(wù)就可以通過虛擬機中的JNI函數(shù)表把運行的Java函數(shù)轉(zhuǎn)換為本地函數(shù)執(zhí)行。在LED控制服務(wù)類中定義有JNI函數(shù)的方式,例如下面的代碼段:
public final class LedService extends IledService.Stub {
      …….
      static {
         System.load(“/system/lib/libled.so”);
      }
     ……
     private static native boolean as_init();
     private static native boolean as_set_on(int led);
     private static native boolean as_set_off(int led);
}
  本文的研究工作是在S3C2440開發(fā)板上進行的,以給開發(fā)板上的LED燈增加驅(qū)動程序為例,展示了一種為Android平臺非標準硬件增加驅(qū)動程序的設(shè)計方案,對于實現(xiàn)其他設(shè)備的驅(qū)動具有一定的借鑒意義。由于各種硬件設(shè)備及其接口差異較大,本文著重于驅(qū)動程序的設(shè)計方案,沒有討論相關(guān)的硬件接口驅(qū)動細節(jié)。隨著Android平臺日漸成熟以及應(yīng)用數(shù)量的增加,它在嵌入式領(lǐng)域的應(yīng)用范圍將會更加廣泛。為Android設(shè)備編寫不同于標準Linux系統(tǒng)的設(shè)備驅(qū)動程序會變得越來越多。
參考文獻
[1] BRADY P. Anatomy & physiology of an android[EB/OL].2008[2009-03-24].http://sites.google.com/site/io/anatomyphysiology-of-an-android.
[2] GREG K H. Android and the linux kernel community[EB/OL].[2010-02-02], http://www.kroah.com/log/linux/androidkernel-problems.html.
[3] 葉炳發(fā), 孟小華. Android圖形系統(tǒng)的分析與移植[J]. 電信科學,2010(02):65-68.
[4] 李俊.嵌入式Linux設(shè)備驅(qū)動程序開發(fā)詳解[M]. 北京:人民郵電出版社,2008.
[5] 胡希明,毛德操. Linux內(nèi)核源代碼情景分析[M]. 杭州:浙江大學出版社,2004.
[6] 姚昱旻, 劉衛(wèi)國. Android的架構(gòu)與應(yīng)用開發(fā)研究 [D].長沙:中南大學,2008.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 欧美日韩在线一区二区三区 | 免费的一级片 | 色欧美视频 | 91精品国模一区二区三区 | 无套内射无矿码免费看黄 | 日本大人吃奶视频xxxx | 国产亚洲精品久久久久5区 国产亚洲精品久久久久久 国产亚洲精品久久久久久国模美 | 日韩精品网站 | 色妞www精品免费视频 | 天堂av一区二区 | 性福宝av | 国产精品午夜小视频观看 | 国产视频手机在线观看 | 久久久久久网站 | 2021毛片| 丰满人妻一区二区三区无码av | 野外少妇愉情中文字幕 | 亚洲日韩精品a∨片无码加勒比 | 国产精品午夜无码体验区 | 成人免费视频在线观看 | 国产一级激情 | 无码中文字幕色专区 | 久久午夜影院 | 国产白浆在线 | 国产精品久免费的黄网站 | 国产日韩片 | 中国少妇xxxx做受自拍 | 日本一本久久 | 中文精品久久 | 裸身美女无遮挡永久免费视频 | 久久在线 | 国产亚洲精品久久久456 | 综合久久影院 | 亚洲人成网站精品片在线观看 | 日韩高清av| 久久精品国产清高在天天线 | 欧美老熟妇欲乱高清视频 | 91日韩中文字幕 | 久久午夜激情 | 国产大屁股视频免费区 | 中文字幕一区二区三区乱码 | 亚洲国产精品久久久久秋霞 | 玖玖爱av| 国产无套中出学生姝 | 日本无遮挡吸乳呻吟免费视频网站 | 国产自在自拍 | 91精品国产福利一区二区三区 | 色翁荡熄又大又硬又粗又视频图片 | 在线观看国产视频 | 一本一道久久久a久久久精品蜜臀 | 第一页综合 | 日本高清在线一区 | 中文字幕免费在线观看视频 | 国产欧美日韩一区二区三区在线 | 污片在线免费看 | 中文字幕在线观看视频免费 | 日日噜噜夜夜狠狠久久无码区 | 欧美xxxxx高潮喷水麻豆 | 欧美黑人添添高潮a片www | 久久久.com | 国产亚洲性欧美日韩在线观看软件 | a级高清免费毛片av在线 | 精品成人av一区二区三区 | 无套内谢少妇高潮免费 | 一区二区免费看 | 亚洲色播爱爱爱爱爱爱爱 | 与鸭共舞在线 | 久草成人在线视频 | 国产精品乱码妇女bbbb | 色网站在线观看视频 | 国产精品久久久久久一区二区三区 | 精品国产一区二区三区四区阿崩 | 精品国产美女 | 国产精品久久久免费视频 | 无码av中文一区二区三区桃花岛 | 揄拍自拍 | 日本欧美韩国国产精品 | 三级中文字幕在线 | 啪啪免费网址 | 九九九视频在线观看 | 国产精品亚洲专区无码不卡 | 国产成人三级一区二区在线观看一 | 在线观看黄av | 免费欧美黄色 | 天天干夜夜看 | 91久久国产精品视频 | 在线有码视频 | 91久久精品国产91久久性色tv | 清纯粉嫩极品夜夜嗨av | 色综网| chinesehd一区二区三区 | 5566成人精品视频免费 | 藏春阁福利视频 | 国产盗摄夫妻原创视频在线观看 | 日女人毛片 | 久久丫精品系列 | 欧美性猛交 xxxx | 亚洲综合免费 | 大陆毛片视频 | 欧美日韩精品中文字幕 | 成人性生交大片免费看中文 | 日韩在线永久免费播放 | 免费毛片全部不收费的 | 老牛影视免费一区二区 | 精品视频一区二区 | 欧美二区在线观看 | 7788色淫网站免费观看 | 男人爱看的网站 | 日韩av免费片 | 久久日韩激情一区二区三区四区 | 日韩在线不卡av | 国产白袜脚足j棉袜在线观看 | 在线欧美亚洲 | 欧美孕妇与黑人孕交 | 香蕉视频网站入口 | 古代性色禁片在线播放 | www久久撸撸网 | 日韩av资源网 | 亚洲色欲色欲www在线丝 | 黄色免费网站在线看 | 亚洲一二三四区五区 | 日本韩国欧美一区二区三区 | 欧美精品一区二区久久 | 丰满岳乱妇一区二区 | 国产美女精品人人做人人爽 | 欧美极品少妇性运交 | 久久精品视频免费 | 亚洲精品第一国产综合亚av | 张柏芝54张无删码艳照在线播放 | 美女的屁股眼网站 | 91丨porny丨国产丝袜福利 | 亚洲色无码专区在线观看 | 久久亚洲精品中文字幕 | 亚洲va在线观看 | 欧美剧场 | 欧美精品在线一区二区 | 亚洲爆爽av| 少妇高潮伦 | 99精品国产一区二区三区 | 婷婷六月综合网 | 国产伦精品一区二区三区88av | 国产精品入口免费软件 | 中文文字幕文字幕高清 | 噜噜噜久久亚洲精品国产品麻豆 | 成人午夜又粗又硬又大 | 乱人伦中文无码视频在线观看 | 久久久艹 | 日本欧美在线播放 | 国产素人自拍 | 亚洲国产精品综合久久网各 | 国产在线精品一区二区在线看 | 深夜爽爽动态图无遮无挡 | 色在线播放 | 国产在线观看免费 | 国产性一乱一性一伧的解决方法 | 自拍偷拍第 | 全部孕妇毛片丰满孕妇孕交 | 亚洲人成人天堂h久久 | 欧美大片在线观看 | 少妇偷乱偷乱视频在线 | www亚洲www| 秋霞欧美视频 | 成人性做爰aaa片免费看不忠 | 国产女人高潮叫床视频 | 香蕉a| 色噜噜日韩精品欧美一区二区 | youjizz自拍 | 在线亚洲人成电影网站色www | 性xxx4k欧美乱妇 | 黄色午夜 | 国产精品久久一区 | 国产无在线观看软件 | 国产精品新婚之夜泄露女同 | 国产网站一区 | 无码一区二区三区视频 | 久久久久亚洲ai毛片换脸星大全 | 在线天堂视频 | 国产91在线观看 | 同性恋一级片 | 久久人人爽人人爽人人片av麻烦 | 久草福利资源在线 | 精品欧美一区二区三区久久久 | 天天操妹子| 人人干网站 | 亚洲毛片一区二区 | 国产熟妇搡bbbb搡bbbb | 色哒哒影院 | 久久久久成人精品免费播放动漫 | h片观看 | 日韩免费黄色片 | 欧美日韩国产一区二区 | 精品国产精品一区二区夜夜嗨 | a级黄色网址| 欧美专区第二页 | 精品久久久久久亚洲精品 | 男人爽女人下面动态图 | 亚洲精品xxxx| 又黄又爽又色又刺激的视频 | 日本伊人精品一区二区三区 | 国产伦子真实事例对白 | 日韩精品在线一区二区 | 日本三级中国三级99人妇网站 | 久久久久久久久久久av | 国产精品原创av | 色综合色狠狠天天综合色 | 久久成人国产精品免费软件 | 在线无码免费的毛片视频 | 黄色激情在线观看 | 91视频第一页 | 日本一道在线 | 一区二区小说 | 色婷婷色丁香 | 成人性生交a做片 | 国产欧美日韩中文久久 | 一本色综合亚洲精品蜜桃冫 | 国产精品九九九九九 | 丰满少妇小早川怜子影片了 | 亚洲精品国偷拍自产在线观看蜜臀 | 57pao成人国产永久免费视频 | 东北女人毛多水多牲交视频 | 911成人网| 久久99精品久久久秒播 | 久久av无码精品人妻系列 | 新超碰97 | 国产乱淫av片免费观看 | 看91| 自拍毛片 | 日韩夜夜高潮夜夜爽无码 | 欧洲精品视频在线观看 | 成人在线观看免费网站 | 亚洲成人av免费 | 人妻熟妇乱又伦精品视频 | 免费看a的网站 | 最新中文字幕2019 | 亚洲中文无码永久免费 | 自拍偷拍国产精品 | 国产又黄又硬又粗 | sm免费人成虐网站 | 国产一极毛片 | 91视频你懂的 | 他揉捏她两乳不停呻吟在线播放 | 无码国产精品成人 | 四虎国产精品永久在线 | 玩成熟老熟女视频 | 色综合 图片区 小说区 | 日韩黄色三级 | 国产精品久久久久久久久久三级 | 日韩在线亚洲 | av一区三区 | 中国吞精videos露脸 | 中文字幕婷婷 | 二男一女一级一片 | 内射夜晚在线观看 | 国产精品无码av一区二区三区 | 丁香六月婷婷 | 老汉色老汉首页a亚洲 | 综合久久av | 欧美一区二区人人喊爽 | 理论片午午伦夜理片影院99 | 夜色毛片永久免费 | 男人猛躁进女人免费视频夜月 | 小毛片| 女人被男人躁得好爽免费视频 | 国产成人精品a视频一区 | 国产粉嫩av | 久久久人体| 欧美精品无码一区二区三区 | 一区一区三区四区产品动漫 | 久久国内视频 | 国产高清一区 | 中文字幕日韩欧美一区二区三区 | 亚洲国产精久久久久久久 | 国产精品一区二区无线 | 国产日产亚洲系列最新 | 韩国三级做爰楼梯在线 | 国产丝袜视频一区二区三区 | 在线观看日韩中文字幕 | 欧美一区二区喷水白浆视频 | 亚洲精品乱码久久久久久日本蜜臀 | 人妻少妇精品视频一区二区三区 | 男人天堂av网站 | 久久婷婷五月综合97色直播 | 91喷水视频 | 国产精品久久久久久久久久久久冷 | 少妇呻吟白浆高潮啪啪69 | 91这里只有精品 | 人妻av中文系列 | 黄色一级片a | 精品无码国产自产拍在线观看蜜 | 色小妹av | 午夜dj在线观看高清在线视频完整版 | 日韩毛片在线播放 | 亚洲精品乱码久久久久v最新版 | 国产最新在线视频 | 久久婷婷精品一区二区三区日本 | 久久合| 免费无码黄网站在线观看 | 91人人揉日日捏人人看 | 国产精品欧美一区二区三区喷水 | 亚洲欧洲一区二区在线观看 | 午夜免费在线 | 人妻中文字幕在线网站 | 新版本天堂资源在线中文8的特点 | 印度最猛性xxxxx69交 | 亚洲一区二区三区影院 | 色呦呦在线 | 99久久精品午夜一区二区小说 | 久草在线新时代的视觉体验 | 中文字幕大全 | 91区国产| 136福利视频导航 | 欧美巨猛xxxx猛交黑人97人 | 日韩精品一线二线三线 | 欧美性大战久久久 | 视频在线一区 | 国产精品国产三级国产aⅴ 国产精品国产三级国产aⅴ9色 | 国产日韩欧美一区二区三区乱码 | 理论片午午伦夜理片影院99 | 九色网战| 91av视频播放| 国产乱人伦无无码视频试看 | 精品亚洲成a人无码成a在线观看 | 黄色在线观看国产 | 236宅宅理论片免费 爱久久av一区二区三区 | 美日韩免费视频 | 色橹橹欧美在线观看视频高清 | 久久久久夜色精品国产老牛91 | 色婷婷小说 | 麻豆精品导航 | 毛片资源 | 亚洲精品久久久久中文第一暮 | 国产无遮挡又黄又爽免费网站 | 国产一卡二卡三卡四卡 | 国产91热爆ts人妖系列 | 亚洲精品久久久无码一区二区 | 久久久久久久性 | 国产精品美女久久久久久久久久久 | 在线超碰av| 无码av波多野结衣 | 手机国产乱子伦精品视频 | 国产亚洲精品久久久久婷婷瑜伽 | 成人黄色在线观看 | 日韩一卡2卡3卡4卡2021免费观看国色天香 | 丝袜视频在线观看 | 在线视频91| 中文字幕精品一区二区三区在线 | 国产成人久久综合第一区 | 亚洲日本韩国欧美云霸高清 | 女同一区| 欧美久久久久久久久中文字幕 | 久久国 | 4438x亚洲| 免费无码毛片一区二区app | 永久免费av网站 | 欧美性群另类交 | 久久情趣视频 | 美国色综合| 成年女人午夜毛片免费视频 | 亚洲一卡久久 | 青草伊人久久 | 国精产品一区一区三区 | 日韩激情小视频 | 午夜视频在线观看网站 | 午夜妇女aaaa区片 | 国产无遮挡免费观看视频网站 | 天堂8资源8地址8 | 日韩三级精品 | 亚洲一级视频在线观看 | 97国产精品人人爽人人做 | 天天操天天爽天天干 | 小雪好紧好滑好湿好爽视频 | 人人爱夜夜爽日日做蜜桃 | 极品白嫩丰满少妇无套 | 九色丨9lpony丨国产 | 国产调教打屁股xxxx网站 | 国产欧美第一页 | 黄色91| 日韩av无码精品一二三区 | 国模大胆一区二区三区 | av观看网址 | 精品久久久久国产免费 | 成人国产亚洲 | 14萝自慰专用网站 | zzijzzij亚洲日本少妇熟睡 | 98久9在线 | 免费 | 国产精品久久国产精麻豆99网站 | 四虎精品一区二区免费 | 农村黄毛aaaaa免费毛片 | 潘金莲激情呻吟欲求不满视频 | 国产无套精品一区二区 | 六月丁香激情 | 婷婷综合久久中文字幕蜜桃三电影 | 国产av熟女一区二区三区 | 欧美一区二区三区粗大 | 性猛交娇小69hd | av大全免费观看 | 在线免费播放av | 娇妻被黑人粗大高潮白浆 | 日本一区二区三区高清在线观看 | 在线一区二区三区在线一区 | 久久无码字幕中文久久无码 | 欧美成人吸奶水做爰 | 日韩欧美成人网 | 欧美交性又色又爽又黄 | 日韩精品一区二区三区免费视频 | 老熟妇午夜毛片一区二区三区 | 一区二区三区乱码在线 | 欧洲 | 人妻少妇精品久久久久久 | 91高潮大合集爽到抽搐 | 国产免费一区二区三区网站免费 | 深夜福利在线观看视频 | 精品午夜熟女人妻视频毛片 | 四虎最新网址在线观看 | 亚洲s码欧洲m码国产av | 久久久综合婷婷精品国产一区影院 | 亚洲老板91色精品久久 | 成人性生交大片免费看r老牛网站 | 北条麻妃一区二区三区中文字幕 | 色视频在线网站 | 亚洲午夜精品久久久久久 | 久久中文字幕人妻熟av女 | 18女人毛片| 欧美成人黄色片 | 永久免费看片 | 亚洲一卡一卡二新区无人区 | 舌奴调教日记 | 粉嫩av一区二区三区在线播放 | 国产伦理片在线观看 | 色屁屁www影院入口免费 | 我要看黄色a级片 | 国产在线欧美日韩 | 天天躁日日躁mmmmxxxx | 巨胸美女狂喷奶水www | 国产精品91久久 | 国产人妖ts重口系列网站观看 | 亚洲精品国产欧美在线观看 | 999久久久久久 | 五月婷婷av| 欧美日韩一级特黄 | 激情 欧美 偷拍 | 91高跟黑色丝袜呻吟动态图 | 天天综合亚洲综合网天天αⅴ | 污免费视频 | 91精品国产综合久久香蕉922 | 色翁荡息又大又硬又粗视频 | 222aaa免费国产在线观看 | 日本不卡一区二区三区 | 精品少妇一区二区30p | 国产区精品一区二区不卡中文 | 久久精品国产精品 | 国产精品18久久久久白浆 | 一区二区三区日韩 | 销魂美女一区二区 | 欧美精品乱码 | 白嫩初高中害羞小美女 | 久久99精品久久久秒播软件优势 | 激情欧美综合 | 大伊人久久 | 中文字幕av一区 | 黄色欧美视频 | 91在线porny国产在线看 | 四虎影视免费在线观看 | 亚洲日韩乱码中文无码蜜桃臀 | 国产婷婷一区二区三区 | 欧美一区二区三区激情视频 | 亚洲国产三级在线观看 | 日本videos多次高潮 | 亚洲色婷婷久久精品av蜜桃 | 欧美日韩有码 | 成人日韩精品 | 人人澡人人妻人人爽人人蜜桃麻豆 | 亚洲精品无码永久在线观看你懂的 | 黑人中文字幕一区二区三区 | 欧美草比视频 | 久久久久女人精品毛片九一 | 国产在线一二三区 | 国产成人精品亚洲线观看 | √最新版天堂资源网在线 | 国产福利视频一区二区 | 午夜视频免费在线观看 | 久久影视大全 | 免费日本黄色 | 中国挤奶哺乳午夜片 | 国产欧美日韩一区二区三区 | 欧美日韩黄色片 | 欧美无马 | 亚洲日韩中文无码久久 | 91资源在线播放 | 亚洲国产一二三精品无码 | 亚洲国产精品女人久久久 | 天堂а√在线中文在线最新版 | 97精品视频 | 看三级毛片 | 亚洲理论视频 | 丰满少妇人妻久久久久久 | 成人在线综合 | 久久国产精品久久久久久 | 少妇激情一区二区三区视频 | 久久精品成人一区二区三区 | 极品美女扒开粉嫩小泬 | 久久日本精品字幕区二区 | 国产综合久久久久久鬼色 | 波多野结衣aⅴ在线 | 免费无码一区二区三区蜜桃 | 成人国产精品一区二区 | 精品国产一区二区在线 | 欧美成人精品欧美一级乱黄 | 91精品在线播放 | 一级片免费| 日本欧美国产 | 日本精品视频在线观看 | 夜夜操av| 色偷偷av一区二区三区 | 国内精品久久久久伊人aⅴ 国内精品毛片 | 猫咪www免费人成人入口 | 国产女主播福利 | 中文字幕乱码一区二区三区四区 | 欧美日韩久久久精品a片 | 国产玖玖视频 | 亚洲男人的天堂在线观看 | 亚洲美女在线观看 | 国产乱人伦app精品久久 | 色图社区| 色窝窝无码一区二区三区 | 亚洲综合欧美色五月俺也去 | 色一情一乱一伦一视频免费看 | 少妇性l交大片毛多 | 国产午夜福利100集发布 | 色一情一乱一乱一区99av白浆 | 天堂а在线中文在线新版 | 一本久道在线 | 情侣自拍av | 久久福利免费视频 | 免费男人下部进女人下部视频 | 相泽南av日韩在线 | 色先锋av | 狠狠躁18三区二区一区张津瑜 | 欧洲在线观看 | 深夜在线播放 | 超碰97国产精品人人cao | 国产精品揄拍一区二区 | 欧美大片在线看 | 97超级碰碰碰碰久久久久 | 国产精品永久久久 | www.污污 | 国产成人久久77777精品 | 亚洲蜜芽在线精品一区 | 国产色站| 青青伊人网| 日韩不卡一二三区 | 亚洲最大网| 久久精品一区二区三区四区 | 婷婷成人丁香五月综合激情 | 黄色免费成人 | 国产99久久久久久免费看农村 | 国产精品激情av久久久青桔 | 国产一区二区三区四区五区加勒比 | 情侣自拍av| 亚洲欧美日韩国产手机在线 | 色成人综合网 | 久久福利网| 在线免费观看污网站 | 97久久久久久久久久久久 | 爱情岛论坛网亚洲品质 | 专干老肥女人88av | 欧美色炮| 激情五月色综合国产精品 | 欧美日韩色视频 | 五月婷中文字幕 | 国产精品一区二区av不卡 | 少妇高潮交换91 | 久久婷婷色 | 国产亲伦免费视频播放 | 91社影院| 日本欧美一区二区三区不卡视频 | 久久久精品国产99久久精品芒果 | 亚洲中文字幕第一页在线 | 午夜欧美视频 | 日本大尺度吃奶呻吟视频 | 亚洲精品中字 | 在线观看免费av网 | 久久久久人妻精品一区三寸 | 韩日av一区二区 | 一区二区三区精品国产 | 亚洲精品一区二区三区中文字幕 | 欧美成人精精品一区二区频 | 国产精品亚洲二区在线观看 | 自拍偷拍第1页 | 欧美自拍亚洲综合丝袜 | 五月天天丁香婷婷在线中 | 孕妇怀孕高潮潮喷视频孕妇 | 国产日本欧美在线 | 国产极品视频在线观看 | 亚洲成人三区 | 亚洲国产精品免费在线观看 | 亚洲精品国产一区黑色丝袜 | 午夜高清福利 | wwwxxx 日本| 蘑菇av| 尤物精品在线观看 | 精品久久久久久久久久中文字幕 | 一区二区三区回区在观看免费视频 | 四虎1515hh.com | hd最新国产人妖ts视频 | 狼人青草久久网伊人 | 亚洲国产精品视频在线观看 | 护士脱了内裤让我爽了一夜视频 | 欧美丰满少妇 | 亚洲av毛片 | 欧美顶级metart裸体全部自慰 | 又黄又爽又刺激久久久久亚洲精品 | 中文字幕一区二区三区久久 | 成人同人动漫免费观看 | 特级做a爰片毛片免费看 | 日韩播放 |