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

一篇帶你了解Ability啟動(dòng)過程

系統(tǒng) OpenHarmony
Ability可以分為FA(Feature Ability)和PA(Particle Ability)兩種類型,每種類型為開發(fā)者提供了不同的模板,以便實(shí)現(xiàn)不同的業(yè)務(wù)功能。

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

Ability是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的重要組成部分。一個(gè)應(yīng)用可以具備多種能力(即可以包含多個(gè)Ability),OpenHarmony OS支持應(yīng)用以Ability為單位進(jìn)行部署。Ability可以分為FA(Feature Ability)和PA(Particle Ability)兩種類型,每種類型為開發(fā)者提供了不同的模板,以便實(shí)現(xiàn)不同的業(yè)務(wù)功能。

以上摘自官方文檔,本文簡要介紹Page應(yīng)用(AceAbility為例)啟動(dòng)過程 ,減少入手難度。

1、AppSpawn進(jìn)程響應(yīng)應(yīng)用start請求

啟動(dòng)應(yīng)用命令:

aa start -a <ability-name> -b <bundle-name>
e.g. aa start -a com.example.myapplication.MainAbility -b com.example.myapplication
//startup/appspawn/standard/appspawn_service.c
appspawn_service.c 調(diào)用OnReceiveRequest()處理請求,fork子進(jìn)程 *childPid = AppSpawnFork(AppSpawnChild, (void *)sandbox);

2、fork子進(jìn)程(aka.應(yīng)用)

//base/startup/appspawn/common/appspawn_server.c
*childPid = AppSpawnFork(AppSpawnChild, (void *)sandbox);

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

AppSpawnChild中執(zhí)行應(yīng)用啟動(dòng)前步驟,如清理環(huán)境、權(quán)限鑒權(quán)等后,調(diào)用content->runChildProcessor(content, client)。

3、應(yīng)用主線程Start

//startup/appspawn/adapter/appspawn_ace.cpp

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

在Start()中裝備應(yīng)用MainThread的EventRunner和MainHandler,在EventRunner::Run等待event分發(fā)處理和event循環(huán),這里是應(yīng)用的主線程,也負(fù)責(zé)拉起其他的線程。這里有必要簡要說明OHOS的事件通知機(jī)制。

ohos基礎(chǔ)框架中的notification機(jī)制

代碼路徑:

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

OHOS event-notification機(jī)制可以保證一個(gè)線程中可以安全地向其他線程投遞任務(wù),只要拿到其他線程的Handler或者EventRunner即可。

UML類圖:

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

說明:

(1). EventHandler負(fù)責(zé)投遞封裝好的event到EventRunner的EventQueue中,并提供ProcessEvent接口供子類重寫業(yè)務(wù)邏輯。

(2). EventRunner負(fù)責(zé)線程運(yùn)行的抽象,實(shí)際線程運(yùn)行委托給EventInnerRunner實(shí)現(xiàn)。

(3). EventInnerRunner/EventRunnerImpl類是線程運(yùn)行具體實(shí)現(xiàn),提供ThreadMain()作為std::thread運(yùn)行入口,在Run()完成event分發(fā)處理和event循環(huán)(EventHanlder在投遞event時(shí)候,將handler本身封裝在event中,之所以這樣做,可能是為了同時(shí)支持callback型task和EventHandler中重寫ProcessEvent處理方式)。

4、MainThread::Init初始化

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

拉起看DFX的看門狗線程和信號處理線程,設(shè)置應(yīng)用主線程狀態(tài)。

5、向AMS注冊應(yīng)用,并調(diào)度運(yùn)行

應(yīng)用調(diào)用Attach(),需要向AMS注冊表項(xiàng)資源。

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

MainThread是IRemoteStub<IAppScheduler>子類,向AMS注冊反向死亡通知,應(yīng)用退出能及時(shí)釋放AMS相關(guān)資源。

獲取AppMgr Proxy對象 AttachApplication之后,AMS調(diào)度Application狀態(tài)。

Ability啟動(dòng)過程-開源基礎(chǔ)軟件社區(qū)

說明:

MainThread、AMS、ABMS運(yùn)行在不同進(jìn)程中,其中AMS、ABMS是SA,使用ohos IPC機(jī)制通信。

1.MainThread 是IRemoteStub<IAppScheduler> 子類,是一個(gè)匿名IPC對象(匿名這里指的是沒有注冊到samgr,無said),反向死亡通知到AMS,應(yīng)用結(jié)束時(shí)候可以通知AMS回收已分配的AppRunningRecord資源。

2.AppThread(應(yīng)用主線程,即MainThread)向AMS發(fā)送APP_ATTACH_APPLICATION請求并置MainThread狀態(tài)為Attach,AMS側(cè)收到請求創(chuàng)建appRecord,標(biāo)記APP_STATE_CREATE。

3.AMS判斷appRecord 為ApplicationState::APP_STATE_CREATE,向Application發(fā)送SCHEDULE_LAUNCH_APPLICATION_TRANSACTION請求。

4.AMS標(biāo)記appRecord狀態(tài)為APP_STATE_READY。

5.AppThread接收到AMS的SCHEDULE_LAUNCH_APPLICATION_TRANSACTION請求后,調(diào)用ScheduleLaunchApplication向MainThread投遞任務(wù)。

void MainThread::ScheduleLaunchApplication(const AppLaunchData &data, const Configuration &config)
{
......
wptr<MainThread> weak = this;
auto task = [weak, data, config]()
{
auto appThread = weak.promote();
if (appThread == nullptr)
{
HILOG_ERROR("appThread is nullptr, HandleLaunchApplication failed.");
return;
}
appThread->HandleLaunchApplication(data, config);
};
if (!mainHandler_->PostTask(task))
......
}

該task被執(zhí)行時(shí)調(diào)用MainThread::HandleLaunchApplication,調(diào)用LoadAbilityLibrary(如加載libace.z.so等庫保存句柄)、LoadNativeLiabrary、LoadAppLibrary、設(shè)置Application上下文信息、從BundleMgr獲取Bundle信息、初始化資源管理器InitResourceManager。(此處有區(qū)分應(yīng)用模型,一般是FA模型或者Stage,不做詳細(xì)介紹,有興趣自己研究)。

6.AppThread收到AMS的SCHEDULE_LAUNCH_ABILITY_TRANSACTION請求,調(diào)用HandleLaunchAbility()->AbilityThread::AbilityThreadMain(),創(chuàng)建AbilityThread,調(diào)用AbilityThread::Attach(),依據(jù)AbilityType創(chuàng)建相應(yīng)的Ability(這里以AceAbility為例),初始化Ability 。

Ability 初始化這里有幾處值得注意。

(1)、Ability有若干類型如: AceAbility、AceFormAbility、AceServiceAbility、AceDataAbility等,代碼中有相關(guān)類。

(2)、創(chuàng)建AbilityThread的AbilityHandler時(shí)候,將MainEventRunner 作為參數(shù)傳入,因此AbilityThread用的還是MainEventRunner事件循環(huán)。

(3)、在這里創(chuàng)建AbilityWindow(初始化等到Ability的OnStart)、注冊監(jiān)聽(AbilityWindow和圖形相關(guān),比較重要)。

if (info && info->type == AbilityType::PAGE) {
ability_->SetSceneListener(
sptr<WindowLifeCycleImpl>(new WindowLifeCycleImpl(token_, shared_from_this())));
}

備注:AMS在AppMgrServiceInner::LaunchApplication中會(huì)調(diào)用appRecord->LaunchPendingAbilities(),調(diào)度應(yīng)用Ability,感興趣可以自行研究。

void AbilityThread::Attach(std::shared_ptr<OHOSApplication> &application,
const std::shared_ptr<AbilityLocalRecord> &abilityRecord, const std::shared_ptr<EventRunner> &mainRunner,
const std::shared_ptr<AbilityRuntime::Context> &stageContext)
{
// 1.new AbilityHandler 根據(jù)不同AbilityType獲得abilityName
std::string abilityName = CreateAbilityName(abilityRecord, application);
if (abilityName == "") {
HILOG_ERROR("Attach ability failed, abilityInfo is nullptr.");
return;
}
HILOG_DEBUG("Attach ability begin, ability:%{public}s.", abilityRecord->GetAbilityInfo()->name.c_str());
abilityHandler_ = std::make_shared<AbilityHandler>(mainRunner);
if (abilityHandler_ == nullptr) {
HILOG_ERROR("Attach ability failed, abilityHandler_ is nullptr.");
return;
}

// 2.new ability 創(chuàng)建不同的ability,這里以AceAbility為例
auto ability = AbilityLoader::GetInstance().GetAbilityByName(abilityName);
if (ability == nullptr) {
HILOG_ERROR("Attach ability failed, load ability failed.");
return;
}
......
// 3.new abilityImpl
abilityImpl_ =
DelayedSingleton<AbilityImplFactory>::GetInstance()->MakeAbilityImplObject(abilityRecord->GetAbilityInfo());
if (abilityImpl_ == nullptr) {
HILOG_ERROR("Attach ability failed, abilityImpl_ == nullptr.");
return;
}
// 這里初始化abilityWindow及AbilityLifeCycle
abilityImpl_->Init(application, abilityRecord, currentAbility_, abilityHandler_, token_, contextDeal);
// 4. ability attach : ipc
ErrCode err = AbilityManagerClient::GetInstance()->AttachAbilityThread(this, token_);
if (err != ERR_OK) {
HILOG_ERROR("Attach ability failed, err = %{public}d.", err);
return;
}

7.調(diào)用AttachAbilityThread ,want:PARAM_RESV_CALL_TO_FOREGROUND,將Ability調(diào)度到前端。

8.ABMS發(fā)送ATTACH_ABILITY_THREAD請求到AMS。

9.AMS調(diào)用AppThread->ScheduleForegroundApplication()。

10.App線程調(diào)用ScheduleForegroundApplication主要是設(shè)置App狀態(tài),并發(fā)送APP_APPLICATION_FOREGROUNDED通知AMS。

if (((curState_ == APP_STATE_READY) || (curState_ == APP_STATE_BACKGROUND)) && application_ != nullptr) {
application_->OnForeground();
curState_ = APP_STATE_FOREGROUND;
return true;
}

11.AMS收到請求,標(biāo)記相應(yīng)AppRecord狀態(tài)為ApplicationState::APP_STATE_FOREGROUND,應(yīng)用和AMS進(jìn)程狀態(tài)同步。

備注:后續(xù)AMS觸發(fā)ABMS調(diào)用ScheduleAbilityTransaction調(diào)用PageAbilityImpl::HandleAbilityTransaction()->AceAbility::OnStart()、Ability::OnStart() InitWindow初始化窗口、加載Dom控件樹、圖形渲染等。

??想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2021-05-20 06:57:16

RabbitMQ開源消息

2021-06-30 00:20:12

Hangfire.NET平臺

2021-07-14 08:24:23

TCPIP 通信協(xié)議

2021-07-28 10:02:54

建造者模式代碼

2021-08-11 07:02:21

npm包管理器工具

2023-05-12 08:19:12

Netty程序框架

2021-11-24 08:51:32

Node.js監(jiān)聽函數(shù)

2021-11-08 08:42:44

CentOS Supervisor運(yùn)維

2021-08-02 06:34:55

Redis刪除策略開源

2021-12-15 11:52:34

GPLLinuxGNU

2021-02-02 18:39:05

JavaScript

2021-01-29 18:41:16

JavaScript函數(shù)語法

2022-02-23 09:36:11

GoRuby編程語言

2021-07-08 06:30:03

Linux CPULinux 系統(tǒng)

2022-02-17 08:35:59

OLTPOLAP數(shù)據(jù)倉庫

2021-08-26 05:27:08

Base64 字節(jié)流算法

2021-06-04 09:56:01

JavaScript 前端switch

2020-11-10 10:48:10

JavaScript屬性對象

2021-08-14 10:01:43

Python條件語句Python基礎(chǔ)

2022-11-10 16:55:41

ReactFiber
點(diǎn)贊
收藏

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

yw193.com尤物在线| 国产一级视频在线播放| 超薄肉色丝袜脚交一区二区| 国产欧美日韩不卡免费| 成人午夜小视频| 国产无码精品在线观看| 国产伦一区二区三区| 欧美日韩一区在线| 欧美又粗又长又爽做受| 国产又爽又黄网站亚洲视频123| 丝袜美腿亚洲综合| 欧美成人性生活| 国产熟妇久久777777| 欧美专区一区| 日本韩国一区二区| 99久久久精品视频| 成人高清网站| 成人av免费在线| 成人激情在线观看| 中文字幕视频网站| 欧美精品日本| 丝袜亚洲欧美日韩综合| 屁屁影院国产第一页| 91麻豆精品国产综合久久久 | 日韩二区三区在线| 思思久久精品视频| 韩国精品主播一区二区在线观看| 一区二区三区中文字幕电影| 热舞福利精品大尺度视频| 亚洲精品综合网| 精品午夜久久福利影院| 国产99久久精品一区二区 夜夜躁日日躁 | 国产精品无码免费专区午夜| 欧美91精品久久久久国产性生爱| 国产原创一区二区| 国产精品私拍pans大尺度在线| 久久精品国产亚洲av麻豆色欲 | 一区二区三区黄色| 大地资源二中文在线影视观看| 99久久这里有精品| 欧美日韩日本视频| 亚洲精品视频导航| 日本免费久久| 日韩欧亚中文在线| 国产午夜伦鲁鲁| tube8在线hd| 亚洲曰韩产成在线| 国产精品8888| 午夜在线激情影院| 一区二区三区中文字幕电影| 免费久久久久久| 成人黄视频在线观看| 最新日韩在线视频| 欧美aaa在线观看| 一区二区高清不卡| 综合色天天鬼久久鬼色| 一区精品在线| 免费高清在线观看| 成人免费在线观看入口| 中文字幕在线中文字幕日亚韩一区 | 久久久精品国产sm调教| 欧美精品二区| 午夜精品久久久久久久白皮肤 | 亚洲久久视频| 97人洗澡人人免费公开视频碰碰碰| 久久亚洲成人av| 亚洲免费高清| 欧洲精品毛片网站| 91丨九色丨海角社区| 麻豆成人久久精品二区三区小说| 国产欧美婷婷中文| 国产夫绿帽单男3p精品视频| 国产精品系列在线播放| 国产精品免费一区二区三区观看| 日本国产在线观看| 91麻豆免费观看| 亚洲精品成人a8198a| 国产精品扒开做爽爽爽的视频 | 亚洲最新av在线| 日本在线观看网址| 欧美日韩久久| 97视频免费在线观看| 美女又爽又黄免费视频| 三级精品在线观看| 91久热免费在线视频| 午夜精品久久久久久久爽| 99久久精品国产精品久久| 欧美一区2区三区4区公司二百| av电影在线观看网址| 亚洲嫩草精品久久| 男人揉女人奶房视频60分 | 国产又大又粗又爽的毛片| 久久美女视频| 97高清免费视频| 波多野结衣高清在线| 国产乱子伦一区二区三区国色天香| 福利视频一区二区三区| 久草在线免费福利资源| 亚洲视频 欧洲视频| 又粗又黑又大的吊av| 精品乱码一区二区三区四区| 日韩精品一区二区三区在线| 国产精品亚洲无码| 欧美精品九九| 国产精品视频99| 日本黄色不卡视频| 综合久久国产九一剧情麻豆| 分分操这里只有精品| 韩日精品一区| 日韩av在线天堂网| 久久中文免费视频| 裸体一区二区| 国产精品免费一区二区三区四区| 国产69精品久久app免费版| 亚洲一区二区三区中文字幕| 午夜免费福利在线| 美女呻吟一区| 九色精品免费永久在线| 中文在线观看av| 99久久久免费精品国产一区二区| av动漫免费观看| 欧美日韩在线精品一区二区三区激情综合 | 国产欧美日韩三区| 成人在线免费在线观看| 日韩精品中文字幕一区二区 | 欧美疯狂做受xxxx富婆| 黄色在线观看av| 亚洲日本黄色| 成人av免费电影| 99在线视频观看| 欧美美女喷水视频| 成熟人妻av无码专区| 亚洲自啪免费| 精品乱子伦一区二区三区| 国产剧情在线| 欧美一区二区网站| 日日噜噜夜夜狠狠久久波多野| 美女诱惑黄网站一区| 精品无码久久久久久久动漫| 国产深夜视频在线观看| 欧美电视剧在线看免费| 成人在线观看高清| 国内精品久久久久影院色| 亚洲午夜在线观看| 日韩精品第二页| 日韩专区在线播放| 中文字幕黄色av| 国产精品三级av| 亚洲国产成人va在线观看麻豆| 国产91精品对白在线播放| 欧美自拍视频在线| 成人高清免费观看mv| 欧美日韩一级黄| 成人三级视频在线观看| 黄一区二区三区| 黄色录像特级片| 91免费精品国偷自产在线在线| 欧美激情一二三| 色噜噜在线播放| 欧美性猛交xxxx偷拍洗澡| 国产美女喷水视频| 青娱乐精品视频| 中文字幕欧美日韩一区二区三区| 婷婷精品久久久久久久久久不卡| 久久久国产一区二区| a在线观看免费| 亚洲国产精品久久一线不卡| 97精品人妻一区二区三区蜜桃| 91久久夜色精品国产九色| 久久99精品国产99久久| 电影亚洲精品噜噜在线观看| 中文字幕亚洲欧美日韩在线不卡| 怡红院男人天堂| 亚洲免费资源在线播放| 天堂www中文在线资源| 久久久精品午夜少妇| 亚洲成人在线视频网站| 欧美视频二区欧美影视| 久久久这里只有精品视频| 免费在线一级视频| 欧美男人的天堂一二区| 国产亚洲欧美久久久久| 久久综合国产精品| 天天操狠狠操夜夜操| 激情国产一区| 日韩中文不卡| 综合视频一区| 日韩av手机在线| 91在线中字| 亚洲欧美国产va在线影院| 91麻豆成人精品国产| 亚洲a一区二区| 免费一级特黄3大片视频| 国产91色综合久久免费分享| 农村妇女精品一二区| 在线免费观看日本欧美爱情大片| 国产亚洲一区二区三区在线播放| 亚洲成人激情社区| 久久久久久久成人| 成人精品一区二区三区免费| 精品免费国产一区二区三区四区| 日韩黄色片网站| 亚洲午夜精品网| www.黄色com| 久久综合给合久久狠狠狠97色69| 一区二区三区四区毛片| 性感少妇一区| 日韩黄色片在线| 久久国产小视频| 鲁丝一区二区三区免费| 清纯唯美激情亚洲| 国产成人亚洲综合91精品| 91禁在线看| 久久国产精品电影| 在线观看免费版| 亚洲欧美国产一区二区三区| 国内精品久久久久久久久久| 欧美三级电影精品| 中文字字幕在线中文| 亚洲亚洲精品在线观看| 三级黄色在线观看| 国产无一区二区| 手机在线看片日韩| 成人午夜激情片| 无人码人妻一区二区三区免费| 日韩av在线发布| 欧美v在线观看| 尹人成人综合网| 天堂а√在线中文在线| 99久久久国产精品美女| 天天人人精品| 国产一区二区三区91| 久久久影院一区二区三区| 国产极品模特精品一二| 国产精品美女久久久久久免费 | 韩国欧美一区| 少妇高潮大叫好爽喷水| 国产精品99久久久久久动医院| 色999日韩自偷自拍美女| 自拍偷拍欧美一区| 久久伊人资源站| 蜜桃精品噜噜噜成人av| 麻豆91av| 久久99国内| 日本不卡一区二区三区在线观看 | 日本学生初尝黑人巨免费视频| 一区二区不卡在线播放| 印度午夜性春猛xxx交| 亚洲视频图片小说| 欧美成人精品欧美一级私黄| 亚洲精品成人悠悠色影视| 四虎免费在线视频| 亚洲国产综合在线| 国产对白videos麻豆高潮| 黄色成人av网| 一二三区免费视频| 在线观看日韩精品| 亚洲图片欧美在线| 91精品国产91久久综合桃花| 国内精品久久久久久久久久久| 日韩无一区二区| 狠狠综合久久av一区二区| 亚洲国产黄色片| 欧美巨乳在线| 日韩一区二区精品视频| 国产网站在线免费观看 | 涩涩涩在线视频| 日韩av手机在线看| 国产福利亚洲| 91情侣在线视频| 日本一道高清一区二区三区| 免费看国产精品一二区视频| 日韩深夜影院| 亚洲一区二区三区午夜| 天天av综合| 久久人人爽人人爽人人av| 国产亚洲亚洲| 少妇黄色一级片| 国产老女人精品毛片久久| 美女久久久久久久久| www成人在线观看| www中文在线| 伊人夜夜躁av伊人久久| 国产精品男女视频| 欧美无砖专区一中文字| aaa一区二区| 国产视频亚洲精品| 麻豆视频在线播放| 97国产精品人人爽人人做| 国产精品天堂蜜av在线播放| 亚洲xxxx视频| 国产亚洲电影| 男人添女人下部视频免费| 亚洲综合日本| 亚洲女人在线观看| 91麻豆精品视频| 国产福利视频网站| 黑人巨大精品欧美一区免费视频 | 久久av老司机精品网站导航| 亚洲精品久久一区二区三区777| 久久久久久电影| 国产精品成人免费观看| 色婷婷久久99综合精品jk白丝| 国产免费黄色片| 亚洲欧美激情四射在线日| 在线中文字幕第一页| 国产激情综合五月久久| 亚洲午夜免费| 亚洲资源视频| 午夜影院日韩| 不许穿内裤随时挨c调教h苏绵| 国产亚洲一区字幕| 日本一区二区免费在线观看| 欧美欧美欧美欧美| 国产在线中文字幕| 欧美激情在线播放| 亚洲三级电影| 视频一区视频二区视频| 亚洲人成人一区二区三区| 在线观看av免费观看| 国产欧美一区二区三区网站| 日韩黄色免费观看| 欧美自拍丝袜亚洲| 男人的天堂在线视频| 91精品国产高清久久久久久91 | 日韩欧美亚洲国产另类| 午夜免费播放观看在线视频| 欧洲精品在线视频| 任我爽精品视频在线播放| 可以在线看的av网站| 国产精品一区二区三区99| 婷婷丁香综合网| 在线观看欧美黄色| 精品无人乱码| 欧美一区二区.| 青草久久视频| 男女私大尺度视频| 丰满少妇久久久久久久| 男女性高潮免费网站| 欧美日韩三级一区二区| 高h视频在线| 国产精品专区一| 成人精品影视| 超碰在线人人爱| 中文字幕永久在线不卡| 中文字幕人妻一区二区在线视频 | 少女频道在线观看免费播放电视剧| 国产精品丝袜久久久久久高清 | 国产原创popny丨九色| 成人黄色国产精品网站大全在线免费观看 | 九九热爱视频精品视频| 午夜视频在线瓜伦| 中文成人综合网| 91国产免费视频| 久久6精品影院| 黑色丝袜福利片av久久| 3d动漫一区二区三区| 久久综合99re88久久爱| 99re国产在线| 色先锋资源久久综合5566| 日韩色性视频| 大陆极品少妇内射aaaaaa| 国产传媒久久文化传媒| 国产极品在线播放| 精品偷拍一区二区三区在线看| 亚洲人成午夜免电影费观看| 欧美日韩亚洲一区二区三区四区| 久久不射2019中文字幕| 国产综合精品久久久久成人av| 欧美日韩国产片| 日韩另类在线| 久久久久资源| 蜜桃视频一区二区| 精品无码一区二区三区蜜臀| 日韩三级视频在线观看| 欧美男男激情videos| 欧美午夜视频在线| 国产最新精品免费| 免费毛片一区二区三区| 国产一区二区三区直播精品电影| 国产精品日韩精品在线播放 | 无遮挡爽大片在线观看视频| 日韩高清国产一区在线观看| 久久99久久99小草精品免视看| 希岛爱理中文字幕| 日韩激情在线视频| 国产情侣一区二区三区| 国产制服91一区二区三区制服| www久久精品| a级片在线免费看| 国产精国产精品| 欧美激情五月| 亚洲成人网在线播放| 日韩欧美国产一区在线观看| 黄色在线免费观看网站| 91香蕉视频网址| 久久亚洲精品小早川怜子| 国产三级第一页| 国产成人在线亚洲欧美| 欧美视频网站|