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

鴻蒙HarmonyOS三方件開(kāi)發(fā)指南-Updownfile

開(kāi)發(fā) OpenHarmony
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com

[[383850]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1. UpDownfile功能介紹

1.1. 功能介紹:

UpDownfile基于Okhttp為基礎(chǔ)進(jìn)行二次封裝,是一款非常好用的文件上傳下載框架,該框架功能強(qiáng)大,主要包含兩方面功能:

(1).文件下載帶進(jìn)度展示

(A).單任務(wù)下載:分為帶參數(shù)和不帶參數(shù),包括暫停下載、繼續(xù)下載功能;

(B).多任務(wù)下載:分為帶參數(shù)和不帶參數(shù),包括暫停下載、繼續(xù)下載功能;

(2).文件上傳帶進(jìn)度展示

(A). 單任務(wù)上傳:分為帶參數(shù)和不帶參數(shù),包括暫停上傳、繼續(xù)上傳功能;

(B). 多任務(wù)上傳:分為帶參數(shù)和不帶參數(shù),包括暫停上傳、繼續(xù)上傳功能;

運(yùn)行截圖如下:

1.2. 使用要求

(1) .在config.json進(jìn)行網(wǎng)絡(luò)以及文件讀寫(xiě)權(quán)限操作

  1. "reqPermissions": [ 
  2.   "reason"""
  3.   "name""ohos.permission.INTERNET" 
  4. }, 
  5. {"reason"""
  6.   "name""ohos.permission.READ_USER_STORAGE" 
  7. }, 
  8. {"reason"""
  9.   "name""ohos.permission.READ_MEDIA" 
  10. }, 
  11. {"reason"""
  12.   "name""ohos.permission.WRITE_USER_STORAGE" 
  13. }, 
  14. {"reason"""
  15.   "name""ohos.permission.WRITE_MEDIA" 

(2) .在實(shí)際使用地方進(jìn)行動(dòng)態(tài)權(quán)限申請(qǐng)

  1. String[] per = {"ohos.permission.READ_USER_STORAGE""ohos.permission.WRITE_MEDIA",  
  2. "ohos.permission.READ_MEDIA""ohos.permission.WRITE_USER_STORAGE"}; 
  3. requestPermissionsFromUser(per, 0); 

1.3. 使用實(shí)例介紹UI

2. UpdownFile使用方法

2.1. 新建工程,增加組件Har包依賴

在應(yīng)用模塊中添加HAR,只需要將updownfile.har復(fù)制到entry\libs目錄下即可(由于build.gradle中已經(jīng)依賴的libs目錄下的*.har,因此不需要再做修改)。

2.2. 斷點(diǎn)續(xù)傳使用方法介紹

(1). 在AbilitySlice里實(shí)現(xiàn)ProgressResponseBody.ProgressListener接口,重寫(xiě)。

  1. @Override 
  2. public void onPreExecute(long contentLength) { 
  3.     // 文件總長(zhǎng)只需記錄一次,要注意斷點(diǎn)續(xù)傳后的contentLength只是剩余部分的長(zhǎng)度 
  4.     if (this.contentLength == 0L) { 
  5.         this.contentLength = contentLength; 
  6.         getUITaskDispatcher().asyncDispatch(new Runnable() { 
  7.             @Override 
  8.             public void run() { 
  9.                 progressBar.setMaxValue((int) (contentLength / 1024)); 
  10.             } 
  11.         }); 
  12.     } 

(2).progressBar設(shè)置進(jìn)度更新的方法如下:

  1. @Override 
  2. public void update(long totalBytes, boolean done) { 
  3.     // 注意加上斷點(diǎn)的長(zhǎng)度 
  4.     this.totalBytes = totalBytes + breakPoints; 
  5.     getUITaskDispatcher().asyncDispatch(new Runnable() { 
  6.         @Override 
  7.         public void run() { 
  8.             progressBar.setProgressValue((int) (totalBytes + breakPoints) / 1024); 
  9.         } 
  10.     }); 
  11.     if (done) { 
  12.         // 切換到主線程 
  13.         getUITaskDispatcher().asyncDispatch(new Runnable() { 
  14.             @Override 
  15.             public void run() { 
  16.                 LogUtil.Toast(getAbility(), "下載完成"); 
  17.             } 
  18.         }); 
  19.     } 
  20. }  

2.3. 初始化下載方法及存儲(chǔ)路徑

  1. file = new File(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "windows.exe"); 
  2. downloader = new ProgressDownloader(PACKAGE_URL, file, this); 

2.4. 具體使用方法

(1). 下載:

  1. breakPoints = 0L; 
  2. downloader.download(0L); 
  3. LogUtil.Toast(getAbility(), "開(kāi)始下載"); 

(2). 暫停,開(kāi)啟攔截器

  1. downloader.pause(); 
  2. // 存儲(chǔ)此時(shí)的totalBytes,即斷點(diǎn)位置。 
  3. breakPoints = totalBytes; 
  4. LogUtil.Toast(getAbility(), "下載暫停"); 

(3). 繼續(xù)下載,傳入開(kāi)始下載的位置

  1. downloader.download(breakPoints); 
  2. LogUtil.Toast(getAbility(), "下載繼續(xù)"); 

2.5. 文件上傳使用方法

(1). 單文件上傳,無(wú)需參數(shù)

  1. /** 
  2.  * post請(qǐng)求,上傳單個(gè)文件 
  3.  * @param url:url 
  4.  * @param file:File對(duì)象 
  5.  * @param fileKey:上傳參數(shù)時(shí)file對(duì)應(yīng)的鍵 
  6.  * @param fileType:File類型,是image,video,audio,file 
  7.  * @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線程。還可以重寫(xiě)onProgress方法,得到上傳進(jìn)度 
  8.  */ 
  9. public static void okHttpUploadFile(String url, File file,String fileKey, String fileType, CallBackUtil callBack) { 
  10.     okHttpUploadFile(url, file, fileKey,fileType, null, callBack); 

(2). 單文件上傳,需要參數(shù)

  1. /** 
  2.  * post請(qǐng)求,上傳單個(gè)文件 
  3.  * @param url:url 
  4.  * @param file:File對(duì)象 
  5.  * @param fileKey:上傳參數(shù)時(shí)file對(duì)應(yīng)的鍵 
  6.  * @param fileType:File類型,是image,video,audio,file 
  7.  * @param paramsMap:map集合,封裝鍵值對(duì)參數(shù) 
  8.  * @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線程。還可以重寫(xiě)onProgress方法,得到上傳進(jìn)度 
  9.  */ 
  10. public static void okHttpUploadFile(String url, File file, String fileKey,String fileType, Map<String, String> paramsMap, CallBackUtil callBack) { 
  11.     okHttpUploadFile(url, file,fileKey, fileType, paramsMap, null, callBack); 

(3). 多文件上傳, List集合形式

  1.   /** 
  2. * post請(qǐng)求,上傳多個(gè)文件,以list集合的形式 
  3. * @param url:url 
  4. * @param fileList:集合元素是File對(duì)象 
  5. * @param fileKey:上傳參數(shù)時(shí)fileList對(duì)應(yīng)的鍵 
  6. * @param fileType:File類型,是image,video,audio,file 
  7. * @param paramsMap:map集合,封裝鍵值對(duì)參數(shù) 
  8. * @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線程。 
  9. */ 
  10. ublic static void okHttpUploadListFile(String url, Map<String, String> paramsMap,List<File> fileList, String fileKey, String fileType,  CallBackUtil callBack) { 
  11.    okHttpUploadListFile(url, paramsMap,fileList, fileKey, fileType, null, callBack); 

(4). 多文件上傳, Map形式

  1. /** 
  2.  * post請(qǐng)求,上傳多個(gè)文件,以map集合的形式 
  3.  * @param url:url 
  4.  * @param fileMap:集合key是File對(duì)象對(duì)應(yīng)的鍵,集合value是File對(duì)象 
  5.  * @param fileType:File類型,是image,video,audio,file 
  6.  * @param paramsMap:map集合,封裝鍵值對(duì)參數(shù) 
  7.  * @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì) 
  8.  * @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線程。 
  9.  */ 
  10. public static void okHttpUploadMapFile(String url, Map<String, File> fileMap, String fileType, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) { 
  11.     new RequestUtil(METHOD_POST, url,paramsMap, fileMap, fileType,  headerMap, callBack).execute(); 

3. UpdownFile開(kāi)發(fā)實(shí)現(xiàn)

3.1. 新建一個(gè)Module

新建一個(gè)Module,類型選擇HarmonyOS Library,模塊名為updownfile,如圖:

3.2. 新建一個(gè)OKhttpUtil類

新建一個(gè)OKhttpUtil類,將下載上傳方法進(jìn)行封裝。

3.3. 新建一個(gè)RequestUtil類

RequestUtil實(shí)現(xiàn)OkhttpUtil的各種方法

3.4. 新建CallBackUti實(shí)現(xiàn)進(jìn)度更新監(jiān)聽(tīng)

通過(guò)EventHandler發(fā)送消息對(duì)下載進(jìn)度實(shí)現(xiàn)回調(diào)監(jiān)聽(tīng),在主線程進(jìn)行UI更新操作。

3.5. 多任務(wù)下載使用方法

(1).多任務(wù)下載原理

創(chuàng)建線程池,點(diǎn)擊單個(gè)下載任務(wù)創(chuàng)建子線程并將子線程加入線程池進(jìn)行管理,將文件信息及更新進(jìn)度信息存入model進(jìn)行單獨(dú)管理,在使用的AblitySlice實(shí)現(xiàn)ProgressResponseBody.ProgressListener接口進(jìn)行進(jìn)度監(jiān)聽(tīng)。

(2). 應(yīng)用層面使用方法

(A). 引入har包,引入方法這里不做介紹

(B). 在AblitySlice實(shí)現(xiàn)ProgressResponseBody.ProgressListener接口,并重寫(xiě)接口的兩個(gè)方法。

  1. @Override 
  2. public void onPreExecute(long contentLength,int postion) { 
  3.     if (list.get(postion).getBean().getContentLength() == 0L) { 
  4.         list.get(postion).getBean().setContentLength(contentLength); 
  5.         list.get(postion).getBean().getProgressBar().setMaxValue((int) (contentLength / 1024)); 
  6.     } 
  7. @Override 
  8. public void update(long totalBytes, boolean done,int postion) { 
  9.     list.get(postion).getBean().setTotalBytes(totalBytes+list.get(postion).getBean().getBreakPoints()); 
  10.     getUITaskDispatcher().asyncDispatch(new Runnable() { 
  11.         @Override 
  12.         public void run() { 
  13.          list.get(postion).getBean().getProgressBar().setProgressValue((int) (list.get(postion).getBean().getTotalBytes()) / 1024); 
  14.         } 
  15.     }); 
  16.     if (done) { 
  17.         // 切換到主線程 
  18.         getUITaskDispatcher().asyncDispatch(new Runnable() { 
  19.             @Override 
  20.             public void run() { 
  21.                 LogUtil.Toast(getAbility(), "下載完成"); 
  22.             } 
  23.         }); 
  24.     } 

(C) .為L(zhǎng)istContainer創(chuàng)建適配器構(gòu)造數(shù)據(jù),實(shí)例如下:

  1. listContainer = (ListContainer) findComponentById(ResourceTable.Id_list); 
  2. //造數(shù)據(jù) 
  3. FileBean fileBean1 = new FileBean(); 
  4. fileBean1.setNum(1); 
  5. fileBean1.setUrl("https://dl.google.com/dl/android/studio/install/3.5.2.0/android-studio-ide-191.5977832-windows.exe"); 
  6. fileBean1.setName("下載一.exe"); 
  7. fileBean1.setBean(new ProgressBean(null,0,0)); 
  8. FileBean fileBean2 = new FileBean(); 
  9. fileBean2.setNum(2); 
  10. fileBean2.setUrl("https://dl.google.com/dl/android/studio/install/3.5.2.0/android-studio-ide-191.5977832-windows.exe"); 
  11. fileBean2.setName("下載二.exe"); 
  12. fileBean2.setBean(new ProgressBean(null,0,0)); 
  13. FileBean fileBean3 = new FileBean(); 
  14. fileBean3.setNum(3); 
  15. fileBean3.setUrl("https://dl.google.com/dl/android/studio/install/3.5.2.0/android-studio-ide-191.5977832-windows.exe"); 
  16. fileBean3.setName("下載三.exe"); 
  17. fileBean3.setBean(new ProgressBean(null,0,0)); 
  18. FileBean fileBean4 = new FileBean(); 
  19. fileBean4.setNum(4); 
  20. fileBean4.setUrl("https://dl.google.com/dl/android/studio/install/3.5.2.0/android-studio-ide-191.5977832-windows.exe"); 
  21. fileBean4.setName("下載四.exe"); 
  22. fileBean4.setBean(new ProgressBean(null,0,0)); 
  23. list.add(fileBean1); 
  24. list.add(fileBean2); 
  25. list.add(fileBean3); 
  26. list.add(fileBean4); 
  27. //初始化適配器 
  28. listItemProvider = new ListItemProvider(list,this,this); 
  29. //設(shè)置適配器 
  30. listContainer.setItemProvider(listItemProvider); 

(D). 在ListContainer的適配器的構(gòu)造方法中進(jìn)行線程池初始化

  1. threadTask= new ThreadTask(ability); 

(E).點(diǎn)擊開(kāi)始下載,創(chuàng)建子線程,并將子線程加入線程池進(jìn)行管理

  1. threadTask.CreatTask(postion,downloader);  

(F).暫停下載方法使用如下:

  1. list.get(i).getProgressDownloader().pause(); 
  2.  存儲(chǔ)此時(shí)的totalBytes,即斷點(diǎn)位置。  list.get(i).getBean().setBreakPoints(list.get(i).getBean().getTotalBytes()); 

(G). 繼續(xù)下載方法使用如下:

  1. list.get(i).getProgressDownloader().download(list.get(i).getBean().getBreakPoints());  

(H). 特別注意,點(diǎn)擊暫停時(shí),必須將當(dāng)前下載的節(jié)點(diǎn)進(jìn)行存儲(chǔ),因?yàn)樵摴?jié)點(diǎn)在重新下載時(shí)會(huì)當(dāng)作 下載的起始位置。存儲(chǔ)方法如下

  1. list.get(i).getBean().setBreakPoints(list.get(i).getBean().getTotalBytes()); 

3.6. 編譯HAR包

利用Gradle可以將HarmonyOS Library庫(kù)模塊構(gòu)建為HAR,構(gòu)建HAR的方法如下:

在Gradle構(gòu)建任務(wù)中,HAR包括生產(chǎn)和測(cè)試版本,雙擊PackageDebugHar或PackageReleaseHar任務(wù),構(gòu)建Debug或Release類型的HAR。

待構(gòu)建任務(wù)完成后,可以在工程目錄中的updownfile> bulid > outputs > har目錄中,獲取生成的HAR。

項(xiàng)目源代碼地址:https://github.com/isoftstone-dev/FileDownload_HarmonyOS

歡迎交流:HWIS-HOS@isoftstone.com

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-02-24 15:22:47

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-01-13 09:40:31

鴻蒙HarmonyOS開(kāi)發(fā)

2021-04-16 09:28:18

鴻蒙HarmonyOS應(yīng)用

2021-02-04 13:06:38

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-04 09:45:19

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-26 14:15:27

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-01-18 09:52:20

鴻蒙HarmonyOS開(kāi)發(fā)

2021-06-28 14:48:03

鴻蒙HarmonyOS應(yīng)用

2021-01-12 12:04:40

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-01-20 09:54:56

鴻蒙HarmonyOS開(kāi)發(fā)

2021-01-21 13:21:18

鴻蒙HarmonyOSPhotoview組件

2021-03-01 14:01:41

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-01-22 17:33:03

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-05-12 15:17:39

鴻蒙HarmonyOS應(yīng)用

2021-03-31 09:50:25

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-04-12 09:36:54

鴻蒙HarmonyOS應(yīng)用

2021-03-19 17:42:01

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-04-20 09:42:20

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-03-10 15:03:40

鴻蒙HarmonyOS應(yīng)用

2023-02-07 15:43:13

三方庫(kù)適配鴻蒙
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产在线欧美在线| 日本少妇xxx| a√资源在线| 国产呦萝稀缺另类资源| 高清在线视频日韩欧美| 在线观看国产网站| 欧美暴力调教| 亚洲男人的天堂一区二区| 国产66精品久久久久999小说| 日本天堂在线视频| 色777狠狠狠综合伊人| 日韩情涩欧美日韩视频| aa免费在线观看| 成人国产免费电影| 久久新电视剧免费观看| 国产日韩专区在线| 国产污污视频在线观看 | 欧美久久久久久久久中文字幕| 超碰97在线看| 成人影视在线播放| 99久久精品费精品国产一区二区| 国产精品久久av| 日本熟妇毛耸耸xxxxxx| 99久久综合| 亚洲色无码播放| 激情综合激情五月| 羞羞视频在线观看一区二区| 欧美色xxxx| 免费网站永久免费观看| 香蕉视频在线免费看| 91免费在线播放| 国产精品区一区| 97超碰资源站| 老牛国产精品一区的观看方式 | 老司机2019福利精品视频导航| 日韩码欧中文字| 日本精品一区二区三区高清 久久| 人妻妺妺窝人体色www聚色窝 | 国产女精品视频网站免费| 中文字幕一区二区三区精品| 香蕉国产精品| 中文字幕一区电影| 免费网站在线高清观看| 精品午夜电影| 亚洲精品一区二区三区影院 | 日韩在线播放视频| 男人舔女人下部高潮全视频| 欧美久久精品| 亚洲第一色在线| 国产精品欧美性爱| 日本一区二区三区播放| 91精品国模一区二区三区| 777视频在线| 成人黄色图片网站| 欧美午夜片在线观看| 日韩亚洲在线视频| a在线视频v视频| 黄色一区二区三区| 日韩欧美一区二| 中文在线аv在线| 欧美性猛交xxxx黑人| 欧美激情视频免费看| 91美女精品| 精品国产91久久久久久| 黄页网站在线观看视频| 少妇在线看www| 色综合天天做天天爱| 国产一区视频免费观看| 吉吉日韩欧美| 欧美日韩一级黄| 免费成人黄色大片| 99久久免费精品国产72精品九九| 欧美精品一区二区久久久| 黄色a一级视频| 国产精品一区二区av交换| 在线日韩精品视频| 日韩欧美123区| 在线观看的日韩av| 69久久夜色精品国产69| 亚洲欧美综合自拍| 麻豆视频观看网址久久| 91观看网站| 亚洲av成人精品日韩在线播放| 久久免费电影网| 亚洲天堂电影网| 调教一区二区| 色哟哟精品一区| 午夜啪啪小视频| 国产乱论精品| 在线看国产精品| 国产亚洲精品码| 日韩在线一区二区| 91传媒免费看| 牛牛热在线视频| 亚洲欧美另类久久久精品2019| 999久久欧美人妻一区二区| 成人免费图片免费观看| 欧美日韩一卡二卡| 久久久久成人精品无码中文字幕| 国产成人高清| 欧美激情a∨在线视频播放| 69成人免费视频| 国产精品一区二区三区四区| 久久久一本精品99久久精品| 久久99精品久久久久久野外| 精品久久久久久电影| 午夜久久久精品| 精品欠久久久中文字幕加勒比| 在线观看视频亚洲| 国产精品自拍99| 国产精品正在播放| 日韩在线三级| 美女视频在线免费| 欧美一区二区美女| 制服丨自拍丨欧美丨动漫丨| 母乳一区在线观看| 国产伦精品一区| av大大超碰在线| 欧美日韩激情一区二区| 免费观看av网站| 怡红院精品视频在线观看极品| 成人妇女淫片aaaa视频| 麻豆av电影在线观看| 亚洲va欧美va人人爽| 国产男女无遮挡猛进猛出| 四季av在线一区二区三区| 欧美一区二三区| 天天干视频在线| 亚洲国产三级在线| 18禁一区二区三区| 综合日韩在线| 91在线视频精品| 久久久久久国产精品免费无遮挡| 欧美自拍偷拍一区| 加勒比综合在线| 久久精品30| 免费精品视频一区二区三区| 91禁在线看| 欧美精品一区二区在线观看| 黄色一级视频在线观看| 国产精品一区二区不卡| 一本二本三本亚洲码| 91精品亚洲一区在线观看| 丝袜一区二区三区| 亚洲资源在线播放| 中文字幕欧美国产| jizz欧美激情18| 88久久精品| 国产一区二区精品丝袜| 久久久成人免费视频| 波多野结衣中文字幕一区二区三区| 久久免费看毛片| 97久久精品一区二区三区的观看方式| 一区二区三区四区精品| 无码人妻丰满熟妇精品| 久久综合久久综合九色| 尤物av无码色av无码| 欧美日韩一区二区三区四区不卡| 欧美激情性做爰免费视频| 99热这里只有精品在线| 成人欧美一区二区三区小说| 天天干天天玩天天操| 国产一区二区三区日韩精品| 日本免费久久高清视频| 你懂的视频在线播放| 色综合一区二区三区| 欧美高清性xxxx| 亚洲在线一区| 台湾成人av| 国产黄色一区| x99av成人免费| 国产喷水福利在线视频| 亚洲美女免费视频| 中文字幕第3页| 亚洲一级在线| 日韩av一区二区三区美女毛片| 欧美一级大黄| 色999日韩欧美国产| 国产超碰人人模人人爽人人添| 亚洲人精品一区| 欧美性受xxxx黒人xyx性爽| 欧美成人首页| 国产专区一区二区三区| 日韩av首页| 日韩中文在线中文网在线观看| 91国产免费视频| 一区二区三区蜜桃网| 呦呦视频在线观看| 日本视频一区二区三区| 一卡二卡3卡四卡高清精品视频| 国产日本亚洲| 欧美高清第一页| 亚洲av成人精品日韩在线播放| 欧洲人成人精品| 国产精品丝袜一区二区| 91亚洲精华国产精华精华液| 天天色综合社区| 影音国产精品| 台湾成人av| a级日韩大片| 日本久久91av| 影音先锋中文在线视频| 日韩精品欧美激情| 91九色蝌蚪91por成人| 亚洲一区免费在线观看| 国产一二三四视频| 成人污污视频在线观看| 九九热免费精品视频| 在线观看国产精品入口| 99热在线播放| 欧美日韩视频免费看| 久久久亚洲精品视频| aiai在线| 国产丝袜一区视频在线观看| 超碰在线人人干| 欧美在线观看视频在线| 青娱乐免费在线视频| 久久久久亚洲蜜桃| 久久久久亚洲av片无码v| 免费成人av在线播放| 很污的网站在线观看| 久久国产精品成人免费观看的软件| 国产精品久久久久久久免费大片| 欧美日韩美女| 日本不卡视频在线播放| 欧洲一区二区三区| 中文字幕在线观看亚洲| 日韩精品系列| 亚洲精品在线观看网站| 国产精品九九九九| 欧美性猛片xxxx免费看久爱| 日本一级淫片免费放| 亚洲欧美日韩国产成人精品影院 | 中文字幕一区二区三区免费看| 亚洲午夜私人影院| 看免费黄色录像| 中文字幕在线一区二区三区| 人妻一区二区视频| a亚洲天堂av| 日本泡妞xxxx免费视频软件| 美国毛片一区二区| 精品国产成人av在线免| 亚洲黄色av| h无码动漫在线观看| 99热国内精品| 国产成人三级视频| 色狮一区二区三区四区视频| 品久久久久久久久久96高清| 精品国产一区二区三区不卡蜜臂| 国产伦精品一区二区三| 51vv免费精品视频一区二区| 91美女高潮出水| 亚洲精品aa| 成人精品久久一区二区三区| 99热这里有精品| 91美女福利视频高清| 综合欧美精品| 亚洲va久久久噜噜噜| 日韩激情精品| 超碰97网站| 99热这里只有精品首页| 91久久极品少妇xxxxⅹ软件 | 精品卡一卡二| 老牛精品亚洲成av人片| 国产精品xxx在线观看www| 精品嫩草影院| 免费久久久一本精品久久区| 亚洲日本三级| 日韩精品成人一区二区在线观看| 日韩国产一区| 一区二区三区久久网| 日韩在线视频精品| 国产卡一卡二在线| 91蜜臀精品国产自偷在线 | 午夜视频在线免费观看| 日韩中文字幕欧美| 在线观看的网站你懂的| 欧美精品www在线观看| 性欧美freesex顶级少妇| 国产成人高清激情视频在线观看 | 中文字幕欧美一区| 久久久久久久久久99| 午夜精品久久久久久久99水蜜桃 | 欧美日韩免费做爰大片| 亚洲欧美精品一区| 国产高清一级毛片在线不卡| 最近更新的2019中文字幕| 国产在线更新| 97视频在线观看成人| 素人啪啪色综合| 91高跟黑色丝袜呻吟在线观看| 国产精品网在线观看| 欧美精品一区二区视频| 在线一区免费| 国产又黄又大又粗视频| 蜜桃av一区二区三区| 性一交一黄一片| 国产日韩三级在线| 国产盗摄一区二区三区在线| 婷婷中文字幕一区三区| 欧美brazzers| 亚洲成人教育av| 番号在线播放| 欧美精品福利视频| 日韩不卡视频在线观看| 国产尤物91| 色喇叭免费久久综合网| aa视频在线播放| 美腿丝袜在线亚洲一区| 国产ts丝袜人妖系列视频 | 久久九九99| 91亚洲一区二区| 欧美韩日一区二区三区| 国产精品18p| 欧美人体做爰大胆视频| 视频一区二区在线播放| 操91在线视频| 99久久伊人| 狠狠干一区二区| 精品欧美久久| 欧美三级一级片| 懂色av一区二区三区免费看| 婷婷社区五月天| 日本国产一区二区| 黄色av小说在线观看| 日韩中文字幕视频在线观看| 亚洲精品一级二级| 国产精品av一区| 久久久久国产精品| 日韩精品―中文字幕| 岛国精品在线观看| 老熟妇高潮一区二区三区| 在线一区二区视频| 风流少妇一区二区三区91| 精品国产一区二区三区久久狼5月| 这里有精品可以观看| 成人av免费电影| 国产尤物精品| 奇米777在线| 国产精品白丝在线| 六月丁香婷婷综合| 日韩精品在线免费| av电影院在线看| 操人视频欧美| 亚洲精品一二| 扒开伸进免费视频| 亚洲精品国产成人久久av盗摄 | 亚洲性图久久| 在线免费看污网站| 国产精品久久久一区麻豆最新章节| 无码人妻精品一区二| 亚洲欧美激情精品一区二区| 在线观看欧美日韩电影| 国偷自产av一区二区三区小尤奈| 在线视频精品| 亚洲av成人精品一区二区三区| 亚洲综合色视频| 99久久免费国产精精品| 久久久久国产视频| 成人av综合网| 青青草国产精品视频| 久久一区二区视频| 日韩在线视频不卡| 亚洲人a成www在线影院| 免费观看成人性生生活片| 亚洲一二三区精品| 精彩视频一区二区| 亚洲精品卡一卡二| 亚洲成人a**站| 欧美大胆a人体大胆做受| 精品免费二区三区三区高中清不卡 | 久久久久久网| 337人体粉嫩噜噜噜| 欧美日韩一区二区欧美激情| 午夜av在线免费观看| 国产一区二区三区黄| 美女精品网站| 亚洲成人黄色av| 欧美在线观看视频在线| 麻豆网站在线| 成人免费福利在线| 亚洲国产一区二区三区高清| aaaaa一级片| 欧美日韩国产小视频在线观看| 性欧美1819sex性高清大胸| 国内视频一区二区| 日本欧美一区二区| 国产小视频在线观看免费| 日韩精品一区二区视频| 黄色精品视频| 色哟哟免费网站| 91视频你懂的| 国产日产亚洲系列最新| 欧美极品欧美精品欧美视频| 亚洲区小说区| 天堂av2020| 亚洲一区二区三区在线看| 97电影在线看视频| 国产高清在线一区二区| 亚洲专区免费|