精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

開發Adobe AIR移動應用程序的考慮事項

移動開發
Adobe AIR 經過發展演進,已經超越了最初作為桌面應用程序平臺的目標。如今,它支持跨移動、桌面和數字家用設備的獨立應用程序開發。AIR 是一種極富吸引力的開發平臺,部分原因在于其廣泛的覆蓋面。與此同時,這些環境中的每一種環境都給移動應用程序開發與設計帶來的獨特的要求。

舉例來說,移動應用程序常常是短期運行的。它們需要一種可在較小的屏幕上使用的 UI,通常也需要能夠外擴到平板電腦,并支持不同的屏幕方向。它們必須支持觸摸輸入,同時集成此類設備獨有的硬件和軟件設施。它們還必須考慮移動設備的內存和圖形模型。

這篇文章描述了 AIR 為支持移動應用程序開發而提供的特性和設計方法。文中介紹的特性和方法將幫助您開發可在安卓、BlackBerry Tablet OS 和 iOS 設備以及智能手機和平板電腦上運行的應用程序。

目錄

要求

預備知識

熟悉 Adobe AIR 和移動設備開發的基本概念。

必須的產品

Adobe AIR

屏幕

在將移動設備作為開發目標時,最先想到也是最重要的考慮事項就是屏幕。這種屏幕相對較小,無論是從物理方面還是從能夠顯示的像素數方面來考慮都是如此。它還有著較高的密度(每英寸像素數),不同的設備有著不同的密度和維度組合。移動設備還可能采用水平或垂直方向放置。

為了跨這類多樣化的尺寸和密度正常操作,AIR 提供了對以下關鍵 API 的支持。

  • Stage.stageWidth、 Stage.stageHeight :這兩個屬性在運行時提供了實際的屏幕維度。請注意,在應用程序進入或退出全屏模式時,或者在屏幕旋轉時,這些值可能會發生變化。(后文將進一步介紹旋轉。)
  • Capabilities.screenDPI:這提供了屏幕上每英寸的像素數。

通過將這些屬性提供的信息相結合,應用程序即可為廣泛的屏幕調整器顯示——甚至可調整到在編寫應用程序時未曾預計到的尺寸和維度。

注意: 如果您正在 AIR 上構建桌面應用程序,應該注意移動應用程序僅有一個 Stage,NativeWindow 類無法使用。無法使用表示該類可以被引用和實例化,但這樣做不會產生任何效果。這使得編寫能夠在兩種環境中正常運作的共享代碼成為不可能的任務。要檢查 NativeWindow 是否可用,請查詢 NativeWindow.isSupported。

移動應用程序不需要支持屏幕旋轉,但至少應該考慮并非所有移動設備的默認設置均為垂直方向(高大于寬)的顯示。不希望支持屏幕旋轉的應用程序可在應用程序描述符內將<autoOrients>設置為false ,從而選擇完全放棄。希望處理旋轉的應用程序可以將<autoOrients> 設置為 true 來選擇采用,隨后偵聽 Stage 的 REORIENTING和REORIENT 事件。請注意,并非所有移動平臺都會分發 REORIENTING 事件,但它們均會分發 REORIENT 事件。

另外有必要注意,應用程序不需要使用內置的自動方向特性來處理屏幕旋轉。然而,如果您希望匹配系統行為,內置的事件將是最適用的。舉例來說,在某些帶有滑出式物理鍵盤的設備上,系統放行將更改為與鍵盤一致,即便在設備本身實際上并未發生旋轉時也是如此。對于需要文本輸入的應用程序,可能有必要在這種情況下重新定向。對于其他應用程序(例如游戲),則可能需要關閉自動方向調整,轉為監視加速計事件來確定設備的物理方向。我將在本文稍后的內容中介紹加速計。

觸摸輸入

在應用程序顯示到屏幕上之后,通常就準備好了接受用戶的某些輸入。對于移動應用程序來說,這就意味著接受觸摸輸入。

AIR 可自動將簡單的單指手勢(例如單指輕敲按鈕)映射到對應的鼠標事件。這使得編寫能夠以合情合理的方式在移動平臺和桌面平臺中運行的共享代碼成為可能。

對于更加復雜的交互,您需要利用多點觸控輸入。面向移動的 AIR 通過支持以下關鍵 API 提供了多點觸控支持:

  • Multitouch:這個控制器類允許應用程序確定有哪些觸摸事件和手勢事件可用,并選擇要使用的事件。
  • TouchEvent:在處理原始觸摸事件時,應用程序將接收到這種類型的事件。
  • GestureEvent, PressAndTapGestureEvent, TransformGestureEvent:在處理手勢時,應用程序將接收到這些事件。

對于處理基礎平臺的標準手勢事件(例如,收攏或張開兩根手指以便放大或縮小)的應用程序來說,應將 Multitouch.inputMode 設置為MultitouchInputMode.GESTURE。系統可將多個觸摸點綜合成手勢,并為各手勢提供手勢事件。舉例來說,一個放大手勢將分派為類型是TransformGestureEvent.GESTURE_ZOOM的TransformGestureEvent。

應用程序還可選擇接受原始觸摸事件,方法是將Multitouch.inputMode 設置為MultitouchInputMode.TOUCH_POINT。系統將為每次觸摸分派一系列事件,表示觸摸點從何時開始,如何逐漸移動,以及在何時結束。除此之外,多個觸摸點可以同時發生。應用程序負責將這種事件流綜合成為一些有意義的內容。

文本輸入

此外還需要特別考慮帶有軟鍵盤(顯示在屏幕上的鍵盤,無物理按鍵)的移動設備。盡管并非所有移動設備都使用軟鍵盤,但此類設備已經日益普及化,因此您應確保應用程序能夠很好地在配備軟鍵盤的設備中工作。

在可見情況下,軟鍵盤無疑要占用一定的可用屏幕空間。為了適應這種情況,AIR 默認將調整 Stage,使得文本輸入控件和鍵盤同時保持可見。在這種情況下,Stage 的調整通常是上推,因此,Stage 的最上端將被屏幕上端截斷,無法看到。

應用程序可以禁用這種行為,實現自己的邏輯來支持軟鍵盤。這種行為由應用程序描述符中的softKeyboardBehavior 設置控制。默認設置為 pan。要實現您自己的邏輯,請使用none。

如果默認調整行為被禁用,軟鍵盤被激活或取消激活,則 AIR 將通過Stage.softKeyboardRect報告 Stage 中被鍵盤覆蓋的區域。應用程序應監聽在此值更改時得到通知的SoftKeyboardEvent,隨后相應地調整其布局。(將同時為這些軟鍵盤行為分派 SoftKeyboardEvent。)

應用程序通常不需要為激活軟鍵盤而擔心,因為文本字段獲得焦點時將自動激活軟鍵盤。應用程序還可以設置 InteractiveObject.needsSoftKeyboard,請求為任何可獲得焦點的交互式對象顯示軟鍵盤,并通過InteractiveObject.requestSoftKeyboard()要求立即顯示鍵盤。這些 API 對于未使用軟鍵盤的設備不會產生任何效果。

傳感器

移動設備用戶通常不適應使用多點觸控屏幕與其移動應用程序交互——他們也希望應用程序能夠了解位置,并根據設備的物理方向和運動情況作出反應。AIR 通過兩個關鍵 API 對此提供了支持:

  • Geolocation:這個 API 會分派事件來提供設備的地址位置(經度和緯度)以及運動情況(移動方向、速度)。
  • Accelerometer:這個 API 會分派事件,報告當前沿 x、y和z 軸施加給設備的力量。

對于某些應用程序來說,地理位置是應用程序操作所固有的特點。例如,一個能過發現最近的 ATM 的應用程序。更多應用程序可利用此信息來加強用戶體驗。舉例來說,一個語音備忘錄應用程序可以記錄您記錄各備忘錄的位置,以便在回放時提供更多的上下文。

正如前文所述,如果您希望了解設備的實際方向而不僅僅是它的邏輯方向,那么加速計輸入可能會非常有用。加速計數據也能將設備本身轉為一個控制器。許多應用程序都利用了這一點,通過設備的傾斜或旋轉來控制應用程序本身。

所有這些傳感器 API 都允許調用程序設置所要求的更新間隔,也就是說,位置和加速度的更新將以所要求的這個頻率分派給任何監聽程序。請注意,任何一種方法都不能保證這樣的更新頻率。實際更新頻率將取決于多種因素,包括基礎硬件在內。

WEB 視圖

如果沒有 HTML 內容支持,任何現代應用程序運行時都是不完整的,面向移動的 AIR 通過 StageWebView API 提供了這樣的支持。StageWebView 為 AIR 應用程序提供了一種訪問目標平臺的基礎、內置 HTML 呈現功能的方法。請注意,由于 StageWebView 使用平臺 HTML 控制,因此不能保證在各個平臺之間實現一致的呈現。它能保證的是在與之運行的平臺一致的平臺上呈現一致的內容。如果您正在使用它來托管 Web 頁面,這很可能會滿足您的用戶的期待。

由于依靠本機平臺控制,因此 StageWebView 并未集成顯示列表。而是浮于所有其他內容的表面。可將其視為直接附加到 Stage——正如其名稱所示。StageWebView 控件的內容可通過drawViewPortToBitmapData() 捕捉為位圖,可放置在顯示列表中。這可用于支持 Web 頁面的快照參與屏幕過渡動畫(舉例來說)。

對于熟悉 AIR 中的 HTMLLoader API 用戶來說,有必要注意,StageWebView 不是適當的替代方案。HTMLLoader 包含內置的 HTML 呈現功能,支持托管在應用程序包含的瀏覽器沙箱以外運行的托管 HTML 和 JavaScript。StageWebView 只能托管在傳統瀏覽器沙箱內運行的 HTML 和 JavaScript 內容,它不能托管應用程序本身。

如果您的用戶希望轉到瀏覽器,您可以調用 navigateToURL() 來啟用它。如果對該應用程序注冊的 URL 前綴調用,那么這也會將用戶重定向到其他應用程序,例如 YouTube 或 Google Maps。

圖像

在拍照方面,當今的移動設備的問題并非是否有攝像頭,而是有多少個攝像頭。針對移動的 AIR 包括的全新 API,提供了與攝像頭以及設備內已經存儲的任何照片的集成。

CameraUI 和 CameraRoll 類

內置攝像頭功能可通過全新的 CameraUI 類訪問。正如其名稱所展示的那樣,它與您熟悉的 Camera 類不同,區別在于這是一種攝像頭用戶界面的 API,而并不是攝像頭的直接 API。根據設備的不同,這就意味著用戶可能具備在靜態拍照與視頻錄制之間選擇的能力,同時也能選擇不同的分辨率、開關閃光燈、選擇前攝像頭和后攝像頭等。

移動設備不僅可以拍照,還會存儲照片。用戶已拍攝圖片的庫可通過 CameraRoll 類訪問。browseForImage() 方法可用于打開設備的標準 UI,以便從庫中選擇照片。相冊同樣可以寫入:圖片可通過 addBitmapData() 方法存儲到庫中。

MediaPromise 類

CameraUI 和 CameraRoll 均通過一種稱為 MediaEvent 的新事件類型返回選定的圖片。MediaEvent 極為簡單,只是為其 Event 父類添加了另外一個有趣的成員:data。data 成員的類型是 MediaPromise,必須通過此類訪問圖片數據。

正如其名稱所示,MediaPromise 是提供與一個媒體項相關的數據的承諾,例如圖片。但它并不一定存儲這些字節。這樣的差別是非常重要的,值得花幾分鐘來研究這種 API,以便理解如何有效地利用它。

最好在內存中保存媒體項,還是在存儲中保存媒體項取決于多種因素。舉例來說,對于視頻,通常必須將其保存在存儲中,因為可用內存往往過小;如果媒體項位于設備的相冊庫中,則表示其已經處于存儲之中,除非有必要,否則不應將其讀入內存。另一方面,一張剛剛拍攝的靜止的照片通常存儲在內存中,因為它很可能足夠小,而且可能要立即顯示。

MediaPromise 類在單獨一個謹慎使用即可有效利用的對象中容納了這樣的不確定性。如果應用程序希望在存儲中保存媒體項以便釋放內存空間,那么可以檢查 MediaPromise.file 中是否存在非空值,從而輕松檢查該項是否已經位于存儲之中。在處理視頻時,這可能成為擁有足夠的存儲或者耗盡存儲的區別。

如果應用程序希望在內存中處理媒體項,那么它將始終可通過以MediaPromise.open()訪問的流讀取。根據項的位置,MediaPromise 將從內存中的副本或者存儲中自動返回這些字節。在使用 open()時,應該確保檢查MediaPromise.isAsync,以便確定已經返回的流的類型。

最后,要處理所返回的媒體項將添加到現實列表中的常見情況,可使用一種名為Loader.loadFilePromise() 的新方法擴展 Loader 類。這允許將項直接添加到現實列表中,優化了應用程序節點中任何可能不必要的副本。正如方法的名稱所表示的那樣,這種方法可與任何 FilePromise 配合使用。MediaPromise 類實現了 IFilePromise 接口。

應用程序生命周期

在移動設備上,應用程序具有一個幾乎無法由自己控制的生命周期。它們無法自行啟動,但可以由用戶直接啟動(例如,在從主屏幕上啟動時),或者由用戶簡介啟動(例如,通過注冊的 URL 模式)。它們可以隨時發送到后臺。在后臺運行時,它們也可隨時停止,這通常是在設備中的資源不足以供前臺應用程序使用時發生的。

移動應用程序無法自行啟動或者關閉。在某些移動平臺上,NativeApplication.exit() 是不能操作的("無作業")。應用程序不應依靠在關閉過程中保存狀態,而是應該在發送到后臺時和/或在運行時定期地保存狀態。

在通過分派 DEACTIVATE 事件發送到后臺時,以及相應地通過分派 ACTIVATE 事件轉至前臺時,應用程序應該得到通知。在應用程序過渡到后臺和前臺時,AIR 也會采取一些特定操作。具體情況依平臺的不同而有所不同。

安卓后臺行為

在安卓平臺上,應用程序被鼓勵執行盡可能少的后臺操作,但并未施加服務器約束。如果安卓平臺上的一個 AIR 應用程序發送到后臺,則其動畫幀速率將減至每秒四幀,盡管所有事件都將繼續分派,但事件循環的呈現階段將被跳過。

因此,安卓平臺上的 AIR 應用程序可以繼續執行后臺任務,例如完成一次上傳或者下載操作,或者定期同步信息。然而,在后臺運行時,應用程序應該采取措施來進一步降低其幀速率,關閉或減少其他計時器等等。

iOS 后臺行為

在 iOS 上,應用程序不允許像通常那樣在后臺運行,而是必須聲明它們希望執行某種類型的后臺處理,例如保持一次 IP 語音通話繼續,或者完成一次未完成的上傳。

AIR 不支持這種 iOS 后臺處理模型,因此在發送到后臺時,AIR 應用程序將直接暫停。其幀速率將降低為零,不會分派任何事件,也不會呈現任何內容。然而,它們默認將主流在內存中。這允許應用程序在轉回前臺時保留其狀態。

性能

要在移動應用程序中實現出色的性能,首先最好為應用程序的各個方面選擇一種可靠的基本方法。嘗試為線性時間算法實現 10% 的改進所獲得的成果顯然無法與在合理位置使用常量時間算法所能夠獲得的成果相提并論。

啟動時間

啟動時間極具挑戰性,因為其成本往往會波及整個應用程序。為了將啟動成本保持在最低限度,應重點關注運行盡可能少的代碼,而不是提高代碼的運行速度。

舉例來說,假設您正在編寫一款游戲,在第一個屏幕上,您希望顯示當前的最高得分,這些信息是在本地保存的。執行這些代碼來檢索這些得分可能會帶來令人意外的高昂成本。因為這是代碼路徑首次運行,您可能需要付出解釋或編譯代碼的成本,因此它的速度將慢于穩定狀態的 ActionScript 性能。第二,您要等待從文件系統中檢索信息。最后,您要付出在屏幕上排版和呈現信息的成本。

您應考慮推遲所有這些工作,直至顯示第一個屏幕之后。隨后,在用戶專心欣賞您的藝術作品時,即可準備最高得分列表。最后,您可以通過淡入或者動畫效果將其顯示在屏幕上。

請注意,這里的優化模式涉及選擇何時執行工作,而不是盡快執行工作。這里最重要的是用戶所感受到的性能:用戶只有在等待工作完成時才會注意到這些事情。

呈現

GPU 的興起已經徹底顛覆了典型呈現管道的性能特征。在 CPU 上呈現時,每個像素都有著較高的成本。因此最好通過描述形狀來進行呈現,同時執行預處理,使得屏幕上的每個像素僅繪制一次。這是 AIR 在呈現傳統基于矢量的內容時所采用的基本方法。

另一方面,GPU 對于形狀的呈現不佳,但能夠輕松四處移動海量像素——所移動的像素數量往往超過實際適合顯示在屏幕上的像素數量幾倍之多。利用 GPU 的最佳方法就是通過一組位圖構成 UI,隨后僅限于轉變這些位圖。

AIR 集兩者之所長。您可以利用 AIR 呈現模型的完整功能來進行繪制,隨后將結果作為位圖緩存,位圖可有效地呈現到屏幕上。利用BitmapData.draw() 即可通過這種方式捕捉您呈現的結果。

請注意,也可將這些位圖與您的應用程序打包在一起,而不是動態呈現它們,屏幕大小和密度的增加使得預先生成所有必要的變體成為不可能完成的任務。因此這種方法不僅高速,還能很好地適應當今的設備擴張。

內存

盡管當今的移動設備包含大量的 RAM,但有必要牢記,它們所使用的內存管理模型與傳統桌面操作系統不同。在桌面上,如果內存需求過高,則內存的內容可溢出到磁盤中,稍后再返回內存。這使操作系統能夠保持幾乎無數的程序同時運行。

在移動設備上,這種溢出到磁盤的方法不可用。反之,如果內存需求超出了物理可用內存,則后臺應用程序將被強制退出,從而釋放其占用的內存。如果完全無法滿足某個對于內存的請求,則請求內存的應用程序本身將退出。

這里有兩個要點。首先,有必要大體了解您的應用程序的總體內存需求,以便確保不會耗盡內存。其次,為了提高應用程序在后臺運行時保持駐留的機會,您的應用程序在后臺時必須使用盡可能少的內存。

這些目標均可通過顯式管理應用程序的內存來實現。乍聽起來,這或許有些奇怪,畢竟垃圾收集器應該代替您完成這樣的工作。您最好將垃圾收集器視為某種為您清空垃圾的機制。然而,將無用對象丟到垃圾箱中的決定仍然由您做主。

采用顯式內存管理方法時,第一個步驟就是確保您清除了對于不再需要的對象的引用。舉例來說,假設您的應用程序在啟動時讀取一個 XML 配置文件,隨后從這個文檔中復制一些重要的值。現在,在這個過程中創建的 XML 對象樹很有可能不再必要。然而,應用程序也有可能保留了一個對根 XML 對象的引用,從而將整個 XML 文檔納入內存。在讀取了配置值之后,應用程序應將對 XML 文檔的引用設置為空,從而將這個對象置于垃圾箱中,使之可進行垃圾收集。

在處理大量給定對象時,顯式內存管理也是非常重要的。舉例來說,對于一個加載一組圖片的應用程序來說,如果采用了本機寫入,那么如果該組圖片數量過大,那么它總是會耗盡內存。另外一方面,如果實現限制了一次可保存在內存中的圖片數量,那么無論這組圖片的數量有多少,內存始終不會耗盡。這可通過在加載新圖片之前釋放舊圖片來實現,甚至可以采用更有效的方法,即在內存中保留固定數量的對象,并通過它們來循環處理圖片。

存儲

移動設備提供了本地文件系統,應用程序可利用這種本地文件系統來存儲首選項、文檔等。通常來說,應用程序應該假設此存儲即可由應用程序本身訪問,不得與其他應用程序共享。在所有平臺上多可以通過 File.applicationStorageDirectory 屬性訪問這個存儲。

安卓實現了一個輔助文件系統,它通常位于可用 SD 卡內,通過"/sdcard"路徑訪問。不同于主應用程序存儲,這些位置可由設備上的所有應用程序讀取和寫入。然而,應用程序應注意,這樣的輔助存儲并非始終可用,因為 SD 卡可能會被取出,即便未被取出,也可能未掛接。

移動設備上的攝像頭日益普及,它們也提供了一種特定于相片的共享存儲位置。正如我在之前的"圖片"一節中所示,應用程序通常應該通過 CameraRoll API 訪問這樣的位置。盡管在某些平臺上,已存儲的相片可通過文件系統 API 直接訪問,但這并不是一項適合所有平臺的實踐。

部署

在移動領域中,部署主要是通過應用市場完成的。這些市場中包括設備上的發現、安裝和更新功能。

為了準備 AIR 應用程序以便部署到特定市場,應將其打包為恰當的特定于平臺的格式。舉例來說,要將您的應用程序上傳到 Apple App Store,您應將應用程序打包為 .ipa 文件;要將其上傳到安卓市場,則應將其打包為 .apk 文件。這些選項在 Flash Builder 內即可找到,也可通過 ADT 命令行工具編寫腳本實現。

所有移動應用市場都要求發布到其中的應用程序進行簽名。對于 iOS,簽名必須使用 Apple 發行的證書 完成。對于安卓設備,開發人員應該 創建一個有效期至少為 25 年的自簽名證書,并且必須使用相同的證書為其應用程序的所有更新簽名。由于有著不同的證書要求,因此要對多個市場發布,就需要 跟蹤多種證書。

在您準備將一個移動應用程序部署到安卓市場時,務必牢記 AIR 本身是獨立部署的。(在 iOS 上,各應用程序均打包了一份 AIR 副本,因此本討論不適用。)如果您的應用程序要安裝在一個尚未安裝 AIR 的設備上,那么在應用程序初次啟動時,用戶將被重定向,以便安裝 AIR。您應該盡可能地確保這種重定向會將用戶返回其購買您的應用程序時所使用的市場。為此,您可以在調用 ADT 命令行工具時通過 -airDownloadURL 標記傳遞針對該市場的恰當 URL。如需確定應使用的正確的 URL,請與應用市場聯系。

關于作者

自 Adobe AIR 誕生并發展出新穎的安裝技術以來,Oliver 一直致力于這個領域。在轉向 AIR 之前,他致力于 Adobe LiveCycle,而在加入 Adobe 之前,他從事的領域很廣,包括金融服務、數字信號處理和視頻游戲。他有時為 Dr. Dobb's Journal 撰稿,并且是 Kidos Computer 技術咨詢委員會的成員。他獲得了斯坦福大學的計算機本科及碩士學位。

責任編輯:佚名 來源: Adobe
相關推薦

2011-11-17 15:17:37

AdobeAIR調試性能

2012-02-28 13:52:45

Adobe AIRAndroidFlash

2010-08-04 10:13:40

FlexBuilder

2011-12-06 10:10:59

云計算移動應用

2011-02-22 10:23:43

2010-10-15 09:39:22

MeeGoQt

2011-11-17 15:31:12

AdobeAIR

2011-05-11 11:14:33

2011-05-12 13:52:31

2011-05-11 09:06:32

2011-11-16 16:21:09

AdobeAIR

2010-08-11 09:45:03

2010-08-18 09:23:19

Flash Lite移動應用程序開發

2021-09-17 11:17:14

應用程序云端云計算

2013-05-14 10:33:57

AIR Android應用程序描述文件

2013-02-22 09:28:45

MEAP軟件移動應用開發HTML5

2018-12-28 14:10:57

開發工具 移動應用

2011-05-06 15:31:28

moblweb開發DSL

2012-10-11 09:16:42

政府部門開發

2021-11-16 13:46:29

移動應用安全應用程序
點贊
收藏

51CTO技術棧公眾號

国内精品不卡| 国产绿帽刺激高潮对白| 色综合中文网| 欧美日韩不卡一区| 欧美国产综合在线| 免费av在线电影| 国产一区二区电影| 亲子乱一区二区三区电影| 伊人久久久久久久久久久久久久| 国产精品超碰| 欧美日韩中文精品| xxxx18hd亚洲hd捆绑| 中文字幕在线视频区| 懂色av中文一区二区三区| 国产精品九九久久久久久久| 九九热精品免费视频| 精品国精品国产自在久国产应用| 日韩片之四级片| 久热精品在线播放| 黄在线观看免费网站ktv| 中文字幕一区二区在线观看 | 亚洲影视资源| 一本在线高清不卡dvd| 在线观看污视频| 二区在线视频| 91免费版在线| 国产伦精品一区二区三区高清 | 17videosex性欧美| 亚洲欧洲成人精品av97| 日本不卡一区二区三区视频| 丰满大乳国产精品| 国产精品一区专区| 国产日韩欧美成人| 伊人中文字幕在线观看| 在线日韩电影| 色综合男人天堂| 97在线观看免费高| 成人网18免费网站| 亚洲欧洲日本专区| 内射中出日韩无国产剧情| 亚洲精品一区二区三区在线| 欧美日韩不卡在线| jizz大全欧美jizzcom| 偷拍自拍在线看| 婷婷六月综合网| www.日本在线视频| 搞黄网站在线观看| 亚洲视频一二三区| 亚洲一区二区三区免费看| 黄色片在线免费观看| 久久综合九色综合97_久久久| 国产在线一区二区三区欧美| 欧美 日韩 国产 成人 在线 91| 国产乱子伦一区二区三区国色天香| 国产精品欧美激情| 做爰视频毛片视频| 日韩在线a电影| 国产不卡av在线| 自拍偷拍校园春色| 日韩影院精彩在线| 国产成人亚洲精品| 国产精品高清无码| 看国产成人h片视频| 国产日韩在线播放| 国产精品伊人久久| 国产精品1024| 国产在线一区二区三区播放| 欧洲天堂在线观看| 国产精品天美传媒| 日本精品免费视频| 久草在线视频福利| 99精品热视频只有精品10| 国产色产综合色产在线视频| 麻豆亚洲一区| 国产高清免费av在线| 国产精品午夜春色av| 在线视频不卡国产| 日本高清在线观看| 亚洲成人一区二区| 任你操这里只有精品| 色猫猫成人app| 3atv在线一区二区三区| 熟女人妻一区二区三区免费看| 国产毛片久久久| 一区二区三区四区视频| 久久久精品少妇| 99re国产精品| 国产精品在线看| 嫩草影院一区二区| 国产女同性恋一区二区| 黑人巨茎大战欧美白妇| 大菠萝精品导航| 欧美午夜精品免费| 免费在线观看日韩av| 猛男gaygay欧美视频| 久久精品一区中文字幕| 日韩免费av片| 九一久久久久久| 黑人另类av| 午夜激情视频在线观看| 亚洲成av人在线观看| 亚洲色精品三区二区一区| 国产精品国产亚洲精品| 日韩精品福利在线| 91视频综合网| 久久久噜噜噜久久狠狠50岁| **亚洲第一综合导航网站| 欧美欧美欧美| 一区二区三区四区在线免费观看 | 日本在线观看高清完整版| 黑人巨大精品欧美一区二区免费| 日韩精品你懂的| 牛牛精品成人免费视频| 久久精品亚洲一区| 无码一区二区三区| 9l国产精品久久久久麻豆| 中文字幕一区综合| 亚洲免费福利| 精品国产免费一区二区三区四区| 五月天精品在线| 国产婷婷精品| 97超级在线观看免费高清完整版电视剧| 欧美一区二区少妇| 亚洲午夜久久久久久久久久久| 五月天婷婷激情视频| 国产精品久av福利在线观看| 另类色图亚洲色图| 中文字幕在线观看免费| 久久久一区二区三区捆绑**| 国产黄色片免费在线观看| 国产精品一区二区三区av| 亚洲午夜激情免费视频| 日韩 欧美 中文| 成人一区二区三区视频在线观看| 桥本有菜av在线| www.久久.com| 在线看片第一页欧美| 国产黄网在线观看| av在线不卡免费看| av免费观看国产| 88久久精品| 欧美国产在线电影| 精品区在线观看| 亚洲精品国产一区二区精华液| 亚洲综合激情视频| 97精品国产福利一区二区三区| 日韩美女激情视频| 青青青草原在线| 亚洲v精品v日韩v欧美v专区 | 香蕉久久久久久| 最近2019年手机中文字幕| 亚洲婷婷综合网| 99视频在线观看一区三区| 久久久久久免费看| 国产精品白丝一区二区三区| 97精品国产97久久久久久| 日本黄色一区二区三区| 亚洲成人激情av| 中文字幕 日本| 亚洲久久在线| 久久久久久久久一区二区| 中文在线а√天堂| 一级做a爰片久久毛片美女图片| 国产日韩在线免费观看| 中文字幕欧美三区| 牛夜精品久久久久久久| 日韩欧美午夜| www.成人av.com| av中文在线资源库| 亚洲欧洲高清在线| 国产一区二区在线播放视频| 亚洲精品久久7777| 欧美深性狂猛ⅹxxx深喉 | 久久久久久久久久久影视| 狠狠综合久久| 欧美精品国产精品久久久 | 国产精品污www一区二区三区| 性欧美猛交videos| 亚洲国产三级网| 欧美brazzers| 亚洲精品老司机| 国产老熟女伦老熟妇露脸| 日韩成人午夜电影| 日韩欧美一级在线| 亚洲资源网站| 91在线观看免费高清| h片在线观看下载| 国产亚洲精品久久久久久| 97精品人妻一区二区三区| 亚洲国产日产av| 国产欧美小视频| 国产999精品久久| 欧美性猛交久久久乱大交小说| 亚洲成人三区| 欧美日韩精品一区| 麻豆精品久久| 国产成人午夜视频网址| 中国av在线播放| 亚洲欧美激情一区| 99在线精品视频免费观看20| 黑人巨大精品欧美一区免费视频 | 成人免费视频97| 超碰在线视屏| 久久成人这里只有精品| 九色视频在线播放| 日韩小视频在线观看专区| 国产免费一级视频| 一区二区在线观看视频| 亚洲最大成人综合网| av在线不卡电影| 涩多多在线观看| 丝袜a∨在线一区二区三区不卡| 麻豆视频传媒入口| 日本久久精品| 久久精品99久久| 欧美专区一区| 国产欧美精品日韩精品| 中文字幕在线视频久| 欧美大片免费观看| 好操啊在线观看免费视频| 亚洲另类欧美自拍| 日韩一级在线播放| 日韩一区和二区| 国产精品无码久久av| 在线区一区二视频| 999这里只有精品| 亚洲a一区二区| 一区二区三区影视| 国产精品丝袜久久久久久app| 国内精品久久99人妻无码| 国产精品白丝jk黑袜喷水| 中文字幕 日韩 欧美| 久久久久久黄| 91传媒久久久| 亚洲一区二区动漫| 欧美 国产 日本| 亚洲激情自拍| 日韩国产一级片| 在线看片日韩| 欧美精品卡一卡二| 亚洲看片免费| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 在线免费观看欧美| 给我免费播放片在线观看| 激情另类综合| 国产精品一区二区免费在线观看| 红桃视频亚洲| 国产中文字幕乱人伦在线观看| 午夜久久福利| 久久成人福利视频| 亚洲精品色图| 少妇高潮喷水在线观看| 99精品国产一区二区青青牛奶| 国产成人永久免费视频| 好看的日韩av电影| 无罩大乳的熟妇正在播放| 亚洲精选成人| 欧美污视频网站| 丝袜诱惑制服诱惑色一区在线观看 | 青春草在线观看 | 麻豆网站视频在线观看| 日韩在线观看你懂的| 日本精品在线| 欧美成人免费大片| 久久免费电影| 91爱视频在线| av免费在线一区| 成人免费在线视频网站| 亚洲国产精品免费视频| 国产专区一区二区三区| 国产一区毛片| 天堂v在线视频| 在线成人www免费观看视频| 国产视频九色蝌蚪| 日韩精品成人一区二区在线| 五月天av在线播放| 国产成人av电影在线播放| 亚洲av无码国产精品久久| 国产偷v国产偷v亚洲高清| 999精品在线视频| 亚洲一二三四区不卡| 中文字幕永久在线| 日韩一区二区在线观看| 四虎在线视频| 久久精品99久久久香蕉| 1234区中文字幕在线观看| 国产精品电影观看| 亚洲视频精选| 亚洲成人18| 在线成人h网| www.日本一区| 波多野结衣中文字幕一区 | 女教师高潮黄又色视频| www国产成人| 成人免费精品动漫网站| 精品久久久久久久久久久久久 | 亚洲成**性毛茸茸| 成人免费视频| 高清欧美性猛交xxxx| 成人国产激情| 99久久久精品免费观看国产| 国产精品亚洲二区| 18禁裸男晨勃露j毛免费观看 | 国产精品一区二区三区毛片淫片| 爱爱精品视频| 欧美亚洲视频一区| 美女尤物久久精品| 熟女人妻一区二区三区免费看| 欧美国产一区在线| 日韩精品一区二区三| 欧美一区二区三区四区高清| 韩国中文免费在线视频| 久久久中精品2020中文| 成人国产一区| 精品毛片久久久久久| 亚洲欧美亚洲| 午夜大片在线观看| 国产欧美日韩精品一区| 日韩黄色一级大片| 日韩精品一区二区三区视频播放 | 亚洲精品国产精华液| 五月婷婷激情视频| 亚洲国产精品人人爽夜夜爽| а√天堂在线官网| 国产欧美日韩高清| 国产一区二区电影在线观看| 激情伊人五月天| 国产成a人无v码亚洲福利| 99国产精品无码| 在线看国产日韩| 美女做暖暖视频免费在线观看全部网址91| 欧美大片在线看| 亚洲性视频在线| 久久视频免费在线| 韩国欧美国产1区| 亚洲少妇xxx| 欧美日韩亚洲综合在线| 久久米奇亚洲| 国产aaa精品| 精品理论电影在线| 亚欧在线免费观看| 中文乱码免费一区二区| 免费无码国产精品| 亚洲石原莉奈一区二区在线观看| 欧美xxx性| 日本亚洲欧洲精品| 久久资源在线| 亚洲av熟女国产一区二区性色| 色悠悠亚洲一区二区| 男人av在线| 国产精品九九九| 我不卡神马影院| 美女又黄又免费的视频| 亚洲一区二区在线观看视频| 亚洲国产日韩在线观看| 欧美激情xxxx| 天天躁日日躁狠狠躁欧美| 欧美一级在线看| 国产欧美一区二区精品仙草咪| 中文字幕人成人乱码亚洲电影| 最新的欧美黄色| 97久久精品一区二区三区的观看方式| 中文字幕av导航| 岛国精品在线观看| 亚洲欧美偷拍视频| 这里只有精品视频在线| 成人豆花视频| 国产freexxxx性播放麻豆 | 欧美成人777| 亚洲国产精品大全| 成人美女黄网站| 伊人久久大香线蕉成人综合网| 精品亚洲成a人| 久久久久久久久久久网| 日韩精品免费在线视频观看| 欧美日韩五码| 九九久久九九久久| 91丝袜美腿高跟国产极品老师 | 丁香六月婷婷综合| 伊人久久免费视频| 99久久999| 日韩免费一级视频| 亚洲欧洲日韩在线| 性xxxx搡xxxxx搡欧美| 国产免费观看久久黄| 国产精品国码视频| 久久久久亚洲av成人无码电影| 在线不卡一区二区| 激情黄产视频在线免费观看| 日韩午夜视频在线观看| 国产精品综合视频| 免费看一级视频| 久久国产精品视频| 久久成人av| av在线免费观看不卡| 色婷婷亚洲精品| 大香伊人久久| 影音先锋亚洲视频| 91网站黄www| 精品毛片一区二区三区|