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

vivo 游戲中心包體積優化方案與實踐

移動開發
介紹 App 包體積優化的必要性,游戲中心 App 在實際優化過程中的有效措施,包括一些優化建議以及有優化思路。

一、包體積優化的必要性

安裝包大小與下載轉化率的關系大致是成反比的,即安裝包越大,下載轉換率就越差。Google 曾在2019的谷歌大會上給出過一個統計結論,包體積體大小每上升6MB,應用下載轉化率就會下降1%,在不同地區的表現可能會有所差異。


圖片

APK 減少10MB,在不同國家轉化率增長

(注:數據來自于 googleplaydev:Shrinking APKs, growing installs

二、游戲中心 APK 組成

圖片

APK 包含以下目錄:

  • META-INF/:包含 CERT.SF 、CERT.RSA 簽名文件、MANIFEST.MF 清單文件。
  • assets/:包含應用的資源。
  • res/:包含未編譯到 resources.arsc 中的資源。
  • lib/:支持對應 CPU 架構的 so 文件。
  • resources.arsc:資源索引文件。
  • classes.dex:可以理解的dex文件就是項目代碼編譯為 class 文件后的集合。
  • AndroidManifest.xml:包含核心 Android 清單文件。此文件列出了應用的名稱、版本、訪問權限和引用的庫文件。

發現占包體積比較大的主要是 lib、res、assets、resources 這幾個部分,優化主要也從這幾個方面入手。

三、包體積檢測工具

Matrix-ApkChecker 作為 Matrix 系統的一部分,是針對Android 安裝包的分析檢測工具,根據一系列設定好的規則檢測 APK 是否存在特定的問題,并輸出較為詳細的檢測結果報告,用于分析排查問題以及版本追蹤。

配置游戲中心的 Json,主要檢測 APK 是否經過了資源混淆、不含 Alpha 通道的 PNG 文件、未經壓縮的文件類型、冗余的文件、無用資源等信息。

對于生成的檢測文件進行分析,可以優化不少體積。

工具 Matrix Apkcheck 介紹:

https://github.com/Tencent/matrix/wiki/Matrix-Android-ApkChecker

四、包體積優化措施

4.1 不含 Alpha 通道的 PNG 大圖

圖片

項目中存在較多這種類型的圖,可以替換為 JPG 或者 WebP 圖,能減少不少體積。

4.2 代碼做減法

隨著業務的迭代,很多業務場景是不會再使用了,涉及到相關的資源和類文件都可以刪除掉,相應的 APK 中 res 和 dex 都會相應減少。游戲中心這次去掉了些經過迭代后沒有使用的業務場景和資源。

4.3 資源文件最少化配置

針對內銷的項目,本地的 string.xml 或者 SDK 中的 string.xml 文件中的多語言,是根本用不到的。這部分資源可以優化掉,能減少不少體積。

在APP的 build.gradle 中下添加 resConfigs "zh-rCN", "zh-rTW", "zh-rHK"。這樣配置不影響英文、中文、中國臺灣繁體、中國香港繁體語言的展示。

圖片

 資源文件最少化配置前

圖片

資源文件最少化配置后

4.4 配置資源優化

很多項目為了適配各種尺寸的分辨率,同一份資源可能在不同的分辨率的目錄下放置了各種文件,然后現在主流的機型都是 xxh 分辨率,游戲游戲中心針對了內置的 APK,配置了優先使用"xxhdpi", "night-xxhdpi"。

這么配置如果 xxhdpi、night-xxhdpi 存在資源文件,就會優先使用該分辨率目錄下文件,如果不存在則會取原來分辨率目錄下子資源,能避免出現資源找不到的情形。

defaultConfig {
        resConfigs isNotBaselineApk ? "" : ["xxhdpi", "night-xxhdpi"]
}

左右滑動查看完整代碼

圖片

圖片

4.5 內置包去除v1簽名

同樣對于內置包來說,肯定都是 Android 7 及以上的機型了,可以考慮去掉v1簽名。

signingConfigs {
    gameConfig {
        if (isNotBaselineApk) {
            print("v1SigningEnabled true")
            v1SigningEnabled true
        } else {
            print("v1SigningEnabled false")
            v1SigningEnabled false
        }
        v2SigningEnabled true
    }
}

圖片

去掉v1簽名后,上圖的三個文件在 APK 中會消失,也能較少 600k 左右的體積。

4.6 動效資源文件優化

發現項目中用了不少的 GIF、Lottie 文件、SVG 文件,占用了很大一部分體積。考慮將這部分替換成更小的動畫文件,目前游戲中心接入了 PAG 方案。替換了部分 GIF 圖和 Lottie 文件。

PAG 文件采用可擴展的二進制文件格式,可單文件集成圖片音頻等資源,導出相同的 AE 動效內容,在文件解碼速度和壓縮率上均大幅領先于同類型方案,大約為 Lottie 的0.5倍,SVG 的0.2倍。

實際上可能由于設計導出的 Lottie 或者 GIF 不規范,在導出 PAG 文件時會提醒優化點,實際部分資源的壓縮比率達到了80~90%,部分動效資源從幾百K降到了幾十K。

具體可以參考 PAG 官網:

https://github.com/Tencent/libpag/blob/main/README.zh_CN.md

游戲中心這邊將比較大的 GIF 圖,較多的 Lottie 圖做過 PAG 替換。

舉例:

(1)游戲中心的榜單排行頁上的頭圖,UI那邊導出的符合效果的 GIF 大小為701K,替換為 PAG 格式后同樣效果的圖大小為67K,只有原來的1/10不到。

圖片

(2)游戲中心的入口空間 Lottie 動效優化。

圖片

一份 Lottie 動效大概是這樣的,一堆資源問題加上 Json 文件。像上述動效的整體資源為112K,同樣的動效格式轉換為 PAG 格式后,資源大小變成6K,只有原大小的5%左右。之后新的動效會優先考慮使用 PAG。

4.7 編譯期間優化圖片

以游戲中心 App 為例,圖片資源約占用了25%的包體積,因此對圖片壓縮是能立桿見效的方式。

WebP 格式相比傳統的 PNG 、JPG 等圖片壓縮率更高,并且同時支持有損、無損、和透明度。

思路就是在是在 mergeRes 和 processRes 任務之間插入 WebP 壓縮任務,利用 Cwebp 對圖片在編譯期間壓縮。

圖片


(注:圖片來源于https://booster.johnsonlee.io/zh/guide/shrinking/png-compression.html#pngquant-provider)

已有的解決方法:

(1)可以采用滴滴的方案 booster,booster-task-compression-cwebp 。

參考鏈接:https://github.com/didi/booster

(2)公司內部官網模塊也有類似基于 booster 的插件,基于 booster 提供的 API 實現的圖片壓縮插件。壓縮過后需要對所有頁面進行一次點檢,防止圖片失真,針對失真的圖片,可以采用白名單的機制。

4.8 動態化加載so

同樣以游戲中心為例,so的占比達到了45.1%,可以對使用場景較少和較大的so進行動態化加載的策略,在需要使用的場景下載到本地,動態去加載。

使用的場景去服務端下載到本地加載的流程可以由以下流程圖表示。

圖片

流程可以歸納為下載、解壓、加載,主要問題就是解決so加載問題。

載入so庫的傳統做法是使用:

System.loadLibrary(library);

經常會出現 UnsatisfiedLinkError,Relinker 庫能大幅減小報錯的概率:

ReLinker.loadLibrary(context, "mylibrary")

具體可以參考:

https://github.com/KeepSafe/ReLinker

按需加載的情形,風險與收益是并存的,有很多情況需要考慮到,比如下載觸發場景、網絡環境、加載失敗是否有降級策略等等,也需要做好給用戶的提示交互。

4.9 內置包只放64位so

目前新上市的手機 CPU 架構都是arm64-v8a, 對應著 ARMV8 架構,所以在打包的時候針對內置項目,只打包64位so進去。

ndk {
            if ("64" == localMultilib)
                abiFilters "arm64-v8a"
            else if ("32" == localMultilib)
                abiFilters "armeabi"
            else
                abiFilters "armeabi", "arm64-v8a"
        }
//其中localMultilib為配置項變量
 
String localMultilib = getLocalMultilib()
String getLocalMultilib() {
    def propertyKey = "LOCAL_MULTILIB"
    def propertyValue = rootProject.hasProperty(propertyKey) ? rootProject.getProperty(propertyKey) : "both"
    println " --> ${project.name}: $propertyKey[$propertyValue], $propertyKey[${propertyValue.class}]"
    return propertyValue
}

左右滑動查看完整代碼

4.10 開啟代碼混淆、移除無用資源、ProGuard 混淆代碼

android {
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
        }
    }
}

shrinkResources 和 minifyEnabled 必須同時開啟才有效。

特別注意:這里需要強調一點的是開啟之后無用的資源或者圖片并沒有真正的移除掉,而是用了一個同名的占位符號。

可以通過 ProGuard 來實現的,ProGuard 會檢測和移除代碼中未使用的類、字段、方法和屬性,除此外還可以優化字節碼,移除未使用的代碼指令,以及用短名稱混淆類、字段和方法。

proguard-android.txt 是 Android 提供的默認混淆配置文件,在配置的 Android sdk /tools/proguard 目錄下,proguard-rules.pro是我們自定義的混淆配置文件,我們可以將我們自定義的混淆規則放在里面。

android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }
}

左右滑動查看完整代碼

4.11 R文件內聯優化

如果我們的 App 架構如下:

圖片

編譯打包時每個模塊生成的 R 文件如下:

R_lib1 = R_lib1;
R_lib2 = R_lib2;
R_lib3 = R_lib3;
R_biz1 = R_lib1 + R_lib2 + R_lib3 + R_biz1(biz1本身的R)
R_biz2 = R_lib2 + R_lib3 + R_biz2(biz2本身的R)
R_app = R_lib1 + R_lib2 + R_lib3 + R_biz1 + R_biz2 + R_app(app本身R)

左右滑動查看完整代碼

可以看出各個模塊的R文件都會包含下層組件的R文件內容,下層的模塊生成的id除了自己會生成一個R文件外,同時也會在全局的R文件生成一個,R文件的數量同樣會膨脹上升。多模塊情況下,會導致 APK 中的 R 文件將急劇的膨脹,對包體積的影響很大。

由于App模塊目前的R文件中的資源ID全部是 final 的, Java 編譯器在編譯時會將 final 常量進行 inline 內聯操作,將變量替換為常量值,這樣項目中就不存在對于 App 模塊R文件的引用了,這樣在代碼縮減階段,App 模塊R文件就會被移除,從而達到包體積優化的目的。

基于以上原理,如果我們將 library 模塊中的資源 ID 也轉化為常量的話,那么 library 模塊的R文件也可以移除了,這樣就可以有效地減少我們的包體積。

現在有不少開源的R文件內聯方法,比如滴滴開源的 booster 與字節開源的 bytex 都包含了R文件內聯的插件。

booster 參考:

https://booster.johnsonlee.io/zh/guide/shrinking/res-index-inlining.html#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8

bytex 參考:

https://github.com/bytedance/ByteX/blob/master/access-inline-plugin/README-zh.md

五、優化效果

5.1 優化效果

上述優化措施均在游戲中心實際中采用,以游戲中心某個相同的版本為例子,前后體積對比如下圖所示:

圖片

(1)包體積優化的比例達到了31%,包體積下降了20M左右,從長久來說對應用的轉換率可以提升3%的點左右。

(2)啟動速度相對于未優化版本提升2.2%個點。

5.2 總結

(1)讀者想進行體積優化之前,需先分析下 APK 的各個模塊占比,主要針對占比高的部分進行優化,比如:游戲中心中 lib、res、assets、resources 占比較高,就針對性的進行了優化;

(2)動效方案的切換、so動態加載、編譯期間圖片優化等措施是長久的,相比于未進行優化,時間越長可能減少的體積越明顯;

(3)資源文件最小化配置、配置資源優化,簡單且效果顯著;

(4)后續會對 dex 進行進一步探索,目前項目中代碼基本上都在做加法,越來越復雜,很少有做減法,導致 dex 逐漸增大,目前還在探索怎么進一步縮小 dex 體積。

責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2022-12-22 10:55:24

vivo代碼

2022-10-28 13:41:51

字節SDK監控

2023-07-26 07:51:30

游戲中心個性化

2023-08-03 10:19:59

AB實驗戶不均勻

2022-04-28 09:36:47

Redis內存結構內存管理

2022-06-07 15:33:51

Android優化實踐

2022-06-30 10:32:36

vivo數據分析體系數據模型

2023-06-15 07:49:33

2015-09-23 10:25:41

Docker英雄聯盟Docker實踐

2023-03-15 21:38:43

短視頻服務器

2025-02-20 08:00:00

2023-07-19 22:17:21

Android資源優化

2022-06-16 13:21:10

vivo容器集群云原生

2011-07-06 10:49:50

MySQL優化
點贊
收藏

51CTO技術棧公眾號

色妞欧美日韩在线| 国产成人高清在线| 亚洲开心激情网| 精品日韩久久久| 美女网站一区二区| 欧美视频你懂的| 中日韩在线视频| 中文字幕人妻丝袜乱一区三区| 狠狠综合久久av一区二区蜜桃| 欧美色视频在线| 欧美精品久久96人妻无码| 欧美特黄一级视频| 久久久久久夜| 九九视频直播综合网| 国产精品边吃奶边做爽| 成人全视频在线观看在线播放高清| 国产精品久久国产精麻豆99网站| 91九色露脸| 狠狠人妻久久久久久综合| 97人人精品| 亚洲精品久久在线| www.99在线| 丁香花在线高清完整版视频| 国产女人18水真多18精品一级做| 99精品在线直播| 免费黄色片视频| 亚洲成人中文| 丝袜亚洲另类欧美重口| 污污内射在线观看一区二区少妇 | 国产一区二区三区视频免费| 亚洲一区二区中文字幕在线观看| 黑人精品一区| 亚洲影视在线观看| 亚洲二区三区四区| 青梅竹马是消防员在线| 国产成人精品免费网站| 国产精品欧美日韩久久| 国产中文字字幕乱码无限| 欧美国产偷国产精品三区| 亚洲欧美一区二区三区情侣bbw| 欧美人与性动交α欧美精品| 99精品国自产在线| 欧美视频在线视频| 国产高清www| 日本不卡一区二区三区四区| 三上悠亚影音先锋| 亚洲欧美日韩精品一区| 九七久久人人| 久久精品夜色噜噜亚洲aⅴ| 97国产超碰| 国产精品久久久久久久免费看| 久久精品1区| 91精品国产亚洲| 日韩av无码中文字幕| 欧美96在线丨欧| www亚洲精品| 免费看的黄色录像| 久久不卡国产精品一区二区 | 亚洲日本电影在线| 亚洲亚洲精品三区日韩精品在线视频 | 伊人手机在线| 亚洲青青青在线视频| 制服丝袜综合日韩欧美| 香蕉视频国产在线观看| 国产精品久线观看视频| 亚洲精蜜桃久在线| 求av网址在线观看| 中文字幕在线不卡一区| 中文字幕一区二区三区四区五区| 在线免费观看黄色av| 中文字幕av一区 二区| 亚洲五月六月| a毛片在线观看| 亚洲国产精品久久艾草纯爱| 麻豆tv在线播放| 亚洲黄色免费看| 91久久精品日日躁夜夜躁欧美| 老司机午夜av| 亚洲影视资源| 91精品中国老女人| 一级全黄肉体裸体全过程| 成人av电影观看| av在线影院| 一区二区三区四区视频精品免费| 黄色a级片免费看| 高清视频在线观看三级| 色婷婷综合五月| 自拍偷拍一区二区三区四区| 成人在线视频www| 亚洲精品在线观看网站| www.色多多| 色综合天天爱| 欧美精品一区二区免费| 国产午夜精品理论片在线| 偷偷www综合久久久久久久| 久久久女人电视剧免费播放下载| 中文字幕亚洲精品一区| 麻豆精品在线播放| 国产精品一区二区三区在线| 欧美色视频免费| 国产精品成人午夜| 少妇高潮毛片色欲ava片| 成人精品电影在线| 日韩亚洲欧美中文三级| av直播在线观看| 国产精品久久久久久久免费观看| 欧美激情欧美激情| 国产免费www| 国产a视频精品免费观看| 欧美二区在线| 日本天码aⅴ片在线电影网站| 欧美日韩精品在线| 精品亚洲视频在线| 亚洲精品推荐| 欧美另类极品videosbest最新版本| 国产成人亚洲精品自产在线| 免费观看在线色综合| 国产在线精品一区二区三区| 91精品国产91久久久久游泳池 | 北条麻妃在线观看视频| 一区二区三区四区五区精品视频 | 日韩天堂在线视频| 欧美一区二区激情视频| 国产尤物一区二区| 欧美一区二区三区在线播放| 欧美videos另类精品| 欧美三级电影网| 亚洲视频在线播放免费| 天天综合一区| 国产精品久久不能| 亚洲aⅴ在线观看| 一区二区三区视频在线看| 亚洲一级片免费| 神马久久一区二区三区| 97国产精品视频| 亚洲av无码乱码国产精品久久| 国产女同性恋一区二区| av观看免费在线| 奇米影视777在线欧美电影观看| 欧美另类暴力丝袜| 99久久国产热无码精品免费| 国产精品区一区二区三| 黄色av免费在线播放| 欧美91在线| 欧美激情综合亚洲一二区| 国产哺乳奶水91在线播放| 中文字幕一区日韩精品欧美| 亚洲最大综合网| 精品国产乱码久久久久久蜜坠欲下 | 欧美日韩精品二区第二页| 美女洗澡无遮挡| 久久国产99| 欧美日韩亚洲免费| 另类激情视频| 亚洲色无码播放| 波多野结衣二区三区| 久久久久国产精品麻豆ai换脸| 狠狠干 狠狠操| 天堂日韩电影| 欧美一区二区三区图| 男人的天堂在线| 色999日韩国产欧美一区二区| 国产精品成人一区二区三区电影毛片 | 日韩在线免费高清视频| 国产又粗又猛又黄又爽无遮挡| 国产精品高潮呻吟| 三级黄色片免费看| 激情欧美丁香| 久久精品五月婷婷| 国产综合色区在线观看| 自拍亚洲一区欧美另类| 91精品人妻一区二区三区果冻| 亚洲日本在线天堂| www.com日本| 中文一区在线| 先锋在线资源一区二区三区| 四虎影视精品永久在线观看| 久久av红桃一区二区小说| 精品女同一区二区三区| 午夜影视日本亚洲欧洲精品| 亚洲熟妇一区二区三区| 美女网站色91| www.欧美黄色| 久久93精品国产91久久综合| 91精品国产综合久久久久久蜜臀 | 久久99国产精品视频| 国产欧美日韩免费| 香蕉成人app免费看片| 日韩成人在线观看| 91无套直看片红桃| 亚洲成人免费看| 欧美成人另类视频| 粉嫩高潮美女一区二区三区| 北条麻妃69av| 91精品综合| 久久伊人资源站| 青青青国产精品| 韩国日本不卡在线| 日韩av中文| 亚洲国产精品久久久久久| 波多野结衣影片| 亚洲国产婷婷综合在线精品| 亚洲久久久久久久| 国产suv精品一区二区6| 中文字幕视频在线免费观看| 极品尤物久久久av免费看| 神马欧美一区二区| 久久人人爽人人爽人人片av不| 国产精品久久久久久久久久久久久 | 99热播精品免费| 日韩av一区二区在线| 亚洲一区二区激情| 亚洲成av人片观看| 91n在线视频| 久久综合狠狠综合| 中文字幕1区2区| 国产午夜在线观看| 91黄色免费看| 国产无精乱码一区二区三区| 中文字幕第一区综合| 亚洲少妇一区二区三区| 免费人成网站在线观看欧美高清| www.av片| 欧美+亚洲+精品+三区| 亚洲精品久久久久久一区二区| 久久精品凹凸全集| 97视频热人人精品| 91成人在线网站| 国产成人精品免高潮费视频| 91av久久| 欧美国产乱视频| 在线观看三级视频| 日韩中文第一页| 五月香视频在线观看| 国产丝袜一区二区三区免费视频| 亚洲精品成av人片天堂无码 | 久久久久久免费| 亚洲视频在线播放免费| 成人精品国产一区二区4080| 黄色动漫在线免费看| 99在线播放| 在线不卡国产精品| 五月天激情开心网| 亚洲大尺度美女在线| www.天堂在线| 日韩欧美电影在线| 国产夫妻在线观看| 日韩一区二区三区观看| av中文字幕免费在线观看| 色喇叭免费久久综合网| 欧美一区亚洲二区| 国产麻豆一区二区三区精品视频| 久久这里精品国产99丫e6| 日本一区福利在线| 欧美日韩国产三区| 久久99影视| 亚洲国产一区二区三区在线播| 国产一区二区三区电影在线观看| 日韩免费电影一区二区| 欧美综合另类| 国产a级片免费看| 欧美在线黄色| 蜜桃传媒一区二区三区| 亚洲一区国产| 欧美精品一区二区三区免费播放| 天堂成人免费av电影一区| www.日日操| 激情六月婷婷综合| 美女又黄又免费的视频| 成人av电影在线网| 亚洲精品视频大全| 日本一区二区不卡视频| 午夜爽爽爽男女免费观看| 亚洲综合丁香婷婷六月香| 五月婷婷激情网| 日本韩国一区二区三区视频| 又骚又黄的视频| 日韩欧美你懂的| 凸凹人妻人人澡人人添| 国产一区二区久久精品| 哥也色在线视频| 97激碰免费视频| 成人免费看黄| 91精品在线播放| 香蕉视频一区二区三区| 亚洲欧美日韩在线综合| 欧美另类亚洲| 欧美aⅴ在线观看| 狠狠色综合播放一区二区| 成人免费看片载| 久久精品亚洲精品国产欧美kt∨| 少妇高潮在线观看| 精品久久久免费| 91资源在线视频| 日韩成人av网址| 黄色网页网址在线免费| 97免费在线视频| 国产第一亚洲| 开心色怡人综合网站| 亚洲乱码免费伦视频| 国产99久久九九精品无码| 久久草av在线| 草草地址线路①屁屁影院成人| 国产精品灌醉下药二区| 少妇太紧太爽又黄又硬又爽| 制服.丝袜.亚洲.另类.中文 | 精品视频久久久久久久| 精品孕妇一区二区三区| 奇米4444一区二区三区| 日韩中文一区二区| 手机在线观看国产精品| 亚洲精品日韩久久| 久久精品视频在线观看免费| 久久品道一品道久久精品| 美女毛片在线观看| 欧美日韩在线综合| 日本亚洲一区| 久久久久久午夜| 蜜桃精品视频| 夜夜爽99久久国产综合精品女不卡| 亚洲欧美成人| 美女黄色一级视频| 亚洲黄色性网站| 亚洲天堂久久久久| 国产午夜精品全部视频播放| 男人的天堂免费在线视频| 91在线看网站| 国产精品99久久| 国产精品久久久毛片| 久久精品在这里| 欧美一区二区激情视频| 日韩高清免费在线| 18video性欧美19sex高清| 999精品视频一区二区三区| 久久久精品久久久久久96| 一级在线免费视频| 日本一区二区免费在线| 亚洲中文一区二区| 亚洲男人7777| 高清不卡亚洲| 欧美极品日韩| 噜噜噜在线观看免费视频日韩| 毛茸茸free性熟hd| 亚洲国产乱码最新视频| 狠狠躁日日躁夜夜躁av| 欧美激情视频三区| 4438全国亚洲精品观看视频| av 日韩 人妻 黑人 综合 无码| 秋霞午夜av一区二区三区| 少妇愉情理伦三级| 欧美日韩亚洲综合一区二区三区| 国模吧精品人体gogo| 日本一区二区三区四区视频| 蜜乳av综合| 国产精品久久久久9999小说| 国产三级精品在线| 最近中文字幕免费在线观看| 色综合伊人色综合网站| 久久99久久久精品欧美| 2025韩国大尺度电影| 国产自产视频一区二区三区| 精品国产乱码久久久久久鸭王1| 日韩精品在线一区二区| 91超碰国产在线| 欧美美乳视频网站在线观看| 久久综合亚州| 国产传媒免费在线观看| 日韩午夜激情电影| aa视频在线观看| 欧美一区二区三区四区夜夜大片| 日日噜噜夜夜狠狠视频欧美人| 少妇太紧太爽又黄又硬又爽小说| 欧美精品久久久久久久久老牛影院| 成人午夜在线影视| 国产青春久久久国产毛片| 性娇小13――14欧美| 九一在线免费观看| 欧美一区二区三区在线电影| 高清电影在线免费观看| 欧美国产一二三区| 久久99精品久久久久久动态图| 波多野结衣不卡视频| 亚洲国产精品福利| 91综合国产| 成人av在线不卡| 久久精品视频免费| 99国产揄拍国产精品| 琪琪亚洲精品午夜在线| 99久久亚洲精品蜜臀| 亚洲少妇一区二区| 91久久线看在观草草青青| 四虎av在线| 欧美日本韩国一区二区三区| 精品亚洲成a人| 日韩一区二区视频在线| 久久精品成人欧美大片| 黑色丝袜福利片av久久| 一起操在线视频| 欧美日韩精品在线观看| av毛片在线免费看|