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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android使用 SO 库时要注意的一些问题

發(fā)布時間:2024/1/17 Android 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android使用 SO 库时要注意的一些问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

常和 SO 庫開發(fā)打交道的同學(xué)來說已經(jīng)是老生長談,但是既然要討論一整個動態(tài)加載系列,我想還是有必要說說使用 SO 庫時的一些問題。

在項目里使用 SO 庫非常簡單,在?加載 SD 卡中的 SO 庫?中也有談到,只需要把需要用到的 SO 庫拷貝進?jniLibs(或者 Eclipse 項目里面的 libs)?中,然后在 JAVA 代碼中調(diào)用?System.loadLibrary(“xxx”)?加載對應(yīng)的 SO 庫,就可以使用 JNI 語句調(diào)用 SO 庫里面的 Native 方法了。

但是有同學(xué)注意到了,SO 庫文件可以隨便改文件名,卻不能任意修改文件夾路徑,而是 “armeabi”、“armeabi-v7a”、“x86” 等文件夾名有著嚴格的要求,這些文件夾名有什么意義么?

SO 庫類型和 CPU 架構(gòu)類型

原因很簡單,不同 CPU 架構(gòu)的設(shè)備需要用不同類型 SO 庫(從文件名也可以猜出來個大概嘛 ╮( ̄▽ ̄”)╭)。

記得還在學(xué)校的時候,提及 ARM 處理器時,老師說以后移動設(shè)備的 CPU 基本就是 ARM 類型的了。老師不曾欺我,早期的 Android 系統(tǒng)幾乎只支持 ARM 的 CPU 架構(gòu),不過現(xiàn)在至少支持以下七種不同的 CPU 架構(gòu):ARMv5,ARMv7,x86,MIPS,ARMv8,MIPS64 和 x86_64。每一種 CPU 類型都對應(yīng)一種 ABI(Application Binary Interface),“armeabi-v7a”文件夾前面的 “armeabi” 指的就是 ARM 這種類型的 ABI,后面的 “v7a” 指的是 ARMv7。這 7 種 CPU 類型對應(yīng)的 SO 庫的文件夾名是:armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64。

不同類型的移動設(shè)備在運行 APP 時,需要加載自己支持的類型的 SO 庫,不然就 GG 了。通過?Build.SUPPORTED_ABIS?我們可以判斷當(dāng)前設(shè)備支持的 ABI,不過一般情況下,不需要開發(fā)者自己去判斷 ABI,Android 系統(tǒng)在安裝 APK 的時候,不會安裝 APK 里面全部的 SO 庫文件,而是會根據(jù)當(dāng)前 CPU 類型支持的 ABI,從 APK 里面拷貝最合適的 SO 庫,并保存在 APP 的內(nèi)部存儲路徑的?libs?下面。(這里說一般情況,是因為有例外的情況存在,比如我們動態(tài)加載外部的 SO 庫的時候,就需要自己判斷 ABI 類型了。)

一種 CPU 架構(gòu) = 一種對應(yīng)的 ABI 參數(shù) =  一種對應(yīng)類型的 SO 庫

到這里,我們發(fā)現(xiàn)使用 SO 庫的邏輯還是比較簡單的,但是 Android 系統(tǒng)加載 SO 庫的邏輯還是給我們留下了一些坑。

使用 SO 庫時要注意的一些問題

1. 別把 SO 庫放錯地方

SO 庫其實都是 APP 運行時加載的,也就是說 APP 只有在運行的時候才知道 SO 庫文件的存在,這就無法通過靜態(tài)代碼檢查或者在編譯 APP 時檢查 SO 庫文件是否正常。所以,Android 開發(fā)對 SO 庫的存放路徑有嚴格的要求。

使用 SO 庫的時候,除了 “armeabi-v7a” 等文件夾名需要嚴格按照規(guī)定的來自外,SO 庫要放在項目的哪個文件夾下也要按照套路來,以下是一些總結(jié):

  • Android Studio 工程放在?jniLibs/xxxabi?目錄中(當(dāng)然也可以通過在 build.gradle 文件中的設(shè)置 jniLibs.srcDir 屬性自己指定);
  • Eclipse 工程放在?libs/xxxabi?目錄中(這也是使用 ndk-build 命令生成 SO 庫的默認目錄);
  • aar 依賴包中位于?jni/ABI?目錄中(SO 庫會自動包含到引用 AAR 壓縮包到 APK 中);
  • 最終構(gòu)建出來的 APK 文件中,SO 庫存在?lib/xxxabi?目錄中(也就是說無論你用什么方式構(gòu)建,只要保證 APK 包里 SO 庫的這個路徑?jīng)]錯就沒問題);
  • 通過 PackageManager 安裝后,在小于 Android 5.0 的系統(tǒng)中,SO 庫位于 APP 的?nativeLibraryPath?目錄中;在大于等于 Android 5.0 的系統(tǒng)中,SO 庫位于 APP 的?nativeLibraryRootDir/CPU_ARCH?目錄中;

既然扯到了這里,順便說一下,我在使用 Android Studio 1.5 構(gòu)建 APK 的時候,發(fā)現(xiàn) Gradle 插件只會默認打包 application 類型的 module 的 jniLibs 下面的 SO 庫文件,而不會打包 aar 依賴包的 SO 庫,所以會導(dǎo)致最終構(gòu)建出來的 APK 里的 SO 庫文件缺失。暫時的解決方案是把所有的 SO 庫都放在 application 模塊中(這顯然不是很好的解決方案),不知道這是不是 Studio 的 BUG,同事的解決方案是通過修改 Gradle 插件來增加對 aar 依賴包的 SO 庫的打包支持(GitHub 有開源的第三方 Gradle 插件項目,使用 Java 和 Groovy 語言開發(fā))。

2. 盡可能提供 CPU 支持的最優(yōu) SO 庫

當(dāng)一個應(yīng)用安裝在設(shè)備上,只有該設(shè)備支持的 CPU 架構(gòu)對應(yīng)的 SO 庫會被安裝。但是,有時候,設(shè)備支持的 SO 庫類型不止一種,比如大多的 X86 設(shè)備除了支持 X86 類型的 SO 庫,還兼容 ARM 類型的 SO 庫(目前應(yīng)用市場上大部分的 APP 只適配了 ARM 類型的 SO 庫,X86 類型的設(shè)備如果不能兼容 ARM 類型的 SO 庫的話,大概要嗝屁了吧)。

所以如果你的 APK 只適配了 ARM 類型的 SO 庫的話,還是能以兼容的模式在 X86 類型的設(shè)備上運行(比如華碩的平板),但是這不意味著你就不用適配 X86 類型的 SO 庫了,因為 X86 的 CPU 使用兼容模式運行 ARM 類型的 SO 庫會異常卡頓(試著回想幾年前你開始學(xué)習(xí) Android 開發(fā)的時候,在 PC 上使用 AVD 模擬器的那種感覺)。

3. 注意 SO 庫的編譯版本

除了要注意使用了正確 CPU 類型的 SO 庫,也要注意 SO 庫的編譯版本的問題。雖然現(xiàn)在的 Android Studio 支持在項目中直接編譯 SO 庫,但是更多的時候我們還是選擇使用事先編譯好的 SO 庫,這時就要注意了,編譯 APK 的時候,我們總是希望使用最新版本的 build-tools 來編譯,因為 Android SDK 最新版本會幫我們做出最優(yōu)的向下兼容工作。

但是這對于編譯 SO 庫來說就不一樣了,因為 NDK 平臺不是向下兼容的,而是向上兼容的。應(yīng)該使用 app 的 minSdkVersion 對應(yīng)的版本的 NDK 標(biāo)本來編譯 SO 庫文件,如果使用了太高版本的 NDK,可能會導(dǎo)致 APP 性能低下,或者引發(fā)一些 SO 庫相關(guān)的運行時異常,比如 “UnsatisfiedLinkError”,“dlopen: failed” 以及其他類型的Crash。

一般情況下,我們都是使用編譯好的 SO 庫文件,所以當(dāng)你引入一個預(yù)編譯好的 SO 庫時,你需要檢查它被編譯所用的平臺版本。

4. 盡可能為每種 CPU 類型都提供對應(yīng)的 SO 庫

比如有時候,因為業(yè)務(wù)的需求,我們的 APP 不需要支持 AMR64 的設(shè)備,但這不意味著我們就不用編譯 ARM64 對應(yīng)的 SO 庫。舉個例子,我們的 APP 只支持 armeabi-v7a 和 x86 架構(gòu),然后我們的 APP 使用了一個第三方的 Library,而這個 Library 提供了 AMR64 等更多類型 CPU 架構(gòu)的支持,構(gòu)建 APK 的時候,這些 ARM64 的 SO 庫依然會被打包進 APK 里面,也就是說我們自己的 SO 庫沒有對應(yīng)的 ARM64 的 SO 庫,而第三方的 Library 卻有。這時候,某些 ARM64 的設(shè)備安裝該 APK 的時候,發(fā)現(xiàn)我們的 APK 里帶有 ARM64 的 SO 庫,會誤以為我們的 APP 已經(jīng)做好了 AMR64 的適配工作,所以只會選擇安裝 APK 里面 ARM64 類型的 SO 庫,這樣會導(dǎo)致我們自己項目的 SO 庫沒有被正確安裝(雖然 armeabi-v7a 和 x86 類型的 SO 庫確實存在 APK 包里面)。

這時正確的做法是,給我們自己的 SO 庫也提供 AMR64 支持,或者不打包第三方 Library 項目的 ARM64 的 SO 庫。使用第二種方案時,可以把 APK 里面不需要支持的 ABI 文件夾給刪除,然后重新打包,而在 Android Studio 下,則可以通過以下的構(gòu)建方式指定需要類型的 SO 庫。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 productFlavors { flavor1 { ndk { abiFilters "armeabi-v7a" abiFilters "x86" abiFilters "armeabi" } } flavor2 { ndk { abiFilters "armeabi-v7a" abiFilters "x86" abiFilters "armeabi" abiFilters "arm64-v8a" abiFilters "x86_64" } } }

需要說明的是,如果我們的項目是 SDK 項目,我們最好提供全平臺類型的 SO 庫支持,因為 APP 能支持的設(shè)備 CPU 類型的數(shù)量,就是項目中所有 SO 庫支持的最少 CPU 類型的數(shù)量(使用我們 SDK 的 APP 能支持的 CPU 類型只能少于等于我們 SDK 支持的類型)。

5. 不要通過 “減少其他 CPU 類型支持的 SO 庫” 來減少 APK 的體積

確實,所有的 x86/x86_64/armeabi-v7a/arm64-v8a 設(shè)備都支持 armeabi 架構(gòu)的 SO 庫,因此似乎移除其他 ABIs 的 SO 庫是一個減少 APK 大小的好辦法。但事實上并不是,這不只影響到函數(shù)庫的性能和兼容性。

X86 設(shè)備能夠很好的運行 ARM 類型函數(shù)庫,但并不保證 100% 不發(fā)生 crash,特別是對舊設(shè)備,兼容只是一種保底方案。64 位設(shè)備(arm64-v8a, x86_64, mips64)能夠運行 32 位的函數(shù)庫,但是以 32 位模式運行,在 64 位平臺上運行 32 位版本的 ART 和 Android 組件,將丟失專為 64 位優(yōu)化過的性能(ART,webview,media 等等)。

過減少其他 CPU 類型支持的 SO 庫來減少 APK 的體積不是很明智的做法,如果真的需要通過減少 SO 庫來做 APK 瘦身,我們也有其他辦法。

減少 SO 庫體積的正確姿勢

1. 構(gòu)建特定 ABI 支持的 APK

我們可以構(gòu)建一個 APK,它支持所有的 CPU 類型。但是反過來,我們可以為每個 CPU 類型都單獨構(gòu)建一個 APK,然后不同 CPU 類型的設(shè)備安裝對應(yīng)的 APK 即可,當(dāng)然前提是應(yīng)用市場得提供用戶設(shè)備 CPU 類型設(shè)別的支持,就目前來說,至少 PLAY 市場是支持的。

Gradle 可以通過以下配置生成不同 ABI 支持的 APK(引用自別的文章,沒實際使用過):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 android { ... splits { abi { enable true reset() include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for universalApk true //generate an additional APK that contains all the ABIs } } // map for the version code project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9] android.applicationVariants.all { variant -> // assign different version code for each output variant.outputs.each { output -> output.versionCodeOverride = project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 1000000 + android.defaultConfig.versionCode } } }

2. 從網(wǎng)絡(luò)下載當(dāng)前設(shè)備支持的 SO 庫

說到這里,總算回到動態(tài)加載的主題了。⊙﹏⊙

使用 Android 的動態(tài)加載技術(shù),可以加載外部的 SO 庫,所以我們可以從網(wǎng)絡(luò)下載 SO 庫文件并加載了。我們可以下載所有類型的 SO 庫文件,然后加載對應(yīng)類型的 SO 庫,也可以下載對應(yīng)類型的 SO 庫然后加載,不過無論哪種方式,我們最好都在加載 SO 庫前,對 SO 庫文件的類型做一下判斷。

我個人的方案是,存儲在服務(wù)器的 SO 庫依然按照 APK 包的壓縮方式打包,也就是,SO 庫存放在 APK 包的?libs/xxxabi?路徑下面,下載完帶有 SO 庫的 APK 包后,我們可以遍歷 libs 路徑下的所有 SO 庫,選擇加載對應(yīng)類型的 SO 庫。

具體實現(xiàn)代碼看上去像是:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 /** * 將一個SO庫復(fù)制到指定路徑,會先檢查改SO庫是否與當(dāng)前CPU兼容 * * @param sourceDir SO庫所在目錄 * @param so SO庫名字 * @param destDir 目標(biāo)根目錄 * @param nativeLibName 目標(biāo)SO庫目錄名 * @return */ public static boolean copySoLib(File sourceDir, String so, String destDir, String nativeLibName) throws IOException { boolean isSuccess = false; try { LogUtil.d(TAG, "[copySo] 開始處理so文件"); if (Build.VERSION.SDK_INT >= 21) { String[] abis = Build.SUPPORTED_ABIS; if (abis != null) { for (String abi : abis) { LogUtil.d(TAG, "[copySo] try supported abi:" + abi); String name = "lib" + File.separator + abi + File.separator + so; File sourceFile = new File(sourceDir, name); if (sourceFile.exists()) { LogUtil.i(TAG, "[copySo] copy so: " + sourceFile.getAbsolutePath()); isSuccess = FileUtil.copyFile(sourceFile.getAbsolutePath(), destDir + File.separator + nativeLibName + File.separator + so); //api21 64位系統(tǒng)的目錄可能有些不同 //copyFile(sourceFile.getAbsolutePath(), destDir + File.separator + name); break; } } } else { LogUtil.e(TAG, "[copySo] get abis == null"); } } else { LogUtil.d(TAG, "[copySo] supported api:" + Build.CPU_ABI + " " + Build.CPU_ABI2); String name = "lib" + File.separator + Build.CPU_ABI + File.separator + so; File sourceFile = new File(sourceDir, name); if (!sourceFile.exists() && Build.CPU_ABI2 != null) { name = "lib" + File.separator + Build.CPU_ABI2 + File.separator + so; sourceFile = new File(sourceDir, name); if (!sourceFile.exists()) { name = "lib" + File.separator + "armeabi" + File.separator + so; sourceFile = new File(sourceDir, name); } } if (sourceFile.exists()) { LogUtil.i(TAG, "[copySo] copy so: " + sourceFile.getAbsolutePath()); isSuccess = FileUtil.copyFile(sourceFile.getAbsolutePath(), destDir + File.separator + nativeLibName + File.separator + so); } } if (!isSuccess) { LogUtil.e(TAG, "[copySo] 安裝 " + so + " 失敗 : NO_MATCHING_ABIS"); throw new IOException("install " + so + " fail : NO_MATCHING_ABIS"); } } catch (IOException e) { e.printStackTrace(); throw e; } return true; }

總結(jié)

  • 一種 CPU 架構(gòu) = 一種 ABI = 一種對應(yīng)的 SO 庫;
  • 加載 SO 庫時,需要加載對應(yīng)類型的 SO 庫;
  • 盡量提供全平臺 CPU 類型的 SO 庫支持;
  • 題外話,SO 庫的使用本身就是一種最純粹的動態(tài)加載技術(shù),SO 庫本身不參與 APK 的編譯過程,使用 JNI 調(diào)用 SO 庫里的 Native 方法的方式看上去也像是一種 “硬編程”,Native 方法看上去與一般的 Java 靜態(tài)方法沒什么區(qū)別,但是它的具體實現(xiàn)卻是可以隨時動態(tài)更換的(更換 SO 庫就好),這也可以用來實現(xiàn)熱修復(fù)的方案,與 Java 方法一旦加載進內(nèi)存就無法再次更換不同,Native 方法不需要重啟 APP 就可以隨意更換。

    出于安全和生態(tài)控制的原因,Google Play 市場不允許 APP 有加載外部可執(zhí)行文件的行為,一旦你的 APK 里被檢查出有額外的可執(zhí)行文件時就不好玩了,所以現(xiàn)在許多 APP 都偷偷把用于動態(tài)加載的可執(zhí)行文件的后綴名換成 “.so”,這樣被發(fā)現(xiàn)的幾率就降低了,因為加載 SO 庫看上去就是官方合法版本的動態(tài)加載啊(不然 SO 庫怎么工作),雖然這么做看起來有點掩耳盜鈴。

    轉(zhuǎn)載于:https://www.cnblogs.com/android-blogs/p/5867337.html

    總結(jié)

    以上是生活随笔為你收集整理的Android使用 SO 库时要注意的一些问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    久久久久久久久久电影 | 日韩美在线 | 99热精品国产一区二区在线观看 | 国产麻豆果冻传媒在线观看 | 69久久久 | 青春草免费在线视频 | 久久久国产精品久久久 | 国产视频精选 | 国产午夜在线观看视频 | 97在线影视 | 丁香久久久 | 亚洲国产日韩精品 | 在线看国产视频 | 天天骚夜夜操 | 欧美 日韩精品 | 久草视频在线免费 | 国产美女精品视频 | 国产一区二区手机在线观看 | 激情久久小说 | 国产成人精品亚洲a | 日本一区二区三区视频在线播放 | 久久成人一区二区 | 久久男人免费视频 | 一区二三国产 | 中文在线免费一区三区 | 不卡视频国产 | 涩涩在线 | 久久这里只有精品23 | 狠狠综合久久 | 国产精品ⅴa有声小说 | 免费三级av | 欧美一区二区在线刺激视频 | 黄色av一级片 | 免费在线观看av网站 | 色婷婷狠狠操 | 日日干网 | 天天爱天天 | 91精品国产综合久久福利不卡 | 欧美色图一区 | 97视频在线看 | 麻豆视频免费 | 国产精品人人做人人爽人人添 | 免费在线色视频 | 亚洲国产一二三 | 亚洲妇女av | 天天草天天| 在线观看视频h | 一区二区三区 中文字幕 | 久久国产精品影视 | 国产欧美精品一区二区三区 | 国产亚州av | 91夫妻自拍 | 国产专区在线看 | 日韩大片免费在线观看 | 色99之美女主播在线视频 | 亚洲三级在线免费观看 | 久久综合偷偷噜噜噜色 | 国产成人在线看 | 日本中文字幕一二区观 | 97在线观看免费 | 久久久久成人精品 | 热久在线| 黄色在线观看免费网站 | 国产精品白虎 | 狠狠久久婷婷 | 天堂av在线免费 | av色影院| 水蜜桃亚洲一二三四在线 | 久久综合久久综合久久综合 | 人人澡人人模 | 国产一区二区视频在线播放 | 国产精品久久久久久久久久久久冷 | 久久五月婷婷丁香 | 成人av一二三区 | 国产精品成人一区二区三区吃奶 | 精品一区二区免费在线观看 | 亚洲精品影视 | 午夜美女wwww | 99免费国产 | 国产探花视频在线播放 | 国产精品久久久久三级 | 天天操天天操天天操 | 中文字幕免费 | 久草热久草视频 | 精品视频免费看 | 亚洲精品999 | 日本精品一区二区三区在线播放视频 | 成人久久久电影 | 精品国产伦一区二区三区免费 | 精品欧美一区二区在线观看 | 久久久性 | 国产精品永久在线 | 一区二区三区四区在线免费观看 | 99视频偷窥在线精品国自产拍 | 久久午夜鲁丝片 | 97成人在线视频 | www天天干com| 黄视频网站大全 | 日韩簧片在线观看 | 97久久久免费福利网址 | 中文字幕在线免费播放 | 国产精品第一 | 色网站国产精品 | 在线观看精品 | 最近日本中文字幕a | 97成人资源| a在线免费 | 精品久久久久久亚洲综合网站 | 毛片无卡免费无播放器 | 久久久久久久精 | 99精彩视频在线观看免费 | 99免费精品 | 日一日干一干 | 欧美激情一区不卡 | 久久久午夜剧场 | 97在线视| 丝袜美腿亚洲综合 | 国产一二三在线视频 | 日批视频在线播放 | 久久99精品一区二区三区三区 | 日日爱av| 日韩视频一 | 久在线观看视频 | 激情久久久久 | 在线观看免费av网 | 国产一区国产精品 | 日韩三区在线观看 | 综合久久久 | 99re6热在线精品视频 | 成年人在线免费看视频 | 91亚洲精品国偷拍 | 免费国产一区二区 | 日韩一区正在播放 | 国产视频不卡 | 中文字幕乱码电影 | 免费av黄色| 91黄色影视 | 久久99久久99精品 | 免费国产黄线在线观看视频 | 国产精品二区在线观看 | 在线观看完整版 | 免费看片成人 | 久久影视精品 | 中文字幕视频免费观看 | 国产高清在线一区 | 国产精品丝袜在线 | 婷婷丁香在线视频 | 日韩免费一二三区 | 久久国产成人午夜av影院宅 | 亚洲 欧美变态 另类 综合 | 91女人18片女毛片60分钟 | 成人免费观看av | 91在线国内视频 | 久久久精品欧美一区二区免费 | 国产亚洲一级高清 | 成人午夜av电影 | 日韩专区中文字幕 | 午夜精品一区二区三区视频免费看 | 一区二区三区视频在线 | 99久热在线精品视频成人一区 | 亚洲 欧美变态 另类 综合 | 久久精品中文 | 亚州天堂 | 国产不卡精品 | 精品视频成人 | 国内亚洲精品 | 狠狠天天 | 在线黄频 | 国产精品美女久久久久久久久 | 人人插人人射 | 天天天综合网 | 香蕉影院在线播放 | 成全在线视频免费观看 | 美女搞黄国产视频网站 | 亚洲一区欧美精品 | 91精品国产综合久久福利不卡 | 婷婷色视频 | 欧美日韩久久一区 | 天天色天天艹 | 亚洲欧美日韩国产一区二区 | 久久精久久精 | 国产在线精品视频 | 黄视频网站大全 | 国产精品theporn | 午夜久久网 | 欧美资源在线观看 | 日韩理论片 | 天天射天天爽 | 丁香六月久久综合狠狠色 | 国产黄色精品在线 | 四虎在线免费 | 久久老司机精品视频 | 日日碰狠狠躁久久躁综合网 | 免费av片在线| 久久精品中文 | 日韩爱爱片 | 久久国语露脸国产精品电影 | 国产在线视频在线观看 | 日韩a在线观看 | 久久免费观看少妇a级毛片 久久久久成人免费 | 日韩精品在线免费播放 | 国内精品久久久久久久久久久久 | 激情丁香婷婷 | 开心激情久久 | 日韩免费高清 | 99精品视频中文字幕 | 最新国产福利 | 911久久| 丁香五月亚洲综合在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | www.五月婷婷 | 国产99久久精品 | 首页av在线 | 亚洲黄色免费电影 | 精品国产乱码久久久久久1区2匹 | 久操久 | 国内精品久久久久影院一蜜桃 | 区一区二区三区中文字幕 | 久久免费美女视频 | 97精品国产一二三产区 | 色综合天天综合在线视频 | 日本久久久精品视频 | 在线观看免费黄色 | 亚洲伊人第一页 | 免费黄色在线网站 | 国产精品久免费的黄网站 | 91网址在线观看 | 久久tv | 夜夜夜夜夜夜操 | av网站免费看 | 国产视频日韩视频欧美视频 | 在线观看一级片 | 成年人免费看 | 激情五月亚洲 | 日韩色综合网 | 久久国产精品99久久久久 | 五月色婷| 精品国产综合区久久久久久 | 开心婷婷色 | 人人揉人人揉人人揉人人揉97 | 好看的国产精品视频 | 狠狠色噜噜狠狠狠合久 | 色国产精品一区在线观看 | 成人动漫一区二区三区 | 日韩高清成人在线 | 免费看亚洲毛片 | 日韩成人看片 | 国产精品久久久久久久99 | 又色又爽又激情的59视频 | 波多野结衣视频一区二区三区 | 欧美精品一区二区蜜臀亚洲 | 91成人看片 | 人人澡人人草 | av网站手机在线观看 | 成人免费视频网站 | 欧美精品久久天天躁 | 久久在线精品视频 | 欧美激情视频久久 | www.精选视频.com | www.国产在线视频 | 成人h动漫精品一区二 | 美女天天操| 99理论片| 午夜视频播放 | 国产成人一区三区 | 人人射 | 中文一区在线观看 | 中文字幕字幕中文 | 一区二区三区四区免费视频 | 久久久午夜精品福利内容 | 99视频久久 | 97碰碰碰 | 国产亚洲成av人片在线观看桃 | 日韩精品资源 | 久久综合偷偷噜噜噜色 | 国产精品一区二区麻豆 | 91精品国产福利在线观看 | 国产精品资源 | 中文字幕第一页在线播放 | 欧美日韩中文字幕在线视频 | 国产手机视频在线观看 | 免费av在线网站 | 色av婷婷 | 97在线视频免费播放 | 亚洲精品在线观看免费 | 久久久午夜精品福利内容 | 美女精品久久久 | 亚洲韩国一区二区三区 | 中文字幕在线免费播放 | 久久99精品国产99久久 | 国产精品爽爽久久久久久蜜臀 | 青草视频在线播放 | 综合国产在线观看 | 亚洲一级黄色av | 天天综合网 天天 | 免费看黄的视频 | 亚洲精品在线免费 | 久久伊人五月天 | 国产亚洲综合在线 | 亚洲a成人v| 懂色av懂色av粉嫩av分享吧 | 一区二区观看 | 婷婷在线免费视频 | 九色91在线 | 少妇av片 | 伊人婷婷久久 | 久久人视频 | 国产成人精品久久久 | 日本中文字幕一二区观 | 久久a视频| 色狠狠操| 99色99| 精品在线不卡 | 免费看的黄网站软件 | 欧美资源在线观看 | 一区二精品| 免费高清在线观看成人 | 日本最新中文字幕 | 手机在线看永久av片免费 | 伊人狠狠色丁香婷婷综合 | 亚洲日本中文字幕在线观看 | 丁香六月中文字幕 | 91精品欧美 | 91三级视频| 国产精品五月天 | 狠狠色丁香婷婷综合欧美 | 亚洲国产天堂av | 久久精品五月 | 四虎免费在线观看 | 成人禁用看黄a在线 | 久草五月 | 亚洲成人网在线 | 友田真希x88av | www.久久久.com | 99色免费| 久久无码精品一区二区三区 | 成人国产综合 | 丰满少妇在线观看网站 | 国产精品成人国产乱一区 | 天天激情在线 | 91一区啪爱嗯打偷拍欧美 | 黄色高清视频在线观看 | 欧美日韩视频观看 | 四虎影视4hu4虎成人 | 成人资源在线观看 | 久久九九影视网 | av在线亚洲天堂 | 国产一区二区视频在线 | 日本精品一区二区三区在线观看 | 九九久久影院 | 手机在线黄色网址 | 国产精品一区二区美女视频免费看 | 91av免费在线观看 | 成人黄色毛片视频 | 日韩高清dvd| 永久免费在线 | 丁香国产视频 | 国产精品18久久久久白浆 | 亚洲国产人午在线一二区 | 天天射天天爱天天干 | 欧美日韩一级在线 | 手机在线永久免费观看av片 | 色婷婷激情四射 | 日韩在线视频网站 | 久久人人爽人人爽人人片 | 日韩欧美在线高清 | 欧美一区二区三区特黄 | 黄av在线 | 亚洲做受高潮欧美裸体 | 爱爱一区 | 91精品专区| 337p日本欧洲亚洲大胆裸体艺术 | 欧美性色综合网 | 在线综合色 | 又大又硬又黄又爽视频在线观看 | 国产人成看黄久久久久久久久 | 国内丰满少妇猛烈精品播放 | 一区二区视频欧美 | 国产精品亚洲综合久久 | 在线免费黄色av | 色婷婷综合久色 | 亚洲综合视频在线 | 噜噜色官网 | 欧美一区二区日韩一区二区 | 特黄特黄的视频 | 国产精品福利久久久 | 国产视频精品网 | 免费看国产一级片 | 探花在线观看 | 国内精品久久久久久久久久 | 一区二区三区四区影院 | 成人av电影免费观看 | 免费观看久久久 | 亚洲一区二区三区四区在线视频 | 人人爽人人舔 | 色偷偷网站视频 | 激情丁香5月 | 国产精品久久伊人 | 91成人小视频 | av在线专区 | 中文有码在线 | www在线观看国产 | 日本不卡久久 | 91一区二区三区久久久久国产乱 | 国产1区2区 | 啪啪av在线 | 中文字幕视频观看 | 欧美日韩视频在线播放 | 国产精品美女久久久网av | 91在线porny国产在线看 | 亚洲资源片 | 国产淫片免费看 | av激情五月 | 国产成人精品一区二区三区网站观看 | 国产精品福利午夜在线观看 | 国产精品免费久久久久久 | a午夜在线 | 精品一区二区免费视频 | 91精品视频免费观看 | 精品自拍av | 国产精品久久久久国产精品日日 | 久久av影视 | 天堂在线视频免费观看 | 午夜少妇av | 日本aaaa级毛片在线看 | 狠狠的日日| 精品亚洲视频在线 | 久久影视网 | 国产最新精品视频 | 久久精品这里精品 | 操高跟美女 | 亚洲有 在线 | 国产成人精品一区二区在线 | 免费日韩在线 | 国产精品久久久久久久久久不蜜月 | 国产玖玖在线 | 国产精品久久久久久欧美 | 二区三区在线观看 | 久久精品超碰 | 人人网av| 四虎精品成人免费网站 | 99久久精品费精品 | 天天草综合 | 久久久国产99久久国产一 | 日韩午夜三级 | 欧美成人h版在线观看 | 在线观看中文字幕一区 | 五月激情久久久 | 天天综合婷婷 | 在线观看中文字幕dvd播放 | 国产精品夜夜夜一区二区三区尤 | 婷婷色六月天 | 精品在线视频一区 | 一区二区三区视频 | 日韩欧美一区二区在线观看 | av成人动漫 | 韩国精品在线观看 | 欧美激情综合五月 | 久久精品免视看 | 日本三级在线观看中文字 | 日韩字幕| aaa亚洲精品一二三区 | 最新精品视频在线 | 国产精品久久久久久久久久99 | 伊人中文字幕在线 | 久久看片网站 | 一级性生活片 | 日韩av综合网站 | 国产精品一区二区三区在线看 | 在线观看亚洲 | 人人爱夜夜操 | 欧美久久久久久久久中文字幕 | 亚洲综合色播 | 91九色在线视频观看 | 久久综合免费 | 在线中文字幕观看 | 毛片永久新网址首页 | 国产精久久久久久妇女av | 人人看看人人 | 国产色网 | а中文在线天堂 | 欧美大片在线观看一区 | 久久久国产精华液 | av中文字幕网址 | 狠狠色综合网站久久久久久久 | 免费看毛片网站 | 中文字幕资源网 | 91亚洲影院| 免费日韩一区二区 | 欧美亚洲成人免费 | 欧美analxxxx| 韩国在线视频一区 | 国产视频精选 | 全黄色一级片 | 一区二区三区免费播放 | 在线播放 一区 | 99精品黄色片免费大全 | 黄色视屏免费在线观看 | www.av免费观看 | 国产第一二区 | 99精品免费视频 | 麻豆av一区二区三区在线观看 | www久久99| 二区三区在线 | 免费成人结看片 | 一本色道久久精品 | 国产一级在线视频 | 国产成人免费av电影 | 超级碰碰免费视频 | 在线观看中文av | 国产精品久久久电影 | 成人国产网站 | 久久综合狠狠综合久久综合88 | 操操操干干干 | 天天操福利视频 | 日本在线成人 | 久久久久久久久黄色 | 久久精品一区二区三区国产主播 | 国内精品久久久久影院优 | 免费人成网 | 亚洲精品婷婷 | 精品视频成人 | 嫩草av在线 | 天天干天天草 | 色九九视频| 黄色软件在线观看免费 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 免费福利视频网站 | 久久国产亚洲视频 | 国产视频精品免费播放 | 色婷婷伊人 | 国产成人黄色网址 | 国产精品国内免费一区二区三区 | 国产剧情久久 | 亚洲人人精品 | 91成人小视频 | 日韩字幕在线观看 | 免费观看第二部31集 | 99精品视频在线免费观看 | 久久精品8 | 精品国产一区二区三区久久久 | 在线视频婷婷 | 伊人伊成久久人综合网站 | 午夜国产福利视频 | 99久久电影| 91精品国产乱码久久桃 | 91理论电影 | 久久不见久久见免费影院 | 亚洲日本精品视频 | 亚洲经典视频在线观看 | 91精品国产乱码久久桃 | 日本中出在线观看 | 人人爽人人澡 | 处女av在线 | 国产精品免费久久 | 九九久久影视 | 97色涩| 午夜精品久久久久久久久久久久 | 亚洲国产精品一区二区久久,亚洲午夜 | 综合久久精品 | 最新国产视频 | 国产无遮挡又黄又爽馒头漫画 | www.五月婷婷 | 91精品视频免费在线观看 | 欧美日韩二区三区 | 五月婷在线 | 午夜丰满寂寞少妇精品 | 久久精品视频在线观看免费 | 蜜臀一区二区三区精品免费视频 | 99超碰在线观看 | 日韩免费在线观看网站 | 福利视频网址 | 免费在线精品视频 | 国产一区二区免费在线观看 | 国产精品3 | 天天夜夜亚洲 | 伊人午夜 | 日日夜夜天天射 | 欧美久久久久久久久中文字幕 | 最新日韩在线观看 | 永久免费的av电影 | 99国产在线视频 | 婷婷丁香九月 | 四虎影视成人永久免费观看亚洲欧美 | 久久er99热精品一区二区 | 一区二区三区久久精品 | 天天干天天干天天干 | 天天摸天天弄 | 国产免费a | 亚洲国产免费 | 综合久久久久久久久 | 亚洲国内精品视频 | 精品国产123 | 国产美女精品视频 | 91九色视频国产 | 成人av网站在线播放 | 亚洲午夜精品一区二区三区电影院 | 丁香五婷| 国产青春久久久国产毛片 | 一区在线观看 | 天天色天 | 精品美女在线观看 | 激情网五月| 亚洲在线视频播放 | 欧美尹人| 精品国产不卡 | 久草精品视频在线观看 | 日本视频久久久 | 亚洲国产精品视频 | 国产色视频一区二区三区qq号 | 国产精品永久免费视频 | 日韩免费一区二区 | 国产一区二区三区免费在线观看 | 免费成人av | 丁香狠狠 | 在线免费观看黄网站 | 久久久精品网站 | 三级av在线 | 人人狠狠综合久久亚洲婷 | 337p日本欧洲亚洲大胆裸体艺术 | 视频三区 | 精品成人网 | 欧美夫妻性生活电影 | 在线色亚洲 | 中文字幕欧美激情 | 成人午夜电影久久影院 | 国产片免费在线观看视频 | 天海翼一区二区三区免费 | 精品色综合 | 久久露脸国产精品 | 欧美日韩国产一区二区三区 | 亚洲综合色网站 | 在线国产一区二区三区 | 国产午夜精品一区二区三区在线观看 | 日日夜夜天天射 | 99re久久资源最新地址 | 在线综合 亚洲 欧美在线视频 | 最新国产福利 | 91免费观看国产 | 夜夜爱av| 91高清一区 | 日本黄色黄网站 | 成年人视频在线免费观看 | www.狠狠 | 国产自产在线视频 | 国产黄色在线 | 亚洲最新视频在线 | 天天天干天天射天天天操 | 中文字幕中文字幕在线中文字幕三区 | 国产精品97 | 极品久久久 | 91黄色免费网站 | 国产成人在线综合 | 国产天天爽 | 婷婷九九| 国产无区一区二区三麻豆 | 日韩欧美高清不卡 | av一级在线 | 伊人黄色网 | 999超碰 | 亚洲精品国产精品99久久 | 九九热免费精品视频 | 青青河边草手机免费 | 久久久精品欧美一区二区免费 | 麻豆系列在线观看 | 黄色av播放 | 又黄又爽又刺激的视频 | 中文在线8新资源库 | 麻豆av一区二区三区在线观看 | 色综合天天色综合 | 99精品视频免费全部在线 | 一区二区电影在线观看 | se婷婷 | av片在线观看免费 | 波多野结衣电影久久 | 97视频在线免费 | av不卡免费在线观看 | 在线观看成年人 | 亚洲一区 av | 99色免费 | 最新日韩在线观看视频 | 国产精品久久久久av免费 | 永久免费毛片 | 麻豆视频免费观看 | 欧美激情片在线观看 | 国产天天综合 | 美国av大片| 国产亚洲精品无 | 亚州激情视频 | 五月天婷婷在线播放 | 99c视频在线 | 亚洲最大的av网站 | 色99之美女主播在线视频 | 综合久久精品 | 久久大香线蕉app | 久久国产美女 | 超碰97国产精品人人cao | 狠狠干网 | 波多野结衣电影一区二区三区 | 亚洲午夜久久久久久久久久久 | 成人免费视频免费观看 | 97视频在线免费观看 | 欧美激情综合五月色丁香 | 久久久午夜视频 | 精品视频网站 | 中文字幕一区二区三区乱码不卡 | 色五月情| 成年人免费在线观看网站 | 一区二区不卡视频在线观看 | 天天曰视频 | 亚洲无吗天堂 | 最新国产精品久久精品 | 亚洲免费观看在线视频 | 久久久成人精品 | 亚洲jizzjizz日本少妇 | 免费91麻豆精品国产自产在线观看 | 天天综合网入口 | 亚洲精品视频在线观看网站 | 四虎最新域名 | av电影一区二区 | 91丨九色丨勾搭 | 国产精品一区在线观看 | 日日夜夜网 | 久久9精品 | 一区二区精品在线观看 | 免费视频黄色 | 国产色道| 色婷婷电影 | 热久久国产 | а天堂中文最新一区二区三区 | 天天干天天射天天插 | 国内视频1区 | 91观看视频| 欧美日韩中文国产 | 蜜桃视频在线观看一区 | 精品国产成人在线影院 | 丁香五婷| 91在线小视频 | 狠狠干夜夜操天天爽 | 亚洲国产精品推荐 | 人成免费网站 | 麻豆精品国产传媒 | 在线观看国产高清视频 | 免费福利视频网 | 久久午夜电影 | 日韩av一卡二卡三卡 | 国产一区二区在线免费观看 | 91成人精品国产刺激国语对白 | 999电影免费在线观看 | 久草在线观看视频免费 | 日韩在线无 | 国产一区视频在线观看免费 | 一本一道久久a久久综合蜜桃 | 色吊丝在线永久观看最新版本 | 国产护士hd高朝护士1 | 日韩精品视| 中文字幕在线观看你懂的 | 日本黄色a级大片 | 中文字幕日韩国产 | www操操| 成人影片在线免费观看 | 欧美一级视频免费看 | 国产精品区二区三区日本 | 国产福利久久 | 日韩精品久久久久 | 蜜臀av麻豆 | 精品在线一区二区三区 | 欧美另类xxxx | 国产一卡二卡在线 | 免费黄色激情视频 | 亚洲精品在线观看的 | 天天躁日日躁狠狠躁 | 在线精品亚洲一区二区 | 免费福利视频网 | 波多野结衣在线中文字幕 | 亚洲日本一区二区在线 | 日本精品久久久久中文字幕5 | 亚洲精品在线一区二区三区 | 在线精品观看 | 精品视频久久久久久 | 久久99热这里只有精品国产 | 超碰在线公开免费 | 在线三级av| 精品国产乱码一区二 | 91桃色国产在线播放 | 欧美视频日韩视频 | 美女视频永久黄网站免费观看国产 | 天堂中文在线播放 | 中文字幕在线观看完整版电影 | 亚州av网站大全 | 欧美一级大片在线观看 | 国产性天天综合网 | 日本午夜在线观看 | 亚州国产精品视频 | 麻豆成人在线观看 | 国产 日韩 欧美 自拍 | 91欧美精品 | 久久久久蜜桃 | 日本黄区免费视频观看 | 久久久18| 欧美精品乱码久久久久 | 极品久久久| 懂色av一区二区三区蜜臀 | 国产96视频| 国产精品中文字幕在线观看 | 国内综合精品午夜久久资源 | 亚洲欧美日韩国产一区二区 | 激情图片久久 | 日韩超碰 | 黄色大片网 | 午夜体验区 | 国产精品久久久久久一二三四五 | 女人高潮一级片 | 日韩免费在线观看网站 | 在线观看你懂的网址 | www.五月天激情 | 免费看片网址 | 国产精品久久毛片 | 精品久久九九 | 久久久久久在线观看 | 97国产精品久久 | 国产精品欧美一区二区三区不卡 | 免费精品国产 | 97成人免费 | 伊人天天干 | 免费在线观看a v | 国产午夜亚洲精品 | 欧美性粗大hdvideo | 99久高清在线观看视频99精品热在线观看视频 | 97碰视频| 免费中文字幕 | 免费久久99精品国产婷婷六月 | 久久精品免费观看 | 久久免费99精品久久久久久 | 日韩精品免费在线观看 | 日韩综合色 | 成人亚洲综合 | 久操视频在线免费看 | 国产视频美女 | 中文字幕在线观看免费高清完整版 | 中文字幕一区二区三区在线视频 | av一级片 | 国产视频 亚洲视频 | 国产精品第二十页 | 亚洲最新av在线网站 | 成人国产精品久久久春色 | 99精品在线| 99精品久久精品一区二区 | 激情图片区 | a√国产免费a| 奇米影音四色 | 美女福利视频一区二区 | 日韩中午字幕 | 在线视频黄 | av片在线观看 | 日韩欧美区| 中文字幕在线观 | 91最新网址在线观看 | 久久欧美精品 | 亚洲视屏在线播放 | 99视频精品全部免费 在线 | 国产精品普通话 | 久久久一本精品99久久精品66 | 最近中文国产在线视频 | 色噜噜色噜噜 | 天天摸天天干天天操天天射 | 91在线视频免费 | 97av超碰 | 国产精品久免费的黄网站 | 激情亚洲综合在线 | a级国产乱理伦片在线观看 亚洲3级 | 国产在线免费观看 | 91在线免费看片 | 黄色网www| 欧美一级免费 | 久久精品欧美日韩精品 | 天天综合色 | 欧美日韩视频在线观看一区二区 | 一级黄视频 | 久久精品伊人 | 精品xxx| 99精品免费观看 | 日本久久久亚洲精品 | 久久精品久久久久 | 久久国产精品系列 | 日本一区二区高清不卡 | 香蕉视频亚洲 | 国产专区一 | 欧美一级欧美一级 | 麻豆传媒视频在线免费观看 | 91成人精品一区在线播放69 | 超碰公开97 | 日韩com| 波多野结衣电影久久 | 欧美日韩久久久 | 伊人五月婷 | 欧美日韩激情视频8区 | 久久资源在线 | 日韩久久视频 | 久久久综合香蕉尹人综合网 | 国产精品成人在线观看 | 国产特级毛片aaaaaa高清 | 国产精品一区在线观看你懂的 | 久久欧美视频 | a级国产片 | 午夜视频在线观看一区二区三区 | 中文字幕一区二区三 | 色在线中文字幕 | 久久精品欧美一区 | 色在线视频 | 国产精品igao视频网入口 | 91影视成人 | 婷婷精品国产一区二区三区日韩 | 日本精品中文字幕 | 91精品一区国产高清在线gif | 日韩欧美一区视频 | 亚洲专区在线播放 | 欧美日韩国产精品一区二区亚洲 | av在线免费播放 | 久久人人添人人爽添人人88v | 丁香婷婷深情五月亚洲 | 国产精品第2页 | 在线免费成人 | 日韩免费不卡视频 | 99久久精品国产系列 | 福利视频第一页 | 九九导航| 在线观看爱爱视频 | 国产成人精品av在线观 | 狠狠干夜夜操天天爽 | 中文字幕中文字幕在线中文字幕三区 | 日韩丝袜 | 97视频在线免费观看 | 国产高清福利在线 | 在线观看一 | 天天操狠狠操 | 国产xx在线 | 日韩三级在线观看 | 国产一区在线观看视频 | 在线观看一区视频 | 日韩高清不卡在线 | av成人免费在线 | 婷婷丁香av | av电影中文字幕在线观看 | 美女网站视频久久 | 色婷婷啪啪免费在线电影观看 | 亚洲永久精品在线 | 午夜精选视频 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 国产成人在线网站 | www.福利 | 精品资源在线 | 亚洲精品videossex少妇 | 天天操综合网站 | 伊人五月在线 | 99热最新| 在线激情av电影 | 一级做a爱片性色毛片www | 成人影片在线免费观看 | 18性欧美xxxⅹ性满足 | 少妇资源站| 国产91综合一区在线观看 | 激情婷婷综合网 | 91av中文| 国产精品午夜久久久久久99热 | 免费成人在线电影 | 精品成人a区在线观看 | 在线观看视频你懂得 | 国产精品久久久久久久久久久免费看 | 国产美女网站视频 | 欧洲一区精品 | 国产精品久久久久久久7电影 | 免费观看版 | 99久久夜色精品国产亚洲 | 国产一区二区中文字幕 | 精品国产乱码一区二区三区在线 | 久久精品9 | 国产高清无线码2021 | 欧美日韩国产精品久久 | 亚洲撸撸 | 中文字幕av电影下载 | 一二三精品视频 | 中文字幕一区二区三区四区在线视频 | 免费一区在线 | 欧美91精品国产自产 | 六月丁香社区 | 国产精品久久久久久久久免费 | 伊人久久在线观看 | 91日韩精品一区 | 国产美女网站在线观看 | 久久免费大片 | 精品国产一区二区三区久久影院 | 欧美激情精品久久久久久变态 | 日韩欧美有码在线 | 欧美视频在线观看免费网址 | 最近能播放的中文字幕 | 日韩91精品| 国产网站色 |