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

來自微信團隊的Apk瘦身經驗

移動開發 Android
隨著版本迭代升級,Android安裝包越來越大,一些內存將滿的手機會出現無法安裝的現象。一篇來自微信團隊的文章,介紹了安裝包的生成、編譯過程、減少安裝包大小的Tips以及如何判斷安裝包是否可以安裝等。

用戶抱怨安裝包越來越大?印度友人反饋裝不上微信?歡迎來到本期的走進科學--安裝包速成記。做一個有節操的安裝包,我們希望它越小越好,并且確保用戶都能安裝的上。

Android的安裝包,簡單來說就是一個壓縮包,首先我們了解一下它的生成過程。

一、安裝包編譯過程

一般我們使用ant、gradle等方式編譯生成安裝包,它一般包含以下幾個步驟。

但是對于多library的結構下,ant與gradle的并行度并不足夠。當前微信已經切換到Facebook的開源編譯工具buck(相關介紹http://facebook.github.io/buck/),編譯速度得到了大大提升。

在buck的基礎上我們主要做了以下兩個工作:

EclipseToBuck,開發者無須關心buck腳本的編寫,buck腳本使用代碼自動生成

微信使用多library結構,每次編譯后監控每個模塊的線性內存、方法數、資源大小。

二、減少安裝包大小的Tips

現在我們開始***項主要內容,如何減少安裝包的體積?

1. 安裝包監控

我們做安裝包優化,首先要對我們安裝包每一部分有一個詳細的了解,知道安裝包大在什么地方,與上一版本有著怎么樣的變化。所以我們首先實現了一個安裝包檢測工具:

監控

1. 每個dex方法數的變更情況;

2. 每個模塊線性內存的變化情況;

3. 沒有alpha通道的png圖,可壓縮成jpg減少體積;

4. 超過一定數值的大文件,特別是圖片資源可采用有損壓縮;

5. 安裝包的大小、文件數變化;

6. 新增文件、減少文件,文件大小發生變化的情況;

現時微信的安裝包監控包括兩個維度,一是每日的監控,采用的是***一個包與昨日的***一個包對比;二是版本之間的對比,發布前需要用待上線版本與線上版本對比。我們希望若發現問題,能立刻警報,提交到bug系統。

2. 刪除無用資源

在產品的大錘下,每個模塊不修改個三五十次,都不好意思說自己是微信的開發。在不停的迭代中,或多或少會出現無用的資源,包括但不限于xml、png、id、string。

查找無用資源主要使用lint的UnusedResources以及UnusedIds兩個檢查規則,但是針對多library結構,官方的lint在某些方面不符合我們的要求,所以我們修改了一些地方。

對于使用gradle的童鞋,可以采用:

  1. android { 
  2. ... 
  3. buildTypes { 
  4. release { 
  5. minifyEnabled true 
  6. shrinkResources true 
  7. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

3. 圖片處理

.png、.9.png、.jpg、.gif資源是每一個安裝包永遠的痛,追求美感的設計師希望每個像素都是***的。這邊的tip有以下幾點:

詳細描述

1.對于體積特別大(超過50k)的圖片資源可以考慮有損壓縮,jpg采用優圖壓縮,png嘗試采用pngquant壓縮,輸出視覺判斷是否可行;

2.對assets中的圖片資源也使用aapt的crunch做圖片預處理;

3.crunch有可能會使圖片變大,在這種情況,我們可以替換成原圖。需要注意的是對于.9.png,由于crunch過程中去除了黑邊,所以不能替換;

4.對于沒有透明區域的png圖片,可以轉成jpg格式。

4. 字符串編碼

為了節省空間,resources.arsc中的會有一個去重過的字符串資源池(相同的兩個字符串其實用的是同一份),每個String使用偏移值來獲取資源池中的數值。ResourceTable的編碼對于resources.arsc的體積有很大影響。

從Android 2.2 API Level8開始APK文件的資源resources.arsc的編碼有了小幅的改變,過去使用的是UTF-16編碼方式被轉換成了UTF-8編碼。這樣的好處就是處理純英文等直接通過ascii存儲語言的國家資源文件將會更小,而對于中文、日文這些國家的資源文件有可能會變大。

bool getUTF16StringsOption() {

return mWantUTF16 || !isMinSdkAtLeast(SDK_FROYO);

}

當然如果你發現使用UTF-8后resources.arsc反而變大,你可以強制使用UTF-16編碼。只需要在aapt中指定--utf16參數,也就是指定mWantUTF16為true(下面的注釋似乎跟代碼有出入)。

" --utf16\n"

" changes default encoding for resources to UTF-16. Only useful when API\n"

" level is set to 7 or higher where the default encoding is UTF-8.\n"

微信5.2.1把minSdkVersion更改到8,使用utf8編碼后,resources.arsc減少了將近1M。

5. 指定文件的壓縮方式與7zip壓縮

安裝包是一個壓縮文件,我們可以指定里面的文件采用哪種壓縮方式。假若我們輸入下面的命令:

aapt l <file_path.apk>

參數:

-v:會以table的形式輸出目錄,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。

其中Method表示壓縮形式,有:Deflate及Stored兩種,即該Zip目錄采用的算法是壓縮模式還是存儲模式;可以看出resources.arsc、*.png采用存儲模式,而其它采用壓縮模式。

有時候我們為了把某個數據文件不壓縮,而把它的后綴名改成png(其實可以指定appt參數 -0 )。其實aapt對于某些壓縮率不會太高的文件都默認使用了Stored模式。具體如下:

/* these formats are already compressed, or don't compress well */

static const char* kNoCompressExt[] = {".jpg", ".jpeg", ".png", ".gif", ".wav", ".mp2", ".mp3", ".ogg", ".aac", ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet", ".rtttl", ".imy", ".xmf", ".mp4", ".m4a", ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2", ".amr", ".awb", ".wma", ".wmv"};

文件如果采用Deflate方式存儲,意味著通過AssetManager讀取時需要解壓,耗費的時間與文件的壓縮比成比例。但大家記得這里面有一個坑,在Android 2.3以前的任何壓縮的資源的原始大小超過1M,AssetManger讀取時會拋出異常。這里面的Tip有:

Tips

1. 對.png、.jpg強制壓縮,但是的確普遍壓縮率在3%-5%,收益不是特別高;

2. 假若你的resources.arsc小于1M,可以對它進行壓縮,這邊可壓縮50-70%。需要注意的是,如果你的resources.arsc是壓縮的,程序需要把它讀到內存,也就是會增大運行內存;

3. 對于安裝包中的jar可以指定不壓縮,其實二次壓縮的壓縮率非常低;

此外,7z壓縮算法號稱優化了字典,完全兼容zip,使用7zip的***壓縮模式比傳統zip方式的確有所提升,但是這里需要注意兩個問題:

上文kNoCompressExt說到的流媒體文件,是通過mediaplay直接拿文件句柄(沒有像assetmanager會先解壓文件,要求文件是seekable)也不能壓縮。

那么說一般來說只有.jpg、.jpeg、.png、.gif可以壓縮,對于不需要兼容低版本或者resources.arsc小于1M的apk,可選擇壓縮resources.arsc。

6. C++的So庫

5.1. C++運行時庫統一使用stlport_shared

之前微信中的C++運行庫大多使用靜態編譯方式,使用stlport_shared方式可減小APK包大小,相當于把大家公有的代碼提取出來放一份,減少冗余。同時也會節省一點內存,加載so的時候動態庫只會加載一次,靜態庫則隨著so的加載被加載多份內存映像。

5.2. 把公用的C++模塊抽成功能庫

其實與上面的思路是一致的,主要為了減少冗余模塊。大家都用到的一些基礎功能,應該抽成基礎模塊。

7. 語言包動態加載

由于微信是一個國際化軟件,我們在String中添加了20多種語言支持。這也導致我們的resources.arsc有5M多之巨,嘗試過假如只留下默認的中文,resources.arsc可減少超過一半。事實上,大多數的語言我們并沒有使用到,這里提到的一個思路是動態下發語言包,程序中繼承Resource實現getString方式讀取即可。

假若你的apk并不要求聯網,要求用戶動態下發語言包似乎不work。這里在研究buck編譯的時候看到另外一個思路,即把大部分的語言二進制存放在assets。這個由于是普通數據文件,采用Deflate壓縮方式,會有比較大的壓縮率(與數據存儲方式也有關系)。

8. 資源混淆

我們常常用proguard來混淆代碼,那我們有沒有想過資源是否可以混淆?而混淆資源能帶來什么樣的好處?

建議

1. 比較酷,讓反編譯的人更加難受一下。面對一大堆以a,b,c,d命名的png、xml;

2. 由于resources.arsc需要記錄id與name的鍵值對,資源混淆對減少安裝包體積也有幫助。具體數值與編碼方式、id數量、平均減少命名長度有關(其實可以自己估量一下)。

微信的資源混淆工具不依賴源碼,只要輸入一個apk就能得到一個混淆之后的apk,大家有興趣的話,可以后續單獨來講。通過資源混淆微信大約能減少1M左右的大小,效果如下:

9. 持續交付

持續交互的***目標就是讓使用某個功能的人才會真正去下載某個模塊,這首先需要我們代碼結構的支持,即模塊化以及支持動態加載。微信對gpserver、打飛機等功能試用動態加載方式。其實這塊的核心思想就是將一些邊緣的,不常用的功能,都盡量采用這種方式加載。但需要與產品大大們激烈PK,用戶至上嘛。

記住,砍功能永遠是減少安裝包的***法寶!

三、安裝包是否能安裝

這里討論第二個主要問題,如何確保我們的安裝包用戶都能安裝的上,特別是2.3以下的爺們(希望有不需要考慮它們的一天)。

1. Dex的65536高壓線

原因你懂得,超過請減少方法數,或自行拆多dex。其實在這里,我們這邊有一點積累,但不在這篇文章的討論范圍。具體可參考km中的一些文章:

計算某個dex的方法總數,可使用:

function dex-method-count() {

cat $1 | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'

}

想看到所有的方法,用dexdump吧。

2. 任何壓縮的資源的原始大小不能超過1M

具體參考減少安裝包大小tips中的第五點。

3. 線性內存限制

其實這個往往才是決定安裝包是否能安裝的上的阿喀琉斯之踵(用完這個名詞,頓時高大上)。

關于線性內存的限制,可參考文章:

https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920

簡單來說就是在dexopt過程中,系統限制一個5-16M的線性內存,如果在讀取dex數據過程中超過了這塊內存,就會出現dexopt失敗。

由于dalvik加載系統模塊時需要占用部分內存,facebook的推薦值我們自身dex的***值是4M,但我們發現在某些2.3的機器超過3.5M之后依然會dexopt失敗。微信計算線性內存使用的是buck中asm-debug-all中提供的方法,計算class中會被dexopt中會讀入線性內存的總大小:

(buck源碼:https://github.com/facebook/buck)

通過baksmali反編譯dex,也能得到相同的效果。在上面的那篇Facebook文章中,它們通過hack的方式更改系統線性內存的值,這涉及兼容性的問題,但按它們說只在三星的某些機型需要適配,so名稱是:

(庫地址:http://asm.ow2.org/)

責任編輯:chenqingxiang 來源: WeMobileDev
相關推薦

2017-03-02 15:09:29

AndroidAPK瘦身實踐

2013-11-19 10:09:03

微信微信公號微信公眾賬號

2019-02-17 09:04:36

QQ微信馬化騰

2016-10-28 10:47:02

APP

2016-04-01 10:34:29

APK壓縮Android

2013-09-25 11:12:47

2015-10-10 16:02:36

React NativAndroid

2015-02-13 10:08:19

微信

2020-02-20 08:25:00

開源技術 軟件

2020-07-27 15:06:14

微信張小龍焦慮

2012-03-01 10:43:38

Windows 8預覽版

2013-11-29 10:56:28

2013-08-08 10:13:25

微信

2016-11-29 13:03:46

微信客戶端跨平臺組件

2015-07-16 10:11:38

TwitterHadoop集群優化

2022-03-11 10:22:58

IT變革IT領導者數字化轉型

2019-04-12 08:28:18

物聯網智慧城市IOT

2012-10-24 09:11:03

虛擬

2015-08-11 09:32:53

面試微信網易

2013-05-21 10:06:01

開發者微信公眾賬號
點贊
收藏

51CTO技術棧公眾號

国产精品视频在线免费观看 | 国产又色又爽又黄又免费| 狠狠做深爱婷婷综合一区| 欧美日韩色综合| wwwwww欧美| 国产在线你懂得| 久久精品国产999大香线蕉| 久久99久久99精品免观看粉嫩| 强迫凌虐淫辱の牝奴在线观看| 91精品国产66| 午夜精品一区在线观看| 亚洲三区在线观看| 熟妇高潮一区二区三区| 老司机一区二区| 68精品久久久久久欧美| av最新在线观看| 亚洲人成网亚洲欧洲无码| 欧美久久久久免费| 无遮挡又爽又刺激的视频| v片在线观看| 国产欧美日本一区视频| 精品久久久久久亚洲| 一本色道久久综合熟妇| 国产精品久久久久9999高清| 欧美成人精品在线观看| 亚洲а∨天堂久久精品2021| 第四色中文综合网| 日韩一区二区三区精品视频| 久久精品免费网站| 中文一区一区三区高中清不卡免费| 亚洲色图20p| 丝袜美腿玉足3d专区一区| 黄色av网站免费在线观看| 九九国产精品视频| 国产精品久久久久久久午夜| 毛片在线免费视频| 激情视频一区| 欧美激情国产日韩精品一区18| 俄罗斯毛片基地| 欧美激情在线免费| 国产视频久久久久久久| 污污内射在线观看一区二区少妇| 国产精品一站二站| 欧美日韩另类国产亚洲欧美一级| 日韩欧美xxxx| 欧美日韩免费看片| 狠狠躁夜夜躁人人爽天天天天97| aa视频在线播放| 久久久久黄久久免费漫画| 亚洲欧美日韩人成在线播放| 在线观看欧美一区| 69久久精品| 国产精品久久久久aaaa| 亚洲欧美成人一区| 欧美jizz18性欧美| 成人免费一区二区三区在线观看| 亚洲精品一区二区三区av| av片在线免费观看| 国产精品第一页第二页第三页| 日韩欧美99| 337p日本欧洲亚洲大胆鲁鲁| 国产精品福利电影一区二区三区四区 | 久久久久久久久久久影院| 亚洲作爱视频| 琪琪第一精品导航| 国产字幕在线观看| 日韩av在线发布| 国产一区二区香蕉| 99久久久久久久| 成人免费视频免费观看| 精品一区二区三区国产| 三级视频网站在线| 中文天堂在线一区| 中文字幕一区二区三区四区五区人 | 欧美性猛交bbbbb精品| 巨乳诱惑日韩免费av| 国产精品福利在线观看| 一区二区精品视频在线观看| 激情欧美日韩一区二区| 大波视频国产精品久久| 亚洲区小说区图片区| 国产日韩欧美不卡| 400部精品国偷自产在线观看| 毛片在线导航| 日本乱人伦aⅴ精品| 亚洲男人天堂av在线| 日韩精品一区二区三区中文在线 | 成年人视频网站在线| 中文字幕在线不卡一区二区三区| 糖心vlog在线免费观看| 性欧美18xxxhd| 欧美日韩综合在线| 俄罗斯黄色录像| 欧美人妖在线| 久久国产精品久久久| 久久一区二区三区视频| 美女免费视频一区二区| 国产精品久久亚洲7777| 国产免费a∨片在线观看不卡| 亚洲人成网站色在线观看| 欧美成人高潮一二区在线看| 国产电影一区二区三区爱妃记| 欧美一区二区不卡视频| 欧美夫妇交换xxx| 欧美成免费一区二区视频| 韩国福利视频一区| 91丨九色丨丰满| 91亚洲午夜精品久久久久久| 一区二区三区四区视频在线| f2c人成在线观看免费视频| 欧美视频在线观看一区二区| 成人手机在线免费视频| 婷婷亚洲图片| 国产精品久久久久秋霞鲁丝| 黄色片一区二区三区| 亚洲欧美综合色| 无码精品a∨在线观看中文| 日韩大陆av| 亚洲欧洲日产国码av系列天堂| 欧美毛片在线观看| 久久福利视频一区二区| 欧美精品一区二区视频| 免费看电影在线| 制服丝袜亚洲色图| 欧美 日本 国产| 伊人久久婷婷| 51精品国产人成在线观看| 福利片在线看| 一本色道久久综合狠狠躁的推荐| 亚洲乱妇老熟女爽到高潮的片 | 欧美视频免费看欧美视频| 一区二区三区无毛| 在线观看日韩专区| 日韩精品一区二区亚洲av| 国产999精品久久| 日韩最新中文字幕| 全球中文成人在线| 日韩亚洲成人av在线| 中国a一片一级一片| 久久无码av三级| 久久9精品区-无套内射无码| 久久悠悠精品综合网| 国内精品久久久久久中文字幕| 国产suv精品一区二区69| 国产精品污污网站在线观看| 亚洲天堂av线| 日韩一区三区| 成人福利网站在线观看| 欧美一区二区三区| 欧美片在线播放| 国产精品精品软件男同| 国产在线视频一区二区| 青青草原网站在线观看| 亚洲1区在线| 欧美日韩成人黄色| 亚洲第一天堂网| 亚洲.国产.中文慕字在线| 精品久久久久久无码人妻| 亚洲一级特黄| 牛人盗摄一区二区三区视频| 欧美成人ⅴideosxxxxx| 亚洲最新av在线| 91成人一区二区三区| 亚洲欧美日本韩国| 欧美图片自拍偷拍| 亚洲福利免费| 麻豆精品视频| 国产福利91精品一区二区| 中文字幕精品一区二区精品| 国产精品久久久久久在线| 樱花草国产18久久久久| av在线播放网址| 老司机午夜精品视频| 亚洲开发第一视频在线播放| 3d性欧美动漫精品xxxx软件| 色播久久人人爽人人爽人人片视av| 在线免费观看日韩视频| 一区二区不卡在线视频 午夜欧美不卡在 | 丁香婷婷综合色啪| 亚洲中文字幕无码不卡电影| 日韩欧美中文| 国产精品三区在线| 日本不卡一二三| 久热爱精品视频线路一| 日韩中文字幕观看| 欧美偷拍一区二区| 欧美日韩在线视频免费| 不卡一二三区首页| 三级在线视频观看| 亚洲视频综合| 水蜜桃一区二区三区| 99久久免费精品国产72精品九九| 欧美综合一区第一页| 麻豆视频在线免费观看| 日韩精品久久久久| 国产理论视频在线观看| 激情久久av一区av二区av三区| 波多野结衣家庭教师在线观看| 国产91在线|亚洲| 视色视频在线观看| 亚洲一区一卡| 欧美一级爱爱视频| 成人羞羞在线观看网站| 久久国产精品 国产精品| 91成人福利社区| 日韩av片永久免费网站| 影音先锋男人资源在线| 国产一区二区三区久久精品 | 久久久久久久久久网| 第一会所亚洲原创| 久久国产精品-国产精品| 蜜桃精品视频| 成人福利在线视频| 色豆豆成人网| 69av在线视频| xxxx成人| 久久99精品久久久久久琪琪| 最新97超碰在线| 亚洲新声在线观看| 丝袜视频国产在线播放| 日韩视频免费观看高清在线视频| 中文天堂在线资源| 欧美午夜视频一区二区| 国产在线免费视频| 亚洲黄色尤物视频| 可以免费看av的网址| 国产欧美视频一区二区三区| 黄色国产在线观看| va亚洲va日韩不卡在线观看| 在线观看一区二区三区视频| 久久99精品网久久| 人人干人人干人人| 欧美aaaaa成人免费观看视频| 男人天堂999| 国产日本精品| 伊人成色综合网| 亚洲深夜av| 人妻精品无码一区二区三区 | 99精品视频国产| 久久精品久久精品| 性生活免费在线观看| 美女在线视频一区| 国产免费又粗又猛又爽| 日本怡春院一区二区| 牛夜精品久久久久久久| 日本vs亚洲vs韩国一区三区 | 一区二区日韩| eeuss一区二区三区| 青草伊人久久| 国产日韩欧美一区二区三区四区| 都市激情亚洲| 久久精品人人做人人爽电影| 久久91精品| 亚洲午夜在线观看| 亚洲欧美偷拍自拍| 在线观看成人免费| 亚洲午夜久久久久久尤物| 91免费黄视频| 亚洲综合二区| 中文字幕国产传媒| 韩国精品在线观看| 中文字幕永久免费| 91在线你懂得| 91社区视频在线观看| 综合久久久久久久| 国产真人真事毛片| 色诱亚洲精品久久久久久| 最近日韩免费视频| 日韩免费在线观看| 九色视频在线播放| 久久国产一区二区三区| 欧美videossex另类| 欧美最猛性xxxx| 欧美三级电影网址| 成人看片视频| 综合国产视频| www.黄色网址.com| 亚洲综合国产| 911av视频| 99久久99久久精品国产片果冻| 你懂得视频在线观看| 一区二区三区不卡在线观看| 亚洲不卡视频在线观看| 7777精品伊人久久久大香线蕉超级流畅| 成人午夜福利视频| 一区三区二区视频| 蜜桃传媒在线观看免费进入| 国产精品白嫩初高中害羞小美女| 国产精品视频首页| 你懂的视频在线一区二区| 你懂的国产精品永久在线| 丰满少妇被猛烈进入高清播放| 久久99精品久久久久久动态图 | 精品日韩久久久| 成人午夜视频免费看| 黄大色黄女片18免费| 激情成人在线视频| 国产精品丝袜黑色高跟鞋| 日韩av网站导航| 精品视频在线一区二区| 欧美亚洲另类激情另类| 国产精品毛片无码| 日韩免费一区二区三区| 亚洲精品字幕| www激情五月| 欧美激情一区二区三区不卡| 精品无码m3u8在线观看| 欧美精品少妇一区二区三区| 青草久久伊人| 国模视频一区二区| 久久精品九色| 一区二区三区视频| 日韩精品一二区| 亚洲成人日韩在线| 午夜欧美在线一二页| 国产男男gay体育生白袜| 亚洲一区二区久久久| 成人免费观看在线观看| 亚洲一区二区三区成人在线视频精品 | 欧美一区二区精品在线| yourporn在线观看中文站| 8x拔播拔播x8国产精品| 99国产精品免费网站| 亚洲免费视频一区| 日本不卡一区二区三区 | 国产精品成人在线观看| 五月天激情四射| 日韩的一区二区| 91丝袜在线| 国产精品久久波多野结衣| 亚洲精品成人| 欧洲美女亚洲激情| 国产精品久久久久久久久免费桃花| 精品久久久久久久久久久久久久久久| 精品精品欲导航| 久久五月精品中文字幕| 国产福利久久| 亚洲国产专区校园欧美| 日本久久久久久久久久| 亚洲国产另类精品专区| 欧美 日韩 人妻 高清 中文| 欧美精品福利在线| 第四色在线一区二区| 欧美精品久久久久久久自慰| 成人动漫一区二区在线| 久久综合亚洲色hezyo国产| 欧美变态tickling挠脚心| 久久香蕉av| 久久精品国产精品国产精品污 | 久久久福利影院| 综合中文字幕亚洲| www.五月激情| 欧美精品videos| 欧美男男freegayvideosroom| 久在线观看视频| 久久久久久影视| 91精品视频免费在线观看| 久久综合久久八八| 亚洲欧美日本国产| 久久综合九色综合88i| 久久综合国产精品| 国产精品国产精品国产| 色婷婷综合久久久久中文字幕1| 亚洲精品tv| 欧日韩免费视频| 久久综合九色综合欧美亚洲| 97人妻精品视频一区| 裸体女人亚洲精品一区| jizz性欧美2| 成人羞羞国产免费网站| 国产精品久久久久久福利一牛影视| 国产激情无套内精对白视频| 91国内在线视频| 日韩成人激情| 佐佐木明希电影| 色网站国产精品| 在线不卡日本v二区707| 精品亚洲一区二区三区四区五区高| 日本欧美一区二区在线观看| 亚洲欧美精品aaaaaa片| 亚洲国产精品热久久| 91在线亚洲| 久操手机在线视频| 久久久久九九视频| 国产普通话bbwbbwbbw| 2024亚洲男人天堂| 99精品美女| 久久久久亚洲av无码专区桃色| 欧美欧美欧美欧美首页| а√天堂8资源中文在线| 亚洲va韩国va欧美va精四季| 成人性视频网站| 中文字幕乱码人妻无码久久| 久久久久久国产三级电影| 欧美日韩精品在线一区| 老熟女高潮一区二区三区| 欧美日韩高清一区| 国产一二在线播放| 久久国产精品免费观看| 久久久久久亚洲综合影院红桃 |