日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程

發布時間:2023/11/27 生活经验 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android平臺搭建和NDK環境配置


Android移植基礎


NDK是集成的Android中調用C++代碼的工具包,核心是JNI(Java Native Interface)技術,具體這里略過不表。只說說NDK開發的基本步驟:
1. 編寫Java代碼:在Java中定義一個類,比如說叫NDKHelper吧,里面定義幾個java的方法,只需要聲明,不需要實現,如下所示:

public class NDKHelper {//NDK示例方法1public static native void ndkOne(int a,long b);//NDK示例方法2public static native int ndkTwo(String a,String b);

native標識符表示該函數將會利用C++代碼完成實現。
接下來在工程上右鍵,Android Tools–>Add native support,出現如下界面:

名字就是最后我們要生成的庫的名字,隨便填,可修改。點擊確定就會給你的工程添加C++編譯支持,菜單欄會多了個小錘子:

這個是用來編譯C++的快捷鍵。在你的工程目錄下會新建jni目錄和obj目錄,其中jni目錄用來存放和C++代碼有關的東西,obj則存放C++進行編譯時產生的中間件,最后生成的library會寫入到libs文件夾下。
在jni文件夾中生成了如下文件,一個.cpp,一個Android.mk,其中.cpp是自動生成的,是用來編寫C++部分的,而Android.mk類似C++里面的CMakeList,用來指定需要編譯的文件和編譯生成的模塊名,一個最簡單的Android.mk文件如下所示:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := NDKTest
LOCAL_SRC_FILES := NDKTest.cpp
include $(BUILD_SHARED_LIBRARY)

LOCAL_PATH :=$(call my-dir)表示包含當前目錄。
include $(CLEAR_VARS)表示清除全部非系統變量和部分系統變量;
LOCAL_MODULE := NDKTest 表示當前生成的模塊名,最終會生成libNDKTest.so文件
LOCAL_SRC_FILES := NDKTest.cpp 表示當前需要編譯的cpp文件;
include $(BUILD_SHARED_LIBRARY) 表示生成共享庫,需要生成靜態庫請修改成BUILD_STATIC_LIBRARY。

其他基礎命令:
LOCAL_C_INCLUDES:= 表示添加頭文件進入編譯環境
LOCAL_LDLIBS:= 表示添加系統靜態庫
LOCAL_SHARED_LIBRARIES:= 表示添加共享庫
其他命令請自行查看API文檔。

這里指定了進行編譯時的各項條件,如果需要指定編譯器版本和編譯目標平臺等信息,則需要在jni目錄下新建Application.mk文件,基本語句如下:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions 
NDK_TOOLCHAIN_VERSION := 4.8
APP_ABI :=armeabi-v7a

APP_STL :=表示使用stl庫,APP_CPPFLAGS表示一些CPP編譯參數,NDK_TOOLCHAIN_VERSION 表示NDK使用的編譯器版本,APP_ABI表示編譯的目標平臺,可以指定多個平臺,平臺之間用空格隔開,或者指定all則為全平臺編譯(armeabi,armeabi-v7a,mips,x86)。其他命令請自行查看API。

接下來編寫對應的C++文件。
打開eclipse,點擊Project–>build Project(若build automatically已勾選則會自動編譯)打開命令行,cd到你的工程文件夾下的bin–>classes文件夾下,輸入如下命令:

javah com.example.ndktest.NDKHelper

回車,則在你的classes文件夾下會生成對應的頭文件。這里com.example.ndktest是你的package名字,NDKHelper是你的NDK函數的類名。
生成的頭文件如下:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_example_ndktest_NDKHelper */#ifndef _Included_com_example_ndktest_NDKHelper
#define _Included_com_example_ndktest_NDKHelper
#ifdef __cplusplus
extern "C" {
#endif
/** Class:     com_example_ndktest_NDKHelper* Method:    ndkOne* Signature: (IJ)V*/
JNIEXPORT void JNICALL Java_com_example_ndktest_NDKHelper_ndkOne(JNIEnv *, jclass, jint, jlong);/** Class:     com_example_ndktest_NDKHelper* Method:    ndkTwo* Signature: (Ljava/lang/String;Ljava/lang/String;)I*/
JNIEXPORT jint JNICALL Java_com_example_ndktest_NDKHelper_ndkTwo(JNIEnv *, jclass, jstring, jstring);#ifdef __cplusplus
}
#endif
#endif

其他不用管,我們關注中間的兩個函數聲明:

JNIEXPORT void JNICALL Java_com_example_ndktest_NDKHelper_ndkOne(JNIEnv *, jclass, jint, jlong);
  • 1

這個函數就是NDKHelper類中ndkOne函數對應的C++版本,其中JNIEXPORT和JNICALL是固定字段,void是函數返回值,函數名由Java字段+包名+類名+函數名組成,參數則多了幾個JNI的系統參數JNIEnv 和jclass,其他的就是NDKHelper類中的對應參數,ndk會對該函數進行解析和鏈接,實現java和C++的對接。
將生成的.h頭文件復制到jni目錄下,新建對應的cpp文件,將該頭文件include進來并對對應函數進行實現,實現過程就視函數功能而定。
這些工作完成后需要修改你的Android.mk文件,將剛剛新建的cpp和h文件包括進來。
然后點擊開始那個小錘子或者直接項目右鍵RunAs–>Android Application,則C++部分會開始編譯,編譯具體過程可以在Eclipse下方Console窗口看到(如果沒有Console窗口則點擊Window–>Show Views,選擇Console確定即可)。
編譯完成后會生成對應的庫存放在libs目錄下,則你可以開始在Java里面調用剛才定義的ndkOne和ndkTwo函數實現具體的功能。

NDK基礎到此為止,更深入的學習可以下載Android官方給的ndk samples.

ORB_SLAM2的移植


不想知道移植過程的童鞋可以直接下載我的Github源碼:https://github.com/FangGet/ORB_SLAM2_Android 直接按照步驟進行即可。
移植過程
先看目錄:

分為ORB和ThirdParty,其中ThirdParty包括boost clapack DBow2 g2o eigen3。
clapack和eigen來自于一個github的開源庫:https://github.com/simonlynen/android_libs 這里集成了一些經典的C++庫的ndk版本,下載即可使用。g2o和DBoW2則來自于ORB_SLAM2原作者的github地址,Boost是自己編譯的lib,這里只介紹clapack和opencv的庫配置。
clapack配置
從前述的開源庫中將clapack目錄拷貝到Thirdparty的對應目錄下,clapack中已經包含了對當前目錄極其子目錄的編譯過程,我們在jni目錄下的Android.mk文件中加入如下內容:

include $(CLEAR_VARS)
MAINDIR:= $(LOCAL_PATH)
include $(MAINDIR)/Thirdparty/clapack/Android.mk
LOCAL_PATH := $(MAINDIR)include $(CLEAR_VARS)
MAINDIR:= $(LOCAL_PATH)
LOCAL_MODULE:= lapack
LOCAL_SHORT_COMMANDS := true
LOCAL_STATIC_LIBRARIES := tmglib clapack blas f2cLOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
LOCAL_PATH := $(MAINDIR)
include $(BUILD_SHARED_LIBRA

這里的基本命令之前都已經講過了,只補充如下幾點內容:

  • LOCAL_SHORT_COMMANDS是為了防止Windows對g++編譯命令長度的限制而設置的參數,該參數會拖慢整個編譯過程,因此請謹慎使用;
  • LOCAL_EXPORT_C_INCLUDES表示將當前庫的頭文件EXPORT給系統,讓程序代碼中能實現<>的調用過程,若不設置這一參數則在cpp文件中可能無法引用該庫;
  • LOCAL_STATIC_LIBRARIES := tmglib clapack blas f2c是引用lapack子目錄中編譯好的一些依賴模塊
    這里會編譯出一個名為lapack的庫工程,該工程就可以作為依賴項被ORB所引用。
    OpenCV的編譯
    opencv4Android是opencv官網為了對Android的支持而推出的一個工具集,可以在opencv官網進行下載。其目錄結構如下:

    其中sdk為核心部分,opencv4Android包含兩個版本,一個是opencv為java做的本地化sdk,另一個是opencv利用ndk編譯C++版本得到的庫工程。我們將opencv4android解壓后放置到ORB_SLAM2項目的同級目錄下,如下所示:

    之后在jni目錄下的Android.mk中需要引用到OpenCV的地方加入如下代碼:
OPENCV_LIB_TYPE:=STATIC
ifeq ("$(wildcard $(OPENCV_MK_PATH))","")  
#try to load OpenCV.mk from default install location  
include E:/ORB_SLAM2/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk
else  
include $(OPENCV_MK_PATH)  
endif 

這里opencv.mk我給的是絕對地址,其實相對地址也是可以的。上面這段引用會將opencv進行編譯并引入到當前的工作模塊上來,這里就完成了opencv庫的基本調用。如果為了方便還可以將opencv自身單獨編譯成一個庫工程并開放給其他模塊引用。

其他libraries的編譯過程和上述工程大同小異,其主要步驟可以概括如下:

  1. 將當前庫復制到jni的特定目錄下;
  2. 在Android.mk中新建一個模塊并對模塊進行命名;
  3. LOCAL_C_INCLUDE引入庫的頭文件,LOCAL_SRC_FILES引入庫的cpp文件;
  4. LOCAL_LDLIBS/LOCAL_SHARED_LIBRARIES/LOCAL_STATIC_LIBRARIES引入依賴庫;
  5. LOCAL_C_FLAGS設置編譯參數;

ORB_SLAM2的編譯
這里我們將ORB_SLAM2的源文件也編譯為一個library以供調用,其編譯過程和上面雷同,需要注意的是,由于pangolin編譯有問題,我拆了源文件的pangolin部分并注釋了對應的部分代碼,同時引入了opengl es 來進行map和pose的繪制。同時,為了完成特征檢測圖像的回調,我改變了System.cc中TrackMonocular的返回值,將其返回值改成了Mat。
當上述過程完成后,我們的C++編譯工作就基本完成了,最后也是最重要的一步是為Java中定義的native方法做C++的實現,在JAVA中,我定義了如下native函數:

    /*** jni中初始化SLAM系統* @param VOCPath* @param calibrationPath*/public static native void initSystemWithParameters(String VOCPath,String calibrationPath);/*** Dataset模式中ORB系統的start函數* @param curTimeStamp* @param data* @param w* @param h* @return*/public static native int[] startCurrentORB(double curTimeStamp,int[] data,int w,int h);/*** Camera模式中ORB系統的start* @param curTimeStamp* @param addr* @param w* @param h* @return*/public native static int[] startCurrentORBForCamera(double curTimeStamp,long addr,int w,int h);/*** Opengl es 的初始化*/public native static void glesInit();  /*** opengl es繪制更新*/public native static void glesRender();  /*** 防止opengl es窗口resize帶來的影響* @param width* @param height*/public native static void glesResize(int width, int height);

其對應的C++代碼為:

/** Class:     orb_slam2_android_nativefunc_OrbNdkHelper* Method:    initSystemWithParameters* Signature: (Ljava/lang/String;Ljava/lang/String;)V*/
JNIEXPORT void JNICALL Java_orb_slam2_android_nativefunc_OrbNdkHelper_initSystemWithParameters
(JNIEnv * env, jclass cls, jstring VOCPath, jstring calibrationPath) {const char *calChar = env->GetStringUTFChars(calibrationPath, JNI_FALSE);const char *vocChar = env->GetStringUTFChars(VOCPath, JNI_FALSE);// use your stringstd::string voc_string(vocChar);std::string cal_string(calChar);env->GetJavaVM(&jvm);jvm->AttachCurrentThread(&env, NULL);s=new ORB_SLAM2::System(voc_string,cal_string,ORB_SLAM2::System::MONOCULAR,true);env->ReleaseStringUTFChars(calibrationPath, calChar);env->ReleaseStringUTFChars(VOCPath, vocChar);init_end=true;
}/** Class:     orb_slam2_android_nativefunc_OrbNdkHelper* Method:    startCurrentORB* Signature: (DDD[I)[I*/
JNIEXPORT jintArray JNICALL Java_orb_slam2_android_nativefunc_OrbNdkHelper_startCurrentORB(JNIEnv * env, jclass cls, jdouble curTimeStamp, jintArray buf, jint w,jint h) {jint *cbuf;cbuf = env->GetIntArrayElements(buf, false);if (cbuf == NULL) {return 0;}int size = w * h;cv::Mat myimg(h, w, CV_8UC4, (unsigned char*) cbuf);cv::Mat ima = s->TrackMonocular(myimg, curTimeStamp);jintArray resultArray = env->NewIntArray(ima.rows * ima.cols);jint *resultPtr;resultPtr = env->GetIntArrayElements(resultArray, false);for (int i = 0; i < ima.rows; i++)for (int j = 0; j < ima.cols; j++) {int R = ima.at < Vec3b > (i, j)[0];int G = ima.at < Vec3b > (i, j)[1];int B = ima.at < Vec3b > (i, j)[2];resultPtr[i * ima.cols + j] = 0xff000000 + (R << 16) + (G << 8) + B;}env->ReleaseIntArrayElements(resultArray, resultPtr, 0);env->ReleaseIntArrayElements(buf, cbuf, 0);return resultArray;
}
/** Class:     orb_slam2_android_nativefunc_OrbNdkHelper* Method:    glesInit* Signature: ()V*/
JNIEXPORT void JNICALL Java_orb_slam2_android_nativefunc_OrbNdkHelper_glesInit
(JNIEnv *env, jclass cls) {// 啟用陰影平滑glShadeModel(GL_SMOOTH);// 黑色背景glClearColor(1.0f, 1.0f, 1.0f, 0.0f);// 設置深度緩存glClearDepthf(1.0f);// 啟用深度測試glEnable(GL_DEPTH_TEST);// 所作深度測試的類型glDepthFunc(GL_LEQUAL);// 告訴系統對透視進行修正glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}/** Class:     orb_slam2_android_nativefunc_OrbNdkHelper* Method:    glesRender* Signature: ()V*/
JNIEXPORT void JNICALL Java_orb_slam2_android_nativefunc_OrbNdkHelper_glesRender
(JNIEnv * env, jclass cls) {glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode (GL_MODELVIEW);glLoadIdentity ();if(init_end)s->drawGL();
}/** Class:     orb_slam2_android_nativefunc_OrbNdkHelper* Method:    glesResize* Signature: (II)V*/
JNIEXPORT void JNICALL Java_orb_slam2_android_nativefunc_OrbNdkHelper_glesResize
(JNIEnv *env, jclass cls, jint width, jint height) {//圖形最終顯示到屏幕的區域的位置、長和寬glViewport (0,0,width,height);//指定矩陣glMatrixMode (GL_PROJECTION);//將當前的矩陣設置為glMatrixMode指定的矩陣glLoadIdentity ();glOrthof(-2, 2, -2, 2, -2, 2);
}/** Class:     orb_slam2_android_nativefunc_OrbNdkHelper* Method:    readShaderFile* Signature: (Landroid/content/res/AssetManager;)V*/
JNIEXPORT jintArray JNICALL Java_orb_slam2_android_nativefunc_OrbNdkHelper_startCurrentORBForCamera
(JNIEnv *env, jclass cls,jdouble timestamp, jlong addr,jint w,jint h) {const cv::Mat *im = (cv::Mat *) addr;cv::Mat ima = s->TrackMonocular(*im, timestamp);jintArray resultArray = env->NewIntArray(ima.rows * ima.cols);jint *resultPtr;resultPtr = env->GetIntArrayElements(resultArray, false);for (int i = 0; i < ima.rows; i++)for (int j = 0; j < ima.cols; j++) {int R = ima.at < Vec3b > (i, j)[0];int G = ima.at < Vec3b > (i, j)[1];int B = ima.at < Vec3b > (i, j)[2];resultPtr[i * ima.cols + j] = 0xff000000 + (R << 16) + (G << 8) + B;}env->ReleaseIntArrayElements(resultArray, resultPtr, 0);return resultArray;

這里解釋下Dataset和Camera模式下start方法的區別。其實就是圖像參數傳遞的方式不一樣。在DataSet模式中,我們是用ImageView顯示圖片,用Bitmap讀取文件中的圖片,而非基本類型的數據都是不能被jni接口所接受的因此我們需要利用Bitmap的getPixels方法將其轉換成int[]型數據進行傳遞,在jni中int[]對應的數據類型為jintArray,我們可以在獲取到數據后將jintArray轉換成Mat進行后續處理;而在Camera模式中我們是利用opencv android sdk中的cvCameraView 來直接進行攝像頭的調用和圖像的顯示。其onCameraFrame(CvCameraViewFrame inputFrame)中的inputfram可以通過rgba()方法轉換成Mat類型數據,而Mat類型同樣不被jni識別,因此需要利用Mat的getNativeObjAddr方法獲取Mat數據的long型指針傳遞到jni中進行處理。關鍵代碼如下: DataSet 的Java部分:

int w = tmp.getWidth(), h = tmp.getHeight();//其中tmp為bitmap
int[] pix = new int[w * h];
tmp.getPixels(pix, 0, w, 0, 0, w, h);3

C++部分:

jint *cbuf;
cbuf = env->GetIntArrayElements(buf, false);
if (cbuf == NULL) {return 0;
}
int size = w * h;
cv::Mat myimg(h, w, CV_8UC4, (unsigned char*) cbuf);

Camera的Java部分:

Mat im=inputFrame.rgba();
synchronized (im) {addr=im.getNativeObjAddr();//addr為函數傳遞的圖像參數
4

C++部分:

const cv::Mat *im = (cv::Mat *) addr;//addr為傳入的圖像參數1

結尾


當上述步驟都完成后,我們會得到最終生成的sdk。Android部分的布局文件和對應activity文件在這里也略過不表。當得到最終生成的apk后,我們如果要測試Camera模式,需要先將opencv4Android中apk文件夾中對應類型的opencv manager安裝到手機中并預先打開才能使用,否則會提示找不到opencv的支持庫;若只需測試Dataset模式則無需上述步驟。

總結

以上是生活随笔為你收集整理的NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

9999国产| 92中文资源在线 | 九九热在线精品视频 | 久久久久激情视频 | 激情图片qvod| 少妇bbw搡bbbb搡bbbb | 视频在线观看入口黄最新永久免费国产 | www.国产在线观看 | 特片网久久 | 欧美日韩国产三级 | 日韩毛片一区 | 日b视频在线观看网址 | 麻豆视频在线免费观看 | 91精品久久久久 | 久久伦理 | 亚洲乱码在线观看 | 九七人人干 | 日韩av在线免费看 | 久久综合毛片 | 国产精品久久久久久久久久久久午夜片 | 国产精品对白一区二区三区 | 亚洲国产欧美在线看片xxoo | 午夜精品一区二区三区在线视频 | 婷婷网在线| 久久日韩精品 | 99久热在线精品视频观看 | 天天天色 | 欧美巨乳波霸 | 久久久精品在线观看 | av在线播放网址 | 国产黄色片一级 | 9色在线视频 | 国产一级片不卡 | 国产中出在线观看 | 成年人免费在线看 | 成人免费在线观看av | 97狠狠干 | 亚洲精品久久久蜜臀下载官网 | 最近中文字幕高清字幕免费mv | 亚洲理论影院 | 成人免费观看在线视频 | 草久电影 | 91亚洲视频在线观看 | 欧美一二三视频 | 狠狠干网站 | 亚洲精品在线免费播放 | 国产99久久九九精品免费 | 亚洲免费色 | 日本 在线 视频 中文 有码 | av在线等 | 国产亚洲资源 | 最近2019好看的中文字幕免费 | 久久精彩免费视频 | 在线色亚洲| 手机在线小视频 | 婷婷色中文字幕 | 热久久视久久精品18亚洲精品 | 久久99热精品这里久久精品 | 99视| 亚洲永久字幕 | 夜夜爽88888免费视频4848 | 天天综合网入口 | 香蕉网在线 | 久久久久久在线观看 | 免费看的黄色片 | 欧美大片第1页 | www.亚洲激情.com | 精品影院一区二区久久久 | 国产精品欧美久久久久久 | 国产精品色婷婷视频 | 国模视频一区二区三区 | 国产精品嫩草影院9 | 夜夜躁狠狠躁日日躁视频黑人 | av片子在线观看 | 中文字幕韩在线第一页 | 国产在线更新 | 久久精品久久久久电影 | 天天摸天天舔 | 特级西西444www大精品视频免费看 | 天天操夜夜操国产精品 | 97免费在线观看视频 | 黄色小说18| 欧美久久久久久久久久久久久 | 在线观看免费版高清版 | 九九免费在线观看视频 | 国产精品99久久久久久人免费 | 91精品国产自产在线观看永久 | 黄色不卡av | 一级电影免费在线观看 | 日本久久精品视频 | 亚洲国产中文字幕在线观看 | 欧美精品久久久久久久久免 | 蜜臀久久99精品久久久酒店新书 | 欧美精品xx | 亚洲国产精品久久久久婷婷884 | 久久久精品 | 91在线视频 | 中国一级片在线 | 毛片网在线观看 | 成人黄色小说视频 | 久久久久欠精品国产毛片国产毛生 | 中文字幕超清在线免费 | av黄网站| 国产人成在线视频 | 91黄色在线看 | 香蕉视频在线播放 | 精品一区电影国产 | 国产精品2018| 久久成人毛片 | 玖玖在线精品 | 国产午夜影院 | 九九热免费观看 | 欧美成年黄网站色视频 | 91视频 - v11av| 欧美性免费 | 色吧久久 | a天堂最新版中文在线地址 久久99久久精品国产 | 99久热在线精品 | 日韩在线播放av | 国产日产精品一区二区三区四区的观看方式 | av日韩在线网站 | 麻豆影视在线免费观看 | 亚洲精品色 | 亚洲专区在线播放 | av中文字幕在线看 | 亚洲综合色av | 偷拍视频一区 | 国产精品久久久久久久久久免费看 | 日本午夜在线亚洲.国产 | 久久夜靖品| 国产福利资源 | 蜜臀久久99静品久久久久久 | 丁香资源影视免费观看 | 亚洲电影院 | 久久久久久国产精品 | 中文字幕在线日本 | 五月婷婷在线播放 | 97超碰人人网 | 国产精品一区久久久久 | 2019av在线视频 | 97超碰人人爱 | 久久免费视频精品 | 日本久久高清视频 | 国产精品久久久久久a | 夜添久久精品亚洲国产精品 | 91麻豆免费视频 | 国产1区2 | 欧美片网站yy | www色婷婷com| 中文字幕一区二区三区四区视频 | 奇米影视8888 | 亚洲 中文 欧美 日韩vr 在线 | 日本公妇在线观看 | 天天se天天cao天天干 | 99热 精品在线 | 麻豆国产在线视频 | www.伊人色.com | 黄网站免费看 | 欧美有色 | 青草草在线视频 | 国产999精品久久久久久 | 久久久久久久网 | 91久久国产露脸精品国产闺蜜 | 成人蜜桃网 | av片中文 | 国产精品免费麻豆入口 | 婷婷色狠狠| 天天综合人人 | 久热免费在线观看 | 911精品美国片911久久久 | 亚洲小视频在线 | 蜜桃av人人夜夜澡人人爽 | 天堂在线免费视频 | 亚洲精品在线观 | 西西4444www大胆无视频 | 天天操天天干天天操天天干 | av一区在线 | 不卡av电影在线观看 | 国产精品久久久久久久久久久久冷 | 五月天婷婷在线视频 | 四虎免费在线观看视频 | 中文字幕中文 | 91av手机在线观看 | 久久免费99 | 亚洲天天在线 | 国产亚洲精品久久久久动 | 808电影免费观看三年 | 国产超碰在线观看 | 免费视频一级片 | 国产九九九视频 | 日韩免费高清在线观看 | 久久99热国产| 东方av在 | 97天天综合网| 成人aaa毛片| 69久久久 | 色综合婷婷 | 97韩国电影 | 最新久久免费视频 | 日韩欧美在线影院 | 日韩欧美在线观看 | 日本特黄一级片 | 视频在线观看入口黄最新永久免费国产 | 狠狠狠狠狠色综合 | 国产在线 一区二区三区 | 超碰97中文 | 国产在线精品二区 | 成人动图| 久久精品国产一区二区三 | av专区在线 | 亚洲影音先锋 | 综合黄色网 | 91精品国产一区二区在线观看 | 国产精品永久久久久久久www | 91精品1区2区 | 在线国产精品视频 | 精品国产区 | 五月婷婷视频在线 | 蜜臀久久99精品久久久酒店新书 | 色婷婷国产精品 | 国产精品九色 | 国产精品国内免费一区二区三区 | 天天狠狠操 | 2022久久国产露脸精品国产 | 操一草| 在线有码中文 | 美女视频一区二区 | 丁香激情五月 | 有没有在线观看av | 色网站中文字幕 | 丁香婷婷综合网 | 久久精品一区二 | 免费在线播放黄色 | 五月激情视频 | 国内精品久久久久影院男同志 | 99在线精品视频在线观看 | 成人va视频| 国产精品久久久久久久久久久久久 | 日日夜夜网 | 日韩在线免费 | 91大神电影 | 久久9视频 | 91麻豆精品国产午夜天堂 | 久久久福利影院 | 一级黄色免费网站 | 久久精品国产v日韩v亚洲 | 色婷婷www | 在线看的毛片 | 久久免视频 | 麻豆视频大全 | 亚洲成人动漫在线观看 | 美女免费视频观看网站 | 精品免费一区二区三区 | 日韩欧美在线一区二区 | 日韩欧美在线播放 | 日韩系列 | 欧美男男tv网站 | 九九在线播放 | 天天艹天天 | 超碰成人av| 久久天天操 | 操操操日日日 | 97精品国产91久久久久久 | 欧美va在线观看 | 欧美精品乱码久久久久 | 精品久久五月天 | 人人澡人人爽欧一区 | 欧美视频日韩 | 三上悠亚在线免费 | 麻豆91在线观看 | 国产午夜精品一区二区三区在线观看 | 丁香婷婷综合色啪 | 国产v视频 | 天天干天天玩天天操 | 亚洲欧洲中文日韩久久av乱码 | av大片网站 | 亚洲春色奇米影视 | 香蕉影院在线 | 亚洲国产成人久久综合 | 欧美一区二区三区在线观看 | 男女拍拍免费视频 | 国产亚洲激情视频在线 | 免费在线91 | 中文字幕在线观看完整版电影 | 免费看在线看www777 | 日韩大片在线免费观看 | 免费三及片| 亚洲一区天堂 | 国产一级免费观看视频 | 99在线热播精品免费99热 | 久久综合激情 | 久久综合九色综合欧美狠狠 | 色资源二区在线视频 | 亚洲妇女av | 久久久久久久久久久黄色 | 欧美日韩首页 | 中文字幕九九 | 成人av影视在线 | 欧美日韩国产伦理 | 韩国在线一区二区 | 在线观看涩涩 | 婷婷精品视频 | 久久热首页 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 国产亚洲激情视频在线 | 高清在线一区 | 午夜视频在线观看一区二区三区 | 久久婷婷激情 | 五月婷婷综合激情 | www夜夜操com| 亚洲成av人影片在线观看 | 久久久久久久久久影院 | 精品久久久一区二区 | 亚洲专区欧美专区 | 亚洲一区二区视频在线 | 激情综合久久 | 久久国产精品精品国产色婷婷 | 国产精品九九视频 | 在线精品观看国产 | 亚洲国产成人精品电影在线观看 | 久草在线视频免费资源观看 | 国产一卡二卡在线 | 亚洲福利精品 | 黄a在线看| 怡红院久久 | 国内精品久久久久影院日本资源 | 久久国产精品一国产精品 | 国产精品爽爽爽 | 91av在线视频免费观看 | 国产 日韩 欧美 中文 在线播放 | 在线看一区二区 | 2022中文字幕在线观看 | 久久不见久久见免费影院 | 国产中文字幕免费 | 97操操操 | aaa免费毛片 | 国产超碰在线观看 | 日韩理论视频 | 国产精品成人自产拍在线观看 | 亚洲精品视频二区 | 九草视频在线观看 | 狠狠躁天天躁 | 欧美日本三级 | 久久久久国产a免费观看rela | 欧美在线观看视频一区二区 | 天天干天天在线 | 免费黄av | 制服丝袜亚洲 | 69夜色精品国产69乱 | 特级a老妇做爰全过程 | 黄色www免费| 亚洲黄色av | 久久精品官网 | 久久婷婷丁香 | 久久不卡免费视频 | 色99视频 | 麻豆一精品传二传媒短视频 | 激情欧美一区二区免费视频 | 日韩欧美一区二区三区在线 | 久久精品男人的天堂 | 在线观看黄网站 | 国产午夜精品久久久久久久久久 | 日韩国产欧美视频 | av高清不卡 | 91精品第一页 | 国产精品国产三级国产aⅴ9色 | 亚洲女人天堂成人av在线 | 99视频精品免费视频 | 99精品视频在线观看免费 | 在线视频中文字幕一区 | 日韩av在线一区二区 | 免费特级黄色片 | 国产精品福利无圣光在线一区 | 久草视频2| 一级性生活片 | 国产黄色精品在线观看 | 色欧美综合 | 免费在线成人av | 99精品久久99久久久久 | av不卡免费在线观看 | 亚洲综合狠狠干 | 日本中文字幕在线电影 | 国产日韩欧美视频在线观看 | 国产一级在线观看视频 | 91禁看片 | 黄在线 | 超碰97公开 | 中文字幕日韩电影 | 国产v欧美 | 日三级在线 | 国产视频日韩视频欧美视频 | av在线超碰 | 久久国产影院 | 黄色99视频 | 久久成人综合视频 | 国产精品美女久久久久久久久 | www.狠狠操.com| 日韩午夜视频在线观看 | 婷婷激情av | 狠狠色噜噜狠狠狠狠 | 日韩精品一区二区免费视频 | 美女视频黄频大全免费 | 丰满少妇在线观看资源站 | 天堂av在线7| 日本护士三级少妇三级999 | 在线免费中文字幕 | 婷婷久久丁香 | 色综合色综合色综合 | 97精品国产91久久久久久久 | 伊人婷婷久久 | 五月综合久久 | 欧美日韩免费观看一区=区三区 | 欧美欧美 | 免费手机黄色网址 | 日韩一二区在线观看 | 免费在线国产精品 | 亚洲国产高清在线观看视频 | 国产精品免费久久久久 | 中文字幕免费观看 | 国产精品欧美 | 国产精品亚洲片夜色在线 | 四虎成人在线 | 亚洲永久国产精品 | 中文字幕在线观看网站 | 99热这里只有精品1 av中文字幕日韩 | 在线电影播放 | 国产成人精品一区二区在线观看 | 国产精品一区二区久久国产 | 日韩av成人 | 手机成人在线电影 | 美女黄网站视频免费 | 免费三级影片 | 99久久这里有精品 | 热热热热热色 | 亚洲另类久久 | 成人免费视频免费观看 | 成人免费视频网站 | 成人免费在线播放视频 | 日日干天天爽 | 91九色精品女同系列 | 日韩av图片| 九九九在线观看 | 精品一区在线看 | 免费观看国产成人 | 日韩黄视频 | 色a资源在线 | 国产亚洲欧美在线视频 | 丁香六月中文字幕 | 久久99精品国产一区二区三区 | 久久久久婷| 久草精品网| 色综合中文字幕 | 日韩欧美一区视频 | 狠狠色狠狠色终合网 | 国产精品麻豆视频 | 国产精品久久99精品毛片三a | 五月综合在线观看 | 91电影福利 | 夜色资源网 | 色综合婷婷久久 | 能在线看的av | www.久久com| 天天·日日日干 | 国产精品入口麻豆 | 久久亚洲国产精品 | 狠狠狠色丁香综合久久天下网 | 欧美日韩国产精品一区二区三区 | 99久久电影| 黄色一级大片免费看 | 在线观看国产亚洲 | 日韩精品中文字幕在线不卡尤物 | 99re中文字幕 | 免费精品国产va自在自线 | www.色午夜,com | 狠狠躁日日躁狂躁夜夜躁 | 国产成人一区二区精品非洲 | 黄色电影小说 | 中文字幕观看在线 | 成年人黄色免费视频 | 激情丁香综合五月 | 午夜在线观看一区 | 热99久久精品 | 色综合五月 | 91九色国产蝌蚪 | 国产精品一区二区久久国产 | 精品国产一区二区三区男人吃奶 | 亚洲欧美视频网站 | 综合伊人久久 | 六月色丁香 | 亚洲欧洲av在线 | 天天操天天拍 | 在线亚洲人成电影网站色www | 一级黄毛片 | 五月婷婷操 | 婷婷五天天在线视频 | 天天艹天天干天天 | 高清免费在线视频 | 99热官网 | 亚洲精品国产精品国自 | 欧美日韩国产二区 | 免费开视频| 狠狠色免费 | 日韩视频在线观看视频 | www.日本色 | 色婷婷激情五月 | 久久一区国产 | 国产在线欧美在线 | 91在线国内视频 | 蜜桃麻豆www久久囤产精品 | 精品一区二区电影 | 国产在线色站 | 久久精品视频一 | 人人爽夜夜爽 | 黄网站色成年免费观看 | 天天综合视频在线观看 | 免费观看黄 | 国产精品嫩草影视久久久 | 国产精品一区二区麻豆 | 天天综合色天天综合 | 欧美成人性网 | 久热国产视频 | 精品国产一区二区三区噜噜噜 | 狠狠黄 | 伊人官网 | 成人免费视频观看 | 久久免费国产电影 | 亚洲网站在线看 | 国内精品国产三级国产aⅴ久 | 缴情综合网五月天 | 日日夜夜网 | 美女福利视频一区二区 | 91传媒激情理伦片 | av看片网 | 欧美精品一区二区三区四区在线 | 精品一二三四五区 | 综合成人在线 | 久久久久女人精品毛片 | 一区二区三区国产欧美 | 久久国内视频 | 女人久久久久 | 久久久免费精品视频 | 草久久精品 | 99久久精品无码一区二区毛片 | 特级黄色视频毛片 | 在线视频观看亚洲 | 亚洲一区 av| av中文字幕网 | 久久精品美女视频网站 | 91九色综合 | 国产一区二区在线观看免费 | 日韩午夜视频在线观看 | 亚洲欧洲国产精品 | 黄色成人av网址 | 亚洲日韩中文字幕 | 欧美一区二区在线免费看 | 美女视频免费精品 | 日韩美一区二区三区 | 久久一视频 | 亚洲国产中文字幕 | 欧洲一区精品 | 成人国产精品久久久久久亚洲 | 午夜久久久久久久久久久 | 黄色免费网站大全 | 亚洲精品在线播放视频 | 69国产成人综合久久精品欧美 | 国产精品国产三级在线专区 | 日本在线观看视频一区 | 中国美女一级看片 | 久久在草 | 456成人精品影院 | 成年人黄色免费网站 | 国产成人av一区二区三区在线观看 | 亚洲闷骚少妇在线观看网站 | 亚洲精品影院在线观看 | 美女免费电影 | 久久国产精品网站 | 国产精品2020 | 成人午夜电影在线 | 欧美日韩亚洲国产一区 | 亚洲精品美女久久17c | 精品视频999 | 黄色av成人在线观看 | 96亚洲精品久久 | 天天操天 | 久久久久久黄 | 免费在线一区二区 | 国产特级毛片aaaaaaa高清 | 免费视频久久久久久久 | 国产精品成人一区二区三区吃奶 | 欧美 日韩 国产 成人 在线 | 久久久久久久久久影院 | 日日久视频 | 国产精品久久影院 | 亚洲欧美日韩国产精品一区午夜 | 黄色一二级片 | 久久国产91| 国产成人av综合色 | 成人av资源网站 | 天天干天天看 | 国产日韩精品在线 | 久久精品国产免费 | 色五月情| 国产专区在线视频 | 日韩欧美精品在线观看 | av片子在线观看 | 国产精品欧美日韩在线观看 | 精品极品在线 | 久久99精品国产一区二区三区 | 日韩在线高清 | 精品色999 | 久操操 | 亚洲精品视频在线 | 在线日韩视频 | 91中文字幕在线视频 | 久久在线免费 | 97在线观看视频 | 黄色国产区 | 人人爱爱 | 91看毛片 | 久久久999 | 国产亚洲精品精品精品 | 97在线精品视频 | 精品国产诱惑 | 五月天六月婷 | 日韩电影一区二区三区在线观看 | 国产精品免费观看网站 | 2021国产精品视频 | 国产成年免费视频 | 久久av中文字幕片 | aaawww| 在线观看自拍 | 日本色小说视频 | 91九色蝌蚪 | 欧美精品乱码久久久久 | 欧美视屏一区二区 | 精品一区二区久久久久久久网站 | 成人av在线亚洲 | 免费日韩电影 | 在线观看中文字幕亚洲 | 免费十分钟 | 国产91av视频在线观看 | 在线黄色观看 | 天天干,天天射,天天操,天天摸 | 久久不见久久见免费影院 | 精品视频免费播放 | 精品综合久久 | 国产精品18久久久久久久久久久久 | 日韩精品一区二区不卡 | av丝袜在线 | 欧美乱大交| 久综合网| 91成人观看 | 久久桃花网 | 日韩电影在线观看中文字幕 | 日韩一级成人av | 精品国产伦一区二区三区免费 | 亚洲免费av一区二区 | 91av视频在线观看 | av福利第一导航 | 黄色资源在线观看 | 精品久久久久久久久久久院品网 | 国产一区二区精品91 | 成人免费看电影 | 久久国内精品99久久6app | www.夜夜爱 | 色综合久久综合网 | 久久精品网 | 九九热精品视频在线播放 | 亚洲国产成人精品在线观看 | 91香蕉视频在线下载 | 99精品在这里| 在线观看国产一区二区 | 91麻豆精品国产91久久久久久 | 欧美精品乱码久久久久 | 久久这里只有精品23 | 特级大胆西西4444www | 五月天天av | 一区二区国产精品 | 三级a毛片 | 欧美日一级片 | 久久激情日本aⅴ | 国产精品视频全国免费观看 | 色综合亚洲精品激情狠狠 | 天天射天天色天天干 | 亚洲天堂免费视频 | 亚洲天堂在线观看完整版 | 国产在线a视频 | 国产精品久久精品 | 亚洲国产小视频在线观看 | 亚洲高清精品在线 | 看全黄大色黄大片 | 色婷婷精品大在线视频 | 亚洲综合成人专区片 | 99精品黄色| 精品国产一区二区三区av性色 | 久久精品99国产精品 | 西西444www高清大胆 | 99久视频| 免费日韩一区二区三区 | 日韩高清dvd | 欧美久久久久久久久久 | 午夜精品99久久免费 | 亚洲国产一区二区精品专区 | 日日操夜夜操狠狠操 | 久久久久久久久久久免费 | 欧美在线视频二区 | 亚洲天堂网在线视频观看 | 国产97免费| 精品久久久久一区二区国产 | 日日射av | 精品国产一区二区三区在线观看 | 国产精品毛片一区二区 | 国产不卡免费av | 美女av在线免费 | 日韩专区视频 | 国产精品12| 欧美久久久久久久久中文字幕 | 91av亚洲| 国产精品九九视频 | 亚洲精品在线免费观看视频 | 探花视频在线观看+在线播放 | 丁香六月国产 | 香蕉视频网站在线观看 | 亚洲欧美国产精品久久久久 | 狠狠狠干狠狠 | 欧美aa在线| 中文字幕高清免费日韩视频在线 | 99精品热| 91九色在线播放 | 毛片黄色一级 | 色五月色开心色婷婷色丁香 | 国产69精品久久久久久久久久 | 91精品国产一区二区在线观看 | 人人爽人人爽人人爽人人爽 | 黄色在线观看免费网站 | 怡红院av| 人人舔人人爽 | 成人影片免费 | 日韩三级精品 | 亚洲综合在线五月天 | 国内精品亚洲 | 日韩精品无码一区二区三区 | 天天插天天干天天操 | 青春草免费在线视频 | 日韩精品一区二区免费视频 | 亚洲国产免费看 | 久久国产精品免费观看 | 免费看av片网站 | 日韩欧美专区 | 成全在线视频免费观看 | 中文字幕 欧美性 | 精品国产一区二区三区久久影院 | 国产偷国产偷亚洲清高 | 亚洲国产高清在线观看视频 | 国产夫妻自拍av | 国产精品入口久久 | 欧美性大战久久久久 | 97av在线视频 | 欧美小视频在线观看 | 天天综合久久 | 成人黄色一级视频 | 一区免费观看 | 国产精品视频永久免费播放 | 91视频免费看 | 五月婷亚洲 | 三级黄色片子 | 国产视频在线观看免费 | 日日躁夜夜躁aaaaxxxx | 91视频观看免费 | 婷婷国产v亚洲v欧美久久 | 色婷婷九月| 九九热1 | 美女国产精品 | 国产丝袜美腿在线 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 五月婷婷六月丁香 | 九九在线视频免费观看 | 国产精品久久99精品毛片三a | av福利电影 | 久久视讯| 日韩亚洲在线观看 | 免费av网站在线看 | 国产精品久久久久久久久费观看 | av综合av| 亚洲二级片 | 激情网五月天 | 欧美一级黄大片 | 中文字幕乱码在线播放 | 精品视频资源站 | 射射射综合网 | 一区二区视 | 国产中文字幕91 | 美女在线黄 | 国内精品久久久久影院优 | 99久久精品免费看国产免费软件 | 成人精品999 | 99国产精品一区二区 | 精品国产一区二区三区日日嗨 | 国产亲近乱来精品 | 国产手机av在线 | 国产精品自产拍 | 又长又大又黑又粗欧美 | 99精品国产99久久久久久97 | 97色综合| 国产亚洲综合精品 | 亚洲码国产日韩欧美高潮在线播放 | 免费看的国产视频网站 | 久久精品免视看 | 成人在线超碰 | 最新色站| 国产尤物一区二区三区 | 久久亚洲影院 | av中文天堂 | 男女激情片在线观看 | 亚洲天堂精品视频在线观看 | 国产不卡在线观看视频 | www.亚洲精品视频 | 久久综合九色综合97婷婷女人 | 成人av影视 | 日本特黄一级片 | 日本精品视频免费观看 | 日韩 精品 一区 国产 麻豆 | 天天插综合网 | 97超碰人人干 | 色播五月激情五月 | 久久人人射 | 免费av网站观看 | 成人香蕉视频 | 久二影院 | 国产香蕉久久精品综合网 | 中文区中文字幕免费看 | 色婷婷激情综合 | 热99在线视频 | 婷婷久久亚洲 | 91看片在线 | 日本在线观看中文字幕无线观看 | 91精品老司机久久一区啪 | 婷婷av电影 | 在线亚洲精品 | 麻豆免费视频观看 | 日韩美在线观看 | 91私密视频 | 在线观看mv的中文字幕网站 | 久久毛片高清国产 | 日韩色av色资源 | 亚洲国产操 | 全久久久久久久久久久电影 | 青青看片| www.91av在线| 成人av教育 | 欧美性爽爽 | 久久看片 | 美女黄色网在线播放 | 91最新中文字幕 | 色婷婷99 | 精品久久免费 | 精品国产乱码久久久久久浪潮 | 中文字幕中文中文字幕 | 亚洲极色| 99视频在线精品免费观看2 | 日韩性久久 | 亚洲电影成人 | 国产香蕉在线 | 国产伦理剧 | 五月亚洲 | 91av视频观看 | 欧洲不卡av | 久久精品电影网 | 色香蕉视频 | japanesexxxhd奶水 国产一区二区在线免费观看 | 伊人伊成久久人综合网小说 | 久久国产精品久久精品国产演员表 | 91亚洲精品久久久中文字幕 | 精品资源在线 | av网站在线观看播放 | 四虎成人免费影院 | 久久久九色精品国产一区二区三区 | 日韩欧美在线观看一区 | 亚洲成av人片在线观看香蕉 | 日韩三级视频在线观看 | 九九色在线观看 | 久久五月情影视 | 日韩中文在线播放 | 免费观看一级一片 | 天天操夜夜操 | 成人精品在线 | 国产在线观看国语版免费 | 国产亚洲精品久久久久久移动网络 | 综合激情av| 欧洲亚洲精品 | 亚洲精品视频在线免费播放 | 四虎在线视频免费观看 | 在线看v片成人 | 亚洲成a人片在线观看网站口工 | 在线观看亚洲专区 | 在线激情影院一区 | 久久99在线| 欧美日韩视频一区二区三区 | 精品在线观看一区二区 | 午夜久久久影院 | 午夜三级毛片 | 亚洲性少妇性猛交wwww乱大交 | 亚洲人成人在线 | bbbb操bbbb | 毛片1000部免费看 | 最近乱久中文字幕 | 丝袜美女视频网站 | 玖玖视频免费在线 | 射九九 | 成人四虎影院 | 最近中文字幕久久 | 久久网站最新地址 | 色资源网免费观看视频 | 五月婷婷中文网 | 亚洲最大av网 | 99色免费 | 中文字幕 成人 | 国产精品久久久久久久久久免费看 | 久久精品视频在线观看免费 | 欧美aaaxxxx做受视频 | 日本爱爱免费 | www亚洲一区 | 中文免费在线观看 | 综合影视| 国产爽视频 | 操久久网| 国产精品免费在线 | 国产探花视频在线播放 | 深爱开心激情 | 91在线小视频 | 婷婷色影院| 88av视频 | 97夜夜澡人人双人人人喊 | 亚洲国产日韩一区 | av综合在线观看 | 99精品视频在线播放观看 | 国产成人精品久久久久 | 四虎免费在线观看视频 | 色妞色视频一区二区三区四区 | 免费中文字幕视频 | 久草在线资源免费 | 最新av电影网站 | 精品久久久国产 | 操操操影院 | 日韩乱码在线 | 在线视频一二区 | 久色网| 精品国产成人av在线免 | 成人av教育 | 在线观看视频三级 | 波多野结衣一区二区 | 国产精品21区 | 亚洲人在线视频 | 国产精品福利无圣光在线一区 | 99国产精品一区二区 | 亚洲视屏 | 日韩免费一级a毛片在线播放一级 | 一级黄色在线免费观看 | 久久露脸国产精品 | 日韩精品久久久久久 | 美女一级毛片视频 | 天天操天天操天天操天天 | 欧美小视频在线观看 | 91系列在线观看 | 看黄色.com | 国产一级视屏 | 91成人免费在线 | 久久99精品久久久久久久久久久久 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产精品久久久久久欧美 | 欧美一级在线 | 久久综合九色 | 国产最新视频在线 | 国产免费观看高清完整版 | 日韩黄在线观看 | 亚洲欧美视频在线观看 | 国产资源中文字幕 | 国产高清免费 | 狠狠88综合久久久久综合网 | 人人爽人人乐 | 成人免费共享视频 | av免费网站 | 国产精品日韩在线 | 人人澡人人舔 | 人人爽人人干 | 麻豆激情电影 | 亚洲成人网av | 午夜精品久久久久久久久久 | 狠狠的干狠狠的操 | 日本精品一二区 | 欧美福利精品 | 天天操天天舔天天爽 | 97在线视| 国产成在线观看免费视频 | 国产精品福利av | 日韩精品久久久 | 97超碰国产精品 | 亚洲综合在线五月天 |