• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            麒麟子

            ~~

            導航

            <2023年2月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627281234
            567891011

            統(tǒng)計

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            #

            使用R7版NDK搭建Android開發(fā)環(huán)境[不使用Cgywin]

            廢話不多說,只說幾句。

            寫這個的初衷是因為公司的項目需要,領導要求我搭建一個Android的開發(fā)環(huán)境(Eclipse + NDK),我算上找資料,下載,安裝,配置環(huán)境及寫文檔,正好用了一個工作日。先把整理好的文檔編輯后發(fā)在這里,一是因為我覺得這樣會幫到一些人,二么,好久沒寫博客,手癢癢了!

            好了,現(xiàn)在開始!

            —————————————————分割線———————————————

            安裝流程

            1. 安裝JDK.

            2. 安裝Eclipse(eclipse-cpp-indigo-SR1-incubation-win32.zip,解壓即可使用。注:該版本集成CDT)

            3. 搭建Android開發(fā)環(huán)境(參考文檔:http://developer.android.com/sdk/installing.html

            3.1 安裝Android SDK(installer_r16-windows)

            3.2 安裝Eclipse的ADT插件.

            3.2.1 啟動Eclipse, 選擇菜單項的Help->Install New Software

            3.2.2 點擊Add, 輸入名稱,然后在URL中輸入:

            http://dl-ssl.google.com/android/eclipse/,OK!

            3.2.3 選擇需要更新的工具,F(xiàn)inish, 安裝完成后重啟Eclipse。

            3.3 配置ADT插件

            3.3.1 啟動Eclipse,選擇菜單項的Window -> Preferences

            3.3.2 選擇Android,在SDK Location中選擇SDK的安裝目錄,OK!

            完成后重新啟動Eclipse。

            3.4 添加平臺和其他組件

            3.4.1 啟動Eclipse,選擇菜單項的Window -> Android SDK Manager

            3.4.2 根據(jù)實際需要選擇相應組件,然后點擊install。

            默認可安裝以下組件,如圖一所示:

            (圖一)

            3.4.3 創(chuàng)建一個Android 虛擬設備。選擇菜單項的Window ->AVD Manager.

            New ,新建一個虛擬設備,具體參數(shù)請自行設置。如圖二所示:

            4. 安裝NDK(R7, android-ndk-r7b-windows.zip, 解壓即可使用)

            注:R7之前的版本,必須要安裝Cygwin才能使用NDK。從R7開始,Windows版本的NDK提供了一個ndk-build.cmd腳本,可以直接利用這個腳本編譯。想要做到這一點,只要為Eclipse Android工程添加一個Builder,就能實現(xiàn)Eclipse的自動編譯NDK。

            (圖二)

            5. NDK實例的實現(xiàn)

            5.1 啟動Eclipse,新建Android工程(此處名為TestNDK),如圖三所示:

            (圖三)

            5.2 在TestNDK工程的根目錄下新建文件夾jni,之后找到NDK的安裝目錄(\samples\hello-jni\jni)下的 Android.mk和hello-jni.c 這兩個文件,將其拷貝到TestNDK->jni文件夾下面。

            5.3 找到NDK的安裝目錄(\samples\hello-jni\src\com\example\hellojni)下的HelloJni.java文件,將其拷貝到TestNDK工程src文件夾對應的包下。

            5.4 修改項目文件AndroidManifest.xml,將activity標簽下的 android:name =“.TestNDKActivity”修改為 android:name =“.HelloJni”。(注:此處的

            TestNDKACtivity為項目自動生成的,項目不同,此處也會不同)

            5.5 新建并配置一個Builder

            5.5.1 點擊Project->Properties->Builders->New,新建立一個Builder。在彈出的對話框上面點擊Program,OK!如圖四所示:

            (圖四)

            5.5.2 在彈出的對話框【Edit Configuration】中,配置選項卡【Main】:

            Location中需要填入nkd-build.cmd的路徑(NDK安裝目錄下)。

            Working Diretcoty中需要填入TestNDK的工程根目錄。

            如圖五所示:

            5.5.3 在彈出的對話框【Edit Configuration】中,配置選項卡【Refresh】:

            勾選“Refresh resources upon completion”,

            勾選“The entire workspace”,

            勾選“Recuresively include sub-folders”。

            (圖五)

            5.5.4 在彈出的對話框【Edit Configuration】中,配置選項卡【Build Options】:

            勾選“After a “Clean””,

            勾選“During manual builds”,

            勾選“During auto builds”,

            勾選“Specify working set of relevant resources”。

            點擊“Specify Resources…”勾選TestNDK工程的“jni“目錄 ,F(xiàn)inish!

            保存設置,OK!

            5.5.5 右鍵點擊工程TestNDK,Build Project。當在console里面看到如圖六所示的信息,則表示一切正常,此時就已經(jīng)是自動編譯代碼了。

            (圖六)

            5.5.6 右鍵點擊工程TestNDK,Run As -> Android Application, 運行程序。當出

            現(xiàn)圖七所示信息時,NDK實例運行成功!

            (圖七)

            6. 可能出現(xiàn)的問題

            如圖八所示:

            (圖八)

            在 c 文件中,函數(shù)名這樣定義:

            Java_testNDK_android_HelloJni_stringFromJNI ,是因為這個是 JNI 的標準,定義需要按照如下格式:

            Java_packagename_classname_methodname ,

            例如: Java_testNDK_android_HelloJni_stringFromJNI

            —————————————————分割線—————————————————

            由于本人水平有限,所寫文字肯定會有不妥之處,歡迎牛人指出答疑,我就在此拋磚引玉了,謝謝~

            歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明轉(zhuǎn)自:http://www.cnblogs.com/xiaomiao

            posted @ 2013-02-22 22:39 麒麟子 閱讀(1492) | 評論 (0)編輯 收藏

            終于,我生命中第一次編譯并運行了手機程序

            Android的環(huán)境搭建是相當麻煩,拆騰了很多次,這一次終于狠下心來,研究了三天。

            可能不同的人遇上的錯誤不一樣吧。 網(wǎng)上找來的文章也不能解決所有問題。 但最完整的一篇要算下面這個。它基本上描述出了我所遇上的所有問題。

             

            讓人死去活來的cocos2d-x安卓開發(fā)環(huán)境搭建(windows+eclipse+ndk 不用cygwin)

            http://www.cnblogs.com/ybgame/archive/2012/06/07/2540693.html

            若原文鏈接失效,本博客上一篇就是它了。

            值得注意的是幾點

            第一、JDK 用的是1.6的,我最開始是1.7的,不好使。也遇上了各種錯誤。

            第二、Android SDK的開發(fā)最好選擇2.2以及以上,不然編譯也會有兩三個函數(shù)過不了。

            第三、在用Android手機調(diào)式的時候,可能找不到設備。 此時可以先點一下 打開USB存儲設備 等驅(qū)動裝好再關掉。如果還是沒反應。 就下一個豌豆莢吧。直接就搞定。裝好以后,可以卸載掉它。 手機上的調(diào)試選項一定要開。

            第四、文章中提到的編輯出錯和資源拷貝不要忘記了。

            第五、NDK_MOUDLE_PATH要記得配置,因為文章中只有幾句話。容易看掉。

            第六、我的AVD還是運行不了,只能真機調(diào)試。 無奈中。

            最后上圖,以此紀念邁出的這一小步。

            2000

            posted @ 2013-02-22 22:39 麒麟子 閱讀(277) | 評論 (0)編輯 收藏

            安卓環(huán)境搭建

            原文出處:http://www.cnblogs.com/ybgame/archive/2012/06/07/2540693.html

            【一 寫在前面】

            環(huán)境搭建的順序是這樣

            1.JDK&JRE 安裝JDK會順帶安裝JRE的,這一步是為了可以編寫和允許普通的JAVA程序

            2.Eclipse JAVA 的 IDE,這一步是為了方便地開發(fā)JAVA程序

            3.CDT 是Eclipse的一個插件,這一步是為了可以引入C++

            4.ADT 是Eclipse的一個插件,這一步是為了管理安卓開發(fā)庫

            5.ADK 上一步是工具,這一步就是開發(fā)庫了,到了這一步你可以編寫普通的安卓程序

            6.NDK 單有CDT還不行,它只能編輯,不能編譯,這一步是為了可以編譯C++程序,然后在安卓中使用

            這里不需要使用cygwin這個麻煩的東西,我們使用新版本的ndk來編譯C++

            【二 JDK的安裝】

            JDK的最新版本是1.7,【重要】這里需要下載使用 1.6的JDK,JDK自動包含JRE,使用1.7的JDKcocos的代碼會有"暫時性編譯錯誤"問題

            下載安裝都是一路Next,下面的內(nèi)容是安裝1.7之后降1.6的方法,直接安裝1.6的可以飄過

            下載地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

            根據(jù)自己的操作系統(tǒng)選擇,這里我用的是Java SE Development Kit 6u30

            如果你像我一樣不幸,裝上了1.7,可以用下面的方法來恢復降到1.6

            1.打開windows的Preferences,把Compiler compliance level 設置到1.6

            然后會顯示讓你配置JRE

            在配置jre中添加jre的目錄,然后選定

            這里,我們在Eclipse里面設置好了JRE6,以及編譯使用的JDK,但還不可以

            接下來要設置一下你的項目,打開Project Properties,Add Library 然后Next,接下來會要你選擇JRE的路徑

            這里我們直接選擇剛剛在windows Preferences設置好的JRE6,然后Finish即可

            此時你會發(fā)現(xiàn)更多的紅叉叉,所有文件都出現(xiàn)紅叉叉了,讓我們把他們消除掉,這次很簡單,剛剛重置JRE的時候,吧安卓也重置掉了

            把安卓ADK勾上就可以了

            【三 安裝Eclipse和CDT】

            這里我直接用這一個,帶CDT插件,已經(jīng)有Eclipse的同學可以去下載一個CDT

            Eclipse解壓就可以直接使用了,這里不墨跡

            Eclipse C++版本下載地址 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2

            【四 安裝ADT】

            兩種安裝方法,一種在線安裝,一種下載安裝,網(wǎng)速問題,我傾向于下載安裝。

            注意,請下載1.7及以上版本的ADT,這里使用1.8的版本

            在Help里面,選擇Install New Software...

            然后選擇Add,如果是在線安裝,在Location里面填https://dl-ssl.google.com/android/eclipse/

            (不行的話,把https改為http試試)

            如果是下載安裝,先把ADT下載到本地,然后按Archive選擇ADT的路徑,點 ok,勾上Developer Tools開始安裝

            ADT 1.8的地址:http://dl.google.com/android/ADT-18.0.0.zip

            PS。這個安裝需要一段時間.....不要以為它死機了,掛了,如果你的機器或者網(wǎng)絡不給力,讓你感覺到不耐煩

            請不要強制關閉它....否則,你可能要看接下來的錯誤排除

            安裝完畢之后重啟Eclipse,然后會提示你安裝ADK

            如果你非常不幸安裝了1.6以及以前版本的ADT,或者強制中斷了它的安裝....那么你需要把它卸掉

            它將無法創(chuàng)建安卓項目...,而卸載,也是一個麻煩的事情

            首先,需要把這個插件刪除,在Help的About找到對應的ADT,然后刪除

            接下來從軟件更新列表中,刪除我們的ADT

            【五 安裝ADK】

            安裝完ADT之后,重啟Eclipse會提示你安裝ADK,你可以指定路徑,或者下載安裝

            可以在這個地址下載ADK http://developer.android.com/sdk/index.html

            如果是下載的話,建議下載2.1,他的兼容性比較好,本地的話,指定ADK解壓后的路徑即可

            【六 安裝NDK】

            到這里為止,我們已經(jīng)可以使用Eclipse來編寫安卓程序了,但我們的目的是用C++編寫cocos,要達到這個目的,還需要最后一步——NDK

            使用NDK有兩個目的,第一個是將我們的C++代碼編譯成鏈接庫,這里的鏈接庫是Linux下的so或者a文件,不同于windows的dll

            第二個目的是Jni,Java需要通過Jni來調(diào)用我們的C++代碼

            下載地址為:http://dl.google.com/android/ndk/android-ndk-r7-windows.zip

            下載完畢之后解壓,這里給出最簡單的步驟,在編譯的過程中會碰到各種問題,這里也將一一解答

            首先我們要創(chuàng)建一個Android項目

            使用最新版本的Cocos2d-x,我們用他的HelloWorld來做試驗

            項目打開之后,,,,這里發(fā)現(xiàn)一個錯誤,沒有setEGLContextClientVersion這個方法,這里,暫時把它注釋掉吧

            看意思應該是設置OpenGL ES的版本....反正默認的應該可以

            然后看到控制臺輸出一句話

            這里在Application.mk加上APP_PLATFORM :=android-4就可以了

            接下來我們要把NDK加進來,讓NDK來編譯我們的C++

            指定ndk-build.cmd來編譯我們的項目,下面的工作路徑將作為參數(shù)傳入給ndk-build.cmd,

            我們選擇項目的路徑,它會自動編譯jni子目錄下的Android.mk

            這時候如果是cocos2d-1.0.1-x-0.13.0-beta以及之前的版本,是可以進行編譯的,但如果是之后的版本,有可能出現(xiàn)如下錯誤

            Android.mk引用了一個模塊,cocos2dx模塊,而NDK沒有找到它,所以報了這個錯,

            之前的版本是直接包含cocos2dx模塊的Android.mk的,所以不會報錯

            而這里使用了import,我們也可以使用之前版本的方法來包含它,但貌似import比之前的方法要更好一些

            錯誤信息提示我們,可以通過設置NDK_MODULE_PATH環(huán)境變量,這里很有可能設置錯誤

            一般,一個Android.mk包含一個或多個模塊,當你要import cocos2dx模塊時,

            他會在這個路徑下% NDK_MODULE_PATH\cocos2dx尋找Android.mk文件

            所以我們編輯我們的Builder

            添加NDK_MODULE_PATH變量,注意要寫兩個路徑,用分號分開

            D:\SDK\cocos2d-2.0-rc0a-x-2.0;D:\SDK\cocos2d-2.0-rc0a-x-2.0\cocos2dx\platform\third_party\android\prebuilt

            因為cocos2dx還import了其他幾個module,第二個路徑制定了第三方的module,設置完就可以進行編譯了

            我用的是最新的2.0,有些頭文件沒找到,一些類型也有問題....密密麻麻地近百個錯誤。。。

            我們試著用低一點的版本吧

            接下來又出現(xiàn)了一個找不到靜態(tài)庫的問題

            把<NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi/目錄下的libgnustl_static.a

            拷貝到obj/local/armeabi/libgnustl_static.a目錄下,解決

            最后生成的apk放在bin目錄下

            PS.資源文件需要放在assets下,ADT會將它打包到apk中

            posted @ 2013-02-22 22:39 麒麟子 閱讀(687) | 評論 (0)編輯 收藏

            about porting

            http://www.diybl.com/course/3_program/c/c_js/20100710/426527.html

            http://www.shnenglu.com/lyricc/archive/2012/01/12/164071.aspx

            搞了幾個跨Linux與Windows的項目,碰到很多問題,記下來,以供查考。另外,因為水平的原因,肯定錯誤在所難免,請讀者一定指正。

              如無其它說明,本文所指Linux均表示2.6內(nèi)核Linux,GCC編譯器,Windows均表示W(wǎng)indows XP系統(tǒng),Visual Studio 2005 sp1編譯環(huán)境。

              下面大概分幾個方面進行羅列:

            socket

              Linux要包含

            #include <sys/socket.h>
            #include <netinet/in.h>
            #include <netdb.h>
            #include <arpa/inet.h>
            等頭文件,而windows下則是包含 #include <winsock.h>

              Linux中socket為整形,Windows中為一個SOCKET。

              Linux中關閉socket為close,Windows中為closesocket。

              Linux中有變量socklen_t,Windows中直接為int。

              因為linux中的socket與普通的fd一樣,所以可以在TCP的socket中,發(fā)送與接收數(shù)據(jù)時,直接使用read和write。而windows只能使用recv和send。

              設置socet選項,比如設置socket為非阻塞的。Linux下為

            flag = fcntl (fd, F_GETFL);
            fcntl (fd, F_SETFL, flag | O_NONBLOCK);
            ,Windows下為 flag = 1;
            ioctlsocket (fd, FIONBIO, (unsigned long *) &flag);

              當非阻塞socket的TCP連接正在進行時,Linux的錯誤號為EINPROGRESS,Windows的錯誤號為WSAEWOULDBLOCK。

            file

              Linux下面,文件換行是"\n",而windows下面是"\r\n"。

              Linux下面,目錄分隔符是"/",而windows下面是"\"。

              Linux與Windows下面,均可以使用stat調(diào)用來查詢文件信息。但是,Linux只支持2G大小,而Windows只支持4G大小。為了支持更大的文件查詢,可以在Linux環(huán)境下加_FILE_OFFSET_BITS=64定義,在Windows下面使用_stat64調(diào)用,入?yún)?struct __stat64。

              Linux中可根據(jù)stat的st_mode判斷文件類型,有S_ISREG、S_ISDIR等宏。Windows中沒有,需要自己定義相應的宏,如

            #define S_ISREG(m) (((m) & 0170000) == (0100000))
            #define S_ISDIR(m) (((m) & 0170000) == (0040000))

              Linux中刪除文件是unlink,Windows中為DeleteFile。

            time

              Linux中,time_t結(jié)構(gòu)是32位的無符號整形。而windows中,time_t結(jié)構(gòu)是64位的整形。如果要在windows始time_t為32位無符號整形,可以加宏定義,_USE_32BIT_TIME_T。

              Linux中,sleep的單位為秒。Windows中,Sleep的單位為毫秒。即,Linux下sleep (1),在Windows環(huán)境下則需要Sleep (1000)。

              Windows中的timecmp宏,不支持大于等于或者小于等于。

              Windows中沒有struct timeval結(jié)構(gòu)的加減宏可以使用,需要手動定義:

            #define MICROSECONDS (1000 * 1000)

            #define timeradd(t1, t2, t3) do { \
            (t3)->tv_sec = (t1)->tv_sec + (t2)->tv_sec; \
            (t3)->tv_usec = (t1)->tv_usec + (t2)->tv_usec % MICROSECONDS; \
            if ((t1)->tv_usec + (t2)->tv_usec > MICROSECONDS) (t3)->tv_sec ++; \
            } while (0)

            #define timersub(t1, t2, t3) do { \
            (t3)->tv_sec = (t1)->tv_sec - (t2)->tv_sec; \
            (t3)->tv_usec = (t1)->tv_usec - (t2)->tv_usec; \
            if ((t1)->tv_usec - (t2)->tv_usec < 0) (t3)->tv_usec --, (t3)->tv_usec += MICROSECONDS; \
            } while (0)

            process

              Linux下可以直接使用system來調(diào)用外部程序。Windows最好使用WinExec,因為WinExec可以支持是打開還是隱藏程序窗口。用WinExec的第二個入?yún)⒅该鳎鏢W_SHOW/SW_HIDE。

            雜項

              Linux為srandom和random函數(shù),Windows為srand和rand函數(shù)。

              Linux為snprintf,Windows為_snprintf。

              同理,Linux中的strcasecmp,Windows為_stricmp。

            錯誤處理

              Linux下面,通常使用全局變量errno來表示函數(shù)執(zhí)行的錯誤號。Windows下要使用GetLastError ()調(diào)用來取得。

            Linux環(huán)境下僅有的

              這些函數(shù)或者宏,Windows中完全沒有,需要用戶手動實現(xiàn)。

              atoll

            long long
            atoll (const char *p)
            {
            int minus = 0;
            long long value = 0;
            if (*p == '-')
            {
            minus ++;
            p ++;
            }
            while (*p >= '0' && *p <= '9')
            {
            value *= 10;
            value += *p - '0';
            p ++;
            }
            return minus ? 0 - value : value;
            }

            gettimeofday

            #if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
            #define EPOCHFILETIME 11644473600000000Ui64
            #else
            #define EPOCHFILETIME 11644473600000000ULL
            #endif

            struct timezone
            {
            int tz_minuteswest;
            int tz_dsttime;
            };

            int
            gettimeofday (struct timeval *tv, struct timezone *tz)
            {
            FILETIME ft;
            LARGE_INTEGER li;
            __int64 t;
            static int tzflag;

            if (tv)
            {
            GetSystemTimeAsFileTime (&ft);
            li.LowPart = ft.dwLowDateTime;
            li.HighPart = ft.dwHighDateTime;
            t = li.QuadPart; /* In 100-nanosecond intervals */
            t -= EPOCHFILETIME; /* Offset to the Epoch time */
            t /= 10; /* In microseconds */
            tv->tv_sec = (long) (t / 1000000);
            tv->tv_usec = (long) (t % 1000000);
            }

            if (tz)
            {
            if (!tzflag)
            {
            _tzset ();
            tzflag++;
            }
            tz->tz_minuteswest = _timezone / 60;
            tz->tz_dsttime = _daylight;
            }

            return 0;
            }

            posted @ 2013-02-22 22:38 麒麟子 閱讀(492) | 評論 (0)編輯 收藏

            Android SDK r20.x更新時,沒有Android API的問題

            很久沒寫日志了,今天要記錄一個讓我覺得很糾結(jié)的問題。

            今天突然想嘗試一下最新版的ANDROID SDK的滋味。但在升級的時候卻發(fā)現(xiàn)沒有API列表。

            如下圖,紅圈內(nèi)的內(nèi)容。

            image

            糾結(jié)了很久。 先是在官網(wǎng)上下載的 installer_r20.0.3-windows.exe

            安裝后啟動了Android SDK Manager。 啟動后發(fā)現(xiàn)情況依舊。

            于是又在網(wǎng)上找了一個綠色版android-sdk_r20-windows.zip

            發(fā)現(xiàn)運行后依然顯示不出API。

             

            實在無耐,開始百度。 找了許久,終于有一位老兄給了明確的說法。并且也成功了。貼出來表示感激

            android-sdk_r20.0.3-windows無法正常更新 http://my.oschina.net/jerikc/blog/77406

             

            下面是原文內(nèi)容,不想跳轉(zhuǎn)的朋友可以直接看這里。 同時也是為了防止原文失效。

            --------------------------------

            在www.android.com下載最新版的android-sdk_r20.0.3-windows之后,點擊SDK Manager.exe,發(fā)現(xiàn)無法顯示Updates/New的內(nèi)容,因此無法進行更新。

            菜單Tools-->options中的Force https://...sources to be fetched using http://...勾選上之后,問題依舊。

            最終解決方案:

            在C:\WINDOWS\system32\drivers\etc目錄下,找到hosts文件,在文件末尾加上

            74.125.237.1 dl-ssl.google.com

            ---------------------------------

             

            如果是WIN7用戶,可能無法直接修改hosts文件。

            有兩個方法。一個是先用管理員身份運行記事本,再把hosts拖進去。就可以使用保存了。

            另一個就是先把hosts文件拷貝出來,修改完后再替換原來的。

             

             

            至于為什么更新后就不行了,我就不清楚了。 原貼中的評論可供參考。。。

            posted @ 2013-02-22 22:38 麒麟子 閱讀(3065) | 評論 (2)編輯 收藏

            僅列出標題
            共38頁: First 5 6 7 8 9 10 11 12 13 Last 
            久久无码AV一区二区三区| 精品国产婷婷久久久| 人妻精品久久久久中文字幕69| 久久久久久精品免费看SSS | 久久99精品久久久久久久久久| 久久99精品久久久久久hb无码 | 久久有码中文字幕| 亚洲精品乱码久久久久久| 亚洲综合精品香蕉久久网97| 麻豆国内精品久久久久久| 色综合久久久久综合体桃花网| 国产精品美女久久久久AV福利| 思思久久精品在热线热| 亚洲狠狠综合久久| 亚洲午夜久久久久久噜噜噜| 久久久久一本毛久久久| 久久亚洲国产午夜精品理论片 | 亚洲а∨天堂久久精品9966| 国内精品久久久久影院日本| 波多野结衣久久一区二区| 国产叼嘿久久精品久久| 国产精品久久久久久影院| 无码八A片人妻少妇久久| 久久精品成人免费观看97| 老司机国内精品久久久久| 久久精品国产亚洲av影院| 亚洲国产精品无码久久98| 伊人久久国产免费观看视频| 成人精品一区二区久久| 91精品国产9l久久久久| 久久精品国产精品亚洲毛片| 久久亚洲精品无码AV红樱桃| 亚洲精品国产第一综合99久久| 久久国产成人午夜AV影院| 伊人色综合久久| 99久久精品免费国产大片| www亚洲欲色成人久久精品| 91精品国产91热久久久久福利 | 新狼窝色AV性久久久久久| 亚洲精品乱码久久久久久蜜桃图片 | 国内精品久久久久久久久|