精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

99热都是精品| 国产精品一区二区三区毛片淫片 | 欧美黑人一级片| www.神马久久| 一本久道久久综合中文字幕| 亚洲一区二区精品在线观看| 性猛交富婆╳xxx乱大交天津 | 亚洲视频在线一区二区| 国产一区二区三区免费不卡| 久久精品偷拍视频| 韩日成人在线| 最近2019年日本中文免费字幕| 国产又粗又猛又爽又黄| 欧美天堂视频| 一区二区三区.www| 水蜜桃亚洲精品| 内射后入在线观看一区| 老色鬼精品视频在线观看播放| 久久久久国色av免费观看性色| 欧美一区二区三区公司| 亚洲一区二区久久久久久久| 一级片视频在线观看| 中文字幕一区二区精品区| 亚洲欧美在线x视频| 中文字幕无人区二| 欧美黄页在线免费观看| 精品欧美aⅴ在线网站| 老汉色影院首页| youjizz在线播放| 成人av电影在线| 91老司机精品视频| 在线视频精品免费| 亚洲影视综合| 久久免费精品视频| 国产一区二区三区在线视频观看| av伊人久久| 日韩乱码在线视频| 黑森林av导航| 一区中文字幕电影| 91精品国产91久久综合桃花| 在线看的黄色网址| 日本一区二区三区视频在线| 岛国av一区二区在线在线观看| www.18av.com| 国产黄a三级三级三级av在线看| 国产日本欧洲亚洲| 日本一区二区三区在线视频 | 日本aa在线| 男人操女人的视频在线观看欧美| 欧美一级bbbbb性bbbb喷潮片| 国产一级视频在线| 国产精品观看| 欧美大胆在线视频| 欧美黄色aaa| 亚洲国产精品成人| 久久亚洲精品一区| 国产第一页浮力| 亚洲最大黄网| 久久久精品日本| 男人在线观看视频| 91精品啪在线观看国产18| xvideos亚洲| 天天操夜夜操av| 一区二区三区午夜探花| 成人444kkkk在线观看| 精品国产乱码久久久久久鸭王1| 亚洲大全视频| 欧美黑人国产人伦爽爽爽| 五月天丁香激情| 亚洲九九精品| 日韩av黄色在线观看| 亚洲中文无码av在线| 久久精品国产99久久6| 国产一区二区丝袜高跟鞋图片| 91中文字幕在线播放| 国产一区二区三区免费| 国产精品久久久久免费| 欧美一区二区少妇| 中文字幕欧美日韩一区| a级黄色片网站| 丁香花在线电影小说观看| 黑人巨大精品欧美一区二区三区| 少妇高潮喷水久久久久久久久久| 三级成人在线| 欧美一区二区三区成人| 捆绑裸体绳奴bdsm亚洲| 国产一区网站| 欧美大片在线影院| 性色av免费观看| 久久电影国产免费久久电影| 成人在线观看网址| 男人的天堂在线| |精品福利一区二区三区| 99久久免费观看| 韩国成人漫画| 日韩一区二区三区在线| 亚洲精品中文字幕在线播放| 精品大片一区二区| 欧美日本亚洲视频| 波多野结衣视频在线观看| 国产在线播放一区| 欧美高清视频一区二区三区在线观看| 自拍视频在线免费观看| 亚洲午夜一区二区| 鲁一鲁一鲁一鲁一av| 国产精品宾馆| 日韩小视频网址| 日韩精品手机在线| 精品一区二区免费看| 国产一区二区精品在线| 国产精品实拍| 91福利在线导航| 波多野结衣影院| 亚洲国产老妈| 国产精品日韩欧美大师| 少妇精品高潮欲妇又嫩中文字幕| 国产欧美精品一区二区三区四区 | 国产精品美女高潮无套| 欧美精品导航| 91精品久久久久久久久久久久久久| 欧美熟妇另类久久久久久不卡| 国产精品久久久久久久久快鸭| 国内精品视频一区二区三区| 日韩免费大片| 一本大道亚洲视频| 国产尤物在线视频| 懂色av一区二区在线播放| 中文字幕一区二区三区有限公司 | 欧美成人精品1314www| 日本理论中文字幕| 亚洲自啪免费| 波多野结衣久草一区| 免费在线看a| 欧美亚洲动漫另类| 亚洲自拍偷拍一区二区| 最新亚洲激情| 国产精品免费看一区二区三区| 黄色国产网站在线播放| 欧美日韩不卡一区| 欧美18—19性高清hd4k| 久久精品人人| 久久久亚洲综合网站| 高清毛片在线观看| 亚洲成人黄色网| 国产成人啪精品午夜在线观看| 国产成人精品亚洲777人妖 | 日本在线观看大片免费视频| 6080国产精品一区二区| 波多野结衣在线网址| 老司机一区二区| 永久免费在线看片视频| 国产欧美日韩电影| 色中色综合影院手机版在线观看| 国产精品人妻一区二区三区| 中文字幕亚洲欧美在线不卡| 亚洲精品国产一区二区三区| 国产国产精品| 51国产成人精品午夜福中文下载| 91精品久久久| 精品国产凹凸成av人导航| 精品一区免费观看| 96av麻豆蜜桃一区二区| 国产男女无遮挡| 国产成人3p视频免费观看| 国产精品福利无圣光在线一区| 懂色av中文在线| 欧美日韩精品一区二区三区蜜桃 | 黄色片在线观看免费| 日韩国产成人精品| 一区二区三区av在线| 成人在线精品| 国外成人在线直播| 精品视频二区| 欧美日韩一区小说| 91视频综合网| 成人18视频日本| 国产激情在线观看视频| 色婷婷一区二区三区| 91网免费观看| 中文不卡1区2区3区| 中文字幕亚洲欧美| 亚洲乱码国产乱码精品精软件| 午夜精品久久久久久| 亚洲精品国产一区黑色丝袜| 精品在线一区二区| 免费在线观看视频a| 国产免费av一区二区三区| 91精品国产自产在线老师啪| 美洲精品一卡2卡三卡4卡四卡| 亚洲精品视频播放| 国产女人高潮毛片| 欧美视频一区二区三区…| 战狼4完整免费观看在线播放版| 国产69精品久久久久777| av免费在线播放网站| 综合国产在线| 欧美日韩亚洲在线| 久久久久九九精品影院| 日韩av手机在线看| av片在线观看网站| 亚洲图片制服诱惑| 成 人片 黄 色 大 片| 日本韩国一区二区| 精品亚洲永久免费| 国产精品久久777777| 私密视频在线观看| 韩国v欧美v日本v亚洲v| 青青草原av在线播放| 综合日韩在线| 三区精品视频观看| 欧美日韩导航| 亚洲最大成人在线| 国产亚洲欧美日韩精品一区二区三区| 性色av一区二区三区| 菠萝菠萝蜜在线视频免费观看| 亚洲人在线视频| 欧美熟妇另类久久久久久不卡| 欧美久久一二区| 99re这里只有精品在线| 亚洲成人免费观看| 免费在线一级片| 国产精品你懂的在线欣赏| 精品人妻无码一区二区三区 | 国产欧美日韩一级| 女同性恋一区二区| 国产成人调教视频在线观看| 国产一区二区视频在线免费观看| 激情综合五月| 国产综合在线观看视频| 日韩免费小视频| 中文字幕第一区综合| 国产999精品久久久| jizz性欧美| 色婷婷**av毛片一区| h视频在线免费| 亚洲欧美日本另类| 三级在线观看| 精品夜色国产国偷在线| 深夜福利在线看| 日韩成人中文字幕在线观看| 手机看片福利在线| 亚洲国产精品福利| 亚洲精品久久久狠狠狠爱| 日韩一级免费一区| 精品久久久无码中文字幕| 欧美久久久影院| 国产又大又黄的视频| 欧美日韩你懂的| 国产乱码精品一区二三区蜜臂| 欧美日韩国产123区| 97精品人妻一区二区三区在线 | 国产内射老熟女aaaa∵| 制服丝袜亚洲网站| h狠狠躁死你h高h| 日韩一区二区电影网| 亚洲va欧美va| 亚洲第一综合天堂另类专| 日本精品久久久久久| 日韩高清人体午夜| 可以免费看污视频的网站在线| 亚洲欧洲xxxx| 香蕉视频免费在线播放| 成年无码av片在线| 黄页网站在线| 欧美在线不卡区| 福利一区二区免费视频| 成人免费网站在线| 福利在线一区| 欧美日韩一区二区三| 久久资源中文字幕| av 日韩 人妻 黑人 综合 无码| 国内精品福利| 国产1区2区在线| 久久国内精品自在自线400部| 在线视频观看一区二区| aaa亚洲精品一二三区| av女人的天堂| 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕巨乱亚洲| 激情五月少妇a| 欧美午夜精品久久久久久久| 中文字幕在线天堂| 日韩午夜电影av| 欧美白人做受xxxx视频| 精品国产一区二区三区在线观看| 五月婷婷视频在线观看| 日本韩国欧美精品大片卡二| 日韩av黄色| 精品国产乱码久久久久久88av| 欧美色蜜桃97| 成年人网站国产| 久久99日本精品| 99久久免费看精品国产一区| 国产天堂亚洲国产碰碰| 欧美国产在线看| 欧美专区在线观看一区| 性做久久久久久久| 中文字幕久久精品| rebdb初裸写真在线观看| 国产欧美一区二区三区在线| 国产精品久久久网站| 亚洲国产精品久久久久久女王| 亚洲二区精品| 91精品999| 久久久久免费观看| 黄色一级片在线| 欧美日韩国产精品成人| 你懂的在线网址| 欧美黄色三级网站| 另类一区二区| 日本精品一区二区| 99亚洲一区二区| 日本成人在线免费| 中文字幕一区二区不卡| 中文字幕av影院| 亚洲国产精品久久| 先锋成人av| 国产欧美在线观看| 精品大片一区二区| 日本精品一区二区三区四区| 成人永久看片免费视频天堂| 午夜激情福利电影| 在线免费视频一区二区| 婷婷伊人综合中文字幕| 欧美激情女人20p| 国产精品igao视频网网址不卡日韩 | 一区二区在线播放视频| 91原创在线视频| 免费日韩在线视频| 日韩一级高清毛片| 91网在线看| 99伊人久久| 欧美激情1区2区| 最好看的中文字幕| 亚洲免费观看高清完整版在线观看| 中文字幕 国产| 在线成人免费网站| 国产精品久久乐| 亚洲高清视频在线观看| 免费观看久久久4p| 日本黄色小视频在线观看| 在线看国产一区二区| 黄色av网址在线免费观看| 97超级碰在线看视频免费在线看 | 日韩精品第1页| 激情成人综合网| 少妇久久久久久被弄高潮| 日韩欧美色综合| 男女在线视频| 国产精品永久入口久久久| 亚洲性感美女99在线| 2一3sex性hd| 欧美日韩中文字幕日韩欧美| 日韩有码电影| 国产精品久久视频| 天天av综合| 精品国产一二区| 天天色综合成人网| 欧美女优在线观看| 国产精品视频26uuu| 亚洲天天综合| 中文在线观看免费视频| 一本大道av一区二区在线播放| 国内三级在线观看| 国产精品视频久久久| 亚洲综合专区| 中文字幕乱码一区| 色综合久久久久综合体桃花网| 91在线看片| 91免费精品视频| 亚洲伦伦在线| 欧美日韩高清丝袜| 91麻豆精品国产综合久久久久久| 蜜臀av在线播放| 久久久久成人精品免费播放动漫| 日韩电影在线观看一区| 紧身裙女教师波多野结衣| 精品国产91洋老外米糕| 成人福利视频| 亚洲高潮无码久久| 2023国产精品自拍| 91精品国产乱码久久久| 欧美精品久久久久久久免费观看| 国产99久久| 能看毛片的网站| 色呦呦一区二区三区| 成人看片免费| 蜜桃麻豆www久久国产精品| 韩国三级中文字幕hd久久精品| 国产午夜精品一区二区理论影院| 亚洲色图50p| 中文字幕区一区二区三| 好男人www社区| 亚洲一二三四在线观看| 成在在线免费视频| 国产一区二区不卡视频在线观看| 美日韩一区二区| 伊人久久综合视频| 欧美大成色www永久网站婷| 精品久久综合|