• <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>

            colorful

            zc qq:1337220912

             

            cocos2d-x-2.2.2 android開發環境

            一、準備
            1. adt-bundle(包括了eclipse+sdk)
            2. ndk: r9版本以上, 無需安裝cygwin,新版本ndk不再依賴該編譯環境
            3. cocos2d-x-2.2.2
            4. jdk

            二  安裝
            1 安裝jdk,配置java環境
            JAVA_HOME:D:\Andorid\Java\jdk1.7.0_25(安裝路徑)
            CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
            Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
            運行 java -version
                 javac
            檢測是否安裝成功

            2 解壓cocos2dx, 安裝cocos2dx, cmd到cocos2dx目錄下,運行build-win32.bat

            3 配置 eclipse
              打開eclipse,點擊window->perfernces->Android,
              在SDK Location中填上剛剛下的adt-bundle解壓后的D:\Andorid\adt\sdk
              window->perfernces->Android->NDK中填ndk路徑 D:\Andorid\android-ndk-r9(自己的解壓路徑)
             
            導入android項目
             項目屬性->c/c++ build->Builder Settings->Bild command:填寫ndk路徑\ndk-build.cmd
             項目屬性->c/c++ build->Environment 添加變量 NDK_MODULE_PATH    cocos2dx目錄;cocos2dx目錄\cocos2dx\platform\third_party\android\prebuilt

            posted @ 2014-07-24 17:55 多彩人生 閱讀(311) | 評論 (0)編輯 收藏

            jdk與jre的區別

            http://www.cnblogs.com/myitm/archive/2011/05/03/2035942.html

            很多程序員已經干了一段時間java了依然不明白jdk與jre的區別。
            JDK就是Java Development Kit.簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運行環境。SDK是Software Development Kit 一般指軟件開發包,可以包括函數庫、編譯程序等。
            JRE是Java Runtime Enviroment是指Java的運行環境,是面向Java程序的使用者,而不是開發者。
            如 果安裝了JDK,會發同你的電腦有兩套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目錄下,后面這套比前面那套少了Server端的Java虛擬機,不過直接將前面那套的Server端Java虛擬機復制過來就行了。而且在安裝JDK可 以選擇是否安裝這個位于 C:\Program Files\Java 目錄下的JRE。如果你只安裝JRE,而不是JDK,那么只會在 C:\Program Files\Java 目錄下安裝唯一的一套JRE。
            JRE的地位就象一臺PC機一樣,我們寫好的Win32應用程序需要 操作系統幫我們運行,同樣的,我們編寫的Java程序也必須要JRE才能運行。所以當你裝完JDK后,如果分別在硬盤上的兩個不同地方安裝了兩套JRE, 那么你可以想象你的電腦有兩臺虛擬的Java PC機,都具有運行Java程序的功能。所以我們可以說,只要你的電腦安裝了JRE,就可以正確運行Java應用程序。
            1、為什么Sun要讓JDK安裝兩套相同的JRE?
            這 是因為JDK里面有很多用Java所編寫的開發工具(如javac.exe、jar.exe等),而且都放置在 \lib\tools.jar 里。從下面例子可以看出,先將tools.jar改名為tools1.jar,然后運行javac.exe,顯示如下結果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 這個意思是說,你輸入javac.exe與輸入 java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main 是一樣的,會得到相同的結果。從這里我們可以證明javac.exe只是一個包裝器(Wrapper),而制作的目的是為了讓開發者免于輸入太長的指命。 而且可以發現\lib目錄下的程序都很小,不大于2 9K,從這里我們可以得出一個結論。就是JDK里的工具幾乎是用Java所編寫,所以也是Java應用程序,因此要使用JDK所附的工具來開發Java程 序,也必須要自行附一套JRE才行,所以位于C:\Program Files\Java目錄下的那套JRE就是用來運行一般Java程序用的。
            2、如果一臺電腦安裝兩套以上的JRE,誰來決定呢?
            這 個重大任務就落在java.exe身上。Java.exe的工作就是找到合適的JRE來運行Java程序。 Java.exe依照底下的順序來查找JRE:自己的目錄下有沒有JRE;父目錄有沒有JRE;查詢注冊表: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 所以java.exe的運行結果與你的電腦里面哪個JRE被執行有很大的關系。

            ADD:(小小結)
            1.JVM -- java virtual machineJVM就是我們常說的java虛擬機,它是整個java實現跨平臺的最核心的部分,所有的java程序會首先被編譯為.class的類文 件,這種類文件可以在虛擬機上執行,也就是說class并不直接與機器的操作系統相對應,而是經過虛擬機間接與操作系統交互,由虛擬機將程序解釋給本地系 統執行。2.JRE -- java runtime environmentJRE是指java運行環境。光有JVM還不能成class的執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫 lib。在JDK的安裝目錄里你可以找到jre目錄,里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需 要的類庫,而jvm和 lib和起來就稱為jre。所以,在你寫完java程序編譯成.class之后,你可以把這個.class文件和jre一起打包發給朋友,這樣你的朋友就 可以運行你寫程序了。(jre里有運行.class的java.exe)3.JDK -- java development kitJDK是java開發工具包,基本上每個學java的人都會先在機器上裝一個JDK,那他都包含哪幾部分呢?讓我們看一下JDK的安裝目錄。在目錄 下面有六個文件夾、一個src類庫源碼壓縮包、和其他幾個聲明文件。其中,真正在運行java時起作用的是以下四個文件夾:bin、include、 lib、 jre?,F在我們可以看出這樣一個關系,JDK包含JRE,而JRE包含JVM。bin:最主要的是編譯器 (javac.exe)include:java和JVM交互用的頭文件lib:類庫jre:java運行環境(注意:這里的bin、lib文件夾和 jre里的bin、lib是不同的)總的來說JDK是用于java程序的開發,而jre則是只能運行class而沒有編譯的功能。
            eclipse、idea等其他IDE有自己的編譯器而不是用JDK bin目錄中自帶的,所以在安裝時你會發現他們只要求你選中jre路徑就ok了。

            posted @ 2014-07-24 17:53 多彩人生 閱讀(234) | 評論 (0)編輯 收藏

            無名

            一直在看校友群,卻不知道該說什么.
            長大了一點也不好,不能像小時候那樣說話了

            posted @ 2014-06-30 14:17 多彩人生 閱讀(296) | 評論 (1)編輯 收藏

            適者生存

            有一個好成績不難,因為有老師給你指路,因為問題有標準答案. 而當你走上了社會,你會發現,沒有人再給你指路,也沒有人能給你指路,很多很多都是自己一次次嘗試,一次次失敗摸出來的. 這個社會更沒有標準答案, 大自然的生存法則就是適者生存,也就是強者生, 有說對錯嗎? 你適了,你強了,你就對了

            posted @ 2014-06-14 15:02 多彩人生 閱讀(141) | 評論 (0)編輯 收藏

            自定義路徑創建Cocos2d-x項目

            http://www.cnblogs.com/skynet/archive/2013/11/17/3428369.html


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

            自定義路徑創建Cocos2d-x項目

            本文介紹windows下面如何優雅的創建Cocos2d-x項目。為何稱之為優雅,是因為現在網上流傳的一些創建方法有一些問題。大致內容如下:

            使用VS向導創建Cocos2d-x項目(廢棄,不建議使用)

            使用create_project.py

            問題1:工程名等替換不完全

            問題2:創建項目不能指定路徑

            使用VS向導創建Cocos2d-x項目(廢棄,不建議使用)

            Cocos2d-x 2.1.3及之前,官方使用“install-template-msvc.bat”文件,安裝VS創建Cocos2d-x項目向導,然后可以按照向導創建Cocos2d-x項目。注意默認情況下,新建項目的存放的位置應該設置在Cocos2d-x引擎的安裝目錄下面,否則可能因為找不到庫文件而不能通過編譯。不過可以在設置項目屬性,頭文件和庫文件的搜索路徑來解決??梢詤⒖嘉抑暗囊黄┪摹?/span>C++靜態庫與動態庫》,里面介紹如何設置vs項目屬性使用靜態庫和動態庫。

            Cocos2d-x 2.1.4,官方建議使用“create_project.py”來創建Cocos2d-x項目,并將在版本廢棄了“install-template-msvc.bat”。

            We recommend you use multi-platform creating tools named create_project.py, which lies in tools/project-creator, to create a new project. This tool can create a project has the same folder structure as HelloCpp. Other tools such as create-android-project.sh will be removed in future.

            Note: VS template was deprecated in this release, please use 'tools/project-creator' instead.

            ——來自官網:http://goo.gl/yVAjMr

            我入手Cocos2d-x的時候,剛發布Cocos2d-x 2.1.4,就被這個坑了。Cocos2d-x 2.1.4廢棄了“install-template-msvc.bat”,但是下載壓縮包里面又有,可惡的是不能用的,各種報錯。同時網上流傳的就是使用這種方法,讓我繞了不少路。

            使用create_project.py

            create_project.pycocos2d-x/tools/project-creator/目錄下)使用方法比較簡單:

            Usage: create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMING_LANGUAGE

            Options:

             -project   PROJECT_NAMEProject name, for example: MyGame

             -package   PACKAGE_NAMEPackage name, for example: com.MyCompany.MyAwesomeGame

             -language PROGRAMING_LANGUAGEMajor programing lanauge you want to used, should be [cpp | lua | javascript]

            Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame

            Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame –language javascript

            注意:

            官方建議python使用2.7.3

            安裝python之后需要設置環境變量,或者使用該腳本時指定python路徑,如C:\python27\python.exe create_project.py …

            使用該方法創建項目之后,項目位于cocos2d-x/projects目錄下面。windows平臺進入proj.win32,打開工程文件即可。

            使用create_project.py創建項目的原理,即簡單地將cocos2d-x\template目錄下的三種語言模板multi-platform-cpp、multi-platform-lua、multi-platform-js復制到對應的新建工程目錄下,然后用PROJECT_NAME、PACKAGE_NAME替換模板中的HelloCpp/ HelloLua/ HelloJavascript。

            問題1:工程名等替換不完全

            下面是我用towergame做為工程名創建的lua項目,目錄如下:

            clip_image001[4]

            雖然可以正常編譯,但發現工程名未替換為towergame,這比較坑爹。一位日本開發者lettas已經有人提交了修復請求https://github.com/cocos2d/cocos2d-x/pull/3943,不過正式發布的版本中還沒有修改。急著用可以去github checkout下來用。

            問題2:創建項目不能指定路徑

            使用create_project.py不能自定義路徑,必須放在cocos2d-x/projects目錄下面,這個設定我認為非常不合理!這樣將自己的項目放到cocos2d-x引擎目錄中,不方便管理,即庫與項目耦合到一起了,如果cocos2d-x升級也不方便。

            比較合理的方案是:

            cocos2d-x獨立安裝,這樣對cocos2d-x升級也相對簡單。

            新建cocos2d-x項目獨立于cocos2d-x安裝路徑。通過設置搜索或引用路徑,讓項目能夠找到cocos2d-x安裝路徑。

            幸運的是,完全可以做到這樣。熟悉VS的同學應該知道,VS工程設置是支持環境變量的。通過下面的一些改造,可以讓新建的cocos2d-x項目獨立于cocos2d-x引擎目錄:

            1)     將通過create_project.py創建的項目剪切到你希望放置的目錄;

            2)     創建環境變量COCOS2DX_HOME,指向cocos2d-x安裝目錄;

            3)     *.sln文件使用文本方式打開,將里面的所有相對路徑“..\..\..”都替換為環境變量%COCOS2DX_HOME%,如“..\..\..\cocos2dx\proj.win32\cocos2d.vcxproj”替換為“%COCOS2DX_HOME%\cocos2dx\proj.win32\cocos2d.vcxproj”;

            4)     *.vcxproj文件使用文本方式打開,將里面debugrelease 2種模式下<AdditionalIncludeDirectories>節點定義的引用路徑中包含”$(ProjectDir)..\..\..\”都替換為環境變量“$(COCOS2DX_HOME)\”;注意這里使用環境變量的方式與*.sln中不一樣,是$(COCOS2DX_HOME)而非%COCOS2DX_HOME%。

            至此,大工告成!看下面的運行起來的vs工程:

            clip_image003[4]

            圖中依賴的工程跟將新建的項目放在cocos2d-x/projects目錄下面一樣可以鏈接到。

            上面的替換工作可以用文本的查找替換功能,可以輕松搞定。但是為了能夠與create_project.py集成,我提供下面一段代碼能夠自動替換.sln、.vcxproj文件中對于內容:

             #!/usr/bin/python   

            復制代碼
            #-*- encoding:utf-8 -*-   

            import sys, os

            def checkOption():
                argLen = len(sys.argv)
                targetPath = "./"
                if argLen == 2:
                    targetPath = sys.argv[1]
                    if not targetPath.endswith("/"):
                        targetPath += "/"
                return targetPath
                
            def replaceCocos2dxPath(path):
                filelists = os.listdir(path)
                for item in filelists:
                    suffix = (os.path.splitext(item))[1]
                    print(suffix)
                    if suffix == ".sln":
                        print('replace "..\..\..\" with %COCOS2DX_HOME% in *.sln')
                        #replace "..\..\..\" with %COCOS2DX_HOME% in *.sln 
                        content = open(path + item, 'r').read().replace("..\\..\\..\\""%COCOS2DX_HOME%\\")
                        file = open(path + item, 'w')
                        file.write(content)
                        file.close()
                    if suffix == ".vcxproj":
                        print('replace "$(ProjectDir)..\..\..\" with $(COCOS2DX_HOME)\ in *.vcxproj')
                        #replace "$(ProjectDir)..\..\..\" with $(COCOS2DX_HOME)\ in *.vcxproj
                        content = open(path + item, 'r').read().replace("$(ProjectDir)..\\..\\..\\""$(COCOS2DX_HOME)\\")
                        file = open(path + item, 'w')
                        file.write(content)
                        file.close()

            if  __name__ == '__main__':
                targetPath = checkOption()
                replaceCocos2dxPath(targetPath)
            復制代碼

            posted @ 2014-06-04 16:09 多彩人生 閱讀(705) | 評論 (0)編輯 收藏

            vs2012查找功能失效

            VS"Find in Files"失效的解決方法一:
            讓VS窗口獲得焦點,依次按以下快捷鍵
            Ctrl+Break
            Ctrl+Scroll Lock
            Alt+Break


            VS"Find in Files"失效的解決方法二:
            在注冊表中刪除"HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Find"后重啟VS.

            posted @ 2014-05-14 17:02 多彩人生 閱讀(1225) | 評論 (0)編輯 收藏

            vim 小盒子

            ---------------------------------------------------------------
             gvim 不生成備份文件
             set nobackup

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

            posted @ 2014-03-26 16:22 多彩人生 閱讀(362) | 評論 (0)編輯 收藏

            中興光貓超級用戶破解

            打開putty工具(百度就可找到), 點擊session,輸入IP ,端口23,選著Telnet 點擊Open, 輸入用戶名root 密碼 Zte521 (密碼一般為“root”、“Zte521”、“telecomadmin”等), 進入后輸入sendcmd 1 DB p DevAuthInfo 就可得到telecomadmin超級用戶的密碼 我的是F612, 密碼放在DevAuthInfo表里,一般光貓是放UserInfo表里 運行sendcmd有2種方法: 1.telnet直接運行shell的命令。 2.瀏覽器訪問http://192.168.1.1/web_shell_cmd.gch 簡單說明:(基本語法) 1.讀取全部表名:sendcmd 1 DB all 輸出所有的表名,我這個光貓大概有200多個表。具體設置在哪里改,需要自己慢慢研究。 2.讀取指定表詳細信息: sendcmd 1 DB p 表名 比如sendcmd 1 DB p UserInfo,查看路由器帳號和密碼,超級密碼也在這里查看,如下圖 2013年01月22日 - 焉逢 - 流年 3.查看當前系統運行的服務狀態:sendcmd -pc show 4.修改某個表的某個字段的值:sendcmd 1 DB set 表名 行數 字段名 字段值 比如你要修改上面的那個超級密碼:sendcmd 1 DB set UserInfo 0 Password 123456 要修改上面的那個用戶密碼:sendcmd 1 DB set UserInfo 1 Password 123456就是修改普通戶名密碼為123456 行數就是 這個里面No的值,這里是0,下面用戶的行數那么行數就是1 字段名就是DM name后面引號中的名稱,注意大小寫。 字段值就是要設置的值 5.保存對配置文件的修改:sendcmd 1 DB save 不保存也是可以的,最好保存下。

            posted @ 2014-03-23 17:35 多彩人生 閱讀(11174) | 評論 (0)編輯 收藏

            關于定時器

            http://www.iwms.net/n1251c13.aspx

            定時器是個很有意思的東西,它很有用,但我認為這不是現代計算機的結構所擅長的事情。
            計算機適合做那些很大量的簡單重復工作,或者根據請求做出回應。

            DOS時代是沒有進程線程等概念的,那時候要想做到定時真是有些麻煩
            通常的做法是死循環不斷監測時間,發現時間到了就做特定的事情
            當然你可以用delay,來指定等待多長時間,但是如果你一邊要響應用戶的操作,比如輸入,一邊要定時做些
            事情就是一件麻煩的事了

            當然有些人可以這樣做,截取系統的時鐘中斷(我忘了中斷號是多少了),每秒鐘有18.2次
            當這些做法都不是很優雅。但DOS時代只能這樣湊合著了

            Windows是個偉大的進步,系統提供了Timer支持,但是問題是這個定時器并不準時而且有時候根本不能用。

            Win32 API中有個SetTimer函數,可以為一個窗口創建一個定時器,這個定時器會定時產生消息WM_TIMER也可以調用
            指定的回調函數,其實這都是一樣的,因為都是單線程的。

            單線程的定時器會有很多問題,首先是不準時,定時器只是定時把消息WM_TIMER訪到線程的消息隊列里,但是并不保證消息會立刻被響應,如果
            碰巧系統比較忙,那么消息可能會在隊列里放一端時間才被響應,還會造成本來應該間隔一段時間發生的消息響應連續發生了

            解決方法通常是

            OnTimer(...)
            {
             //Timer process.....
             
             MSG msg;
             While(PeekMessage(&msg, m_hWnd, WM_TIMER, WM_TIMER, PM_REMOVE));
            }
            在當前Timer處理中,把消息隊列里的WM_TIMER消息,清除掉。

            更糟的是如果你不去調用GetMessage,那么就不會有Timer發生了。
            這個問題直到win xp都沒什么改變,似乎微軟并不打算在Win32 API中解決這個問題了。

            .NET Framework為我們帶來了新的解決方案

            .NET Framework提供三種Timer

            Server Timers        System.Timers.Timer
            Thread Timers       System.Threading.Timer
            Windows Timers   System.Windows.Forms.Timer

            其中Windows Timers只是提供了和WinAPI 一樣的Timer,仍然是基于消息,仍然是單線程

            其它兩個就不同了,他們是基于線程池的Thread Pool,這樣最大的好處在于,產生的時間間隔準確均勻。
            Server Timers  和 Thread Timers 的不同在于ServerTimers 是基于事件的,Thread Timers是基于回調函數

            我更喜歡Thread Timer,比較輕量級方便易用。

            但是這樣的Timer也有問題,就是由于時多線程定時器,就會出現如果一個Timer處理沒有完成,到了時間下一個
            照樣會發生,這就會導致重入問題

            對付重入問題通常的辦法是加鎖,但是對于 Timer卻不能簡單的這樣做,你需要評估一下

            首先Timer處理里本來就不應該做太需要時間的事情,或者花費時間無法估計的事情,比同遠方的服務器建立一個網絡連接,這樣的做法盡量避免

            如果實在無法避免,那么要評估Timer處理超時是否經常發生,如果是很少出現,那么可以用lock(Object)的方法來防止重入
            如果這種情況經常出現呢?那就要用另外的方法來防止重入了

            我們可以設置一個標志,表示一個Timer處理正在執行,下一個Timer發生的時候發現上一個沒有執行完就放棄執行

            static  int inTimer = 0;
            public static void threadTimerCallback(Object obj)
            {
                 if ( inTiemr == 0 )
                {
                     inTimer = 1;         

                     Console.WriteLine("Time:{0}, \tThread ID:{1}", DateTime.Now, Thread.CurrentThread.GetHashCode());
                     Thread.Sleep(2000);

                     inTimer = 0;
                  }
            }

            但是在多線程下給inTimer賦值不夠安全,還好Interlocked.Exchange提供了一種輕量級的線程安全的給對象賦值的方法

             static int inTimer = 0;
             public static void threadTimerCallback(Object obj)
             {
                   if ( Interlocked.Exchange(ref inTimer, 1) == 0 )
                  {
                       Console.WriteLine("Time:{0}, \tThread ID:{1}", DateTime.Now, Thread.CurrentThread.GetHashCode());
                       Thread.Sleep(250);

                       Interlocked.Exchange(ref inTimer, 0);
                  }
             }

            posted @ 2013-12-18 19:29 多彩人生 閱讀(372) | 評論 (0)編輯 收藏

            libcurl 多線程使用注意事項

            1、問題來源,多線程使用Libcurl導致程序跑一段時間后自己退出,沒有明顯的異常。找不到合適的BUG。

             

            最后通過查看資料和網上找的一些文章,發現,原來是信號處理的問題:

             

             

            CURLOPT_NOSIGNAL


            Pass a long. If it is 1, libcurl will not use any functions that install signal handlers or any functions that cause signals to be sent to the process. This option is mainly here to allow multi-threaded unix applications to still set/use all timeout options etc, without risking getting signals. (Added in 7.10)

            If this option is set and libcurl has been built with the standard name resolver, timeouts will not occur while the name resolve takes place. Consider building libcurl with c-ares support to enable asynchronous DNS lookups, which enables nice timeouts for name resolves without signals.

            Setting CURLOPT_NOSIGNAL to 1 makes libcurl NOT ask the system to ignore SIGPIPE signals, which otherwise are sent by the system when trying to send data to a socket which is closed in the other end. libcurl makes an effort to never cause such SIGPIPEs to trigger, but some operating systems have no way to avoid them and even on those that have there are some corner cases when they may still happen, contrary to our desire. 

             

            就是當多個線程都使用超時處理的時候,同時主線程中有sleep或是wait等操作。如果不設置這個選項,libcurl將會發信號打斷這個wait從而導致程序退出。

             

            所以,在使用的時候把這個選項設置成1就可以了.

            curl_setopt(curl, CURLOPT_NOSIGNAL, 1L);

             

            2、關于libcurl庫的初始化和關閉:curl_global_init()和curl_global_cleanup()

            這兩個函數并不是線程安全的。所以只能在主線程中進行一次的初始化和清除。

            雖然這個不是一定就會有問題,但是如果不這樣處理還是有概率發生的。

            posted @ 2013-12-02 17:16 多彩人生 閱讀(1554) | 評論 (0)編輯 收藏

            僅列出標題
            共25頁: 1 2 3 4 5 6 7 8 9 Last 

            導航

            統計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久播电影网| 亚洲精品tv久久久久久久久| 久久久久亚洲AV片无码下载蜜桃| 免费一级欧美大片久久网 | 久久婷婷国产麻豆91天堂| 国产成人精品久久免费动漫| 亚洲天堂久久精品| 久久久久无码精品| 亚洲av日韩精品久久久久久a| 久久亚洲国产午夜精品理论片| 狠狠人妻久久久久久综合| 少妇内射兰兰久久| 精品乱码久久久久久夜夜嗨| 亚洲中文字幕无码久久综合网| 超级碰久久免费公开视频| 99久久99久久精品国产片果冻| 日本精品久久久久中文字幕8| 精品一二三区久久aaa片| 中文字幕亚洲综合久久| 久久久久女人精品毛片| 天天综合久久一二三区| 青青青国产精品国产精品久久久久| 青青草原综合久久大伊人| 久久91精品综合国产首页| 成人免费网站久久久| 午夜精品久久久久久久| 久久久久亚洲AV无码观看| 三级韩国一区久久二区综合 | 无码伊人66久久大杳蕉网站谷歌| 久久国产免费直播| 99久久精品这里只有精品| 99久久99这里只有免费费精品| 久久精品人妻中文系列| 亚洲欧美另类日本久久国产真实乱对白| 色偷偷888欧美精品久久久| 国产亚洲色婷婷久久99精品| 久久天堂AV综合合色蜜桃网| 无码国内精品久久人妻| 久久久精品国产sm调教网站| 久久久久99精品成人片欧美| 国产亚洲欧美精品久久久|