精品欧美一区二区三区在线观看 _久久久久国色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一区二区三区| 久久久夜精品| 亚洲电影在线观看| 欧美在线观看成人| av大片在线观看| 国产综合成人久久大片91| 欧美激情国产精品| 亚洲AV无码国产精品| 国产亚洲人成a在线v网站| 亚洲美女视频在线| 蜜桃传媒视频麻豆一区| 96亚洲精品久久久蜜桃| 在线国产欧美| 日韩在线免费高清视频| 娇妻高潮浓精白浆xxⅹ| 亚洲日本网址| 性久久久久久久久久久| 三级视频在线| 美洲天堂一区二卡三卡四卡视频 | 国产精品激情av电影在线观看| eeuss中文字幕| 久久夜色电影| 91精品国产手机| 亚洲午夜精品久久久久久人妖| 老司机午夜在线| 久久精品人人爽人人爽| 国产成人精品免费视频大全最热 | 久草在线在线精品观看| 91精品国产91久久久久久吃药| 国产91在线播放九色| 久久免费视频66| 欧美久久久久免费| 国产成人精品无码播放| 国产h片在线观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美精品在线一区| 人妻少妇精品无码专区久久| 国产一区二区久久| 国产精品视频网| 伦av综合一区| 99视频在线精品国自产拍免费观看| 精品国产一区二区三区久久久狼| 女人又爽又黄免费女仆| 欧美重口另类| 亚洲第一福利视频| 三级网站免费看| 99国内精品久久久久| 精品国产乱码久久久久久天美 | 欧美a级片免费看| 精品国产一区一区二区三亚瑟 | 97人人模人人爽人人喊38tv| 7777久久亚洲中文字幕| 日本欧美大码aⅴ在线播放| 青草青草久热精品视频在线网站| 日本免费一二三区| 激情综合自拍| 国模吧一区二区三区| 九九视频在线观看| 欧美天天视频| 久久久亚洲精选| 欧美一级高潮片| 亚洲高清av| 韩日欧美一区二区| 成年人午夜视频| 国产精品美女| 清纯唯美日韩制服另类| 蜜臀精品一区二区三区| 日产国产欧美视频一区精品| 国产精品手机播放| 国产精品美女一区| 国产成人自拍网| 激情久久av| 每日更新在线观看av| 久久久777精品电影网影网| 日韩色妇久久av| 男人的天堂在线视频免费观看 | 国产亚洲精品网站| 色老太综合网| 欧美伦理视频网站| 深夜视频在线观看| 无码日韩精品一区二区免费| 一区二区三区回区在观看免费视频 | jizz久久久久久| 欧美美女直播网站| 国产日韩视频一区| 欧美极品中文字幕| 日韩亚洲成人av在线| 欧美日韩偷拍视频| 亚洲深夜激情| 国产精品亚洲精品| 乱色精品无码一区二区国产盗| 91小视频免费观看| 亚洲永久一区二区三区在线| 色女人在线视频| 一本到不卡免费一区二区| 一本一道久久a久久综合蜜桃| 我要色综合中文字幕| 亚洲精品中文字| 国产男女猛烈无遮挡在线喷水| 亚洲人成久久| 成人av电影天堂| 人妻91麻豆一区二区三区| 国产精品视频一二三| 人人妻人人澡人人爽欧美一区双| 亚洲男人av| 欧美一区二区免费观在线| 国产精品无码午夜福利| 亚欧美无遮挡hd高清在线视频 | 中文字幕成人| 国产视频综合在线| 日韩a级片在线观看| 亚洲欧美日本日韩| 91黄色国产视频| 国产高清视频在线| 午夜伦欧美伦电影理论片| 亚洲另类第一页| 色愁久久久久久| 欧美精品在线第一页| 日韩国产成人在线| 成人高清免费观看| www.黄色网址.com| 欧美精选视频一区二区| 亚洲精品美女免费| 激情视频在线播放| 另类成人小视频在线| 久久人人九九| av在线最新| 欧美一区二区三区日韩视频| 性少妇xx生活| 蜜乳av另类精品一区二区| 国产一区二区久久久| 超碰公开在线| 555www色欧美视频| 成熟人妻av无码专区| 国产精品日本| 国产日韩亚洲精品| 黄网站在线观| 日韩一区二区三区四区| 日韩在线不卡av| 麻豆精品一区二区av白丝在线| 欧美人xxxxx| 亚洲人成在线网站| 亚洲国产欧美一区| 日韩三级视频在线播放| 国产精品性做久久久久久| 欧美一级免费在线观看| 玖玖精品在线| 日韩中文字幕欧美| 一级做a爱片性色毛片| 中文文精品字幕一区二区| 干日本少妇首页| 亚洲精品亚洲人成在线| 情事1991在线| 国产小视频在线观看| 日本福利一区二区| 我不卡一区二区| 蜜桃传媒麻豆第一区在线观看| 午夜精品电影在线观看| 欧美高清影院| 久久国产精品首页| 精品人妻一区二区三区日产乱码| 一区二区久久久久| 娇妻高潮浓精白浆xxⅹ| 国产精品毛片| 日本婷婷久久久久久久久一区二区 | 免费成人在线看| 亚洲3atv精品一区二区三区| 欧美无人区码suv| 久久精品伊人| 亚洲精品一区国产精品| 高清久久精品| 欧美精品久久久久a| 外国精品视频在线观看| 午夜精品久久久久久久99樱桃| 中文字幕在线免费看线人| 天堂精品中文字幕在线| 一区二区视频在线播放| 视频二区欧美毛片免费观看| 久久免费视频在线| 黄色视屏网站在线免费观看| 欧美老肥妇做.爰bbww| 久久久久亚洲天堂| 久久青草欧美一区二区三区| 欧美wwwwwww| 欧美日韩一区二区高清| 欧美日韩在线一区二区三区| 四虎国产精品免费久久| 久久久久久久久久国产精品| 男人av在线| 在线播放/欧美激情| 黄色片视频网站| 国产无人区一区二区三区| 亚洲三级在线视频| 噜噜噜在线观看免费视频日韩| 亚洲欧美99| 国产精品玖玖玖在线资源| 国产精品91久久久久久| 日本在线视频www鲁啊鲁| 精品一区二区三区三区| 国产精品系列视频| 色综合天天综合在线视频| 国产亚洲精品久久久久久豆腐| 不卡一区二区中文字幕| 不卡的av中文字幕| 在线视频精品| 777久久精品一区二区三区无码| 伊人久久大香线蕉综合网站| 亚洲最大福利视频| 澳门av一区二区三区| 孩xxxx性bbbb欧美| 无遮挡动作视频在线观看免费入口| 亚洲第一视频网站| 国产精品高潮呻吟av| 欧美性猛交视频| 久久久久久久久97| 国产精品美女久久久久av爽李琼| 精品一区二区视频在线观看| 国产在线视频不卡二| 久久久久狠狠高潮亚洲精品| 在线观看日韩av电影| japanese在线视频| 波多野结衣的一区二区三区| 国内不卡一区二区三区| 国产精品亚洲四区在线观看| 国产精品久久久久久久久| 末成年女av片一区二区下载| 欧美俄罗斯性视频| 毛片在线播放a| 国产一区二区三区久久精品| 香蕉视频免费在线看| 欧美变态凌虐bdsm| 国产青青草视频| 欧美日韩国产综合一区二区| 日韩在线视频不卡| 狠狠躁夜夜躁人人爽超碰91| 日韩精品久久久久久久| 亚洲午夜影视影院在线观看| 强行糟蹋人妻hd中文| 亚洲桃色在线一区| 国产美女高潮视频| 国产精品狼人久久影院观看方式| jizz中文字幕| 国产欧美一区二区精品秋霞影院 | 不卡中文一二三区| 欧美亚洲丝袜| 精品影片在线观看的网站| 久久久久免费网| 欧美综合自拍| 久久国产精品 国产精品| 久久夜色电影| 久久久com| 国产精品一国产精品| 欧美一区二区高清在线观看| 国产午夜一区| 亚洲春色在线| 久久久久久久久久久妇女| 国产又大又长又粗又黄| 偷拍欧美精品| 成人短视频在线观看免费| 欧美日韩三级| 玩弄中年熟妇正在播放| 亚洲一区亚洲| 三级在线免费看| 国内一区二区视频| 91精品国产高清91久久久久久 | av片在线免费看| 日韩美女视频19| 免费人成视频在线| 欧美日韩美女视频| 亚洲精品久久久久久久蜜桃| 欧美日本乱大交xxxxx| 99久久亚洲精品日本无码 | 黑人与亚洲人色ⅹvideos| 亚洲午夜色婷婷在线| 日本中文字幕在线看| 超薄丝袜一区二区| sm在线播放| 国产精品第一视频| 国产aa精品| 狠狠色综合欧美激情| 日本女优一区| 美女av免费观看| 亚洲欧美日韩一区在线观看| 男女污污的视频| 国产成人三级在线观看| 51调教丨国产调教视频| 国产精品情趣视频| 国产午夜精品一区二区理论影院| 日韩欧美成人免费视频| 91精品视频免费在线观看| 精品久久久久久久人人人人传媒 | 国产精品欧美极品| 国产小视频在线看| 在线视频一区二区免费| av中文在线观看| 亚洲码在线观看| 国产最新在线| 青草青草久热精品视频在线观看| 精品伊人久久| 日韩.欧美.亚洲| 欧美日韩国产亚洲一区| 九九热免费精品视频| 成人精品国产福利| 黄色一级片一级片| 欧美性xxxxxxxxx| www.黄色国产| 最近2019中文字幕第三页视频| 18aaaa精品欧美大片h| 国产在线播放91| 日韩高清一级| 成年丰满熟妇午夜免费视频 | 免费在线观看日韩av| 日本一区二区综合亚洲| 国产精品第一页在线观看| 欧美精品视频www在线观看| 天堂av在线资源| 色综合色综合网色综合| 欧美成人一二区| 欧美人与性禽动交精品| 宅男噜噜噜66国产日韩在线观看| 毛片毛片毛片毛| 亚洲国产精品ⅴa在线观看| 日韩欧美三级在线观看| 日韩你懂的电影在线观看| 日本免费在线观看| 国产精品久久久久免费a∨大胸| 国产精品一区二区中文字幕| 九九久久九九久久| 久久成人免费网站| 色欲AV无码精品一区二区久久 | 一区二区日韩视频| 一区二区欧美久久| 天天综合网站| 欧美日韩亚洲在线| 国产精品久久国产愉拍| 97人妻精品一区二区三区免费| 亚洲精品视频在线| 国产乱码精品一区二区三区精东| 中文字幕日韩免费视频| 精品欧美一区二区三区在线观看| 欧美极品色图| 免费视频久久| 成年人网站免费在线观看 | 国产综合av在线| 成人av电影在线观看| 国产稀缺真实呦乱在线| 精品久久人人做人人爽| 福利小视频在线| 国产精品自拍首页| 亚洲精选在线| 亚洲综合自拍网| 色综合色狠狠天天综合色| 可以免费看污视频的网站在线| 欧美性在线视频| 国产成人ay| 超碰在线公开97| 最新热久久免费视频| 国产av精国产传媒| 欧美激情在线狂野欧美精品| 国内自拍欧美| 秋霞无码一区二区| 久久久青草青青国产亚洲免观| 国产又大又粗又爽| 自拍偷拍亚洲一区| 精品久久国产一区| 日产精品久久久久久久蜜臀| jvid福利写真一区二区三区| 久久久成人免费视频| 中文字幕日韩av综合精品| 日韩精品视频在线看| 欧美 日韩 亚洲 一区| 久久久影院官网| 中文字幕在线观看1| 欧美成人精品三级在线观看| 欧美日韩看看2015永久免费 | 久久久精品国产| 91精品短视频| 日韩欧美在线播放视频| 中文字幕av一区二区三区免费看| 99久久久无码国产精品免费| 8x拔播拔播x8国产精品| 日韩精品四区| 国产精久久久久| 色就色 综合激情| 超碰公开在线| 青青草久久网络| 国产精品资源在线看| 中文字字幕在线中文| xvideos国产精品| 日本天堂一区| 久久久久久久久久一区| 亚洲成a人v欧美综合天堂下载| 国产女人在线视频| 999热视频在线观看| 天堂精品中文字幕在线| 欧美成人一二三区| 亚洲少妇激情视频| av日韩精品| 亚洲天堂国产视频| 精品久久久国产精品999|