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

        ?

        J2ME中CLDC平臺(tái)執(zhí)行并發(fā)多任務(wù)的研究和實(shí)現(xiàn)

        2014-07-13 06:45:12
        電子設(shè)計(jì)工程 2014年7期
        關(guān)鍵詞:環(huán)境設(shè)備方法

        張 博

        (長沙師范學(xué)院 電子信息工程系, 湖南 長沙 410100)

        J2ME中CLDC平臺(tái)執(zhí)行并發(fā)多任務(wù)的研究和實(shí)現(xiàn)

        張 博

        (長沙師范學(xué)院 電子信息工程系, 湖南 長沙 410100)

        J2ME為移動(dòng)無線設(shè)備帶來了Java語言的平臺(tái)無關(guān)性,能夠動(dòng)態(tài)地、安全地以各種類型的網(wǎng)絡(luò)向移動(dòng)無線設(shè)備傳送交互內(nèi)容和應(yīng)用程序,并可以按用戶的需求定制應(yīng)用程序。首先介紹了 J2ME平臺(tái),接著介紹了CLDC,同時(shí)對CLDC環(huán)境下多線程程序的開發(fā)及應(yīng)用進(jìn)行了深入探討。最后對給出的解決方案進(jìn)行了討論并指出其實(shí)用性。

        J2ME;CLDC;多任務(wù);多線程

        當(dāng)前, 各種智能消費(fèi)類電子產(chǎn)品,如移動(dòng)電話、PDA、電視機(jī)頂盒等呈現(xiàn)爆炸性增長,其數(shù)量已經(jīng)大大超過桌面PC,數(shù)字計(jì)算的重點(diǎn)也從單純的面向Internet的網(wǎng)絡(luò)計(jì)算向移動(dòng)計(jì)算發(fā)展,人們希望可以隨時(shí)隨地以任意設(shè)備實(shí)現(xiàn)信息的獲取和共享,進(jìn)行商務(wù)貿(mào)易等。無所不在的普適網(wǎng)絡(luò)和種類繁多、功能日益強(qiáng)大的終端,已經(jīng)構(gòu)成人們生活的重要環(huán)境—普適環(huán)境。普適環(huán)境帶來了以普適網(wǎng)絡(luò)為基礎(chǔ)的計(jì)算環(huán)境,并且提供了多種移動(dòng)終端的接入方式。在普適環(huán)境下的計(jì)算模式被認(rèn)為是一種普適計(jì)算(Ubiquitous/Pervasive Computing)。J2ME技術(shù)實(shí)際上就是在普適計(jì)算環(huán)境發(fā)展背景下發(fā)展起來的。

        Java移動(dòng)軟件平臺(tái)采用的基本Java平臺(tái)是CLDC (Connected Limited Device Configuration)和MIDP (Mobile Information Device Profile),是J2ME平臺(tái) (Java 2 Micro Edition)構(gòu)成的一部分,常被應(yīng)用于手機(jī)等移動(dòng)設(shè)備上。但CLDC的Java執(zhí)行與處理始終在多線程單進(jìn)程狀態(tài)階段,自然也就無法滿足目前用戶的需要,而Java語言又具有易開發(fā),成本低、兼容性強(qiáng)等特點(diǎn)。因此繼續(xù)CLDC環(huán)境下的Java開發(fā)使用,重新構(gòu)建CLDC環(huán)境結(jié)構(gòu),使其具有多任務(wù)線程的執(zhí)行處理能力。

        國外大多開放式J2ME平臺(tái)系統(tǒng)也借助于CLDC環(huán)境和其豐富的軟件資源。在系統(tǒng)體系結(jié)構(gòu)上,開發(fā)了典型的CLDC設(shè)備的大體架構(gòu),且為移動(dòng)設(shè)備定義了一個(gè)標(biāo)準(zhǔn)的Java平臺(tái)。由于CLDC環(huán)境運(yùn)行于一個(gè)宿主操作系統(tǒng)之上,宿主操作系統(tǒng)為CLDC環(huán)境虛擬機(jī)提供管理底層硬件的必備能力。國外研究者從上開發(fā)了CLDC的多線程技術(shù),這也是實(shí)現(xiàn)CLDC下的多進(jìn)程技術(shù)的基礎(chǔ)。但目前國外研究者卻因?yàn)槭袌鲂枨蟮木o迫性逐步放棄了CLDC的多進(jìn)程研究,從而發(fā)展LINUX架構(gòu)。

        國內(nèi)一般將J2ME技術(shù)稱為“無線Java”技術(shù),目前國內(nèi)的J2ME平臺(tái)的開發(fā)一直在低端設(shè)備要求的運(yùn)行情況下研發(fā),當(dāng)然存在功能需求上的不足,而市場上其他非Java平臺(tái)的移動(dòng)設(shè)備又造價(jià)高昂,無法適應(yīng)國內(nèi)市場,且目前技術(shù)水平下的CLDC平臺(tái)又不能滿足當(dāng)前用戶的需求,故而對J2ME平臺(tái)的設(shè)計(jì)迫在眉睫。

        1 J2ME概述

        Sun Microsystems 將J2ME定義為“一種以廣泛的消費(fèi)性產(chǎn)品為目標(biāo)的高度優(yōu)化的 Java運(yùn)行時(shí)環(huán)境, 包括尋呼機(jī)、移動(dòng)電話、可視電話、數(shù)字機(jī)頂盒和汽車導(dǎo)航系統(tǒng)?!庇捎诟鞣N移動(dòng)設(shè)備具有各種不同的硬件配置,所以為它們提供一種普遍適用的開發(fā)平臺(tái)幾乎是不可能的,所以,J2ME定義了兩種類型的規(guī)范,它們攜手提供一種移動(dòng)Java平臺(tái)。這兩種平臺(tái)就是配置(configuration)和描述(Profile)。

        J2ME利用配置來根據(jù)各種設(shè)備的運(yùn)算能力和供電能力把設(shè)備分為CLDC(Connected Limited Device Configuration)和CDC(Connected Device Configuration)。通過配置來提供支持一組通用設(shè)備的最小Java平臺(tái),作為這類設(shè)備的最低配置來保證不同設(shè)備間的平臺(tái)兼容性。這里所說的平臺(tái)主要指JVM和Java核心庫,在配置中舍棄了設(shè)備的特殊性來保證Java平臺(tái)的兼容性,因此為了支持具體設(shè)備所獨(dú)有的功能和硬件條件,J2ME提供了描述(Profile)來體現(xiàn)設(shè)備的特殊性。描述(Profile)是根據(jù)每類設(shè)備的功能定義的與設(shè)備特性相關(guān)的API.。

        關(guān)于J2ME的體系結(jié)構(gòu),可以用圖1表示。

        圖1 J2ME體系結(jié)構(gòu)Fig. 1 J2ME system structure

        2 CLDC技術(shù)

        J2ME的配置層將基本運(yùn)行時(shí)環(huán)境定義為一組核心類和一個(gè)運(yùn)行在特定類型設(shè)備上的特定JVM。雖然將來可能定義其他配置,但當(dāng)前J2ME存在兩種配置[1]:

        1)連接限制設(shè)備配置(Connected Limited Device Configuration:CLDC)與KVM一起用于內(nèi)存有限的16位或32位設(shè)備。這是用于開發(fā)小型J2ME應(yīng)用程序的配置。CLDC同時(shí)還是用于開發(fā)繪圖工具應(yīng)用程序的配置。Palm電腦便是一個(gè)運(yùn)行小應(yīng)用程序的小型無線設(shè)備的示例。

        2)連接設(shè)備配置(Connected Device Configuration:CDC)與C虛擬機(jī)(CVM)一起使用,用于要求內(nèi)存超過2兆的32位體系結(jié)構(gòu)?;ヂ?lián)網(wǎng)電視機(jī)頂盒便是這類設(shè)備的一個(gè)示例。

        J2ME CLDC是由 Java Community Process 創(chuàng)建的。正如Sun Microsystems 所定義的那樣,它的標(biāo)準(zhǔn)是“輕便、覆蓋區(qū)域的Java構(gòu)建塊,適合小型的、有資源限制的設(shè)備”[2]。使用CLDC開發(fā)的J2ME應(yīng)用程序的目標(biāo)設(shè)備通常具有以下特征[3]:可供Java平臺(tái)使用的160到512千字節(jié)的總內(nèi)存;功率有限,常常是電池供電;網(wǎng)絡(luò)連通性,常常是無線的、不一致的連接并且?guī)捰邢?;用戶接口混亂,程度參差不齊;有時(shí)根本就沒有接口。J2ME CLDC配置簡要描述了高度限制設(shè)備上每個(gè)J2ME執(zhí)行所要求的一套最基本的庫和Java虛擬機(jī)特征。CLDC主要面向那些網(wǎng)絡(luò)連接速度慢、能源有限(經(jīng)常是電池供電)、具有大于等于128 KB的穩(wěn)定內(nèi)存、以及大于等于32 KB的不穩(wěn)定內(nèi)存的設(shè)備。不穩(wěn)定內(nèi)存是不持久的并且沒有寫保護(hù),這意味著如果關(guān)掉設(shè)備,內(nèi)存中的內(nèi)容將全部丟失。而穩(wěn)定內(nèi)存中的內(nèi)容是持久的,并且有寫保護(hù)。CLDC設(shè)備使用穩(wěn)定內(nèi)存來存儲(chǔ)運(yùn)行時(shí)的庫和KVM,或存儲(chǔ)為某個(gè)特殊設(shè)備創(chuàng)建的另一個(gè)虛擬機(jī)。不穩(wěn)定內(nèi)存被用來分配運(yùn)行時(shí)的內(nèi)存。CLDC定義了下列要求[4]:

        1) 完整的Java語言支持(除浮點(diǎn)支持、最終定案和錯(cuò)誤處理之外);

        2) 完整的JVM支持;

        3) CLDC的安全性;

        4) 有限國際化的支持;

        5) 繼承類—所有不針對CLDC的類都必須是J2SE1.3類的子類。

        3 多任務(wù)處理與Java

        處于“恒”開啟狀態(tài)的持續(xù)性數(shù)據(jù)處理應(yīng)用(如即時(shí)消息和無線電子郵件等)是推動(dòng)多任務(wù)處理的強(qiáng)有力因素。事實(shí)上可以說,在不支持多任務(wù)處理的環(huán)境中,這些應(yīng)用程序根本無法運(yùn)行。在Windows環(huán)境中,即時(shí)消息和電子郵件應(yīng)用程序通常在后臺(tái)持續(xù)運(yùn)行,收到新消息或電子郵件時(shí)自動(dòng)切換至前臺(tái)。用戶當(dāng)然希望在手機(jī)上實(shí)現(xiàn)這種功能。與此相似,如果媒體播放器應(yīng)用程序能在來電時(shí)暫停并進(jìn)入后臺(tái),隨后切換至前臺(tái)繼續(xù)播放,使用起來自然更為方便。

        目前,構(gòu)成移動(dòng)Java部署的主要是在其自身JVM實(shí)例中運(yùn)行的應(yīng)用程序,且每次只運(yùn)行一個(gè)程序。也就是說,Java應(yīng)用程序之間的切換是通過連續(xù)方式實(shí)現(xiàn)的:先啟動(dòng)JVM,然后加載應(yīng)用程序并運(yùn)行。如果用戶希望切換到一個(gè)新的應(yīng)用程序,就要退出當(dāng)前程序;在該進(jìn)程重新啟動(dòng)之前,JVM將處于關(guān)閉狀態(tài)。如果多個(gè)應(yīng)用程序能夠并行運(yùn)行,每個(gè)程序都需要加載、分析、校驗(yàn)并創(chuàng)建所有應(yīng)用程序級的運(yùn)行時(shí)映像。兩種方法都無法實(shí)現(xiàn)Java的有效多任務(wù)處理;兩種方法都速度慢、效率低下而且離便于使用的目標(biāo)還相距甚遠(yuǎn)。顯然,我們迫切需要一種更好的Java多任務(wù)處理解決方案。多任務(wù)處理更貼近現(xiàn)實(shí)用戶行為?,F(xiàn)在,用戶使用電腦和PDA應(yīng)用程序時(shí)可以在各任務(wù)之間自由切換。要求手機(jī)達(dá)到這種性能,也是理所當(dāng)然之事;隨著手機(jī)和服務(wù)的不斷發(fā)展,除語音通話以外,數(shù)據(jù)使用和其他任務(wù)也得到了日益完善的支持,這就令此類要求更加突出。

        4 設(shè)計(jì)與實(shí)現(xiàn)

        我們知道,在操作系統(tǒng)級別上軟件的運(yùn)行一般都是以進(jìn)程為單位,而在每個(gè)進(jìn)程的運(yùn)行過程中允許同時(shí)并發(fā)執(zhí)行多個(gè)不同線程,這就使得一個(gè)程序能同時(shí)執(zhí)行不同的操作。使用多線程的目的是為了最大限度地利用計(jì)算機(jī)CPU資源。Java程序字節(jié)碼最終是在JVM虛擬機(jī)下運(yùn)行的,同一虛擬機(jī)進(jìn)程中的不同操作都是通過多線程來運(yùn)行的。在Java虛擬機(jī)中,線程常用有單線程和多線程,單線程指程序執(zhí)行過程只是一個(gè)有效操作的序列,不同操作都有著明確的先后順序;而多線程允許同時(shí)進(jìn)行著不同的操作,這些不同的操作同時(shí)并發(fā)進(jìn)行著,并由CPU時(shí)鐘頻率根據(jù)不同的調(diào)度方式對它們進(jìn)行執(zhí)行調(diào)度。

        在手機(jī)軟件設(shè)計(jì)中,由于同樣需要執(zhí)行網(wǎng)絡(luò)連接(基于HTTP的高級Internet協(xié)議通訊)、UI調(diào)度等待、UI顯示幻化、游戲控制等操作需要通過后臺(tái)的數(shù)據(jù)運(yùn)算或UI不斷更新等操作。因此在J2ME中,KVM虛擬機(jī)也提供了功能強(qiáng)大的多線程API,使我們同樣能在J2ME中實(shí)現(xiàn)線程的并發(fā)運(yùn)算。文中將Java語言中繼承Thread類(java.lang.Thread)和直接實(shí)現(xiàn)Runnable多線程接口(java.lang.Runnable)的優(yōu)化算法靈活運(yùn)用于J2ME平臺(tái)的CLDC環(huán)境中實(shí)現(xiàn)并行多任務(wù)處理,同時(shí)創(chuàng)新提出使用任務(wù)組合方式來實(shí)現(xiàn)多線程。

        4.1 繼承Thread類 (java.lang.Thread)

        通過編寫線程類繼承Thread類并重寫Thread類中的run()方法實(shí)現(xiàn)線程,當(dāng)線程對象被運(yùn)行時(shí)候?qū)?huì)自動(dòng)執(zhí)行run方法中的實(shí)體內(nèi)容,從而開辟一個(gè)單獨(dú)的線程并運(yùn)行起來。

        當(dāng)執(zhí)行start方法時(shí)候,將會(huì)自動(dòng)運(yùn)行run方法,但是執(zhí)行start方法時(shí)候只做了一件事,就是將線程轉(zhuǎn)化為可執(zhí)行狀態(tài),然后等待操作系統(tǒng)進(jìn)行調(diào)度并運(yùn)行,因此無法保證線程能立即啟動(dòng)。

        4.2 直接實(shí)現(xiàn)Runnable多線程接口(java.lang.Runnable)

        線程接口Runnable中只有一個(gè)抽象方法run,通過實(shí)現(xiàn)Runnable接口中的方法的類即可創(chuàng)建出有多線程特征的對象,但該對象并無法使其啟動(dòng)線程,需要作為參數(shù)并借助Thread的構(gòu)造方法構(gòu)造創(chuàng)建對象并調(diào)用start方法對線程進(jìn)行啟動(dòng)。

        如:

        由此可見,以上兩種方法都是通過Thread的start來啟動(dòng)線程的,實(shí)際上所有的線程操作都是封裝在Thread這個(gè)類中,由Thread對象調(diào)用各種接口來控制線程。

        直接繼承Thread類的方法不能再從其他類繼承,編寫簡單,可以直接操作線程;實(shí)現(xiàn)Runnable接口的方法可以將CPU、代碼和數(shù)據(jù)分開,形成清晰的模型,還可以繼承其他類,保持程序風(fēng)格的一致性,兩者的重要區(qū)別在于啟動(dòng)多線程對象的方法設(shè)計(jì)方法不同。在具體應(yīng)用中,采用哪種方法來構(gòu)造線程要視情況而定,通常,當(dāng)一個(gè)線程已繼承了另一個(gè)類時(shí),就只能采用第二種方法來構(gòu)造,即實(shí)現(xiàn)Runnable接口。

        4.3 使用任務(wù)組合實(shí)現(xiàn)多線程

        在J2ME中,同樣具有Java中的任務(wù)處理組合類,他們分別為Timer和TimerTask,可以使用他們實(shí)現(xiàn)多線程,簡單說就是定時(shí)實(shí)現(xiàn)任務(wù)。

        Timer是Java中的一個(gè)定時(shí)器,可以實(shí)現(xiàn)在某一時(shí)間做某件事或者在某一時(shí)間段做某些事,分別通過方法schedule(TimerTask tt,long millis) 和 schedule(TimerTask tt,long start,long off)。

        TimerTask是一個(gè)任務(wù)類,通過繼承該類并覆蓋方法run即可創(chuàng)建一個(gè)任務(wù)。

        //3秒鐘后執(zhí)行任務(wù)并且之后每5秒鐘執(zhí)行一次

        timer.schedule(new TimerTaskS(),3000,5000);

        有此可見在使用計(jì)時(shí)任務(wù)可以達(dá)到實(shí)現(xiàn)線程的效果,分別執(zhí)行不同的并發(fā)操作,通過Timer類對象來操作TimerTask對象,通過schedule方法來計(jì)時(shí)執(zhí)行任務(wù),在結(jié)束任務(wù)的時(shí)候,通常使用cancel()來實(shí)現(xiàn)。

        5 多線程應(yīng)用中需要考慮的問題

        利用多線程的并發(fā)執(zhí)行特點(diǎn),無疑會(huì)加快程序的運(yùn)行,提高CPU、內(nèi)存等系統(tǒng)資源的使用效率,但要注意同時(shí)運(yùn)行在內(nèi)存中的多個(gè)線程之間的關(guān)系。由于線程執(zhí)行不受建立先后的約束,線程間共享數(shù)據(jù)可能會(huì)出現(xiàn)程序員想象不到的事情,還有多個(gè)線程同時(shí)訪問修改同一個(gè)數(shù)據(jù)、資源競爭和死鎖問題,都需要程序員周密的考慮??傮w來說,在程序中決定使用多線程需要權(quán)衡以下幾個(gè)問題:1)創(chuàng)建線程需要占用更多的內(nèi)存資源;2)創(chuàng)建線程需要增加CPU跟蹤線程、切換線程的時(shí)間開銷;3)多線程編程必須考慮資源共享問題、同時(shí)訪問通訊端口問題以及系統(tǒng)資源競爭和死鎖問題;4)同一任務(wù)下的多個(gè)線程同時(shí)訪問和修改某個(gè)數(shù)據(jù)時(shí),要考慮數(shù)據(jù)的安全問題。

        由此看出,線程不是越多越好,而是要適度,并且對多線程編程的程序員也提高了要求??傊嗑€程會(huì)使軟件編程變得更加靈活,同時(shí)也給程序員帶來了更大的機(jī)遇和挑戰(zhàn)。

        6 結(jié)束語

        文中基于J2ME平臺(tái)的開放式CLDC系統(tǒng),利用Java 語言的可移植性、安全性和兼容性等優(yōu)勢,在目前CLDC多線程的情況下解決不能多進(jìn)程處理的問題,實(shí)現(xiàn)CLDC平臺(tái)的多任務(wù)功能,同時(shí)使之能適應(yīng)市場上的各種軟硬件資源、保證CLDC與網(wǎng)絡(luò)連接,實(shí)現(xiàn)資源共享。針對不同的應(yīng)用要求和應(yīng)用環(huán)境,通過自由選擇與配置不同的硬件與軟件,使J2ME平臺(tái)可面向多種設(shè)備使用,具有普適性,從而減少二次開發(fā)的成本投入和開發(fā)的周期。

        [1]Sun Microsystems, Inc. JavaTM 2 Platform Micro Edition(J2METM)Technology for Greating Mobile Devices (White Paper)[P].May 19,2000.

        [2]Sun Microsystems, Inc. K Virtual Machine (KVM) Specification(KVM Developer Release 4)[P].September 28,1999.

        [3]Sun Microsystems, Inc. The CLDC HotSpot Implementation Virtual Machine (White Paper)[P].May 19,2000.

        [4]Sun Microsystems, Inc. Connected, Limited Device Configuration(Specification Version 1.0, Java 2 Platform Edition)[P].May 19,2000.

        [5]王克宏.Java技術(shù)教程(基礎(chǔ)篇)[M]. 北京: 清華大學(xué)出版社,2005.

        [6]耿祥義, 張躍平. Java 2實(shí)用教程[M]. 北京: 清華大學(xué)出版社,2006.

        [7]J2ME MIDP1.0/2.0無線設(shè)備編程指南[M]. 北京: 北京大學(xué)出版社.

        [8]溫尚書. J2ME無線通信實(shí)用案例教程[M]. 北京: 清華大學(xué)出版社, 2003.

        [9]李振鵬,龔劍. Java開發(fā)利器: J2ME手機(jī)游戲開發(fā)技術(shù)詳解[M].北京: 清華大學(xué)出版社, 2006.

        [10]黃聰明. Java移動(dòng)通信程序設(shè)計(jì)—J2MEMIDP[M].北京: 清華大學(xué)出版社,2002.

        Research and realization of J2ME CLDC platform for the implementation of concurrent multitasking

        ZHANG Bo
        (Electronic Information Engineering Department,Changsha Normal University,Changsha410100,China)

        J2ME brings platform independency inherited from Java language to mobile wireless devices. It enables dynamic and delivery of interactive content and applications to those devices via various network. And it can customize applications according to users,requirement. This paper first gives basic concepts of J2ME platform, then introduces CLDC, depth development and application of the CLDC environment multithreaded. Finally, given solutions were discussed and pointed out its usefulness.

        J2ME; CLDC; multi-tasking; multi-threading

        TN-9

        A

        1674-6236(2014)07-0146-04

        2013-08-10稿件編號201308071

        2013年度湖南省教育廳科學(xué)研究項(xiàng)目支持(13C1070)

        張 博(1980—),男,湖南長沙人,碩士研究生,講師。研究方向:圖像處理與模式識(shí)別、信號處理、計(jì)算機(jī)信息安全理論。

        猜你喜歡
        環(huán)境設(shè)備方法
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
        一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
        孕期遠(yuǎn)離容易致畸的環(huán)境
        環(huán)境
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        可能是方法不對
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        午夜福利电影| 全亚洲高清视频在线观看| 本道天堂成在人线av无码免费 | 国产免费的视频一区二区| 男人一插就想射的原因 | 免费a级毛片18以上观看精品| 车上震动a级作爱视频| 中文字幕有码在线视频| 女优av性天堂网男人天堂| 日本污ww视频网站| 真人直播 免费视频| 巨乳av夹蜜桃站台蜜桃机成人| 日韩午夜三级在线视频| 无码喷潮a片无码高潮| 国产全肉乱妇杂乱视频| 精品无码成人片一区二区| 久久综合五月天啪网亚洲精品| 风情韵味人妻hd| 最近中文字幕完整版| 色综合久久久久综合一本到桃花网| 粉嫩人妻91精品视色在线看 | 久久精品人人爽人人爽| 亚洲熟女av中文字幕网站| 美女和男人一起插插插| 亚洲人成网线在线播放va蜜芽 | 人妻精品人妻一区二区三区四五| 亚洲视频高清一区二区| 亚洲免费网站观看视频| 国产原创精品视频| 凹凸世界视频a一二三| 亚洲人成影院在线无码按摩店| 精品久久久久久无码国产| 偷拍女厕尿尿在线免费看| 国产夫妻自拍视频在线播放| 日韩欧群交p片内射中文| 亚洲精品aⅴ无码精品丝袜足| 久久精品一区一区二区乱码| 国产成人精品999视频| 国产在线白丝DVD精品| 国产一区二区三区日韩精品| 99久久无码一区人妻|