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

OpenHarmony源碼解析之DFX子系統-標準系統接口使用說明

系統
DFX(Design for X)子系統是為了提升軟件質量設計的工具集,目前包含的內容主要有:DFR(Design for Reliability,可靠性)和DFT(Design for Testability,可測試性)特性。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

1 DFX簡介

DFX(Design for X)子系統是為了提升軟件質量設計的工具集,目前包含的內容主要有:DFR(Design for Reliability,可靠性)和DFT(Design for Testability,可測試性)特性。

目前標準系統已實現以下功能:

  • HiLog:流水日志。
  • HiSysEvent:系統事件記錄接口。
  • HiView:插件平臺。
  • FaultLoggerd:應用故障訂閱和收集。
  • HiAppEvent: js應用事件記錄接口。

1.1 OpenHarmony架構圖

OpenHarmony 源碼解析之DFX子系統-標準系統接口使用說明-鴻蒙HarmonyOS技術社區

注:本文只介紹DFX各組件的使用,后續會有文章單獨分析各組件的源碼。

2 Hilog

HiLog是日志系統,提供給系統框架、服務、以及應用打印日志,記錄用戶操作、系統運行狀態等。

用戶態Process通過日志接口將日志內容寫入hilogd buffer中,用戶態的hilog工具支持將日志輸出到控制臺(console)進行查看,同時也支持通過hilog工具給hilogd發送命令將日志落盤,設置指定日志類型緩沖區的大小等。

HiLog架構圖如下:

注:目前代碼暫未看到有支持讀取kernel日志。

代碼結構:

  1. /base/hiviewdfx/hilog 
  2. ├── frameworks           # 框架代碼 
  3. │   └── native          # HiLog native實現代碼 
  4. ├── interfaces           # 接口 
  5. │   └── native          # 對外C/C++接口 
  6. │       └── innerkits   # 對內部子系統暴露的頭文件 
  7. │       └── kits        # 對應用暴露的頭文件 
  8. ├── services 
  9. │   └── hilogd          # 日志常駐服務實現 
  10. │   └── hilogtool       # 日志工具實現 

從使用者的角度,只需要關心hilog日志接口和hilog命令行工具的使用方法。

2.1 hilog接口使用說明

2.1.1 主要API說明

OpenHarmony 源碼解析之DFX子系統-標準系統接口使用說明-鴻蒙HarmonyOS技術社區

2.1.2 使用方法

在模塊BUILD.gn文件中添加依賴

  1. external_deps = [ "hilog_native:libhilog" ] 
  • include頭文件"hilog/log.h"
  • 接口調用

代碼示例(以下代碼從系統源碼中摘錄)

  1. #include <vector> 
  2. +#include "hilog/log.h" 
  3. #include "string_ex.h" 
  4. #include "uri.h" 
  5.  
  6. using std::string; 
  7. using std::regex; 
  8. +using OHOS::HiviewDFX::HiLog; 
  9.  
  10. namespace OHOS { 
  11. namespace { 
  12. @@ -39,6 +41,7 @@ namespace { 
  13.     const size_t POS_INC_MORE = 2; 
  14.     const size_t POS_INC_AGAIN = 3; 
  15.     const regex SCHEME_REGEX("[a-zA-Z][a-zA-Z|\\d|+|-|.]*$"); 
  16. +    const HiviewDFX::HiLogLabel LABEL = {LOG_CORE, 0xD001800, "URI"}; 
  17. }; // namespace 
  18.  
  19. Uri::Uri(const string& uriString) 
  20. @@ -48,6 +51,7 @@ Uri::Uri(const string& uriString) 
  21.     port_ = NOT_CALCULATED; 
  22.  
  23.     if (uriString.empty()) { 
  24. +        HiLog::Error(LABEL, "Input empty!"); 
  25.         return
  26.     } 

2.2 hilog命令行工具使用說明

注:落盤日志文件保存路徑為"/data/log/hilog/"。

3 HiSysEvent

hisysevent組件定義了HiSysEvent埋點接口供應用框架、系統服務使用,用于向hiview上報系統事件信息。通過在關鍵路徑埋點記錄系統在運行過程中的重要信息,輔助開發者定位問題。

OpenHarmony 源碼解析之DFX子系統-標準系統接口使用說明-鴻蒙HarmonyOS技術社區

3.1 接口說明

  1. /** 
  2.      * @brief 寫系統事件 
  3.      * @param domain    事件的domain 
  4.      * @param eventName 事件名 
  5.      * @param type      事件類型 
  6.      * @param keyValues 可變參數,鍵值對 
  7.      * @return 0 成功,其他失敗 
  8.      */ 
  9.     template<typename... Types> static int Write(const std::string &domain, const std::string &eventName, 
  10.         EventType type, Types... keyValues) 

 枚舉類型EventType定義了事件類型

  1. enum EventType { 
  2.         FAULT     = 1,    // system fault event 
  3.         STATISTIC = 2,    // system statistic event 
  4.         SECURITY  = 3,    // system security event 
  5.         BEHAVIOR  = 4     // system behavior event 
  6.     }; 

 HiSysEvent內部類Domain中定義了一些字符串常量,用于表示不同的domain

3.2 接口使用

在BUILD.gn中增加依賴:

  1. external_deps = [ "hisysevent_native:libhisysevent" ] 

 在類定義頭文件或者類實現源文件中,包含HiSysEvent頭文件:

  1. #include "hisysevent.h" 

 示例:(以下代碼摘自源碼)

  1. void EventReport::SendEvent(const EventInfo& eventInfo) 
  2.     auto packageName = AceApplicationInfo::GetInstance().GetPackageName(); 
  3.     if (packageName.size() > MAX_PACKAGE_NAME_LENGTH) { 
  4.         StrTrim(packageName); 
  5.     } 
  6.     OHOS::HiviewDFX::HiSysEvent::Write(OHOS::HiviewDFX::HiSysEvent::Domain::ACE, eventInfo.eventType, 
  7.         OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, 
  8.         EVENT_KEY_ERROR_TYPE, eventInfo.errorType, 
  9.         EVENT_KEY_PACKAGE_NAME, packageName); 

 hiview在收到消息后會打印日志,并把事件保存到

/data/log/LogService/sys_event_db/hisysevent.db 數據庫中。

日志如下:

  1. 行 10430: 12-06 15:41:03.176   369   537 D 02d10/HiView-EventServer: Start: receive data from client <private> 
  2. 行 10431: 12-06 15:41:03.176   369   537 D 02d10/HiView-SysEventSource: Parser: parser raw message size=301, {"domain_":"ACE","name_":"JS_ERROR","type_":1,"time_":1638805263175,"pid_":821,"tid_":839,"PACKAGE_NAME":"","REASON":"Js Crash","SUMMARY":"Lifetime: 0.000000s 
  3. 行 10432: 12-06 15:41:03.176   369   537 D 02d10/HiView-SysEventSource: Js-Engine: Quick JS 
  4. 行 10433: 12-06 15:41:03.176   369   537 D 02d10/HiView-SysEventSource: Stacktrace: TypeError: cannot read property 'getAppPageStartConfig' of undefined 
  5. 行 10434: 12-06 15:41:03.176   369   537 D 02d10/HiView-SysEventSource:     at onPageShow (pages/EntryView.js) 
  6. 行 10435: 12-06 15:41:03.176   369   537 D 02d10/HiView-SysEventSource:     at onPageShow (pages/EntryView.js) 
  7. 行 10472: 12-06 15:41:03.180   369   537 I 02d10/HiView-SysEventSource: Parser: parser result domain_=ACE eventName_=JS_ERROR 
  8. 行 10473: 12-06 15:41:03.180   369   537 D 02d10/HiView-EventSource: PublishPipelineEvent: EventSource PublishPipelineEvent 
  9. 行 10474: 12-06 15:41:03.180   369   547 I 02d10/HiView-SysEventService: Convert2SysEvent: domain is ACE, eventName is JS_ERROR. 
  10. 行 10485: 12-06 15:41:03.180   369   547 D 02d10/HiView-SysEventDao: Insertinsert db file /data/log/LogService/sys_event_db/hisysevent.db with JS_ERROR 
  11. 行 10837: 12-06 15:41:03.232   369   547 I 02d10/HiView-DOCDB: open ejdb success 
  12. 行 10838: 12-06 15:41:03.232   369   547 I 02d10/HiView-DOCDB: open doc store 
  13. 行 11141: 12-06 15:41:03.249   369   547 D 02d10/HiView-DOCDB: put data to doc store success 
  14. 行 11142: 12-06 15:41:03.250   369   547 D 02d10/HiView-SysEventDbMgr: SaveToStore: save sys event 1, JS_ERROR 
  15. 行 11227: 12-06 15:41:03.253   369   547 I 02d10/Faultlogger: AddFaultLogIfNeed: Invalid module name 
  16. 行 11229: 12-06 15:41:03.253   369   547 I 02d10/HiView-SysEventSource: Recycle: recycle resource 

4 HiView

Hiview是一個跨平臺的終端設備維測服務集。目前開源部分僅包含插件管理平臺和系統事件源。

架構圖如下:

OpenHarmony 源碼解析之DFX子系統-標準系統接口使用說明-鴻蒙HarmonyOS技術社區

Hiview由框架和插件組成,主要包含以下幾部分:

  • 操作系統適配層(adapter),對使用的系統服務的接口進行適配。
  • Hiview基礎定義(hiview base),包括插件基類、管道的定義,事件、事件隊列定義以及一些工具類。
  • Hiview的核心模塊(hiview core),包括插件配置,插件管理以及事件源。
  • Hiview服務(hiview services),目前僅包括hiview運行信息dump功能。
  • Hiview插件(plugins),為獨立功能的業務模塊。
  • Hiview維測服務是由事件驅動的,其核心為分布在系統各處的HiSysEvent樁點。

格式化的事件通過HiSysEvent API上報至hiview進行處理,請參考第三節HiSysEvent的架構圖。

1.應用框架、系統服務使用HiSysEvent組件上報系統事件。

2.Hiview中SysEventSource獲取消息,解析并組裝成管道事件分發給插件處理。

注:hiview目前并未對外提供接口。

5 FaultLoggerd

faultloggerd是OpenHarmony中的C/C++運行時崩潰臨時日志的生成及管理模塊。主要流程如下:

進程A調用接口訂閱故障收集功能。

進程A的異常信號處理器檢測到異常信號后Fork出子進程運行processdump程序。

processdump程序Ptrace到父進程上,讀取異常線程相關信息,包括寄存器以及調用棧。

processdump程序在讀取異常信息后將其寫入到/data/log/faultlog/temp目錄下中做臨時存儲。

接口使用方法:

在模塊的BUILD.gn文件中添加依賴

  1. deps = ["//base/hiviewdfx/faultloggerd/interfaces/innerkits/signal_handler:dfx_signalhandler"
  • 包含"dfx_signal_handler.h"頭文件
  • 調用DFX_InstallSignalHandler()方法訂閱故障收集功能。

示例:(以下代碼摘自源碼)

base/telephony/ril_adapter/hril_hdf/hril_hdf.c中

  1. #include "hril_hdf.h" 
  2. #include <pthread.h> 
  3. #include "dfx_signal_handler.h" //................[1]頭文件 
  4. #include "telephony_log_c.h" 
  5.  
  6. static int32_t RilAdapterInit(struct HdfDeviceObject *device) 
  7.     if (device == NULL) { 
  8.         return HDF_ERR_INVALID_OBJECT; 
  9.     } 
  10.     DFX_InstallSignalHandler(); //................[2]訂閱故障收集功能 
  11.     struct HdfSBuf *sbuf = HdfSBufTypedObtain(SBUF_IPC); 
  12.     if (sbuf == NULL) { 
  13.         TELEPHONY_LOGE("HdfSampleDriverBind, failed to obtain ipc sbuf"); 
  14.         return HDF_ERR_INVALID_OBJECT; 
  15.     } 
  16.     if (!HdfSbufWriteString(sbuf, "string")) { 
  17.         TELEPHONY_LOGE("HdfSampleDriverBind, failed to write string to ipc sbuf"); 
  18.         HdfSBufRecycle(sbuf); 
  19.         return HDF_FAILURE; 
  20.     } 
  21.     if (sbuf != NULL) { 
  22.         HdfSBufRecycle(sbuf); 
  23.     } 
  24.     TELEPHONY_LOGD("sbuf IPC obtain test success!"); 
  25.     LoadVendor(); 
  26.     return HDF_SUCCESS; 

注:程序崩潰后會在/data/log/faultlog/temp路徑下生成臨時文件。系統開發者可以通過日志定位崩潰問題。

6 HiAppEvent

HiAppEvent為JS應用提供事件打點接口,用于幫助應用記錄在運行過程中發生的故障信息、統計信息、安全信息、用戶行為信息,以支撐開發者分析應用的運行情況。

OpenHarmony 源碼解析之DFX子系統-標準系統接口使用說明-鴻蒙HarmonyOS技術社區

6.1 接口說明

js接口定義文件:interface/sdk-js/api/phone/@ohos.hiAppEvent.d.ts

6.1.1 打點接口

JS 事件類型枚舉——EventType

| 類型 | 描述|

| ----- | ----- |

| FAULT | 故障類型事件 |

| STATISTIC | 統計類型事件 |

| SECURITY | 安全類型事件 |

| BEHAVIOR | 行為類型事件 |

function write(eventName: string, eventType: EventType, keyValues: object): Promise; 應用事件異步打點方法,使用promise方式作為異步回調。

function write(string eventName, EventType type, object keyValues,

AsyncCallback callback): void 應用事件異步打點方法,使用callback方式作為異步回調。

輸入參數說明:

  • eventName:事件名稱。
  • eventType:事件類型。
  • keyValues:事件參數鍵值對,為Json對象類型。
  • callback:回調函數,可以在回調函數中處理接口返回值。返回值為0表示事件參數校驗成功,事件正常異步寫入事件文件;大于0表示事件存在異常參數,事件在忽略異常參數后再異步寫入事件文件;小于0表示事件校驗失敗,不執行事件異步打點操作。

6.1.2 打點配置接口

function configure(config: ConfigOption): boolean;應用事件打點配置方法,可以對打點功能進行自定義配置。

參數config:應用事件打點配置項。

返回值:boolean,true表示配置成功,false表示配置失敗。

ConfigOption應用打點配置選項

| 配置名 | 類型|必填 |說明|

| ----- | ----- |----- | ----- |

| disable | boolean |否|應用打點功能開關,true表示關閉打點功能,false表示不關閉打點功能|

| maxStorage | string |否|打點數據本地存儲文件所在目錄的配額大小,默認限額為“10M”。所在目錄大小超出限額后會對目錄進行清理操作,會按從舊到新的順序逐個刪除打點數據文件,直到目錄大小不超出限額時停止。|

6.2 接口使用

引入模塊:

  1. import hiAppEvent from ‘@ohos.hiAppEvent’ 

應用事件打點:

callback方式

  1. hiAppEvent.write("testevent", hiAppEvent.EventType.BEHAVIOR, {"key":"value"}, 
  2.           (err, value) => { 
  3.               console.log(`HiAppEvent testevent callback`); 
  4.               if (err) { 
  5.                   // 事件寫入異常:事件存在異常參數或者事件校驗失敗不執行寫入 
  6.                   console.error(`HiAppEvent json-callback-error code=${err.code}`); 
  7.               } else { 
  8.                   console.log(`HiAppEvent json-callback-success value=${value}`) 
  9.               } 
  10.           }); 

 Promise方式

  1. hiAppEvent.write("test_event", hiAppEvent.EventType.FAULT, {"int_data":100, "str_data":"strValue"}) 
  2.   .then((value) => { 
  3.       // 事件寫入正常 
  4.       console.log(`success to write event: ${value}`); 
  5.   }).catch((err) => { 
  6.       // 事件寫入異常:事件存在異常參數或者事件校驗失敗不執行寫入 
  7.       console.error(`failed to write event because ${err.code}`); 
  8.   }); 

 應用打點配置

配置應用事件打點功能開關

  1. hiAppEvent.configure({ 
  2.      disable: true 
  3. }); 

配置事件文件目錄存儲限額大小

  1. hiAppEvent.configure({ 
  2.      maxStorage: '15M' 
  3. }); 

7 總結

本文對標準系統目前已支持的DFX功能模塊進行了介紹。demo請下載附件。

https://harmonyos.51cto.com/resource/1646

https://harmonyos.51cto.com/resource/1647

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-01-10 15:30:11

鴻蒙HarmonyOS應用

2023-04-12 15:31:11

系統服務管理鴻蒙

2021-09-18 14:40:37

鴻蒙HarmonyOS應用

2021-11-08 15:04:47

鴻蒙HarmonyOS應用

2022-01-06 16:17:58

鴻蒙HarmonyOS應用

2021-12-17 16:42:09

鴻蒙HarmonyOS應用

2022-02-17 20:57:07

OpenHarmon操作系統鴻蒙

2022-09-15 14:56:12

GDB調試鴻蒙

2021-11-18 10:28:03

鴻蒙HarmonyOS應用

2022-05-10 11:17:27

電話子系統數據服務模塊

2022-05-24 15:46:51

Wi-FiSTA模式

2023-06-28 15:00:02

開源鴻蒙輸入系統架構

2022-10-12 15:14:08

開機動畫鴻蒙

2023-04-06 09:14:11

多模輸入子系統鴻蒙

2021-09-13 15:15:18

鴻蒙HarmonyOS應用

2022-04-02 20:45:04

Hi3516開發板操作系統鴻蒙

2023-02-01 16:28:30

Linux內核鴻蒙

2023-12-29 08:45:40

Python3.8鴻蒙解釋器

2021-09-16 15:04:28

鴻蒙HarmonyOS應用

2021-11-08 07:19:45

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

欧美一级午夜免费电影| 亚洲精品亚洲人成人网| 国产精品国产三级国产专播精品人| 国产三级av在线播放| 日韩一区二区三免费高清在线观看| 亚洲色图19p| 久久www免费人成精品| 欧美另类高清videos的特点| 欧美精品18| 国产一区二区三区视频| 中文字幕一二三区| 日本欧美不卡| 午夜国产不卡在线观看视频| 亚洲人成网站在线观看播放| 日韩在线观看视频网站| 久久丁香综合五月国产三级网站| 韩剧1988在线观看免费完整版| 日韩免费成人av| 久久影视三级福利片| 欧美日本在线播放| wwwxxx黄色片| 51av在线| 最新国产成人在线观看| 欧美日韩日本网| 天堂av在线免费| 国产在线视频一区二区| 国产精品91久久久| 在线观看 中文字幕| 亚洲综合色网| 久久九九免费视频| 日本午夜精品视频| 精品久久精品| 亚洲欧美精品伊人久久| 少妇被狂c下部羞羞漫画| 日韩色性视频| 欧美午夜寂寞影院| 欧在线一二三四区| 中文字幕在线高清| 偷拍一区二区三区四区| 免费看欧美一级片| av片在线观看网站| 亚洲欧美日韩综合aⅴ视频| 亚洲国产精品www| jizz亚洲| 中文字幕高清一区| 亚洲精品一区二区毛豆| 国产在线网站| 欧美激情在线看| 日韩国产美国| 国产九色在线| 国产精品美女久久久久久久| 日产国产精品精品a∨| 青梅竹马是消防员在线| 久久色成人在线| 欧美激情导航| 美丽的姑娘在线观看免费动漫| av电影天堂一区二区在线| 风间由美一区二区三区| 亚洲不卡免费视频| 粉嫩久久99精品久久久久久夜| 99三级在线| 日批视频免费播放| 91麻豆精品一区二区三区| 久久精品日产第一区二区三区| 香蕉视频黄在线观看| 久久久久亚洲蜜桃| 亚洲 国产 欧美一区| 欧美尤物美女在线| 亚洲免费看黄网站| 男人添女人荫蒂免费视频| 欧美另类老肥妇| 色国产精品一区在线观看| 性生交免费视频| 四虎地址8848精品| 精品卡一卡二卡三卡四在线| 手机在线成人av| 亚洲激情播播| 日韩在线中文视频| 麻豆一区二区三区精品视频| 亚洲精华国产欧美| 国产精品精品一区二区三区午夜版| 在线播放国产一区| 成人免费视频免费观看| 久久艳妇乳肉豪妇荡乳av| 国产高清免费在线播放| 亚洲三级小视频| 日韩av综合在线观看| av成人在线看| 日韩精品一区二区三区中文不卡| 久久久久国产精品区片区无码| 日韩伦理一区| 欧美激情区在线播放| 天天操天天干天天摸| 狠狠狠色丁香婷婷综合激情| 精品欧美国产| 在线观看av黄网站永久| 亚洲一区二区中文在线| av免费在线播放网站| 国产美女精品视频免费播放软件 | 国产成人免费看一级大黄| 99久久久精品| 99热这里只有精品7| 神马午夜在线视频| 日韩一区二区三| 色屁屁草草影院ccyy.com| 国内精品美女在线观看| 国产精品视频yy9099| 色婷婷av一区二区三区之e本道| 国产精品视频你懂的| 免费看又黄又无码的网站| 国产精品视频一区视频二区| 国产一区二区激情| 国产成人愉拍精品久久| 国产在线播放一区三区四| 日本黄网免费一区二区精品| 欧美1234区| 欧美高清性hdvideosex| 成人免费无遮挡无码黄漫视频| 欧美三级网页| 91社区国产高清| 在线免费观看黄色网址| 一本久久a久久精品亚洲| 秘密基地免费观看完整版中文 | 成人区一区二区| 另类一区二区三区| 亚洲视频在线观看视频| 日本在线观看中文字幕| 国产成人99久久亚洲综合精品| 一区二区免费在线视频| 成人精品高清在线视频| 亚洲一区www| 狠狠人妻久久久久久| 波多野结衣91| r级无码视频在线观看| 亚洲图色一区二区三区| 欧美黄色片视频| 国产成人免费看一级大黄| 亚洲男人的天堂在线观看| 亚洲国产日韩欧美在线观看| 欧美亚洲在线日韩| 日韩av电影在线免费播放| 青青视频在线观| 日本高清视频一区二区| 亚欧洲乱码视频| 久久久999| 欧美在线播放一区二区| 欧美日韩成人影院| 亚洲图片在线综合| 亚洲一区二区三区高清视频| 国产精品麻豆99久久久久久| 一区二区三区网址| 欧美丰满日韩| 91在线视频九色| 成人看av片| 日韩欧美国产综合一区| 久久免费在线观看视频| 成人免费看的视频| 欧美aⅴ在线观看| 女优一区二区三区| 国产精品高精视频免费| 国产在线高清视频| 欧美成人精品1314www| 日本一区二区三区四区五区| 99r国产精品| 国产精品igao| 中文字幕免费一区二区三区| www.成人av.com| 91久久国产综合久久91猫猫| 中文字幕日本欧美| 国产成人a人亚洲精品无码| 亚洲国产精品久久人人爱蜜臀| 国产一级二级在线观看| 日韩成人午夜精品| 玖玖精品在线视频| 欧美调教网站| 国产欧美精品一区二区| 黄色美女视频在线观看| 亚洲欧美一区二区三区在线| 97成人免费视频| 亚洲国产欧美在线| 大胸美女被爆操| 国产91丝袜在线播放九色| 日韩欧美国产免费| 日韩av密桃| 国内视频一区| 看片一区二区| 欧美一级视频在线观看| 黄色片网站在线| 亚洲精品视频免费在线观看| 国产又大又黄的视频| 亚洲成av人**亚洲成av**| 日本一区二区视频在线播放| 国产精品系列在线播放| 亚洲一区二区蜜桃| 亚洲第一伊人| 亚洲在线观看一区| 亚洲第一福利专区| 3d动漫啪啪精品一区二区免费 | 成人av影院在线观看| 国产一区二区日韩| 隣の若妻さん波多野结衣| 欧美影视一区二区三区| 日本一级黄色录像| 亚洲人成网站精品片在线观看| 三上悠亚ssⅰn939无码播放| 国产一区不卡在线| 欧美成人黄色网址| 免费日韩视频| 成人在线播放网址| 亚州av乱码久久精品蜜桃| 免费在线成人av| www.成人网| 91色视频在线导航| 国产亚洲欧美日韩精品一区二区三区 | 精品视频一区二区三区四区| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 一级精品视频在线观看宜春院 | 欧美日韩一区二区在线| 国产这里有精品| 中文字幕在线视频一区| 亚洲成人黄色av| 91女神在线视频| 成熟妇人a片免费看网站| 国产麻豆一精品一av一免费 | a级免费在线观看| 亚洲高清影视| 制服诱惑一区| 欧美超碰在线| 一区二区三区免费看| 欧美在线色图| 欧洲久久久久久| 亚洲人成精品久久久| 久久99久久精品国产| 精品国产乱子伦一区二区| 99电影网电视剧在线观看| 国产精品一区二区美女视频免费看 | 校园春色另类视频| 久久久久一区二区| 欧洲亚洲视频| 久久婷婷开心| 综合综合综合综合综合网| 久久国产精品99久久久久久丝袜| 好吊妞视频这里有精品| 国产精品一区二区三区免费| jizz国产精品| 国模精品娜娜一二三区| 亚洲美女15p| 日韩在线国产| 欧美a级成人淫片免费看| 一区中文字幕在线观看| 中文字幕日韩欧美精品高清在线| 波多野结衣 作品| 影音先锋亚洲电影| 久久国产亚洲精品无码| 久久精品一本| 日本中文字幕精品—区二区| 黑人巨大精品欧美黑白配亚洲| 三区视频在线观看| 国产成人精品一区二区三区四区| 色婷婷狠狠18禁久久| 波多野结衣中文字幕一区二区三区| 国产又粗又猛又色| 久久久另类综合| 99国产精品免费| 亚洲欧美国产毛片在线| 国产在线成人精品午夜| 欧美午夜性色大片在线观看| 亚洲中文一区二区| 欧美一区二区美女| 欧美 日韩 国产 成人 在线 91| 日韩精品高清在线| av在线播放网站| 欧美精品免费看| 亚洲一二三四| 91网站在线看| 希岛爱理av免费一区二区| 亚洲综合网中心| 精品1区2区3区4区| www.99av.com| 福利一区在线观看| 第一次破处视频| 亚洲最大色网站| 国产男人搡女人免费视频| 日韩午夜精品电影| 国产最新视频在线| 欧美黄色片在线观看| 日韩不卡在线| 国产在线视频欧美一区二区三区| 黄色不卡一区| 国产不卡一区二区视频| 捆绑调教美女网站视频一区| 亚洲欧美高清在线| 国产精品久久久久aaaa| 日韩成人av毛片| 91精品国产综合久久精品| 天堂а在线中文在线无限看推荐| 亚洲美女精品成人在线视频| а天堂中文在线官网| 日韩av不卡电影| 精品少妇一区| 蜜臀在线免费观看| 日韩av网站在线观看| av在线播放网址| 亚洲日本一区二区三区| 国产一卡二卡三卡| 亚洲精品国产免费| 色女人在线视频| 成人激情电影一区二区| 日韩精品福利一区二区三区| 第九区2中文字幕| 久久国产人妖系列| 男人舔女人下部高潮全视频| 亚洲a一区二区| 国产按摩一区二区三区| 日韩在线观看免费| 亚洲一区二区三区四区| 精品一区二区视频| 亚洲天堂黄色| 91精品人妻一区二区三区蜜桃2| 国产精品乱码人人做人人爱 | 日韩视频一区二区在线观看| 成人影视在线播放| 日本sm极度另类视频| 加勒比色老久久爱综合网| 国产91在线亚洲| 国产一区二区网址| 在线观看黄网址| 欧美欧美欧美欧美| 日本福利在线| 国产精品专区一| 成人午夜av| 精品少妇无遮挡毛片| 久久精品欧美一区二区三区不卡| 日本三级小视频| 日韩电影免费在线观看中文字幕| 91超碰国产在线| 蜜桃av噜噜一区二区三区| 国产婷婷精品| 亚洲欧美色图视频| 色婷婷av久久久久久久| 国产在线小视频| 国产美女精品视频| 亚洲成av人电影| 免费欧美一级片| 亚洲国产精品尤物yw在线观看| 亚洲欧美另类日韩| 97视频在线免费观看| 先锋影音国产精品| www日韩视频| 国产精品久久久久久久岛一牛影视 | 极品日韩久久| 久久精品123| 亚洲色图日韩精品| 日韩一卡二卡三卡| 久久久久黄久久免费漫画| 国产伦精品一区二区| 国产偷自视频区视频一区二区| 成人精品999| 欧美日韩高清影院| 青春草在线免费视频| 国产一区二区无遮挡| 久久精品男女| 天天做夜夜爱爱爱| 精品人伦一区二区色婷婷| 玖玖在线播放| 亚洲视频sss| 成人一级视频在线观看| 五月婷婷色丁香| 影音先锋日韩有码| 日本免费一区二区视频| 妞干网在线视频观看| 国产亚洲欧美一级| 国产www免费观看| 日本a级片电影一区二区| 天天射成人网| 好吊色视频一区二区三区| 在线免费观看成人短视频| 免费高清完整在线观看| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 国产91免费视频| 石原莉奈在线亚洲三区| 日韩在线不卡av| 亚洲精品资源在线| 色8久久久久| 免费看的黄色大片| 国产精品久久久99| 少妇又色又爽又黄的视频| 国产精品一区=区| 亚洲精品字幕| 性生交大片免费全黄| 亚洲激情视频在线观看| 亚洲欧美一级| 日本免费一级视频| 亚洲一区视频在线观看视频| yw193.com尤物在线| 国产一区二区三区四区五区在线| 国模大尺度一区二区三区| 中文字幕第15页| 欧美国产日韩一区二区三区| 欧美综合在线视频观看|