日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android 输入法如何启动流程_Android输入法显示流程

發布時間:2023/12/15 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 输入法如何启动流程_Android输入法显示流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android輸入法顯示方式大概分為兩種:用戶手動點擊輸入框和應用程序設置了輸入法自動顯示

本文基于Android9.x來分析

目錄

1 :viewClicked流程

1.1 viewClicked

1.2 checkFocus

1.3 startInputInner

1.4 startInputOrWindowGainedFocus

1.5 startInputLocked

1.6 startInputUncheckedLocked

1.7 attachNewInputLocked

1.7.1 處理返回的結果

2:showSoftInput流程

2.1 showSoftInput

2.2 IMMS#showSoftInput

2.3 showCurrentInputLocked

2.4 IMSInputMethodImplInputMethodImplInputMethodImplshowSoftInput

2.5 dispatchOnShowInputRequested

2.6 IMS$showWindow

2.7 showWindowInner

2:從用戶點擊輸入框開始

EditText本身是TextView的子類,觸摸事件的起點在TextView的onTouchEvent方法中

if (touchIsFinished && (isTextEditable() || textIsSelectable)) {

// Show the IME, except when selecting in read-only text.

final InputMethodManager imm = InputMethodManager.peekInstance();

viewClicked(imm);

if (isTextEditable() && mEditor.mShowSoftInputOnFocus && imm != null) {

imm.showSoftInput(this, 0);

}

// The above condition ensures that the mEditor is not null

mEditor.onTouchUpEvent(event);

handled = true;

}

2.1:viewClicked

protected void viewClicked(InputMethodManager imm) {

if (imm != null) {

imm.viewClicked(this);

}

}

2:2:InputMethodManager::viewClicked

public void viewClicked(View view) {

final boolean focusChanged = mServedView != mNextServedView;

checkFocus();

synchronized (mH) {

if ((mServedView != view && (mServedView == null

|| !mServedView.checkInputConnectionProxy(view)))

|| mCurrentTextBoxAttribute == null || mCurMethod == null) {

return;

}

try {

if (DEBUG) Log.v(TAG, "onViewClicked: " + focusChanged);

mCurMethod.viewClicked(focusChanged);

} catch (RemoteException e) {

Log.w(TAG, "IME died: " + mCurId, e);

}

}

}

mCurMethod代表的是一個binder代理對象,對應的是

IInputMethodSessionWrapper

2.3:IInputMethodSessionWrapper::viewClicked

@Override

public void viewClicked(boolean focusChanged) {

mCaller.executeOrSendMessage(

mCaller.obtainMessageI(DO_VIEW_CLICKED, focusChanged ? 1 : 0));

}

case DO_VIEW_CLICKED: {

mInputMethodSession.viewClicked(msg.arg1 == 1);

return;

}

InputMethodSession對應的是一個接口,其實現類為AbstractInputMethodSessionImpl,AbstractInputMethodSessionImpl本身是一個抽象類,InputMethodSessionImpl有繼承它,所以最終調用的是InputMethodSessionImpl的viewClicked

2.4::InputMethodSessionImpl::viewClicked

public void viewClicked(boolean focusChanged) {

if (!isEnabled()) {

return;

}

InputMethodService.this.onViewClicked(focusChanged);

}

2.5:InputMethodService::onViewClicked

public void onViewClicked(boolean focusChanged) {

// Intentionally empty

}

2.6:TextView::checkFocus

public void checkFocus() {

if (checkFocusNoStartInput(false)) {

startInputInner(InputMethodClient.START_INPUT_REASON_CHECK_FOCUS, null, 0, 0, 0);

}

}

2.7:startInputInner

這個方法主要是和輸入法服務建立連接以及綁定

try {

if (DEBUG) Log.v(TAG, “START INPUT: view=” + dumpViewInfo(view) + " ic="

  • ic + " tba=" + tba + " controlFlags=#"

  • Integer.toHexString(controlFlags));

final InputBindResult res = mService.startInputOrWindowGainedFocus(

startInputReason, mClient, windowGainingFocus, controlFlags, softInputMode,

windowFlags, tba, servedContext, missingMethodFlags,

view.getContext().getApplicationInfo().targetSdkVersion);

if (DEBUG) Log.v(TAG, “Starting input: Bind result=” + res);

if (res == null) {

Log.wtf(TAG, “startInputOrWindowGainedFocus must not return”

  • " null. startInputReason="

  • InputMethodClient.getStartInputReason(startInputReason)

  • " editorInfo=" + tba

  • " controlFlags=#" + Integer.toHexString(controlFlags));

return false;

}

if (res.id != null) {

setInputChannelLocked(res.channel);

mBindSequence = res.sequence;

mCurMethod = res.method;

mCurId = res.id;

mNextUserActionNotificationSequenceNumber =

res.userActionNotificationSequenceNumber;

} else if (res.channel != null && res.channel != mCurChannel) {

res.channel.dispose();

}

switch (res.result) {

case InputBindResult.ResultCode.ERROR_NOT_IME_TARGET_WINDOW:

mRestartOnNextWindowFocus = true;

break;

}

if (mCurMethod != null && mCompletions != null) {

try {

mCurMethod.displayCompletions(mCompletions);

} catch (RemoteException e) {

}

}

} catch (RemoteException e) {

Log.w(TAG, "IME died: " + mCurId, e);

}

mService表示的是Imms在客戶端的代理對象

2.8:IMMS::startInputOrWindowGainedFocus

final InputBindResult result;

if (windowToken != null) {

result = windowGainedFocus(startInputReason, client, windowToken, controlFlags,

softInputMode, windowFlags, attribute, inputContext, missingMethods,

unverifiedTargetSdkVersion);

} else {

result = startInput(startInputReason, client, inputContext, missingMethods, attribute,

controlFlags);

}

if (result == null) {

// This must never happen, but just in case.

Slog.wtf(TAG, “InputBindResult is @NonNull. startInputReason=”

  • InputMethodClient.getStartInputReason(startInputReason)

  • " windowFlags=#" + Integer.toHexString(windowFlags)

  • " editorInfo=" + attribute);

return InputBindResult.NULL;

}

windowToken這個地方不為null,代碼邏輯執行的是windowToken

2.9:windowGainedFocus

ClientState cs = mClients.get(client.asBinder());

//在窗口添加的時候會創建一個會話session,在會話創建的時候添加的

// if (mService.mInputMethodManager != null) {

// mService.mInputMethodManager.addClient(client, inputContext,

// mUid, mPid);

//Session.java的構造方法中

} else {

client.setUsingInputMethod(false);

}

if (cs == null) {----->

throw new IllegalArgumentException("unknown client "

  • client.asBinder());

}

try {

if (!mIWindowManager.inputMethodClientHasFocus(cs.client)) {

return InputBindResult.NOT_IME_TARGET_WINDOW;

}

} catch (RemoteException e) {

}

if (!calledFromValidUser) {

hideCurrentInputLocked(0, null);

return InputBindResult.INVALID_USER;

}

if (mCurFocusedWindow == windowToken) {

if (attribute != null) {

return startInputUncheckedLocked(cs, inputContext, missingMethods,

attribute, controlFlags, startInputReason);

}

return new InputBindResult(

InputBindResult.ResultCode.SUCCESS_REPORT_WINDOW_FOCUS_ONLY,

null, null, null, -1, -1);

}

2.10:startInputUncheckedLocked

if (mCurId != null && mCurId.equals(mCurMethodId)) {

if (cs.curSession != null) {

return attachNewInputLocked(startInputReason,

(controlFlags&InputMethodManager.CONTROL_START_INITIAL) != 0);

}

if (mHaveConnection) {

if (mCurMethod != null) {

requestClientSessionLocked(cs);

return new InputBindResult( InputBindResult.ResultCode.SUCCESS_WAITING_IME_SESSION,

null, null, mCurId, mCurSeq,

mCurUserActionNotificationSequenceNumber);

} else if (SystemClock.uptimeMillis()

< (mLastBindTime+TIME_TO_RECONNECT)) {

return new InputBindResult( InputBindResult.ResultCode.SUCCESS_WAITING_IME_BINDING,

null, null, mCurId, mCurSeq,

mCurUserActionNotificationSequenceNumber);

} else {

EventLog.writeEvent(EventLogTags.IMF_FORCE_RECONNECT_IME,

mCurMethodId, SystemClock.uptimeMillis()-mLastBindTime, 0);

}

}

}

return startInputInnerLocked();

2.11:attachNewInputLocked

final SessionState session = mCurClient.curSession;

executeOrSendMessage(session.method, mCaller.obtainMessageIIOOOO(

MSG_START_INPUT, mCurInputContextMissingMethods, initial ? 0 : 1 /* restarting */,

startInputToken, session, mCurInputContext, mCurAttribute));

if (mShowRequested) {----------->此時mShowRequested為false

showCurrentInputLocked(getAppShowFlags(), null);

}

return new InputBindResult(InputBindResult.ResultCode.SUCCESS_WITH_IME_SESSION,

session.session, (session.channel != null ? session.channel.dup() : null),

mCurId, mCurSeq, mCurUserActionNotificationSequenceNumber);

第一部分主要是應用程序app和輸入法服務IMMS建立連接

3:應用程序請求輸入法顯示

if (touchIsFinished && (isTextEditable() || textIsSelectable)) {

// Show the IME, except when selecting in read-only text.

final InputMethodManager imm = InputMethodManager.peekInstance();

viewClicked(imm);

if (isTextEditable() && mEditor.mShowSoftInputOnFocus && imm != null) {

imm.showSoftInput(this, 0);

}

// The above condition ensures that the mEditor is not null

mEditor.onTouchUpEvent(event);

handled = true;

}

3.1:showSoftInput

public boolean showSoftInput(View view, int flags, ResultReceiver resultReceiver) {

checkFocus();

synchronized (mH) {

if (mServedView != view && (mServedView == null

|| !mServedView.checkInputConnectionProxy(view))) {

return false;

}

try {

return mService.showSoftInput(mClient, flags, resultReceiver);---------->請求輸入法服務來顯示showSoftInput

} catch (RemoteException e) {

throw e.rethrowFromSystemServer();

}

}

}

3:2:IMMS::showSoftInput

try {

synchronized (mMethodMap) {

if (mCurClient == null || client == null

|| mCurClient.client.asBinder() != client.asBinder()) {

try {

if (!mIWindowManager.inputMethodClientHasFocus(client)) {

return false;

}

} catch (RemoteException e) {

return false;

}

}

return showCurrentInputLocked(flags, resultReceiver);

}

} finally {

Binder.restoreCallingIdentity(ident);

}

3:3:showCurrentInputLocked

boolean res = false;

if (mCurMethod != null) {

executeOrSendMessage(mCurMethod, mCaller.obtainMessageIOO(

MSG_SHOW_SOFT_INPUT, getImeShowFlags(), mCurMethod,

resultReceiver));

mInputShown = true;

if (mHaveConnection && !mVisibleBound) {

bindCurrentInputMethodServiceLocked(

mCurIntent, mVisibleConnection, IME_VISIBLE_BIND_FLAGS);

mVisibleBound = true;

}

res = true;

} else if (mHaveConnection && SystemClock.uptimeMillis()

= (mLastBindTime+TIME_TO_RECONNECT)) {

EventLog.writeEvent(EventLogTags.IMF_FORCE_RECONNECT_IME, mCurMethodId,

SystemClock.uptimeMillis()-mLastBindTime,1);

Slog.w(TAG, “Force disconnect/connect to the IME in showCurrentInputLocked()”);

mContext.unbindService(this);

bindCurrentInputMethodServiceLocked(mCurIntent, this, IME_CONNECTION_BIND_FLAGS);

} else {

}

3.4::MSG_SHOW_SOFT_INPUT消息處理

case MSG_SHOW_SOFT_INPUT:

args = (SomeArgs)msg.obj;

try {

if (DEBUG) Slog.v(TAG, "Calling " + args.arg1 + “.showSoftInput(”

  • msg.arg1 + ", " + args.arg2 + “)”);

((IInputMethod)args.arg1).showSoftInput(msg.arg1, (ResultReceiver)args.arg2);

} catch (RemoteException e) {

}

args.recycle();

return true;

((IInputMethod)args.arg1)代表的是arg2

public Message obtainMessageIOO(int what, int arg1, Object arg2, Object arg3) {

SomeArgs args = SomeArgs.obtain();

args.arg1 = arg2;

args.arg2 = arg3;

return mH.obtainMessage(what, arg1, 0, args);

}

arg2代表是IInputMethod mCurMethod;是一個binder代理對象,表示的是輸入法在IMMS的代理對象,通過這個對象我們可以訪問輸入法進程里面的方法

3.5:IInputMethodWrapper::showSoftInput

public void showSoftInput(int flags, ResultReceiver resultReceiver) {

mCaller.executeOrSendMessage(mCaller.obtainMessageIO(DO_SHOW_SOFT_INPUT,

flags, resultReceiver));

}

//最終調用的是inputMethod的showSoftInput,inputMethod是InputMethod,InputMethod是一個接口,需要找到其實現類

case DO_SHOW_SOFT_INPUT:

inputMethod.showSoftInput(msg.arg1, (ResultReceiver)msg.obj);

return;

3.6:InputMethodServic.InputMethodImpl.java

public void showSoftInput(int flags, ResultReceiver resultReceiver) {

boolean wasVis = isInputViewShown();

if (dispatchOnShowInputRequested(flags, false)) {

try {

showWindow(true);------>顯示輸入法窗口

} catch (BadTokenException e) {

}

}

clearInsetOfPreviousIme();

mImm.setImeWindowStatus(mToken, mStartInputToken,

mapToImeWindowStatus(isInputViewShown()), mBackDisposition);

if (resultReceiver != null) {

resultReceiver.send(wasVis != isInputViewShown()

? InputMethodManager.RESULT_SHOWN

(wasVis ? InputMethodManager.RESULT_UNCHANGED_SHOWN

InputMethodManager.RESULT_UNCHANGED_HIDDEN), null);

}

}

InputMethodService是輸入法服務,工作在輸入法應用的進程中

3.7:showWindow

try {

mWindowWasVisible = mWindowVisible;

mInShowWindow = true;

showWindowInner(showInput);

} catch (BadTokenException e) {

mWindowVisible = false;

mWindowAdded = false;

throw e;

} finally {

// TODO: Is it OK to set true when we get BadTokenException?

mWindowWasVisible = true;

mInShowWindow = false;

}

3.8:showWindowInner

void showWindowInner(boolean showInput) {

boolean doShowInput = false;

final int previousImeWindowStatus =

(mWindowVisible ? IME_ACTIVE : 0) | (isInputViewShown() ? IME_VISIBLE : 0);

mWindowVisible = true;

if (!mShowInputRequested && mInputStarted && showInput) {

doShowInput = true;

mShowInputRequested = true;

}

initialize();

updateFullscreenMode();

updateInputViewShown();

if (!mWindowAdded || !mWindowCreated) {

mWindowAdded = true;

mWindowCreated = true;

initialize();

View v = onCreateCandidatesView();

if (v != null) {

setCandidatesView(v);

}

}

if (mShowInputRequested) {

if (!mInputViewStarted) {

if (DEBUG) Log.v(TAG, “CALL: onStartInputView”);

mInputViewStarted = true;

onStartInputView(mInputEditorInfo, false);

}

} else if (!mCandidatesViewStarted) {

if (DEBUG) Log.v(TAG, “CALL: onStartCandidatesView”);

mCandidatesViewStarted = true;

onStartCandidatesView(mInputEditorInfo, false);

}

if (doShowInput) {

startExtractingText(false);

}

final int nextImeWindowStatus = mapToImeWindowStatus(isInputViewShown());

if (previousImeWindowStatus != nextImeWindowStatus) {

mImm.setImeWindowStatus(mToken, mStartInputToken, nextImeWindowStatus,

mBackDisposition);

}

if ((previousImeWindowStatus & IME_ACTIVE) == 0) {

if (DEBUG) Log.v(TAG, “showWindow: showing!”);

onWindowShown();

mWindow.show();---->輸入法窗口是一個對話框

mShouldClearInsetOfPreviousIme = false;

}

}

總結

以上是生活随笔為你收集整理的android 输入法如何启动流程_Android输入法显示流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久亚洲影视 | 免费黄色看片 | 欧美精品在线免费 | 成人一区二区在线 | 欧美日韩视频一区二区 | 日本久草电影 | 99视频网址| 日韩免费一区 | 免费91麻豆精品国产自产在线观看 | 亚洲波多野结衣 | 免费视频久久久久 | 黄色亚洲片 | 日韩欧美国产激情在线播放 | 国产一区二区久久久 | 久久久久免费视频 | 久久免费国产 | 人人精品 | 黄色免费高清视频 | 麻豆精品视频 | 伊人中文字幕在线 | 日韩在线免费视频观看 | 日本久久久久久久久久久 | 精品国产一区二区三区四区在线观看 | 狠狠天天 | 国产精品一区久久久久 | 国产精品99久久久精品免费观看 | 色婷婷综合久久久中文字幕 | 婷婷六月丁香激情 | 热久在线 | 91成人看片| 国产精品中文 | 伊人影院av| 欧美日韩在线观看一区二区三区 | 韩国av一区二区 | 欧美国产日韩久久 | 色婷婷综合激情 | 精品在线观 | 国产亚洲久久 | 永久免费精品视频网站 | 探花视频免费观看高清视频 | 久久精品高清 | 亚洲精品在线免费 | 337p西西人体大胆瓣开下部 | 亚洲精品在线观看av | 婷婷播播网 | 97精品国产一二三产区 | 国产精品高潮呻吟久久久久 | 一二三区视频在线 | 国产 日韩 欧美 中文 在线播放 | 天堂av在线中文在线 | 欧美日韩在线观看一区二区 | 91久久久国产精品 | 日日夜夜网 | 91在线免费视频 | 99免费国产| 黄色毛片大全 | 美女免费视频一区二区 | 波多野结衣视频一区 | 丁香婷婷色综合亚洲电影 | 久久综合天天 | 中文字幕在线视频一区 | 久久这里精品视频 | 国内精品国产三级国产aⅴ久 | 久久99精品一区二区三区三区 | 六月色丁香 | 国产a免费 | 欧美日韩精 | 日本精品在线看 | 美女中文字幕 | 91精品国产一区二区三区 | 日韩网站视频 | 色综合亚洲精品激情狠狠 | 天天插天天干 | 高清在线观看av | av观看久久久 | 国产精品久久久久久久久久ktv | 国产精品自产拍在线观看桃花 | 久久免费美女视频 | 视频在线观看99 | 国产精品一区在线观看你懂的 | av三级av | 美女黄频免费 | 日韩一区正在播放 | 久久伊人国产精品 | 亚洲综合网 | 中文字幕亚洲欧美日韩2019 | 久久精视频 | 精品一区二区在线看 | 激情五月婷婷激情 | 精品成人久久 | 亚洲日本中文字幕在线观看 | 中文字幕在线播出 | 亚洲久草在线视频 | 欧美日韩在线播放一区 | 日韩有码在线播放 | 看污网站 | 亚洲精品大全 | 免费在线观看视频a | 在线日韩视频 | 国产精品久久99综合免费观看尤物 | 久草在线电影网 | 欧美福利网站 | 成年人视频在线免费播放 | 黄色一级大片在线免费看国产一 | 天天干人人干 | 操老逼免费视频 | 高清不卡一区二区在线 | www.天天操.com| 日韩免费成人av | 久久午夜网 | 99精品久久只有精品 | 亚洲成人一二三 | 日韩欧美99 | 国产喷水在线 | 久久综合九色99 | 国产国产人免费人成免费视频 | 色狠狠一区二区 | 一区二区欧美在线观看 | 国产精品白虎 | 91av在线视频免费观看 | 偷拍久久久 | 精品在线观看一区二区 | 中文字幕在线播放一区 | 欧美一级裸体视频 | 国产成人免费网站 | 91在线91 | 国产男女无遮挡猛进猛出在线观看 | 国产在线播放一区二区三区 | a级片久久久 | 精品一二区 | 国产美女免费看 | 国产午夜精品免费一区二区三区视频 | 中文字幕中文字幕在线中文字幕三区 | 麻豆一区二区三区视频 | 又紧又大又爽精品一区二区 | www.久艹 | 最近中文字幕免费视频 | 在线天堂v | 天海冀一区二区三区 | 伊人欧美 | 欧美久久久一区二区三区 | 天天躁日日躁狠狠 | 国产不卡一区二区视频 | 婷婷精品国产一区二区三区日韩 | 免费黄色a网站 | 国产视频网站在线观看 | 狠狠色丁香婷婷 | 99婷婷狠狠成为人免费视频 | 蜜臀久久99精品久久久无需会员 | 久久国产视频网 | 久久深爱网 | 99免费精品 | 免费福利影院 | 国产成人99av超碰超爽 | 五月天最新网址 | 在线观看岛国 | 色综合天天狠天天透天天伊人 | 中文字幕在线观看第三页 | 超级碰碰免费视频 | 日日爱av| 夜夜夜影院 | 国产精品午夜久久久久久99热 | 成人h在线播放 | 婷婷综合导航 | 国产高清区 | 五月色丁香| 人人玩人人爽 | av在线网站大全 | 国产97超碰 | 免费69视频 | 99综合影院在线 | 久久国产精品二国产精品中国洋人 | 国产高清av | 免费亚洲成人 | www.亚洲在线 | 久久免费黄色大片 | 国产大陆亚洲精品国产 | 日韩影视在线观看 | 天堂素人在线 | 精品一区二区免费视频 | 丰满少妇高潮在线观看 | 在线免费三级 | 国产理论片在线观看 | 在线成人一区二区 | 美女免费网视频 | 久久er99热精品一区二区 | 亚洲日本在线一区 | 日韩高清免费无专码区 | 激情综合网在线观看 | 曰韩在线 | 亚洲综合在线观看视频 | 九九久久久久久久久激情 | 国产成人精品一区二区三区在线 | 四虎亚洲精品 | 久久久久久久久久久电影 | 日韩免费av片 | 黄色大全免费观看 | 欧洲色吧| 日韩av高清 | 国产一区免费在线观看 | 国产亚洲精品久久久久秋 | 免费中午字幕无吗 | 久久99影院 | 国产精品久久久久久久久蜜臀 | 在线欧美国产 | 91国内产香蕉 | 人人爱人人做人人爽 | 99c视频高清免费观看 | 91黄色小网站 | 97av免费视频| 精品国产成人av | 狠狠插狠狠干 | 国产精品久久网站 | 99免费在线观看 | 久久成人国产 | 六月丁香激情综合色啪小说 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩大片在线免费观看 | 国产日韩精品一区二区在线观看播放 | 久久久精品二区 | 中文字幕在线不卡国产视频 | 在线观看韩国av | 国产成人精品一区二区三区免费 | 亚洲在线高清 | 中文字幕制服丝袜av久久 | 天天色天天综合 | 四虎影视久久久 | 国产成人a亚洲精品 | 麻豆视频免费在线观看 | 国产午夜精品一区二区三区 | 高清av中文在线字幕观看1 | 亚洲日本一区二区在线 | av色综合| 成人一级在线 | 天天操天天干天天摸 | 三级av中文字幕 | 国产成人精品亚洲日本在线观看 | 久久亚洲福利视频 | 精品国产1区 | 欧美日韩一级久久久久久免费看 | 91.麻豆视频 | av成人在线播放 | www.啪啪.com| 中文字幕在线观看三区 | 国产精品福利一区 | 97综合网| 中文字幕色综合网 | 国产精品免费在线播放 | 高清av中文字幕 | 欧美动漫一区二区三区 | 国产美女黄网站免费 | 日本爱爱免费视频 | 中文字幕色婷婷在线视频 | 免费日韩一级片 | 一区二区三区在线不卡 | 国产免费专区 | 天天干天天天 | 中文字幕一区二区三区乱码不卡 | 麻豆国产露脸在线观看 | 亚洲国产一区二区精品专区 | 婷婷精品国产欧美精品亚洲人人爽 | 久久av中文字幕片 | a特级毛片 | 精品亚洲免费视频 | 日日夜夜国产 | 国产在线高清视频 | 免费看片成人 | 国产小视频你懂的在线 | 狠狠干.com | 久久视频在线视频 | 欧美a级成人淫片免费看 | 玖玖999 | 日韩网站免费观看 | 麻豆影视在线免费观看 | 亚洲欧洲精品一区二区 | 亚洲精品影院在线观看 | 欧美性生交大片免网 | 日韩在线观看第一页 | 99在线视频精品 | 91精品在线麻豆 | 亚洲国产视频在线 | 欧美99精品| 日韩精品亚洲专区在线观看 | 中文在线免费一区三区 | 国产黄色片免费观看 | 狠狠插狠狠操 | 免费视频 三区 | 午夜免费电影院 | 欧美一级特黄高清视频 | 日韩欧美不卡 | 91麻豆看国产在线紧急地址 | 高清不卡一区二区三区 | 亚洲精品一区二区三区在线观看 | 欧美精品久久人人躁人人爽 | 在线成人性视频 | 欧美国产日韩一区二区三区 | 亚洲 欧美变态 另类 综合 | 色com | 激情深爱五月 | 成人h电影在线观看 | 亚洲成 人精品 | 欧美一级视频免费 | 骄小bbw搡bbbb揉bbbb | 婷婷久久久久 | 久久论理 | 999国内精品永久免费视频 | 日韩在线观看中文字幕 | 四虎亚洲精品 | 久久久久国产精品免费免费搜索 | 99久热精品 | 日日夜夜操操操操 | 色偷偷88欧美精品久久久 | 在线观看黄色免费视频 | 亚州精品视频 | 成人国产精品久久久久久亚洲 | 日本aaaa级毛片在线看 | 国产精品久久久999 国产91九色视频 | 国产91全国探花系列在线播放 | japanesexxxhd奶水 91在线精品一区二区 | 亚洲精品在线资源 | 欧美日本啪啪无遮挡网站 | freejavvideo日本免费 | 午夜精品一区二区三区在线 | 免费观看一级特黄欧美大片 | 97偷拍在线视频 | 日韩视频中文字幕在线观看 | 亚洲国产视频直播 | 久久99欧美 | 精品视频一区在线 | 中文字幕亚洲在线观看 | 黄色一区二区在线观看 | 亚洲在线激情 | 色就色,综合激情 | 伊人色综合久久天天 | 99久久久久久久久 | 国内外激情视频 | 国产女人18毛片水真多18精品 | 黄色tv视频| 免费看污在线观看 | 国产精品 国产精品 | 日日综合 | 永久黄网站色视频免费观看w | 久久精品视频免费观看 | 亚洲色图 校园春色 | 国产精品大片免费观看 | 久久精精品视频 | 日韩专区在线播放 | 国内久久看| 九九免费精品视频在线观看 | 亚欧日韩成人h片 | 波多在线视频 | 91av在线免费播放 | 黄色一级大片在线观看 | 久久精品黄| 久久精品视频在线免费观看 | 91视频啊啊啊| 色a综合| 手机看片 | 四虎国产精品免费 | 在线视频app | 国产精品日韩欧美 | 欧美日韩另类在线观看 | 涩涩网站在线播放 | 香蕉日日| 视频在线观看入口黄最新永久免费国产 | 中文字幕在线免费观看视频 | 三级小视频在线观看 | ww视频在线观看 | 91九色丨porny丨丰满6 | 在线免费观看视频一区二区三区 | 在线观看视频免费播放 | 菠萝菠萝蜜在线播放 | 91传媒在线观看 | 中文字幕在线观看免费观看 | 久久精品系列 | 国产一级a毛片视频爆浆 | 国产美女网 | 麻豆国产精品视频 | 婷婷五月在线视频 | 成人a视频片观看免费 | 成人三级网址 | 国产精品高潮久久av | 天天射天天操天天色 | 成 人 黄 色 片 在线播放 | 日韩性xxxx | 日韩欧美观看 | 国产999视频 | 日韩国产精品久久久久久亚洲 | 免费69视频| 成人免费视频免费观看 | 成人黄色小说在线观看 | a视频在线看 | 色视频网址| 国产a国产a国产a | 五月天婷婷丁香花 | 91麻豆产精品久久久久久 | 日韩影片在线观看 | 亚洲欧洲精品一区二区精品久久久 | 国内免费的中文字幕 | 国产五十路毛片 | 人人干人人做 | 亚洲国产精品传媒在线观看 | 97视频在线观看播放 | 中文字幕一区二区三区久久蜜桃 | 高清国产在线一区 | 欧美三级高清 | 视频一区二区视频 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 久久精品电影院 | 亚洲精品影院在线观看 | 国产精品久久久久婷婷 | 日韩首页 | 精品久久久久久久久久久久久久久久久久 | 在线有码中文字幕 | 国产小视频免费观看 | 香蕉视频免费在线播放 | 丁香激情五月 | 91传媒在线观看 | 国产 视频 久久 | 天天激情 | 伊人天堂网 | www.久久精品视频 | 伊人夜夜 | 欧美视频xxx | 免费看污黄网站 | 特黄特色特刺激视频免费播放 | 亚洲国产精品成人精品 | 欧美日韩视频在线观看一区二区 | 91九色成人 | 狠狠综合 | 国产91av视频在线观看 | 91综合色| 久久久久亚洲精品国产 | 久久综合色婷婷 | 美女又爽又黄 | 少妇bbbb搡bbbb桶 | 国产老太婆免费交性大片 | 国产精品1区2区3区 久久免费视频7 | 在线免费色视频 | av免费观看高清 | 国产精品毛片久久蜜 | 国产精品久久嫩一区二区免费 | 久久调教视频 | 久久99精品国产 | 亚洲黄色app| 狂野欧美激情性xxxx欧美 | 国产一区二区三区在线 | 免费在线观看一级片 | 麻豆国产精品永久免费视频 | aaa毛片视频 | 天堂在线一区二区 | 国产一级久久久 | 中文字幕在线免费97 | 伊人精品在线 | 日本午夜在线亚洲.国产 | 午夜精品久久久久久 | 在线观看不卡的av | 亚洲视频www| 91在线播放综合 | 九九热在线播放 | 免费成视频 | 精品国产一区二区三区久久久蜜臀 | 免费国产一区二区 | 手机在线小视频 | 中文字幕日本在线观看 | 伊人官网| 00av视频 | 午夜精品久久久久久久99 | 男女激情片在线观看 | 麻豆免费视频观看 | 五月婷婷av在线 | 日本久久免费电影 | 97高清视频| 午夜丁香视频在线观看 | av官网| 超碰人人乐 | 精品一区三区 | 极品久久久| 中文字幕av在线不卡 | 免费在线观看av网站 | 久久久国产精品麻豆 | 亚洲最新av| 欧美激情视频一二区 | 91精品91 | 亚洲综合激情小说 | 九九九九色 | 成人免费一区二区三区在线观看 | 很黄很污的视频网站 | 久久久久久久久久亚洲精品 | 欧美精品xxx | 91手机电视| 久久综合99 | av青草| 国产91影院| 九九九九热精品免费视频点播观看 | 久久精品99| 中文字字幕在线 | 亚洲日日夜夜 | 日韩中文字幕在线看 | 在线看污网站 | 免费精品在线视频 | 日本久草电影 | 久久久久亚洲天堂 | 国产精品久久久久久久久久ktv | 国产在线色 | av在线看网站 | 婷婷成人在线 | 91视频高清 | 成人资源在线 | 香蕉视频91| 国产特黄色片 | 97视频在线观看播放 | 91麻豆看国产在线紧急地址 | 国产资源网 | 色婷婷97 | 亚洲黄网站 | 日韩精品免费在线视频 | 98久久 | 日韩精品一区二区三区不卡 | 久久久久国产一区二区 | 亚洲天堂精品 | 中文字幕在线观看免费高清完整版 | 91av社区| 欧美日韩性视频在线 | 国产污视频在线观看 | 久久手机在线视频 | 特黄色大片 | 99热在线观看 | 99精品免费久久久久久久久日本 | 黄色成年 | 国产一级视屏 | 亚洲男男gaygayxxxgv | 日韩一二三在线 | 探花在线观看 | 成人影视免费 | 中文字幕亚洲精品在线观看 | 日本中文字幕在线视频 | 97电影在线看视频 | 美女视频黄的免费的 | 久久深爱网 | 国产999免费视频 | 国产高清无线码2021 | 国产精品精品久久久 | 97精品国产97久久久久久粉红 | 国产视频午夜 | 深爱激情综合 | 亚洲综合欧美精品电影 | 欧美性粗大hdvideo | 狠狠夜夜 | 91成人网页版 | 韩国av在线播放 | 欧美日韩国产页 | 亚洲精品1234区 | www.久久久 | 成人性生活大片 | 欧美一区二区三区不卡 | 波多野结衣小视频 | 国产中文字幕大全 | 成人国产网址 | 日日躁夜夜躁xxxxaaaa | 91中文字幕网 | 91成人精品一区在线播放69 | 欧美日韩在线免费观看视频 | 欧美激情综合色综合啪啪五月 | 国产一级片久久 | 97av在线 | 天天插综合网 | 中文字幕精品久久 | 99这里只有精品视频 | 国产亚洲精品精品精品 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 欧美在线一二 | 国产一区在线免费观看 | 成人综合婷婷国产精品久久免费 | 五月婷婷综合网 | 久久国产经典视频 | 久久a级片 | 亚州精品一二三区 | 天天干,夜夜爽 | 久久久受www免费人成 | 91在线视频在线观看 | 四月婷婷在线观看 | 特级毛片爽www免费版 | 国产成人福利在线观看 | 六月婷婷网| 久艹视频在线观看 | 九九九九九精品 | 香蕉久久国产 | 久草视频在线新免费 | 依人成人综合网 | 精品国产免费一区二区三区五区 | 日本久久成人中文字幕电影 | 中文字幕亚洲欧美日韩 | 久久精品日韩 | 97免费中文视频在线观看 | 天天五月天色 | 精品国产一区二区三区免费 | 国产精品一级在线 | 国产在线观看av | 在线观看中文字幕亚洲 | 日本h在线播放 | 三级黄色大片在线观看 | 亚洲视频大全 | 成人在线免费视频观看 | 日韩二区在线观看 | 国产在线免费观看 | 久久综合九色综合97婷婷女人 | 国产一区二区在线视频观看 | 在线观看视频日韩 | 免费福利在线视频 | 中文字幕久久精品一区 | 91麻豆精品国产91久久久更新时间 | 天堂久色| 国内精自线一二区永久 | 日韩高清免费无专码区 | a午夜在线| 免费高清在线视频一区· | 高清av免费看 | av电影中文字幕在线观看 | 日韩成人中文字幕 | 国产色拍拍拍拍在线精品 | 中文不卡视频在线 | 亚洲最大av | av一级在线 | av免费片 | 久久久国产电影 | 久草视频免费播放 | 久久久精品小视频 | 日韩高清在线看 | 综合色站导航 | 久久毛片高清国产 | 中文字幕在线专区 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 日韩a级免费视频 | 超碰99人人 | 久久久高清免费视频 | 91在线视频播放 | 91久久久久久国产精品 | 亚洲电影自拍 | 久久久精品国产免费观看同学 | 国产五月色婷婷六月丁香视频 | 99久久超碰中文字幕伊人 | 日本中文字幕电影在线免费观看 | 国产精品正在播放 | 国产特级毛片aaaaaa高清 | 久久久999精品视频 国产美女免费观看 | 久草免费在线视频 | 91综合色| 69国产成人综合久久精品欧美 | 91在线精品一区二区 | 免费福利视频导航 | 久久久久久蜜桃一区二区 | 亚洲黄在线观看 | 中文字幕在线播放视频 | 日韩免费大片 | 五月天电影免费在线观看一区 | 24小时日本在线www免费的 | 久久精品国产一区二区电影 | 天天操夜夜叫 | 夜夜操网 | 五月天中文字幕mv在线 | 伊人五月天 | 亚洲精品视频一二三 | www·22com天天操 | 国产日产精品一区二区三区四区的观看方式 | 亚洲综合狠狠干 | 日本在线观看视频一区 | 亚洲精品麻豆 | 911国产在线观看 | 天天干天天插伊人网 | 中文字幕久久精品 | 97偷拍在线视频 | 九九视频在线观看视频6 | 欧美一区二区精美视频 | 国产 成人 久久 | 久久超级碰 | 国产精品久久久av久久久 | 亚洲精品久久久久久国 | 黄色中文字幕 | 久久一精品 | 又色又爽又黄 | 国产成人三级在线观看 | 久久国产精品免费一区二区三区 | 国产精品2019 | 99久久99久久精品免费 | 中文字幕日韩免费视频 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国模精品在线 | 国产韩国日本高清视频 | 成人a视频 | 亚洲综合在线五月天 | 天天视频色版 | 国产精品女同一区二区三区久久夜 | 激情欧美一区二区免费视频 | 91麻豆精品国产91久久久久久 | 国产精品18毛片一区二区 | 日韩成人在线免费观看 | 亚洲h在线播放在线观看h | 久久国产精品区 | 亚洲黄网站 | 久久亚洲精品国产亚洲老地址 | 成人免费在线视频 | 99久久精品视频免费 | 欧美一级免费在线 | 免费在线观看亚洲视频 | 91亚洲视频在线观看 | 久久免费99| 99r在线播放 | 色多多污污在线观看 | 久久精品中文 | 亚洲欧美国产日韩在线观看 | 天天操夜夜操国产精品 | 日韩动漫免费观看高清完整版在线观看 | 超碰99人人| 国产视频亚洲精品 | 久久天天综合网 | 91av在线视频免费观看 | 91视频91色| 97人人澡人人爽人人模亚洲 | 在线国产黄色 | 国产精品麻豆99久久久久久 | 在线播放 亚洲 | 最新av观看 | 美女视频黄色免费 | 成人小视频在线 | 国产精品免费久久久久 | 免费在线视频一区二区 | 在线а√天堂中文官网 | 黄色成人影视 | 精品国模一区二区 | 91精品视频免费在线观看 | 亚洲电影黄色 | 色综合天天爱 | 精品国产成人 | 欧美日韩不卡在线观看 | 欧美在线视频一区二区 | 久久影视一区二区 | 99精品国产免费久久久久久下载 | 欧美久久久久久久久久 | 国产精品久久伊人 | 天天天综合网 | 国产精品激情在线观看 | 久久视屏网| 亚洲电影一级黄 | 夜夜操狠狠干 | 天天爱天天爽 | 永久免费视频国产 | 欧美一级裸体视频 | 婷婷激情五月 | 狠狠躁日日躁狂躁夜夜躁 | 精品国精品自拍自在线 | 91成人免费视频 | 久久免费成人精品视频 | 黄色毛片一级片 | 日韩精品在线免费观看 | 精品国产成人av | 天天操网站 | 夜添久久精品亚洲国产精品 | 国产精品99精品久久免费 | 久久精品视频免费观看 | 九九精品毛片 | 国产高清视频在线 | 天天操网| 精品久久久久久亚洲综合网站 | 5月丁香婷婷综合 | 在线观看免费视频 | 婷婷福利影院 | 日本精品久久久久久 | 国产在线色站 | 黄色av在 | a级片韩国| 亚洲视频专区在线 | 色插综合 | 亚洲女在线| 日韩电影一区二区在线观看 | 麻花豆传媒mv在线观看 | 免费看的国产视频网站 | 久草在线资源免费 | 色视频在线看 | 久久久成人精品 | 久久婷婷精品视频 | 成人精品一区二区三区中文字幕 | 亚洲精品乱码久久久久久蜜桃91 | 久久夜夜爽 | 欧美韩国日本在线 | 国产在线高清精品 | 婷婷午夜天 | a色视频| 久久综合久久鬼 | 国产精品久久久久影院日本 | 色综合天天综合 | 成年人免费观看在线视频 | 麻豆观看 | 天天操,夜夜操 | 欧美91精品久久久久国产性生爱 | 久久成人高清视频 | 国产在线播放一区二区 | 精品超碰 | 久久免费观看少妇a级毛片 久久久久成人免费 | 91精品国产91久久久久久三级 | 五月天婷婷丁香花 | 亚洲视频电影在线 | 97超碰色偷偷 | 午夜久久影视 | av电影av在线 | 国产精品第一页在线 | 中文字幕一二 | 亚洲国产中文字幕 | 婷婷在线看 | 91人人澡人人爽人人精品 | 啪啪免费视频网站 | 韩日色视频 | 日本高清中文字幕有码在线 | 久久精品国产免费看久久精品 | 国产日韩欧美视频在线观看 | 日韩欧美在线一区二区 | 久久综合免费视频 | 欧美日韩久久一区 | 国内久久久久久 | 九九热免费视频在线观看 | 黄色av一区二区 | 日韩aa视频 | 91免费网站在线观看 | 色婷婷精品 | 国产成人中文字幕 | 91精品国产乱码 | 尤物九九久久国产精品的分类 | 偷拍福利视频一区二区三区 | 欧美日韩一区二区视频在线观看 | 天堂av网站 | 欧美中文字幕第一页 | 久久男人中文字幕资源站 | 麻豆影视网| 欧美一级片免费在线观看 | 免费激情网 | 国产亚洲激情视频在线 | 日韩大片免费观看 | 日韩精品一区二区三区在线播放 | 日韩av高清在线观看 | 国产精品免费一区二区三区在线观看 | 91精品啪在线观看国产81旧版 | 天天操天 | 午夜精品福利一区二区三区蜜桃 | 国产在线超碰 | 97超碰在 | 国产91综合一区在线观看 | 美女网站视频免费都是黄 | 成年人在线观看免费视频 | 中文字幕观看视频 | 麻豆手机在线 | 久久男人中文字幕资源站 | 色的网站在线观看 | 免费看的黄色小视频 | 在线观看亚洲精品视频 | 午夜美女福利 | 三级在线视频播放 | 精品视频资源站 | 久久久久激情视频 | 亚洲狠狠操 | 最新国产中文字幕 | 黄色软件视频大全免费下载 | www.一区二区三区 | av资源免费观看 | 黄色片视频在线观看 | 视频在线在亚洲 | 高清国产午夜精品久久久久久 | 美女视频国产 | 日韩电影精品一区 | 伊人久久婷婷 | 欧美综合色在线图区 | av超碰在线观看 | 欧美亚洲国产日韩 | 午夜精品久久久久 | 一区二区三区在线免费播放 | 日韩特级毛片 | 黄av免费| 国产91欧美 | 国产在线观看网站 | 99精品国产99久久久久久97 | 97超碰人人澡人人爱学生 | 激情五月婷婷激情 | 日韩av不卡在线播放 | 国产精品久久久久久久久久久久久久 | 中文字幕在线观看的网站 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产黄色精品在线 | 天天干天天操人体 | 最近中文字幕mv | 美国av片在线观看 | 亚洲一区二区高潮无套美女 | 久久久久久久久久电影 | 五月婷在线观看 | 二区三区在线 | 精品在线99| 日韩免费视频线观看 | av超碰在线 | 草草草影院 | 伊人久久国产 | 国产精品久久久久久欧美 | 少妇bbw搡bbbb搡bbbb | 久久伊人操 | 国产高清不卡在线 | 在线亚洲激情 | 日日干天天操 | av国产在线观看 | 激情 婷婷 | 精品久久免费看 | 国产午夜亚洲精品 | 日韩欧美在线不卡 | 日本中文一级片 | 香蕉视频在线免费看 | 91看片麻豆 | 欧日韩在线 | 国产淫片免费看 | 色婷婷激情电影 | 婷婷丁香激情 | 亚洲我射av | 在线观看日韩中文字幕 | 毛片在线播放网址 | 97在线视| 视频在线观看入口黄最新永久免费国产 | 亚洲,国产成人av | 亚洲精品456在线播放 | 免费av福利| 国产精品欧美久久久久无广告 | 国产精品一区二区62 | 久久久精品日本 | 激情综合五月婷婷 | 国产一级片免费视频 | 国产精品美女网站 | 操少妇视频 | 在线观看日韩精品 | 91九色自拍| 国产午夜精品免费一区二区三区视频 | 91在线小视频 | 色婷婷在线视频 | av免费网| 免费看的黄色网 | 成人久久久久久久久 | 激情丁香| 色婷五月天| 国产精品1区2区3区在线观看 | 在线观看不卡视频 | 成人久久18免费网站麻豆 | 成人性生交大片免费看中文网站 | 国产做aⅴ在线视频播放 | 国产九九热 | 国产91丝袜在线播放动漫 | 在线高清 | 久久99久久久久久 | 久久精品这里都是精品 | 国产精品成人免费一区久久羞羞 | 日韩中文字幕免费看 | 最新真实国产在线视频 | 久久五月婷婷丁香社区 | 久久久国产99久久国产一 | 日日干夜夜干 | 欧美在线日韩在线 | 久久99欧美 | 欧美日韩视频一区二区三区 | 黄色av免费电影 | 欧洲亚洲国产视频 | 国内精自线一二区永久 | 亚洲激情视频在线 | 久久精品免费电影 | 国内精品视频一区二区三区八戒 | 丁香视频 | 波多野结衣一区 | 中文字幕在线播出 | 黄色小视频在线观看免费 | 国产色拍拍拍拍在线精品 | 久久99久久99精品免视看婷婷 | 91九色自拍 | 亚洲精品麻豆 | 久草免费在线视频观看 | 91重口视频 | 91cn国产在线 | 免费观看国产精品 | 99热只有精品在线观看 | 国产性xxxx | 婷婷中文字幕综合 | 婷婷六月中文字幕 | 成人免费网视频 | 欧美极品一区二区三区 | 亚洲综合激情网 | 天天操·夜夜操 | 天天天天天天天操 | 正在播放国产一区 | 欧美日韩国产综合网 | 国产精品久久久久久久久蜜臀 | 国产高清av在线播放 | 国产91aaa | 免费日韩电影 | 色老板在线视频 | 97av在线视频免费播放 | 天堂资源在线观看视频 | 日韩综合第一页 | av久久在线 |