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

使用OpenHarmonyNDK移植三方庫Speexdsp

系統 OpenHarmony
筆者最近為Speexdsp編寫了CMakeLists.txt,使用OpenHarmony的NDK工具編譯出來so動態庫和可執行文件,并且成功在開發板上運行,現將經驗分享如下。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

NDK (原生開發套件) 是一套工具,使開發者能夠在 OpenHarmony hap應用中使用 C/C++ 代碼。它提供了一系列的工具可以幫助開發者快速的開發C/C++的動態庫、靜態庫和可執行文件。

OpenHarmony 應用開發的Native C++開發方式就要依賴NDK。NDK被包含在OpenHarmony SDK中。可以在DevEco Studio使用 NDK 將 C/C ++ 代碼編譯到so庫中,然后使用 DevEco Studio 的構建插件hvigor-ohos-plugin將so庫打包到 Hap 中。ArkTS代碼隨后可以通過NAPI框架調用SO庫中的函數。

深開鴻郭岳峰老師開發的OCRDemo就通過NAPI調用了C++的三方庫Tesseract的能力,而這個庫本身還依賴leptonica、libjpeg、libpng、libtiff等C/C ++ 等四方庫。如果重新編寫build.gn移植到OpenHarmony,工作量巨大。

Tesseract (Apache 2.0 License)是一個可以進行圖像OCR識別的C ++ 庫

OpenHarmony集成OCR三方庫實現文字提取

一、編寫build.gn與編寫CMakeLists.txt移植到OpenHarmony兩者的區別

1、編譯環境不同,編譯工具

編寫build.gn方式,編譯環境是在OpenHarmony源碼中,編譯時使用到的是源碼中的編譯工具。

編寫CMakeLists.txt的移植方式實際上是Native C++應用開發方式的一種,并且NDK是SDK的一部分,編譯so時候實際上使用的是NDK的編譯工具。

2、so安裝的地方不一樣

編寫build.gn方式,三方庫編譯出來的so和測試用例可以打包進入OpenHarmony固件中。

編寫CMakeLists.txt方式,編譯出來的實際上會被打包進入hap應用中,hap再安裝到OpenHarmony操作系統上完成三方庫so能力的調用。

3、編寫CMakeLists.txt比編寫build.gn更容易

build.gn總有各種各樣的編譯器標志要加入以消除編譯報錯,開發者學習成本比較高

CMakeLists.txt方式開發者則相對熟悉,對于原生庫就是camke構建的三方庫,只需要對原生庫已有的CMakeLists.txt做少量修改,比如刪除與其他操作系統有關的部分(筆者說的就是AOSP)。

二、使用OpenHarmony的NDK工具移植Speexdsp到Speexdsp

在windows端的IDE上調用NDK。

創建Native C++工程,但是先不寫NAPI和ArkTS的部分,先為C/C ++的三方庫編寫CMakeLists.txt(如果三方庫本身就是cmake構建的,但也要對CMakeLists.txt進行少量的修改,詳細請參考該樣例 https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/OCRDemo)。 然后編譯hap應用來調用SDK中的NDK工具。

三、創建Native C++工程使用SDK中的NDK工具

創建Native C++工程參考:三方庫移植之NAPI開發[3]通過IDE開發NAPI工程

1、打開IDE Deveco Studio,創建一個Native C++工程。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

2、SDK選擇API9,model選擇Stage。新建的Native C++工程有一個默認的hello world教程。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

將Speexdsp加入Native C++工程,在庫中編寫頂層CMakeLists.txt生成動態庫。

將speexdsp源碼移動到Native C++工程entry\src\main\cpp目錄,cpp目錄專門用于存放C/C ++代碼。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

刪除Speexdsp中無關的代碼讓代碼結構簡潔。Speexdsp中有一些無關的代碼,例如和win32、macO上運行的有關代碼,甚至還有塞班系統symbian上的代碼。(不管了先刪除,不知道Speexdsp的開源協議允不允許筆者這樣做,但是看著亂亂的目錄結構,筆者希望這樣讓自身的思路清晰一些。)

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

# 目錄結構說明
cpp
├─include # .h文件
├─libspeexdsp # .c文件
└─CMakeLists.txt # 筆者編寫的用來生成可執行文件庫的CMakeLists.txt
├─BUILD.gn # 筆者之前寫的BUILD.gn,現在拿來參考寫CMakeLists.txt
├─CMakeLists.txt # 筆者編寫的用來生成動態庫的CMakeLists.txt
├─config.h # Speexdsp原生庫在linux下編譯構建生成的配置文件
├─speexdsp_api.txt # Speexdsp的api列表
└─speedsp_tested_api.txt

編寫頂層在CMakeLists.txt生成動態庫。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

############################################
# 創建so動態庫

# 源文件
# CMAKE_CURRENT_SOURCE_DIR指的CMakeLists.txt當前所在的目錄
set(SHARED_LIB_SRC "${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/preprocess.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/jitter.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/mdf.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/fftwrap.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/filterbank.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/resample.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/buffer.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/scal.c"
"${CMAKE_CURRENT_SOURCE_DIR}/libspeexdsp/smallft.c")

add_library(speexdsp SHARED ${SHARED_LIB_SRC})
target_include_directories(speexdsp PRIVATE ${INCLUDE_DIR})

############################################################

# 鏈接數學庫-lm
# 如果為所有target統一指定編譯時要鏈接的庫用LINK_LIBRARIES
# 為每個target單獨指定編譯時要鏈接的庫用TARGET_LINK_LIBRARIES
link_libraries(-lm)
target_link_libraries(speexdsp PUBLIC m)

# 使用add_subdirectory()將子目錄添加到構建
add_subdirectory(libspeexdsp)

在庫中編寫底層CMakeLists.txt生成可執行文件,用來驗證so庫是否運行正常。

在.c源文件目錄添加CMakeLists.txt用來編譯出可執行文件,用來驗證使用NDK移植三方庫到OpenHarmony標準系統是否成功。如下:

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

cmake_minimum_required(VERSION 3.4.1)
project(test)

#生成執行二進制文件,生成testdenoise測試用例
ADD_EXECUTABLE(testdenoise testdenoise.c)
# 將二進制文件鏈接到生成的動態庫
TARGET_LINK_LIBRARIES(testdenoise PUBLIC speexdsp)
# 將二進制文件鏈接的庫文件
link_libraries(-lm)
# 添加編譯器標志
add_compile_options(-g -O2 -fvisibility=hidden)

# 生成testecho測試用例
ADD_EXECUTABLE(testecho testecho.c)
TARGET_LINK_LIBRARIES(testecho PUBLIC speexdsp)
link_libraries(-lm)
add_compile_options(-g -O2 -fvisibility=hidden)

# 生成testjitter測試用例
ADD_EXECUTABLE(testjitter testjitter.c)
TARGET_LINK_LIBRARIES(testjitter PUBLIC speexdsp)
link_libraries(-lm)
add_compile_options(-g -O2 -fvisibility=hidden)

# 生成testresample測試用例
ADD_EXECUTABLE(testresample testresample.c)
TARGET_LINK_LIBRARIES(testresample PUBLIC speexdsp)
link_libraries(-lm)
add_compile_options(-g -O2 -fvisibility=hidden)

# 生成testresample2測試用例
ADD_EXECUTABLE(testresample2 testresample2.c)
TARGET_LINK_LIBRARIES(testresample2 PUBLIC speexdsp)
link_libraries(-lm)
add_compile_options(-g -O2 -fvisibility=hidden)

在庫外的CMakeLists.txt中添加代碼使能speexdsp編譯。

新建的Native C++工程是有一個默認的Hello World模板的,在entry\src\main\cpp目錄下有一個CMakeLists.txt,需要在其中添加代碼使能speexdsp編譯。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

在entry\src\main\cpp\CMakeLists.txt中主要做兩件事情

# 添加子目錄speexdsp
add_subdirectory(speexdsp)

# 添加鏈接libspeexdsp.so動態庫
# 把動態庫libentry.so鏈接到動態庫libspeexdsp.so
target_link_libraries(entry PUBLIC libace_napi.z.so speexdsp)

如果不添加代碼,則speexdsp的動態庫和可執行用例編譯不出來。

執行編譯命令編譯動態庫和測試用例。

在IDE上方工具欄選擇編譯hap進行so和測試用例的編譯。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

編譯結果在entry\build\default\intermediates\cmake\default\obj目錄下。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

├─arm64-v8a  
libc++_shared.so
libentry.so
libspeexdsp.so
testdenoise
testecho
testjitter
testresample
testresample2

└─armeabi-v7a
libc++_shared.so
libentry.so
libspeexdsp.so
testdenoise
testecho
testjitter
testresample
testresample2

為什么會IDE中的NDK會編譯出64位和32位的動態庫和可執行文件呢?因為OpenHarmony操作系統有32位和64位,這樣是為了hap能在不同位數的OpenHarmony版本上運行。

根據32位和64位的OpenHarmony版本推送相應的so和可執行文件到開發板上。

如何分辨開發板上OpenHarmony版本是64位還是32位?和linux的方式是一樣。用getconf WORD_BIT和getconf LONG_BIT獲得word和long的位數。64位系統中分別得到32和64。32位系統中分別得到32和32。

筆者開發板上燒錄的是32位的OpenHarmony Beta5版本。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

因此需要將Native C++工程目錄下的entry\build\default\intermediates\cmake\default\obj\armeabi-v7a中的libspeexdsp.so和testdenoise、testecho、testjitter、testresample、testresample2推送到設備端的data目錄。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

通過與ohos版本匹配的hdc_std工具,將編譯生成的庫以及測試用的可執行文件推送到開發板的data目錄。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

hdc_std shell mount -o remount,rw /      ## 重新加載系統為可讀寫
hdc_std file send testdenoise /data ## 推送可執行文件testdenoise到data目錄
hdc_std file send libspeexdsp /data ## 推送libspeexsdp.so到data目錄

執行testdenoise可執行文件(其它測試用例的執行請參考 移植speexdsp到OpenHarmony標準系統⑤)。

通過分析testdenoise.c源碼,執行測試程序時需要指定一份輸入的不為空的8000Hz的input.pcm音頻,并且需要指定一份空的輸出的output.pcm音頻。rk3568上運行,執行語句如下:

./testdenoise < input.pcm > output.pcm 

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

測試結果:對比輸入的input.pcm和輸出的outpu.pcm的波形圖和聲譜圖,噪聲已經被消除。pc端和rk3568開發板運行testdenoise可執行程序效果一致。可執行文件運行成功,使用OpenHarmonyNDK移植三方庫Speexdsp成功。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

知識點附送

AIP8的應用如何更改為API9支持64位版本。

API8只支持32位,API9支持32位和64位。

以該PR https://gitee.com/openharmony/applications_app_samples/pulls/759 學習將api8應用適配適配Arm64。

修改build-profile.json5 ,將compileSdkVersion和compatibleSdkVersion屬性由8改為9。

compileSdkVersion指定OpenHarmony應用/服務編譯時的SDK版本。

compatibleSdkVersion指定OpenHarmony應用/服務兼容的最低SDK版本。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

修改entry/build-profile.json5,abi添加64位arm64-v8a。

abiFilters用于設置本機的ABI編譯環境。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

修改entry/src/main/config.json,設備類型改為默認。

#創作者激勵#使用OpenHarmonyNDK移植三方庫Speexdsp-開源基礎軟件社區

這個pr改動了XComponent/entry/src/main/cpp/common/plugin_common.h文件,plugin_common.h文件和hilog調試的功能有關。

編譯構建子系統如何增加編譯構建arm64選擇。

以該issue https://gitee.com/openharmony/build/issues/I53E9I 來學習。

分別在hb工具和build.sh腳本添加–target-cpu選項。

電源服務子系統支持64位。

https://gitee.com/openharmony/powermgr_power_manager/issues/I55094。

graphic子系統適配64位編譯。

https://gitee.com/openharmony/graphic_graphic_2d/issues/I53720。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-10-11 15:04:28

NAPI開發鴻蒙

2022-10-25 15:05:17

NAPI開發鴻蒙

2014-07-22 10:56:45

Android Stu第三方類庫

2023-02-07 15:43:13

三方庫適配鴻蒙

2020-10-29 09:56:23

Linux靜態庫動態庫

2022-11-03 15:37:52

NAPI開發三方庫移植

2013-08-14 09:50:32

iOS類庫

2022-09-13 16:10:15

鴻蒙操作系統

2019-07-30 11:35:54

AndroidRetrofit

2022-09-15 15:21:22

操作系統鴻蒙

2022-11-21 16:15:41

ArkUI鴻蒙

2022-11-16 14:05:06

Tesseract應用調用

2015-11-05 16:44:37

第三方登陸android源碼

2014-04-08 15:16:00

2012-04-19 14:16:22

TitaniumTiMVC

2010-05-25 11:09:31

SVN工具

2023-11-29 09:19:00

WebhookURL

2022-10-20 16:18:37

JS類型C/C++數據類型

2011-07-25 14:14:49

iPhone SQLITE Pldatabase

2010-03-03 15:10:49

第三方Python庫
點贊
收藏

51CTO技術棧公眾號

丰满少妇在线观看资源站| 亚洲国产欧美一区二区三区不卡| 国产成人愉拍精品久久| 日韩美脚连裤袜丝袜在线| 欧洲av一区二区嗯嗯嗯啊| www亚洲国产| 日韩一级片免费观看| 日韩精品乱码免费| 欧美精品在线免费播放| 内射中出日韩无国产剧情| 国产私拍福利精品视频二区| 亚洲自拍偷拍九九九| 欧美精品七区| 午夜久久久久久久久久| 视频一区二区三区在线| 欧美黄色www| 天天摸日日摸狠狠添| 荡女精品导航| 欧美绝品在线观看成人午夜影视| 男人天堂1024| 青草视频在线免费直播 | 少妇一级淫免费观看| 国产亚洲人成a在线v网站 | 久久久精品免费| 欧美图片一区二区| 97青娱国产盛宴精品视频| 91久久一区二区| 欧洲精品在线播放| 日本在线免费看| 久久综合狠狠综合久久综合88| 91久久精品美女高潮| 中文字幕一区二区三区四区欧美| 狠狠干成人综合网| 久久久av一区| 欧美xxxx精品| 狠狠综合久久av一区二区蜜桃 | 久久人妻一区二区| 欧美不卡在线观看| 欧美日韩成人综合天天影院| 日本在线观看a| 九九色在线视频| 成人免费在线视频| 欧美日韩综合网| 五月婷中文字幕| 菠萝蜜视频在线观看一区| 成人有码视频在线播放| 一区二区三区免费在线| 日本中文字幕一区| 国产成人免费av电影| 国产又爽又黄的视频| 亚洲毛片视频| 性欧美亚洲xxxx乳在线观看| 日本三级午夜理伦三级三| 狠狠综合久久av一区二区老牛| 欧美乱妇高清无乱码| 久久中文免费视频| 亚洲综合色网| 欧美日韩成人免费| 久久久久久欧美精品se一二三四| 欧美另类综合| 欧美激情视频网| 精品无码m3u8在线观看| 激情综合亚洲| 97在线视频免费| 成人午夜视频在线播放| 亚洲自啪免费| 国产精品丝袜视频| 国产又爽又黄又嫩又猛又粗| 国产精品亚洲а∨天堂免在线| 97自拍视频| 五月婷婷六月激情| 久久久久国产精品厨房| 视频一区亚洲| www久久日com| 亚洲高清免费观看| 国产精品第12页| 777午夜精品电影免费看| 欧美日韩精品免费| 老女人性生活视频| 国内自拍欧美| 亚洲香蕉成人av网站在线观看 | 欧美日韩综合视频网址| 无码少妇一区二区三区芒果| 日韩护士脚交太爽了| 日韩丝袜美女视频| 亚洲天堂资源在线| 青青草原综合久久大伊人精品 | 亚洲国产精品综合| 免费看电影在线| 日韩欧美精品中文字幕| 在线黄色免费看| 极品束缚调教一区二区网站 | 综合久久2o19| 狠狠躁天天躁日日躁欧美| 91日韩视频在线观看| 欧洲精品99毛片免费高清观看| 亚洲国产成人久久综合一区| 正在播放国产对白害羞| 亚洲国产一区二区三区a毛片| 国产成人精品在线观看| www.色日本| 国产欧美视频在线观看| 美女黄色免费看| 国精品产品一区| 亚洲精品国产精品乱码不99按摩 | 丰腴饱满的极品熟妇| 天天综合精品| 青青久久av北条麻妃海外网| 国产成人精品免费看视频| 久久久久久久电影| 国内自拍中文字幕| 日韩一区二区三区免费| 欧美成人在线直播| 人妻无码一区二区三区免费| 日韩视频在线一区二区三区| 成人高清视频观看www| 天天操天天操天天操| 1000部国产精品成人观看| 情侣黄网站免费看| 给我免费播放日韩视频| 色妞在线综合亚洲欧美| youjizz在线视频| 成人免费看黄yyy456| 一区二区三区日韩视频| 姬川优奈av一区二区在线电影| 日韩一级视频免费观看在线| 人妻互换一区二区激情偷拍| 久久久久国产一区二区| 精品久久精品久久| 欧美aaaxxxx做受视频| 欧美日本乱大交xxxxx| a天堂中文字幕| 性xx色xx综合久久久xx| 精品免费视频123区| 免费av不卡在线观看| 日韩欧美国产精品一区| 国产成人在线网址| 日韩中文字幕av电影| 久久草视频在线看| av伦理在线| 欧美xxx久久| 中文字幕av免费在线观看| 国内成人免费视频| 吴梦梦av在线| 麻豆国产一区| 久久6免费高清热精品| 99视频在线观看免费| 亚洲色图.com| 91精品国产三级| 91九色精品| 91成人伦理在线电影| 在线观看wwwxxxx| 日韩免费性生活视频播放| 青娱乐国产精品| 丁香另类激情小说| 国产婷婷一区二区三区| 欧美韩一区二区| 日本久久91av| 91吃瓜网在线观看| 欧美日韩精品一区二区三区 | 亚洲福利精品| 久久久久se| 国精产品一区二区三区有限公司| 中文字幕av一区| 国产精品天天操| 一区二区三区波多野结衣在线观看| 国产亚洲色婷婷久久| 狠狠入ady亚洲精品经典电影| 精品欧美一区二区久久久伦| a一区二区三区| 少妇高潮久久77777| 97精品久久人人爽人人爽| 亚洲私人影院在线观看| 国产chinese中国hdxxxx| 中文精品视频| 日韩久久精品一区二区三区| 精品国产第一国产综合精品| 久久久久久亚洲| 久青草国产在线| 欧美日韩一级二级| 久久久久无码国产精品| 91视频一区二区| 亚洲精品综合在线观看| 亚洲人人精品| 亚洲欧美综合一区| 91精品久久久久久综合五月天| 欧美中文字幕第一页| 蜜桃视频在线观看免费视频网站www| 日韩你懂的在线播放| 亚洲精品男人的天堂| 亚洲欧美在线视频| 黑丝av在线播放| 激情综合网最新| 黄色成人在线看| 91青青国产在线观看精品| 国产欧美在线一区二区| 在线免费观看亚洲| 91高清免费视频| 黄色在线播放网站| 精品丝袜一区二区三区| 99在线无码精品入口| 色诱视频网站一区| 久久久久久久久久久网| 国产精品久久久久久久久快鸭 | 亚洲欧美偷拍另类| 亚洲高清网站| 中文字幕一区二区三区四区五区| 男人的天堂久久| 亚洲永久在线观看| 欧美电影免费观看| 欧美激情在线观看视频| 欧洲不卡av| 亚洲人成在线免费观看| 国内爆初菊对白视频| 欧美精品v国产精品v日韩精品| 国产精品一区二区三区四| 亚洲黄色av一区| 99久久99久久精品免费看小说. | 鲁鲁狠狠狠7777一区二区| 久久视频免费| 国产免费成人av| 欧美日韩免费看片| 亚洲91精品在线| 免费在线播放电影| 操日韩av在线电影| av大片在线播放| 亚洲天堂av网| 裸体xxxx视频在线| 亚洲乱码av中文一区二区| 国精品人妻无码一区二区三区喝尿| 欧美一区二区性放荡片| 一区不卡在线观看| 欧美私人免费视频| 手机看片久久久| 欧美性xxxxxxx| 黄网在线观看视频| 红桃av永久久久| 精品在线播放视频| 午夜精品久久久久久久| 国产精品a成v人在线播放| 一区二区三区高清在线| 婷婷激情四射网| 亚洲女同ⅹxx女同tv| 欧美性x x x| 亚洲三级久久久| 四虎884aa成人精品| 亚洲视频你懂的| 精品欧美一区二区久久久久| 亚洲精品免费看| 久草国产在线视频| 悠悠色在线精品| 国产一级黄色av| 性感美女久久精品| 天天操天天摸天天干| 欧美丝袜第一区| 狠狠狠狠狠狠狠| 欧美视频在线一区| 国产又粗又黄又爽| 91精品婷婷国产综合久久| 99久久久无码国产精品免费| 欧美成人a∨高清免费观看| 亚洲精品国产精品乱码不卡| 亚洲国产精品免费| 青青草视频在线免费观看| 亚洲午夜久久久影院| 中文字幕在线播放| 久久精品91久久香蕉加勒比| 欧美人与动牲性行为| 午夜免费日韩视频| 美女写真久久影院| 91精品国产综合久久香蕉| 精品国产亚洲一区二区三区大结局| av资源一区二区| 精品在线观看入口| 亚洲精品在线观看免费| 亚洲精品一二三区区别| 国产3p露脸普通话对白| 日韩成人av影视| 天天干天天曰天天操| www.亚洲精品| 亚洲а∨天堂久久精品2021| 亚洲天堂a在线| 中文字幕亚洲精品在线| 欧美日韩一区二区三区在线| 亚洲黄色小说网| 亚洲人午夜色婷婷| 永久免费网站在线| 热99在线视频| 欧美黄视频在线观看| 免费国产一区| 欧美日韩mv| 8x8x最新地址| 国产91在线|亚洲| avhd101老司机| 亚洲 欧美综合在线网络| 中文字幕日本人妻久久久免费 | av电影在线观看| 久久久综合av| 国产在视频一区二区三区吞精| 国严精品久久久久久亚洲影视 | 另类ts人妖一区二区三区| 亚洲高清乱码| 99精品久久| 九九九久久久久久久| 国产亚洲福利社区一区| 久草网在线观看| 欧美人体做爰大胆视频| 色视频在线观看免费| 欧美放荡办公室videos4k| www.一区| 欧美极品视频一区二区三区| 国产综合精品一区| 欧美一级小视频| 国产三级欧美三级| 国偷自拍第113页| 日韩欧美第一区| 秋霞午夜理伦电影在线观看| 国产极品精品在线观看| 美日韩黄色大片| 337p亚洲精品色噜噜狠狠p| 久久99精品国产.久久久久久| 变态另类丨国产精品| 亚洲小说欧美激情另类| 国产手机av在线| 最近中文字幕2019免费| 日韩制服诱惑| 天天综合色天天综合色hd| 国产精品一区亚洲| 日韩免费高清一区二区| 亚洲精品v日韩精品| av手机免费看| 久久久精品日本| av日韩在线免费观看| 亚洲人体一区| 蜜臀国产一区二区三区在线播放| 在线免费观看视频| 色婷婷综合久久久久中文一区二区 | 免费av不卡在线观看| 5g影院天天爽成人免费下载| 亚洲激情久久| 国产大学生av| 一区二区三区精品视频| 国产v在线观看| 色综合五月天导航| 亚洲一区二区三区四区电影 | 亚洲精品v天堂中文字幕| 久久不射影院| 精品不卡在线| 亚洲欧美日韩精品一区二区| 亚洲一区二区三区蜜桃| 色婷婷国产精品| 国产三级视频在线看| 国产精品免费一区| 欧美色爱综合| 中文字幕 日韩 欧美| 亚洲精品免费电影| 老牛影视av牛牛影视av| 97在线看福利| 激情婷婷综合| 做a视频在线观看| 一区二区三区精品视频| 五月婷婷免费视频| 国产99久久精品一区二区永久免费 | 四虎成人精品永久免费av九九| 欧美激情国内自拍| 亚洲一级二级三级在线免费观看| 神马一区二区三区| 国产精品成人av性教育| 亚洲精品国产偷自在线观看| 中文字幕三级电影| 色婷婷综合久久久久中文一区二区 | 中文字幕乱码亚洲精品一区 | 国产不卡免费视频| 男人的天堂一区二区| 揄拍成人国产精品视频| 粉嫩一区二区三区在线观看| 国产色一区二区三区| 久久精品视频网| 国产人妖一区二区| 高清视频欧美一级| 成人羞羞动漫| 国产精品一区二区无码对白| 日本二三区不卡| 亚洲区欧洲区| 日本一区二区三区www| 国产裸体歌舞团一区二区| www亚洲视频| 精品国产一区二区三区久久久| 精品午夜电影| 欧美美女一级片| 精品毛片网大全| 久操视频在线播放| 九色综合日本| 国产在线视频一区二区三区| 国产高潮久久久| 精品国产一区二区三区久久久| 色天天色综合| 国内av免费观看| 欧美一a一片一级一片| 91超碰在线免费|