3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android Service演义

發(fā)布時(shí)間:2025/3/15 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Service演义 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

(本文以Android 5.1為準(zhǔn))


1.概述


在Android平臺(tái)上,那種持續(xù)性工作一般都是由service來(lái)執(zhí)行的。不少初學(xué)者總是搞不清service和線程、進(jìn)程之間的關(guān)系,這當(dāng)然會(huì)影響到他們開(kāi)展具體的開(kāi)發(fā)工作。

其實(shí),簡(jiǎn)單說(shuō)起來(lái),service和線程、進(jìn)程是沒(méi)什么關(guān)系的。我們知道,在Android平臺(tái)上已經(jīng)大幅度地弱化了進(jìn)程的概念,取而代之的是一個(gè)個(gè)有意義的邏輯實(shí)體,比如activity、service等。Service實(shí)體必然要寄身到某個(gè)進(jìn)程里才行,它也可以再啟動(dòng)幾個(gè)線程來(lái)幫它干活兒。但是,說(shuō)到底service只是一個(gè)邏輯實(shí)體、一個(gè)運(yùn)行期上下文而已。

相比activity這種“操控UI界面的運(yùn)行期上下文”,service這種上下文一般是沒(méi)有界面部分的。當(dāng)然這里說(shuō)的只是一般情況,有些特殊的service還是可以創(chuàng)建自己的界面的,比如當(dāng)一個(gè)service需要顯現(xiàn)某種浮動(dòng)面板時(shí),就必須自己創(chuàng)建、銷毀界面了。

在Android系統(tǒng)內(nèi)部的AMS里,是利用各種類型的Record節(jié)點(diǎn)來(lái)管理不同的運(yùn)行期上下文的。比如以ActivityRecord來(lái)管理activity,以ServiceRecord來(lái)管理service。可是,線程這種東東可沒(méi)有對(duì)應(yīng)的Record節(jié)點(diǎn)喔。一些初學(xué)者常常會(huì)在activity里啟動(dòng)一個(gè)線程,從事某種耗時(shí)費(fèi)力的工作,可是一旦activity被遮擋住,天知道它會(huì)在什么時(shí)候被系統(tǒng)砍掉,進(jìn)而導(dǎo)致連應(yīng)用進(jìn)程也退出。從AMS的角度來(lái)看,它壓根就不知道用戶進(jìn)程里還搞了個(gè)工作線程在干活兒,所以當(dāng)它要干掉用戶進(jìn)程時(shí),是不會(huì)考慮用戶進(jìn)程里還有沒(méi)有工作沒(méi)干完。

但如果是在service里啟動(dòng)了工作線程,那么AMS一般是不會(huì)隨便砍掉service所在的進(jìn)程的,所以耗時(shí)的工作也就可以順利進(jìn)行了。

可是,我們也常常遇到那種“一次性處理”的工作,難道就不能臨時(shí)創(chuàng)建個(gè)線程來(lái)干活嗎?關(guān)于這一點(diǎn),請(qǐng)大家留意,在Android平臺(tái)上應(yīng)對(duì)這種情況的較好做法是創(chuàng)建一個(gè)IntentService派生類,而后覆蓋其onHandleIntent()成員函數(shù)。IntentService內(nèi)部會(huì)自動(dòng)為你啟動(dòng)一個(gè)工作線程,并在工作線程里回調(diào)onHandleIntent()。當(dāng)onHandleIntent()返回后,IntentService還會(huì)自動(dòng)執(zhí)行stopSelf()關(guān)閉自己。瞧瞧,多么自動(dòng)化。

關(guān)于service,有兩個(gè)動(dòng)作是誰(shuí)都繞不開(kāi)的,那就是startService()和bindService()。我們想知道,它們的內(nèi)部機(jī)制到底是怎樣的?雖然網(wǎng)上已經(jīng)有不少文章講述過(guò)這兩個(gè)動(dòng)作,但是不同人理解技術(shù)的視角往往是不一樣的,本文我將以自己的視角來(lái)闡述它們。

?

2.Service機(jī)制


我們先來(lái)看一下Service類的代碼截選:
【frameworks/base/core/java/android/app/Service.java】

public abstract class Service extends ContextWrapper implements ComponentCallbacks2 {............private ActivityThread mThread = null;private String mClassName = null;private IBinder mToken = null;private Application mApplication = null;private IActivityManager mActivityManager = null;private boolean mStartCompatibility = false; }

Service是個(gè)抽象類,它間接繼承于Context,其繼承關(guān)系如下圖所示:

看了這張圖,請(qǐng)大家務(wù)必理解,Service只是個(gè)“上下文”(Context)對(duì)象而已,它和進(jìn)程、線程是沒(méi)什么關(guān)系的。

在AMS中,負(fù)責(zé)管理service的ServiceRecord節(jié)點(diǎn)本身就是個(gè)binder實(shí)體。當(dāng)AMS向應(yīng)用進(jìn)程發(fā)出語(yǔ)義,要求其創(chuàng)建service對(duì)象時(shí),會(huì)把ServiceRecord通過(guò)binder機(jī)制“傳遞”給應(yīng)用進(jìn)程。這樣,應(yīng)用進(jìn)程的ActivityThread在處理AMS發(fā)來(lái)的語(yǔ)義時(shí),就可以得到一個(gè)合法的binder代理,這個(gè)binder代理最終會(huì)被記錄在Service對(duì)象中,如此一來(lái),Service實(shí)體就和系統(tǒng)里的ServiceRecord關(guān)聯(lián)起來(lái)了。我們畫個(gè)圖來(lái)說(shuō)明,假如一個(gè)應(yīng)用進(jìn)程里啟動(dòng)了兩個(gè)不同的Service,那么當(dāng)service創(chuàng)建成功之后,AMS和用戶進(jìn)程之間就會(huì)形成如下關(guān)系示意圖:

當(dāng)然,如果用戶進(jìn)程和service再多一點(diǎn)兒也完全沒(méi)問(wèn)題,此時(shí)會(huì)形成下圖:

我們對(duì)圖中的ApplicationThread并不陌生,它記錄在ActivityThread中mAppThread域中。每當(dāng)系統(tǒng)新fork一個(gè)用戶進(jìn)程后,就會(huì)自動(dòng)執(zhí)行ActivityThread的attach()動(dòng)作,里面會(huì)調(diào)用:

final IActivityManager mgr = ActivityManagerNative.getDefault(); . . . . . .mgr.attachApplication(mAppThread); . . . . . .

將ApplicationThread對(duì)象遠(yuǎn)程“傳遞”給AMS,從而讓AMS得到一個(gè)合法的代理端。而當(dāng)系統(tǒng)要求用戶進(jìn)程創(chuàng)建service時(shí),就會(huì)通過(guò)這個(gè)合法的代理端向用戶進(jìn)程傳遞明確的語(yǔ)義。現(xiàn)在我們就從這里開(kāi)始講解細(xì)節(jié)吧。

3.先說(shuō)startService()

我們先來(lái)看啟動(dòng)service的流程。要啟動(dòng)一個(gè)service,我們一般是調(diào)用startService()。說(shuō)穿了只是向AMS發(fā)起一個(gè)請(qǐng)求,導(dǎo)致AMS執(zhí)行如下的startService()動(dòng)作:
【frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java】

public ComponentName startService(IApplicationThread caller, Intent service, ? ? ? ? String resolvedType, int userId) {. . . . . .ComponentName res = mServices.startServiceLocked(caller, service,resolvedType, callingPid, callingUid, userId);. . . . . .return res;} }

其中的mServices域是ActiveServices類型的,其startServiceLocked()函數(shù)的代碼截選如下:
【frameworks/base/services/core/java/com/android/server/am/ActiveServices.java】

ComponentName startServiceLocked(IApplicationThread caller, ? ? ? ? Intent service, String resolvedType, ? ? ? ? int callingPid, int callingUid, int userId) { . . . . . .// 必須先通過(guò)retrieveServiceLocked()找到(或創(chuàng)建)一個(gè)ServiceRecord節(jié)點(diǎn)ServiceLookupResult res = retrieveServiceLocked(service, resolvedType,callingPid, callingUid, userId, true, callerFg);. . . . . .ServiceRecord r = res.record;. . . . . .r.lastActivity = SystemClock.uptimeMillis();r.startRequested = true;r.delayedStop = false;r.pendingStarts.add(new ServiceRecord.StartItem(r, false, r.makeNextStartId(),service, neededGrants));final ServiceMap smap = getServiceMap(r.userId);. . . . . .. . . . . .return startServiceInnerLocked(smap, service, r, callerFg, addToStarting); }

看到了嗎?必須先通過(guò)retrieveServiceLocked()找到(或創(chuàng)建)一個(gè)ServiceRecord節(jié)點(diǎn),而后才能執(zhí)行后續(xù)的啟動(dòng)service的動(dòng)作。請(qǐng)大家注意,在Android frameworks里有不少這樣的動(dòng)作,基本上都是先創(chuàng)建xxxRecord節(jié)點(diǎn),而后再向目標(biāo)用戶進(jìn)程傳遞語(yǔ)義,創(chuàng)建具體的對(duì)象。

retrieveServiceLocked()的代碼截選如下:

private ServiceLookupResult retrieveServiceLocked(Intent service, ? ? ? ? String resolvedType, int callingPid, int callingUid, int userId, ? ? ? ? boolean createIfNeeded, boolean callingFromFg) {ServiceRecord r = null;. . . . . .ServiceMap smap = getServiceMap(userId);final ComponentName comp = service.getComponent();if (comp != null) {r = smap.mServicesByName.get(comp);}if (r == null) {Intent.FilterComparison filter = new Intent.FilterComparison(service);r = smap.mServicesByIntent.get(filter);}if (r == null) {. . . . . .// 從PKMS處查到ServiceInfo. . . . . .ComponentName name = new ComponentName(sInfo.applicationInfo.packageName, sInfo.name);. . . . . .r = smap.mServicesByName.get(name);if (r == null && createIfNeeded) {. . . . . .r = new ServiceRecord(mAm, ss, name, filter, sInfo, callingFromFg, res);. . . . . .smap.mServicesByName.put(name, r);smap.mServicesByIntent.put(filter, r);. . . . . .}. . . . . .}if (r != null) {. . . . . .return new ServiceLookupResult(r, null);}return null; }

總之就是希望在AMS內(nèi)部的相關(guān)表格里找到對(duì)應(yīng)的ServiceRecord節(jié)點(diǎn),如果找不到,就創(chuàng)建一個(gè)新節(jié)點(diǎn),并插入到相應(yīng)的表格中。

我手頭參考的是Android5.1的代碼,可以說(shuō)這張表格大體上就是ServiceMap里的mServicesByName啦。當(dāng)然,ServiceRecord節(jié)點(diǎn)一般還會(huì)同時(shí)記錄到其他表格里,比如mServicesByIntent表格,但現(xiàn)在我們不妨先只考慮mServicesByName,一切以便于理解為上。

事實(shí)上,在早期的Android代碼(比如Android 2.3版的代碼)中,是沒(méi)有那個(gè)ServiceMap的,那時(shí)的mServicesByName表格直接位于ActivityManagerService里,而且對(duì)應(yīng)的域名叫作mServices。后來(lái)隨著Android的發(fā)展,需要支持多用戶以及其他一些概念,于是就搞出了個(gè)ServiceMap,并把原來(lái)的這張ServiceRecord表格搬到ServiceMap里了。我們可以畫一張示意圖,來(lái)說(shuō)明Android代碼的變遷:

(Android 2.3版示意圖)


(Android 5.1版示意圖)

但是,不管ServiceRecord表格被放到哪里,其本質(zhì)都是一致的。而AMS必須保證在實(shí)際啟動(dòng)一個(gè)Service之前查到或創(chuàng)建對(duì)應(yīng)的ServiceRecord節(jié)點(diǎn)。

在ServiceRecord類中有不少成員變量,其中有一個(gè)app域,專門用來(lái)記錄Service對(duì)應(yīng)的用戶進(jìn)程的ProcessRecord。當(dāng)然,一開(kāi)始這個(gè)app域是為null的,也就是說(shuō)ServiceRecord節(jié)點(diǎn)還沒(méi)有和用戶進(jìn)程關(guān)聯(lián)起來(lái),待Service真正啟動(dòng)之后,ServiceRecord的app域就有實(shí)際的值了。

現(xiàn)在我們繼續(xù)看startServiceLocked()函數(shù),它在找到ServiceRecord節(jié)點(diǎn)之后,開(kāi)始調(diào)用startServiceInnerLocked()。我們可以繪制一下相關(guān)的調(diào)用關(guān)系:

請(qǐng)注意上圖中bringUpServiceLocked()里的內(nèi)容。此時(shí)大體上分三種情況:
1)如果ServiceRecord已經(jīng)和Service寄身的用戶進(jìn)程關(guān)聯(lián)起來(lái)了,此時(shí)ServiceRecord的app域以及app.thread域都是有值的,那么只調(diào)用 sendServiceArgsLocked()即可。這一步會(huì)讓Service間接走到大家熟悉的onStartCommand()。
2)如果尚未啟動(dòng)Service寄身的用戶進(jìn)程,那么需要調(diào)用mAm.startProcessLocked()啟動(dòng)用戶進(jìn)程。
3)如果Service寄身的用戶進(jìn)程已經(jīng)啟動(dòng),但尚未和ServiceRecord關(guān)聯(lián)起來(lái),那么調(diào)用realStartServiceLocked(r, app, execInFg);這種情況下,會(huì)讓Service先走到onCreate(),而后再走到onStartCommand()。

我們重點(diǎn)看第三種情況,realStartServiceLocked()的調(diào)用示意圖如下:

看到了吧,無(wú)非是利用scheduleXXX()這樣的函數(shù),來(lái)通知用戶進(jìn)程去做什么事。以后大家看到這種以schedule打頭的函數(shù),可以直接打開(kāi)ActivityThread.java文件去查找其對(duì)應(yīng)的實(shí)現(xiàn)函數(shù)。比如scheduleCreateService()的代碼如下:
【frameworks/base/core/java/android/app/ActivityThread.java】

public final void scheduleCreateService(IBinder token, ? ? ? ? ServiceInfo info, CompatibilityInfo compatInfo, int processState) {updateProcessState(processState, false);CreateServiceData s = new CreateServiceData();s.token = token;s.info = info;s.compatInfo = compatInfo;sendMessage(H.CREATE_SERVICE, s); }

它發(fā)出的CREATE_SERVICE消息,會(huì)由ActivityThread的內(nèi)嵌類H處理,H繼承于Handler,而且是在UI主線程里處理消息的。可以看到,處理CREATE_SERVICE消息的函數(shù)是handleCreateService():

case CREATE_SERVICE:Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "serviceCreate");handleCreateService((CreateServiceData)msg.obj);Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);break;

另外,請(qǐng)大家注意realStartServiceLocked()傳給scheduleCreateService()函數(shù)的第一個(gè)參數(shù)就是ServiceRecord類型的r,而ServiceRecord本身是個(gè)Binder實(shí)體噢。待“傳到”應(yīng)用進(jìn)程時(shí),這個(gè)Binder實(shí)體對(duì)應(yīng)的Binder代理被稱作token,記在了CreateServiceData對(duì)象的token域中。現(xiàn)在CreateServiceData對(duì)象又經(jīng)由msg.obj傳遞到消息處理函數(shù)里,并進(jìn)一步作為參數(shù)傳遞給handleCreateService()函數(shù)。

handleCreateService()的代碼如下:

private void handleCreateService(CreateServiceData data) {. . . . . .LoadedApk packageInfo = getPackageInfoNoCheck(data.info.applicationInfo, data.compatInfo);Service service = null;. . . . . .java.lang.ClassLoader cl = packageInfo.getClassLoader();service = (Service) cl.loadClass(data.info.name).newInstance();. . . . . .ContextImpl context = ContextImpl.createAppContext(this, packageInfo);context.setOuterContext(service);Application app = packageInfo.makeApplication(false, mInstrumentation);// 注意,ServiceRecord實(shí)體對(duì)應(yīng)的代理端,就是此處的data.token。service.attach(context, this, data.info.name, data.token, app,ActivityManagerNative.getDefault());service.onCreate();mServices.put(data.token, service);. . . . . . }

簡(jiǎn)單地說(shuō)就是,先利用反射機(jī)制創(chuàng)建出Service對(duì)象:

service = (Service) cl.loadClass(data.info.name).newInstance();

然后再調(diào)用該對(duì)象的onCreate()成員函數(shù):

service.onCreate();

而因?yàn)閔andleCreateService()函數(shù)本身是在用戶進(jìn)程的UI主線程里執(zhí)行的,所以service的onCreate()函數(shù)也就是在UI主線程里執(zhí)行的。常常會(huì)有人告誡新手,不要在onCreate()、onStart()里執(zhí)行耗時(shí)的操作,現(xiàn)在大家知道是為什么了吧,因?yàn)樵赨I主線程里執(zhí)行耗時(shí)的操作不但會(huì)引起界面卡頓,嚴(yán)重的還會(huì)導(dǎo)致ANR報(bào)錯(cuò)。

另外,在執(zhí)行到上面的service.attach()時(shí),那個(gè)和ServiceRecord對(duì)應(yīng)的代理端token也傳進(jìn)來(lái)了:

public final void attach( ? ? ? ? Context context, ? ? ? ? ActivityThread thread, String className, IBinder token, ? ? ? ? Application application, Object activityManager) {attachBaseContext(context);mThread = thread; ? ? ? ? ??mClassName = className;mToken = token; ? ? // 注意這個(gè)token噢,它的對(duì)端就是AMS里的ServiceRecord!mApplication = application;mActivityManager = (IActivityManager)activityManager;mStartCompatibility = getApplicationInfo().targetSdkVersion< Build.VERSION_CODES.ECLAIR; }

可以看到,token記錄到ServiceRecord的mToken域了。

最后,新創(chuàng)建出的Service對(duì)象還會(huì)記錄進(jìn)ActivityThread的mServices表格去,于是我們可以在前文示意圖的基礎(chǔ)上,再畫一張新圖:

這就是startService()啟動(dòng)服務(wù)的大體過(guò)程。上圖并沒(méi)有繪制“調(diào)用startService()的用戶進(jìn)程”,因?yàn)楫?dāng)Service啟動(dòng)后,它基本上就和發(fā)起方?jīng)]什么關(guān)系了。

?

4.再說(shuō)bindService()

接下來(lái)我們來(lái)說(shuō)說(shuō)bindService(),它可比startService()要麻煩一些。當(dāng)一個(gè)用戶進(jìn)程bindService()時(shí),它需要先準(zhǔn)備好一個(gè)實(shí)現(xiàn)了ServiceConnection接口的對(duì)象。ServiceConnection的定義如下:

public interface ServiceConnection {public void onServiceConnected(ComponentName name, IBinder service);public void onServiceDisconnected(ComponentName name); }

在Android平臺(tái)上,每當(dāng)用戶調(diào)用bindService(),Android都將之視作是要建立一個(gè)新的“邏輯連接”。而當(dāng)連接建立起來(lái)時(shí),系統(tǒng)會(huì)回調(diào)ServiceConnection接口的onServiceConnected()。另一方面,那個(gè)onServiceDisconnected()函數(shù)卻不是在unbindService()時(shí)發(fā)生的。一般來(lái)說(shuō),當(dāng)目標(biāo)service所在的進(jìn)程意外掛掉或者被殺掉時(shí),系統(tǒng)才會(huì)回調(diào)onServiceDisconnected(),而且,此時(shí)并不會(huì)銷毀之前的邏輯連接,也就是說(shuō),那個(gè)“邏輯連接”仍然處于激活狀態(tài),一旦service后續(xù)再次運(yùn)行,系統(tǒng)會(huì)再次回調(diào)onServiceConnected()。

在Android平臺(tái)上,要和其他進(jìn)程建立邏輯連接往往都需要利用binder機(jī)制。那么,發(fā)起bindService()的用戶進(jìn)程又是在哪里創(chuàng)建邏輯連接需要的binder實(shí)體呢?我們可以看看bindServiceCommon()函數(shù)的代碼截選:
【frameworks/base/core/java/android/app/ContextImpl.java】

private boolean bindServiceCommon(Intent service, ServiceConnection conn, int flags, ? ? ? ? UserHandle user) {IServiceConnection sd;. . . . . .sd = mPackageInfo.getServiceDispatcher(conn, getOuterContext(),mMainThread.getHandler(), flags); ? // 請(qǐng)注意返回的sd!. . . . . .IBinder token = getActivityToken();. . . . . .?int res = ActivityManagerNative.getDefault().bindService(mMainThread.getApplicationThread(), getActivityToken(),service, service.resolveTypeIfNeeded(getContentResolver()),sd, flags, user.getIdentifier());. . . . . . }

請(qǐng)大家注意mPackageInfo.getServiceDispatcher()那一句,它返回的就是binder實(shí)體。此處的mPackageInfo是用戶進(jìn)程里和apk對(duì)應(yīng)的LoadedApk對(duì)象。getServiceDispatcher()的代碼如下:
【frameworks/base/core/java/android/app/LoadedApk.java】

public final IServiceConnection getServiceDispatcher(ServiceConnection c,Context context, Handler handler, int flags) {synchronized (mServices) {LoadedApk.ServiceDispatcher sd = null;ArrayMap<ServiceConnection, LoadedApk.ServiceDispatcher> map =?mServices.get(context);if (map != null) {sd = map.get(c);}if (sd == null) {sd = new ServiceDispatcher(c, context, handler, flags);if (map == null) {map = new ArrayMap<ServiceConnection, LoadedApk.ServiceDispatcher>();mServices.put(context, map);}map.put(c, sd);} else {sd.validate(context, handler);}return sd.getIServiceConnection(); ?// 注意,返回ServiceDispatcher內(nèi)的binder實(shí)體} }

也就是說(shuō),先嘗試在LoadedApk的mServices表中查詢ServiceDispatcher對(duì)象,如果查不到,就重新創(chuàng)建一個(gè)。ServiceDispatcher對(duì)象會(huì)記錄下從用戶處傳來(lái)的ServiceConnection引用。而且,ServiceDispatcher對(duì)象內(nèi)部還含有一個(gè)binder實(shí)體,現(xiàn)在我們可以通過(guò)調(diào)用sd.getIServiceConnection()一句,返回這個(gè)內(nèi)部的binder實(shí)體。

現(xiàn)在我們畫一張示意圖,來(lái)說(shuō)明發(fā)起bindService()動(dòng)作的用戶進(jìn)程中的樣子:

LoadedApk中的mServices是常見(jiàn)的表中表形式,定義如下:

private final ArrayMap<Context, ArrayMap<ServiceConnection,?LoadedApk.ServiceDispatcher>> mServices

這里比較有趣的是,第一層表的key類型為Context,大家不妨想一想,如果我們的應(yīng)用里有兩個(gè)activity都去綁定同一個(gè)Service會(huì)怎么樣?很明顯,在mServices表里就會(huì)有兩個(gè)不同的子表,也會(huì)創(chuàng)建出兩個(gè)不同的ServiceDispatcher對(duì)象,而且即便我們?cè)谡{(diào)用bindService()時(shí)傳入同一個(gè)ServiceConnection對(duì)象,依舊會(huì)有兩個(gè)ServiceDispatcher對(duì)象。示意圖如下:

說(shuō)完了發(fā)起bindService()動(dòng)作的用戶進(jìn)程一側(cè),接下來(lái)我們?cè)賮?lái)看AMS一側(cè)的代碼。對(duì)應(yīng)的bindService()代碼如下:
【frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java】

public int bindService(IApplicationThread caller, IBinder token, ? ? ? ? Intent service, String resolvedType, ? ? ? ? IServiceConnection connection, int flags, int userId) {enforceNotIsolatedCaller("bindService");// Refuse possible leaked file descriptorsif (service != null && service.hasFileDescriptors() == true) {throw new IllegalArgumentException("File descriptors passed in Intent");}synchronized(this) {return mServices.bindServiceLocked(caller, token, service, resolvedType,connection, flags, userId);} }

主要工作集中在mServices.bindServiceLocked()一句。請(qǐng)注意bindService()的倒數(shù)第三個(gè)參數(shù),它對(duì)應(yīng)的就是上圖中ServiceDispatcher的mIServiceConnection域記錄的binder實(shí)體。至于bindService()的第二個(gè)參數(shù)IBinder token,其實(shí)記錄的是發(fā)起綁定動(dòng)作的Activity的token,當(dāng)然,如果發(fā)起者是其他非Activity型的對(duì)象,那么這個(gè)參數(shù)應(yīng)該是null。

上面的代碼最終走到mServices.bindServiceLocked()一句。我們摘錄一下bindServiceLocked()的代碼:
【frameworks/base/services/core/java/com/android/server/am/ActiveServices.java】

int bindServiceLocked(IApplicationThread caller, IBinder token,Intent service, String resolvedType,IServiceConnection connection, int flags, int userId) {. . . . . .final ProcessRecord callerApp = mAm.getRecordForAppLocked(caller);. . . . . .ActivityRecord activity = null;. . . . . .activity = ActivityRecord.isInStackLocked(token);. . . . . .ServiceLookupResult res = retrieveServiceLocked(service, resolvedType,Binder.getCallingPid(), Binder.getCallingUid(), userId, true, callerFg);. . . . . .ServiceRecord s = res.record;. . . . . .?AppBindRecord b = s.retrieveAppBindingLocked(service, callerApp); ?// 注意這個(gè)b!ConnectionRecord c = new ConnectionRecord(b, activity,connection, flags, clientLabel, clientIntent);IBinder binder = connection.asBinder();ArrayList<ConnectionRecord> clist = s.connections.get(binder);. . . . . .clist.add(c);b.connections.add(c);. . . . . .b.client.connections.add(c);. . . . . .clist = mServiceConnections.get(binder);. . . . . .clist.add(c);if ((flags&Context.BIND_AUTO_CREATE) != 0) {. . . . . .if (bringUpServiceLocked(s, service.getFlags(), callerFg, false) != null) {return 0;}}. . . . . .if (s.app != null && b.intent.received) {. . . . . .c.conn.connected(s.name, b.intent.binder); ?// 注意這個(gè)!. . . . . .if (b.intent.apps.size() == 1 && b.intent.doRebind) {requestServiceBindingLocked(s, b.intent, callerFg, true);}} else if (!b.intent.requested) {requestServiceBindingLocked(s, b.intent, callerFg, false); ?}. . . . . . }

盡管這個(gè)函數(shù)里有不少技術(shù)細(xì)節(jié),而且涉及到多個(gè)映射表,但它的總體意思大概是這樣的。每當(dāng)用戶調(diào)用bindService()時(shí),Android都將之看作是要建立一個(gè)新的“邏輯連接”,而每個(gè)邏輯連接都對(duì)應(yīng)一個(gè)ConnectionRecord節(jié)點(diǎn),所以最終的表現(xiàn)肯定是向ServiceRecord內(nèi)部的某張映射表里添加一個(gè)新的ConnectionRecord節(jié)點(diǎn)。當(dāng)然,在實(shí)際運(yùn)作時(shí),這個(gè)節(jié)點(diǎn)還會(huì)記錄進(jìn)其他幾個(gè)映射表里(比如系統(tǒng)總映射表),但這不影響我們理解問(wèn)題。

那么為什么系統(tǒng)里會(huì)有那么多映射表呢?這大概是為了在復(fù)雜的網(wǎng)狀聯(lián)系中快速便捷地找到相關(guān)的節(jié)點(diǎn)。我們知道,一個(gè)用戶進(jìn)程可以綁定多個(gè)Service,而一個(gè)Service也可以被多個(gè)用戶進(jìn)程綁定,這就是網(wǎng)狀結(jié)構(gòu)。示意圖如下:

前文我們已經(jīng)說(shuō)過(guò),綁定時(shí)使用的ServiceConnection對(duì)象在發(fā)起端其實(shí)對(duì)應(yīng)了一個(gè)ServiceDispatcher對(duì)象,現(xiàn)在,ServiceDispatcher的mIServiceConnection傳遞給bindServiceLocked(),也就是那個(gè)IServiceConnection connection參數(shù)。如果系統(tǒng)要建立“邏輯連接”,那么就需要把IServiceConnection代理端記錄到ConnectionRecord節(jié)點(diǎn)里。

ConnectionRecord c = new ConnectionRecord(b, activity, connection, flags,?clientLabel, clientIntent);

另外,請(qǐng)大家注意bindServiceLocked()里那個(gè)重要的AppBindRecord節(jié)點(diǎn)。

AppBindRecord b = s.retrieveAppBindingLocked(service, callerApp); ?// 注意這個(gè)b!

相傳對(duì)于一個(gè)Service而言,有多少應(yīng)用和它建立了綁定關(guān)系,就會(huì)有多少個(gè)AppBindRecord節(jié)點(diǎn),要不怎么叫App-Bind呢?當(dāng)然,一個(gè)應(yīng)用里可以有多個(gè)地方發(fā)起綁定動(dòng)作,所以AppBindRecord里需要用一個(gè)ArraySet<ConnectionRecord>記錄下每個(gè)綁定動(dòng)作對(duì)應(yīng)的邏輯連接節(jié)點(diǎn)。

有了這些認(rèn)識(shí)后,我們可以畫一張“發(fā)起端用戶進(jìn)程”和“系統(tǒng)進(jìn)程”之間的示意圖:


在ConnectionRecord被記錄進(jìn)合適的表后,要開(kāi)始和目標(biāo)service建立連接了。我們可以看到,bindServiceLocked()會(huì)嘗試呼叫起目標(biāo)service。

? ? ? ? if ((flags&Context.BIND_AUTO_CREATE) != 0) {. . . . . .if (bringUpServiceLocked(s, service.getFlags(), callerFg, false) != null) {return 0;}}

看到這句if語(yǔ)句,大家應(yīng)該知道調(diào)用bindService()時(shí)為什么常常要加上BIND_AUTO_CREATE了吧:

bindService(intent, conn, Context.BIND_AUTO_CREATE);

?

假設(shè)目標(biāo)Service之前已經(jīng)啟動(dòng)過(guò),那么現(xiàn)在的綁定流程會(huì)走到if (s.app != null && b.intent.received)分支里,于是調(diào)用到c.conn.connected()。

? ? ? ? if (s.app != null && b.intent.received) {. . . . . .c.conn.connected(s.name, b.intent.binder); ?// 注意這個(gè)!. . . . . .if (b.intent.apps.size() == 1 && b.intent.doRebind) {requestServiceBindingLocked(s, b.intent, callerFg, true);}} else if (!b.intent.requested) {requestServiceBindingLocked(s, b.intent, callerFg, false); ?}

但是,如果Service之前并未啟動(dòng),而且這次是我們首次綁定service,那么不就到不了c.conn.connected()了嗎?此時(shí)應(yīng)該會(huì)走到else if 分支,調(diào)用到requestServiceBindingLocked(),該函數(shù)主要是向目標(biāo)service發(fā)起綁定的請(qǐng)求,但是現(xiàn)在連service寄身的進(jìn)程可能都還沒(méi)有啟動(dòng),request又有什么意義呢?所以,此處調(diào)用requestServiceBindingLocked()也許不會(huì)有什么重大意義。這并不是說(shuō)requestServiceBindingLocked()不重要,而是說(shuō)它真正起作用的地方也許不在這里。為了說(shuō)明問(wèn)題,我們得看一下剛剛調(diào)用的bringUpServiceLocked()函數(shù):

private final String bringUpServiceLocked(ServiceRecord r, ? ? ? ? int intentFlags, boolean execInFg, boolean whileRestarting) {. . . . . .ProcessRecord app;. . . . . .if (app == null) {if ((app = mAm.startProcessLocked(procName, r.appInfo, true, intentFlags,"service", r.name, false, isolated, false)) == null) {. . . . . .bringDownServiceLocked(r);return msg;}. . . . . .}// 注意此處的mPendingServices!if (!mPendingServices.contains(r)) {mPendingServices.add(r);}. . . . . . }

bringUpServiceLocked()通過(guò)調(diào)用mAm.startProcessLocked()啟動(dòng)目標(biāo)service寄身的進(jìn)程,而后會(huì)把ServiceRecord節(jié)點(diǎn)記入mPendingServices數(shù)組列表中。

待后續(xù)service寄身的進(jìn)程成功啟動(dòng)后,會(huì)輾轉(zhuǎn)調(diào)用到attachApplicationLocked(),該函數(shù)的代碼截選如下:

boolean attachApplicationLocked(ProcessRecord proc, String processName) throws RemoteException {. . . . . .if (mPendingServices.size() > 0) {ServiceRecord sr = null;. . . . . .for (int i=0; i<mPendingServices.size(); i++) {sr = mPendingServices.get(i);. . . . . .mPendingServices.remove(i);i--;proc.addPackage(sr.appInfo.packageName, sr.appInfo.versionCode, mAm.mProcessStats); realStartServiceLocked(sr, proc, sr.createdFromFg);. . . . . .}. . . . . . }

也就是說(shuō),當(dāng)目標(biāo)service寄身的進(jìn)程啟動(dòng)后,會(huì)從mPendingServices數(shù)組列表中把ServiceRecord節(jié)點(diǎn)刪除,并進(jìn)一步調(diào)用realStartServiceLocked():

private final void realStartServiceLocked(ServiceRecord r, ? ? ? ? ProcessRecord app, boolean execInFg) throws RemoteException {. . . . . .r.app = app;. . . . . .app.services.add(r);. . . . . .app.thread.scheduleCreateService(r, r.serviceInfo,mAm.compatibilityInfoForPackageLocked(r.serviceInfo.applicationInfo),app.repProcState);. . . . . .requestServiceBindingsLocked(r, execInFg);. . . . . .sendServiceArgsLocked(r, execInFg, true);. . . . . . }

此處調(diào)用的app.thread.scheduleCreateService()會(huì)間接導(dǎo)致目標(biāo)service走到大家熟悉的onCreate()。而后還會(huì)調(diào)用requestServiceBindingsLocked()。這里大概才是requestServiceBindingLocked()真正起作用的地方。

requestServiceBindingsLocked()的代碼如下:

private final void requestServiceBindingsLocked(ServiceRecord r, boolean execInFg) {for (int i=r.bindings.size()-1; i>=0; i--) {IntentBindRecord ibr = r.bindings.valueAt(i);if (!requestServiceBindingLocked(r, ibr, execInFg, false)) {break;}} } private final boolean requestServiceBindingLocked(ServiceRecord r, ? ? ? ? IntentBindRecord i, boolean execInFg, boolean rebind) {. . . . . .r.app.forceProcessStateUpTo(ActivityManager.PROCESS_STATE_SERVICE);r.app.thread.scheduleBindService(r, i.intent.getIntent(), rebind,r.app.repProcState);if (!rebind) {i.requested = true;}i.hasBound = true;i.doRebind = false;. . . . . . }

終于看到調(diào)用scheduleBindService()了。

到了“Service所屬的進(jìn)程”里,scheduleBindService()執(zhí)行的代碼如下:

public final void scheduleBindService(IBinder token, Intent intent, ? ? ? ? boolean rebind, int processState) {updateProcessState(processState, false);BindServiceData s = new BindServiceData();s.token = token;?? ??? ?// 對(duì)應(yīng)AMS里的ServiceRecords.intent = intent;s.rebind = rebind;......sendMessage(H.BIND_SERVICE, s); }

?

所發(fā)出的BIND_SERVICE消息,會(huì)導(dǎo)致service寄身的進(jìn)程走到handleBindService():
【frameworks/base/core/java/android/app/ActivityThread.java】

private void handleBindService(BindServiceData data) {Service s = mServices.get(data.token);. . . . . .if (!data.rebind) {IBinder binder = s.onBind(data.intent);ActivityManagerNative.getDefault().publishService(data.token, data.intent, binder);} else {s.onRebind(data.intent);ActivityManagerNative.getDefault().serviceDoneExecuting(data.token, SERVICE_DONE_EXECUTING_ANON, 0, 0);}. . . . . . }

回調(diào)了目標(biāo)service的onBind(),而后向AMS發(fā)布自己,即調(diào)用publishService()。

publishService()的第一個(gè)參數(shù)指代AMS里的ServiceRecord節(jié)點(diǎn),而最后一個(gè)參數(shù)是目標(biāo)Service的onBind()函數(shù)返回的服務(wù)對(duì)象。因此publish函數(shù)其實(shí)起的是銜接的作用。

在AMS一側(cè),publish動(dòng)作最終會(huì)走到publishServiceLocked():
【frameworks/base/services/core/java/com/android/server/am/ActiveServices.java】

void publishServiceLocked(ServiceRecord r, Intent intent, IBinder service) {. . . . . .Intent.FilterComparison filter?= new Intent.FilterComparison(intent);IntentBindRecord b = r.bindings.get(filter);if (b != null && !b.received) {b.binder = service; ? // 記錄下目標(biāo)進(jìn)程對(duì)應(yīng)的binder代理b.requested = true;b.received = true;for (int conni=r.connections.size()-1; conni>=0; conni--) {ArrayList<ConnectionRecord> clist = r.connections.valueAt(conni);for (int i=0; i<clist.size(); i++) {ConnectionRecord c = clist.get(i);. . . . . .?c.conn.connected(r.name, service); ?// 通告bindService發(fā)起方. . . . . .}}}. . . . . . }

這里又牽扯到ServiceRecord的connections映射表,在介紹bindServiceLocked()函數(shù)時(shí),我們其實(shí)已經(jīng)看到過(guò)幾句相關(guān)的代碼了,現(xiàn)在再列舉一下:

? ? ? ? IBinder binder = connection.asBinder();ArrayList<ConnectionRecord> clist = s.connections.get(binder);. . . . . .clist.add(c);

也就是說(shuō),我們?cè)诮壎ǚ?wù)時(shí)創(chuàng)建的那個(gè)ConnectionRecord節(jié)點(diǎn),會(huì)同時(shí)將該節(jié)點(diǎn)記錄進(jìn)ServiceRecord的connections映射表,而映射表的key值就是邏輯上指向發(fā)起端的IServiceConnection代理。

為什么要有這個(gè)映射表呢?很簡(jiǎn)單,就是為了快速地找出所有使用相同IServiceConnection.Stub對(duì)象,完成綁定動(dòng)作的ConnectionRecord節(jié)點(diǎn)。請(qǐng)大家設(shè)想,我們完全可以在一個(gè)Activity里,使用同一個(gè)ServiceConnection對(duì)象發(fā)起多次綁定同一個(gè)service的動(dòng)作,發(fā)起綁定時(shí)使用的intent也許會(huì)不同,但最終有可能綁定到同一個(gè)service,此時(shí),上面代碼中s.connections.get(binder)得到的ArrayList就會(huì)含有多個(gè)元素啦。

好,介紹完connections映射表,我們繼續(xù)看publishServiceLocked()里的那句c.conn.connected()。ConnectionRecord節(jié)點(diǎn)的conn成員也是IServiceConnection類型的代理端,所以這一句調(diào)用最終是遠(yuǎn)程調(diào)用到發(fā)起端的ServiceDispatcher里的mIServiceConnection對(duì)象,該對(duì)象是InnerConnection類型的。

InnerConnection的connected()函數(shù)如下:
【frameworks/base/core/java/android/app/LoadedApk.java】

private static class InnerConnection extends IServiceConnection.Stub {final WeakReference<LoadedApk.ServiceDispatcher> mDispatcher;. . . . . .public void connected(ComponentName name, IBinder service) throws RemoteException {LoadedApk.ServiceDispatcher sd = mDispatcher.get();if (sd != null) {sd.connected(name, service);}} }

而ServiceDispatcher的connected()函數(shù)如下:

public void connected(ComponentName name, IBinder service) {if (mActivityThread != null) {mActivityThread.post(new RunConnection(name, service, 0));} else {doConnected(name, service);} } private final class RunConnection implements Runnable {. . . . . .public void run() {if (mCommand == 0) {doConnected(mName, mService);} else if (mCommand == 1) {doDeath(mName, mService);}}. . . . . . }

?

【frameworks/base/core/java/android/app/LoadedApk.java】

public void doConnected(ComponentName name, IBinder service) {. . . . . .info = new ConnectionInfo();info.binder = service;info.deathMonitor = new DeathMonitor(name, service);try {service.linkToDeath(info.deathMonitor, 0);mActiveConnections.put(name, info);} catch (RemoteException e) {. . . . . .}. . . . . .// If there is a new service, it is now connected.if (service != null) {mConnection.onServiceConnected(name, service); ? // 終于看到onServiceConnected了!} }


至此,我們終于看到大家熟悉的onServiceConnected()回調(diào)啦!而傳來(lái)的service參數(shù),就是我們希望綁定的那個(gè)service提供的binder代理。現(xiàn)在我們可以說(shuō)已經(jīng)打通了bindService()動(dòng)作涉及的三方關(guān)系:發(fā)起方、AMS、目標(biāo)Service。我們不妨再畫一張圖看看:

有關(guān)Service的基本機(jī)制和啟動(dòng)流程,我們就先說(shuō)這么多吧。以后我們?cè)傺a(bǔ)充其他方面的內(nèi)容。

原文地址:?https://my.oschina.net/youranhongcha/blog/710046

總結(jié)

以上是生活随笔為你收集整理的Android Service演义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

亚洲成av人片天堂网无码】 | 国产亚洲精品久久久久久 | 国产香蕉尹人视频在线 | 国产色xx群视频射精 | 狠狠色丁香久久婷婷综合五月 | 国产在线精品一区二区三区直播 | 国产美女精品一区二区三区 | 欧美黑人巨大xxxxx | √天堂资源地址中文在线 | 少妇无码一区二区二三区 | 日韩精品久久久肉伦网站 | 六月丁香婷婷色狠狠久久 | 久久精品中文字幕一区 | 亚洲色大成网站www | 在线观看国产午夜福利片 | 18禁止看的免费污网站 | 亚洲国产精华液网站w | 色狠狠av一区二区三区 | 国产精品久久久av久久久 | 99精品视频在线观看免费 | 377p欧洲日本亚洲大胆 | 丰满护士巨好爽好大乳 | 欧美 丝袜 自拍 制服 另类 | 国产精品久久久久影院嫩草 | 久久亚洲中文字幕精品一区 | 中文字幕人妻丝袜二区 | 国产乱子伦视频在线播放 | 欧美成人高清在线播放 | 一本大道伊人av久久综合 | 国产亚洲美女精品久久久2020 | 又大又硬又黄的免费视频 | 国色天香社区在线视频 | 久久久久成人片免费观看蜜芽 | 国产精品久久精品三级 | 人妻少妇精品无码专区二区 | 欧美人妻一区二区三区 | www一区二区www免费 | 天堂亚洲2017在线观看 | 国产av一区二区精品久久凹凸 | 国产熟妇另类久久久久 | 国内综合精品午夜久久资源 | 国产成人无码a区在线观看视频app | 97无码免费人妻超级碰碰夜夜 | 黄网在线观看免费网站 | 免费看男女做好爽好硬视频 | 大肉大捧一进一出视频出来呀 | 久久国语露脸国产精品电影 | 欧美三级a做爰在线观看 | 在线观看国产一区二区三区 | 欧美日韩久久久精品a片 | 强辱丰满人妻hd中文字幕 | 又大又硬又黄的免费视频 | 午夜无码区在线观看 | 亚洲国产一区二区三区在线观看 | 成人无码影片精品久久久 | 亚无码乱人伦一区二区 | 久久久成人毛片无码 | 国模大胆一区二区三区 | 扒开双腿疯狂进出爽爽爽视频 | 娇妻被黑人粗大高潮白浆 | 又湿又紧又大又爽a视频国产 | 日韩少妇内射免费播放 | 国产精品美女久久久 | 东北女人啪啪对白 | 噜噜噜亚洲色成人网站 | 国产国产精品人在线视 | 一本色道久久综合狠狠躁 | 精品无人国产偷自产在线 | 中文字幕无线码免费人妻 | 国产乱子伦视频在线播放 | 亚洲熟悉妇女xxx妇女av | 精品国产青草久久久久福利 | 大色综合色综合网站 | 六月丁香婷婷色狠狠久久 | 亚洲国产精品久久久天堂 | 国产午夜福利100集发布 | 国产一区二区三区日韩精品 | 亚洲爆乳无码专区 | 内射老妇bbwx0c0ck | 中文字幕人妻无码一区二区三区 | 精品国产乱码久久久久乱码 | 国产激情综合五月久久 | 偷窥村妇洗澡毛毛多 | 中文久久乱码一区二区 | 久久精品国产一区二区三区 | 亚洲中文无码av永久不收费 | 欧美成人家庭影院 | 亚洲成在人网站无码天堂 | 免费观看黄网站 | 国产精品高潮呻吟av久久 | 久久久久久久女国产乱让韩 | 中文字幕人妻丝袜二区 | 日韩av激情在线观看 | 欧美老妇与禽交 | 麻豆精品国产精华精华液好用吗 | 欧美人与禽猛交狂配 | 性啪啪chinese东北女人 | 亚洲人成影院在线无码按摩店 | 撕开奶罩揉吮奶头视频 | www国产亚洲精品久久网站 | 亚洲色成人中文字幕网站 | 窝窝午夜理论片影院 | 男女性色大片免费网站 | 在线天堂新版最新版在线8 | 精品国产福利一区二区 | 扒开双腿吃奶呻吟做受视频 | 国产精品无码成人午夜电影 | 成在人线av无码免观看麻豆 | 亚洲国产欧美在线成人 | 天天躁夜夜躁狠狠是什么心态 | 一个人看的视频www在线 | 国产精品久久久久久亚洲毛片 | 国产sm调教视频在线观看 | 国内丰满熟女出轨videos | 沈阳熟女露脸对白视频 | 理论片87福利理论电影 | 成人无码影片精品久久久 | 亚洲日韩乱码中文无码蜜桃臀网站 | 2019午夜福利不卡片在线 | 动漫av一区二区在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 久久99精品久久久久久 | 夜夜躁日日躁狠狠久久av | 国产精品igao视频网 | 国产亚洲欧美在线专区 | 人妻少妇精品无码专区动漫 | 人人妻人人澡人人爽欧美一区九九 | 日韩精品乱码av一区二区 | 少妇无码av无码专区在线观看 | 日韩av无码一区二区三区 | 亚洲国产精品久久久天堂 | 精品无码国产自产拍在线观看蜜 | 欧美国产亚洲日韩在线二区 | 强辱丰满人妻hd中文字幕 | 少妇无码av无码专区在线观看 | 精品国产aⅴ无码一区二区 | 国产亚洲美女精品久久久2020 | 国内精品一区二区三区不卡 | 国产av剧情md精品麻豆 | 国内精品人妻无码久久久影院蜜桃 | 国产 精品 自在自线 | 亚洲成a人片在线观看日本 | 国产成人无码av片在线观看不卡 | 无套内射视频囯产 | 亚洲 a v无 码免 费 成 人 a v | 久久久亚洲欧洲日产国码αv | 精品国产福利一区二区 | 爽爽影院免费观看 | 中文字幕中文有码在线 | 精品一区二区不卡无码av | 国产va免费精品观看 | 久久久久国色av免费观看性色 | 天堂一区人妻无码 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 狂野欧美性猛xxxx乱大交 | 久久精品视频在线看15 | 国产成人无码区免费内射一片色欲 | 亚洲午夜福利在线观看 | 国产精华av午夜在线观看 | 国内精品久久久久久中文字幕 | 中文字幕av无码一区二区三区电影 | 成人一在线视频日韩国产 | 人妻少妇精品久久 | 欧美35页视频在线观看 | 永久黄网站色视频免费直播 | 无码精品人妻一区二区三区av | 亚洲精品一区国产 | 久久久久成人精品免费播放动漫 | 99er热精品视频 | 荫蒂添的好舒服视频囗交 | 久久www免费人成人片 | 99re在线播放 | 日本精品少妇一区二区三区 | 最新国产乱人伦偷精品免费网站 | 特级做a爰片毛片免费69 | 日本又色又爽又黄的a片18禁 | 无套内谢老熟女 | 99久久精品无码一区二区毛片 | 中文字幕无线码 | 美女黄网站人色视频免费国产 | 日韩亚洲欧美中文高清在线 | 夜精品a片一区二区三区无码白浆 | 亚洲中文字幕va福利 | 成 人影片 免费观看 | 色五月五月丁香亚洲综合网 | 超碰97人人射妻 | 露脸叫床粗话东北少妇 | 色情久久久av熟女人妻网站 | 成人综合网亚洲伊人 | 永久免费精品精品永久-夜色 | 狠狠综合久久久久综合网 | 日欧一片内射va在线影院 | 国产97人人超碰caoprom | 人人妻人人澡人人爽欧美精品 | 永久免费观看国产裸体美女 | 狠狠亚洲超碰狼人久久 | 荫蒂添的好舒服视频囗交 | 欧美日韩一区二区免费视频 | 强伦人妻一区二区三区视频18 | 欧美丰满少妇xxxx性 | 亚洲国产高清在线观看视频 | 国产特级毛片aaaaaa高潮流水 | 18精品久久久无码午夜福利 | 中文字幕无码免费久久99 | √8天堂资源地址中文在线 | 欧美老人巨大xxxx做受 | 人妻插b视频一区二区三区 | 国产精品亚洲综合色区韩国 | 无码人妻久久一区二区三区不卡 | 久久www免费人成人片 | 国产乱人伦偷精品视频 | 伊人久久大香线蕉亚洲 | 国产精品爱久久久久久久 | 中文无码成人免费视频在线观看 | 久久久久se色偷偷亚洲精品av | 亚洲成a人片在线观看日本 | 国产又爽又猛又粗的视频a片 | 国产熟妇另类久久久久 | 亚洲精品国产品国语在线观看 | 人妻少妇被猛烈进入中文字幕 | 亚洲欧洲无卡二区视頻 | 中文字幕无码av波多野吉衣 | 熟女少妇人妻中文字幕 | 人妻夜夜爽天天爽三区 | 大肉大捧一进一出好爽视频 | 国产黄在线观看免费观看不卡 | 欧美熟妇另类久久久久久不卡 | 精品久久久久久人妻无码中文字幕 | 正在播放老肥熟妇露脸 | 男人的天堂av网站 | 久青草影院在线观看国产 | 国产人妻久久精品二区三区老狼 | 亚洲人成网站色7799 | 久久伊人色av天堂九九小黄鸭 | 丰满人妻翻云覆雨呻吟视频 | 97久久超碰中文字幕 | 少妇久久久久久人妻无码 | 国产精品爱久久久久久久 | 露脸叫床粗话东北少妇 | 老司机亚洲精品影院无码 | 亚洲精品国偷拍自产在线麻豆 | a在线观看免费网站大全 | 精品偷自拍另类在线观看 | 夜先锋av资源网站 | 日韩亚洲欧美精品综合 | 狠狠色噜噜狠狠狠7777奇米 | 67194成是人免费无码 | 日本免费一区二区三区最新 | 少妇性l交大片欧洲热妇乱xxx | 青青草原综合久久大伊人精品 | 久久久久久九九精品久 | 好男人www社区 | 乌克兰少妇xxxx做受 | 久青草影院在线观看国产 | 色情久久久av熟女人妻网站 | 国产精品久久久av久久久 | 亚洲精品一区二区三区四区五区 | 偷窥日本少妇撒尿chinese | 亚洲精品美女久久久久久久 | 精品国产av色一区二区深夜久久 | 国产超级va在线观看视频 | 真人与拘做受免费视频 | 亚洲精品一区二区三区在线 | 日韩精品无码一本二本三本色 | 性色欲情网站iwww九文堂 | 亚洲 高清 成人 动漫 | 狠狠色噜噜狠狠狠7777奇米 | a国产一区二区免费入口 | 国产激情综合五月久久 | 亚洲精品综合一区二区三区在线 | 日韩 欧美 动漫 国产 制服 | 女人被爽到呻吟gif动态图视看 | 日本欧美一区二区三区乱码 | 久久久国产精品无码免费专区 | 天堂一区人妻无码 | 天天做天天爱天天爽综合网 | 一区二区三区高清视频一 | 欧美老妇交乱视频在线观看 | 婷婷综合久久中文字幕蜜桃三电影 | 熟妇女人妻丰满少妇中文字幕 | 日韩精品一区二区av在线 | 国产无套粉嫩白浆在线 | 精品无人国产偷自产在线 | 精品亚洲成av人在线观看 | 18黄暴禁片在线观看 | 丰满少妇熟乱xxxxx视频 | 国产无遮挡又黄又爽免费视频 | 人人妻人人澡人人爽精品欧美 | 亚洲成熟女人毛毛耸耸多 | 丰满少妇高潮惨叫视频 | 亚洲色www成人永久网址 | 国产人妻精品一区二区三区不卡 | 中国女人内谢69xxxx | 鲁鲁鲁爽爽爽在线视频观看 | 一本精品99久久精品77 | 中文字幕人妻无码一夲道 | 久久精品中文字幕大胸 | 国产成人一区二区三区别 | 久久成人a毛片免费观看网站 | 天堂亚洲免费视频 | 亚洲日韩av一区二区三区中文 | 在教室伦流澡到高潮hnp视频 | 国产一区二区三区影院 | 一本久久伊人热热精品中文字幕 | 国产色xx群视频射精 | 国产成人无码一二三区视频 | 久久天天躁狠狠躁夜夜免费观看 | 免费中文字幕日韩欧美 | 国产午夜亚洲精品不卡下载 | 久久久国产一区二区三区 | 亚洲色在线无码国产精品不卡 | 又粗又大又硬毛片免费看 | 欧美精品在线观看 | 三上悠亚人妻中文字幕在线 | 天堂无码人妻精品一区二区三区 | 国产在线无码精品电影网 | 又大又黄又粗又爽的免费视频 | 久久久久免费看成人影片 | 久久综合激激的五月天 | 亚洲人亚洲人成电影网站色 | 久久99精品久久久久婷婷 | 日韩欧美中文字幕在线三区 | 国产另类ts人妖一区二区 | 夜夜影院未满十八勿进 | a国产一区二区免费入口 | 久久精品国产日本波多野结衣 | 欧美日韩在线亚洲综合国产人 | 国产精品自产拍在线观看 | 亚洲精品一区二区三区在线观看 | 天堂亚洲2017在线观看 | 波多野结衣av一区二区全免费观看 | 国产乱子伦视频在线播放 | 亚洲精品欧美二区三区中文字幕 | 极品嫩模高潮叫床 | 国产特级毛片aaaaaaa高清 | 国产精品成人av在线观看 | 免费国产黄网站在线观看 | 俺去俺来也在线www色官网 | 欧美喷潮久久久xxxxx | 久久国内精品自在自线 | 亚洲成av人片天堂网无码】 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲日韩中文字幕在线播放 | 亚洲色欲久久久综合网东京热 | 国产成人无码专区 | 乱码av麻豆丝袜熟女系列 | 国产欧美精品一区二区三区 | 澳门永久av免费网站 | 国产成人无码av片在线观看不卡 | 亚洲精品综合五月久久小说 | 国产精品亚洲综合色区韩国 | 特黄特色大片免费播放器图片 | 久久精品丝袜高跟鞋 | 成人无码精品一区二区三区 | 风流少妇按摩来高潮 | 内射后入在线观看一区 | 东京无码熟妇人妻av在线网址 | 蜜桃视频插满18在线观看 | 人妻与老人中文字幕 | a国产一区二区免费入口 | 一本色道婷婷久久欧美 | 国产av剧情md精品麻豆 | 国产亚洲人成a在线v网站 | 成年女人永久免费看片 | 国产成人无码午夜视频在线观看 | 国产无套粉嫩白浆在线 | 国产精品久久久久影院嫩草 | 乱码午夜-极国产极内射 | 欧美大屁股xxxxhd黑色 | 玩弄人妻少妇500系列视频 | 久久久久久av无码免费看大片 | 日日鲁鲁鲁夜夜爽爽狠狠 | 日本熟妇人妻xxxxx人hd | 日本丰满护士爆乳xxxx | 国产婷婷色一区二区三区在线 | 狠狠综合久久久久综合网 | 丰满少妇人妻久久久久久 | 久久精品国产99精品亚洲 | 欧洲欧美人成视频在线 | 国产亚洲精品久久久久久久久动漫 | 亚洲 激情 小说 另类 欧美 | 成人性做爰aaa片免费看不忠 | 国产精品无码一区二区三区不卡 | 亲嘴扒胸摸屁股激烈网站 | 人人超人人超碰超国产 | 午夜性刺激在线视频免费 | 欧美猛少妇色xxxxx | 131美女爱做视频 | 日本高清一区免费中文视频 | 国产亚洲欧美日韩亚洲中文色 | 少妇厨房愉情理9仑片视频 | 成人片黄网站色大片免费观看 | 色综合久久88色综合天天 | 亚洲人亚洲人成电影网站色 | 国产精品久久国产三级国 | 午夜丰满少妇性开放视频 | 扒开双腿吃奶呻吟做受视频 | 精品亚洲韩国一区二区三区 | 亚洲精品国产品国语在线观看 | 久久zyz资源站无码中文动漫 | 国产精品无码一区二区桃花视频 | 久久精品女人天堂av免费观看 | 无码吃奶揉捏奶头高潮视频 | 成年美女黄网站色大免费全看 | 欧美日韩一区二区综合 | 亚洲欧美日韩成人高清在线一区 | 国产精品国产自线拍免费软件 | 领导边摸边吃奶边做爽在线观看 | 综合激情五月综合激情五月激情1 | 国产成人综合色在线观看网站 | 国产激情精品一区二区三区 | 一区二区三区高清视频一 | 国产av一区二区精品久久凹凸 | 中文字幕乱码人妻二区三区 | 国内精品人妻无码久久久影院 | 国产又爽又猛又粗的视频a片 | 国产av无码专区亚洲a∨毛片 | 成人亚洲精品久久久久软件 | 亚洲午夜久久久影院 | 国产精品久久久一区二区三区 | 亚洲人成网站色7799 | 亚洲乱码国产乱码精品精 | 亚洲一区二区三区国产精华液 | 日本一区二区三区免费高清 | 色综合天天综合狠狠爱 | 色一情一乱一伦 | 狠狠色欧美亚洲狠狠色www | 国产av无码专区亚洲a∨毛片 | aⅴ亚洲 日韩 色 图网站 播放 | 奇米影视7777久久精品 | 天天摸天天碰天天添 | 日本丰满熟妇videos | 久久精品国产一区二区三区 | 久久国产精品萌白酱免费 | 久久亚洲国产成人精品性色 | 国产尤物精品视频 | 久久午夜无码鲁丝片 | 无码中文字幕色专区 | 中文无码伦av中文字幕 | 丝袜 中出 制服 人妻 美腿 | 秋霞成人午夜鲁丝一区二区三区 | 日日碰狠狠丁香久燥 | 色综合久久88色综合天天 | 骚片av蜜桃精品一区 | 亚洲区小说区激情区图片区 | 正在播放老肥熟妇露脸 | 99riav国产精品视频 | 色情久久久av熟女人妻网站 | 国产精品理论片在线观看 | 99在线 | 亚洲 | 影音先锋中文字幕无码 | 一区二区三区乱码在线 | 欧洲 | 久久99精品久久久久久动态图 | 亚洲欧美中文字幕5发布 | 亚洲va欧美va天堂v国产综合 | 少妇久久久久久人妻无码 | 国产精品无码成人午夜电影 | 久久久久亚洲精品男人的天堂 | 欧洲美熟女乱又伦 | 97久久国产亚洲精品超碰热 | 久久熟妇人妻午夜寂寞影院 | 97se亚洲精品一区 | 日韩视频 中文字幕 视频一区 | 扒开双腿吃奶呻吟做受视频 | 免费无码的av片在线观看 | 国精产品一品二品国精品69xx | 一本色道久久综合亚洲精品不卡 | 麻豆果冻传媒2021精品传媒一区下载 | 久久久久成人片免费观看蜜芽 | 国内少妇偷人精品视频免费 | 黑人大群体交免费视频 | 免费无码一区二区三区蜜桃大 | 亚洲国产精品久久久天堂 | 人人妻人人澡人人爽人人精品浪潮 | 少妇高潮一区二区三区99 | 九月婷婷人人澡人人添人人爽 | 亚洲国产欧美国产综合一区 | 中文字幕亚洲情99在线 | 无码国产乱人伦偷精品视频 | 天下第一社区视频www日本 | 久久久精品人妻久久影视 | 天天做天天爱天天爽综合网 | 亚洲精品一区二区三区大桥未久 | 日本熟妇浓毛 | 亚欧洲精品在线视频免费观看 | 香港三级日本三级妇三级 | 波多野结衣一区二区三区av免费 | 国产精品高潮呻吟av久久4虎 | 色综合久久久久综合一本到桃花网 | 精品国产乱码久久久久乱码 | 亚洲日韩一区二区 | 人妻无码αv中文字幕久久琪琪布 | 好屌草这里只有精品 | 国内老熟妇对白xxxxhd | 老头边吃奶边弄进去呻吟 | 国产色在线 | 国产 | 成人精品视频一区二区 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产亚洲tv在线观看 | 我要看www免费看插插视频 | 亚洲国产成人a精品不卡在线 | 成人影院yy111111在线观看 | 国产做国产爱免费视频 | 伊人久久婷婷五月综合97色 | 国产精品毛片一区二区 | 波多野结衣乳巨码无在线观看 | 久久精品国产精品国产精品污 | 成人性做爰aaa片免费看不忠 | 亚洲欧美综合区丁香五月小说 | 亚洲精品国产a久久久久久 | 国产精品成人av在线观看 | 国产特级毛片aaaaaa高潮流水 | 综合人妻久久一区二区精品 | 波多野结衣乳巨码无在线观看 | 精品无码国产自产拍在线观看蜜 | 成人欧美一区二区三区 | 无码纯肉视频在线观看 | 全黄性性激高免费视频 | 欧美日本日韩 | 中文字幕乱码人妻二区三区 | 国产sm调教视频在线观看 | 国产精品亚洲lv粉色 | 久久久久久av无码免费看大片 | 激情国产av做激情国产爱 | 国产精品第一国产精品 | 亚洲精品久久久久中文第一幕 | 久久人人97超碰a片精品 | 中文字幕中文有码在线 | 久久久久久av无码免费看大片 | 欧美黑人巨大xxxxx | 亚洲中文字幕av在天堂 | 日本xxxx色视频在线观看免费 | 一本久久a久久精品vr综合 | 欧美亚洲日韩国产人成在线播放 | 老熟妇乱子伦牲交视频 | 亚洲日韩av一区二区三区四区 | 国产精品永久免费视频 | 国产精品第一国产精品 | 亚洲狠狠色丁香婷婷综合 | 久久久久久亚洲精品a片成人 | 午夜成人1000部免费视频 | 成人综合网亚洲伊人 | 国产香蕉97碰碰久久人人 | 国产手机在线αⅴ片无码观看 | 影音先锋中文字幕无码 | 国内揄拍国内精品少妇国语 | 欧美日韩在线亚洲综合国产人 | 精品亚洲成av人在线观看 | 亚洲男人av天堂午夜在 | 真人与拘做受免费视频一 | 国产福利视频一区二区 | 国产97色在线 | 免 | 国产精品美女久久久网av | 97夜夜澡人人双人人人喊 | 亚洲区欧美区综合区自拍区 | 久久久久久a亚洲欧洲av冫 | 少妇性荡欲午夜性开放视频剧场 | 波多野42部无码喷潮在线 | 欧美人与善在线com | 亚洲精品国产a久久久久久 | 亚洲七七久久桃花影院 | 亚洲啪av永久无码精品放毛片 | 国产艳妇av在线观看果冻传媒 | 亚洲国产精品一区二区美利坚 | 欧美国产日产一区二区 | 久久久久国色av免费观看性色 | 亚洲中文字幕在线无码一区二区 | 国产又粗又硬又大爽黄老大爷视 | 18精品久久久无码午夜福利 | 激情内射亚州一区二区三区爱妻 | 无人区乱码一区二区三区 | 国产午夜亚洲精品不卡 | 欧美激情综合亚洲一二区 | 亚洲精品一区二区三区婷婷月 | 日韩欧美中文字幕在线三区 | 综合人妻久久一区二区精品 | 少妇被粗大的猛进出69影院 | 免费无码肉片在线观看 | 国产 浪潮av性色四虎 | 国产一精品一av一免费 | 国产一区二区三区四区五区加勒比 | 欧美喷潮久久久xxxxx | 久久成人a毛片免费观看网站 | 大地资源网第二页免费观看 | 波多野42部无码喷潮在线 | 青青久在线视频免费观看 | 露脸叫床粗话东北少妇 | 国产猛烈高潮尖叫视频免费 | 少女韩国电视剧在线观看完整 | 又湿又紧又大又爽a视频国产 | 99久久久国产精品无码免费 | 精品国产青草久久久久福利 | 久久综合激激的五月天 | 日本护士xxxxhd少妇 | 亚洲熟妇色xxxxx亚洲 | 黑人粗大猛烈进出高潮视频 | 无码任你躁久久久久久久 | 久久久精品成人免费观看 | 日韩精品久久久肉伦网站 | 亚洲国产成人av在线观看 | 人妻少妇精品无码专区动漫 | 国产人妻人伦精品1国产丝袜 | 欧美刺激性大交 | 又紧又大又爽精品一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产 精品 自在自线 | 少妇性l交大片欧洲热妇乱xxx | 日韩人妻无码一区二区三区久久99 | 一本大道伊人av久久综合 | 一本加勒比波多野结衣 | 少女韩国电视剧在线观看完整 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲一区二区三区无码久久 | 日本一本二本三区免费 | 欧美兽交xxxx×视频 | 小sao货水好多真紧h无码视频 | 无码人妻黑人中文字幕 | 天堂а√在线地址中文在线 | 国产又粗又硬又大爽黄老大爷视 | 精品国偷自产在线视频 | 人妻互换免费中文字幕 | 欧洲vodafone精品性 | 国产精品久久国产三级国 | 男人和女人高潮免费网站 | 亚洲精品一区二区三区四区五区 | 久久国语露脸国产精品电影 | 久久久国产精品无码免费专区 | 女人和拘做爰正片视频 | 成在人线av无码免观看麻豆 | 久久精品视频在线看15 | 国产精品久久久久久亚洲影视内衣 | 亚洲小说图区综合在线 | 欧美精品在线观看 | 国产一精品一av一免费 | 天堂无码人妻精品一区二区三区 | 国产亚洲精品久久久久久久 | 欧洲精品码一区二区三区免费看 | 国产亚洲美女精品久久久2020 | 亚洲国产综合无码一区 | 无套内谢老熟女 | 国产9 9在线 | 中文 | 乱中年女人伦av三区 | 久久精品成人欧美大片 | 最近中文2019字幕第二页 | 无码任你躁久久久久久久 | 精品久久久无码人妻字幂 | 国产成人一区二区三区别 | 午夜免费福利小电影 | 久激情内射婷内射蜜桃人妖 | 精品久久久久香蕉网 | 久久无码中文字幕免费影院蜜桃 | 女人被爽到呻吟gif动态图视看 | 午夜精品一区二区三区的区别 | 大肉大捧一进一出视频出来呀 | 黑人大群体交免费视频 | 国产性生交xxxxx无码 | 久久亚洲中文字幕无码 | 一本色道婷婷久久欧美 | 色婷婷综合激情综在线播放 | 99er热精品视频 | 成人无码影片精品久久久 | 久久精品国产大片免费观看 | 久久99精品久久久久婷婷 | 水蜜桃av无码 | 久久精品女人天堂av免费观看 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 日韩精品无码一区二区中文字幕 | 麻豆国产人妻欲求不满 | 亚洲色成人中文字幕网站 | 老太婆性杂交欧美肥老太 | 亚洲精品一区二区三区婷婷月 | 初尝人妻少妇中文字幕 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久精品99久久香蕉国产色戒 | 午夜精品久久久久久久 | 永久免费观看国产裸体美女 | 97人妻精品一区二区三区 | 最新版天堂资源中文官网 | 丝袜足控一区二区三区 | 无套内谢的新婚少妇国语播放 | 中文字幕人成乱码熟女app | 美女张开腿让人桶 | 色偷偷人人澡人人爽人人模 | 色一情一乱一伦一区二区三欧美 | 久久亚洲国产成人精品性色 | 国产艳妇av在线观看果冻传媒 | 九一九色国产 | 一区二区传媒有限公司 | 久久久久免费精品国产 | 88国产精品欧美一区二区三区 | 国产精品久久久久7777 | 亚洲熟妇色xxxxx欧美老妇 | 午夜嘿嘿嘿影院 | 日韩精品成人一区二区三区 | 亚洲精品欧美二区三区中文字幕 | 天天躁日日躁狠狠躁免费麻豆 | 欧美日韩综合一区二区三区 | 综合网日日天干夜夜久久 | 国产欧美熟妇另类久久久 | 天天av天天av天天透 | 国产精品a成v人在线播放 | 18禁黄网站男男禁片免费观看 | 精品久久久久久亚洲精品 | 在线欧美精品一区二区三区 | 精品国精品国产自在久国产87 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久国产精品萌白酱免费 | 色 综合 欧美 亚洲 国产 | 国产精品爱久久久久久久 | 中文字幕av日韩精品一区二区 | 国产性生大片免费观看性 | 97夜夜澡人人双人人人喊 | 沈阳熟女露脸对白视频 | 俄罗斯老熟妇色xxxx | 亚洲爆乳无码专区 | 精品aⅴ一区二区三区 | 男女猛烈xx00免费视频试看 | 又大又黄又粗又爽的免费视频 | 国产人妻精品午夜福利免费 | 内射老妇bbwx0c0ck | 两性色午夜免费视频 | 乌克兰少妇xxxx做受 | 国产精品美女久久久久av爽李琼 | 99视频精品全部免费免费观看 | 少妇人妻大乳在线视频 | 中文字幕av伊人av无码av | 300部国产真实乱 | www国产亚洲精品久久网站 | 欧美日韩视频无码一区二区三 | 99久久久无码国产aaa精品 | 亚洲午夜福利在线观看 | 日本丰满熟妇videos | 少妇无码一区二区二三区 | 人妻少妇精品无码专区二区 | 狠狠色噜噜狠狠狠狠7777米奇 | av在线亚洲欧洲日产一区二区 | 熟女少妇人妻中文字幕 | 扒开双腿疯狂进出爽爽爽视频 | 天堂在线观看www | 婷婷五月综合激情中文字幕 | 青青青手机频在线观看 | 亚洲а∨天堂久久精品2021 | 黑人玩弄人妻中文在线 | 亚洲 另类 在线 欧美 制服 | 国产一区二区三区四区五区加勒比 | 国产人妻人伦精品1国产丝袜 | 九九在线中文字幕无码 | 人人妻人人澡人人爽欧美一区 | 无码av中文字幕免费放 | 全球成人中文在线 | 久久精品女人的天堂av | 国产成人人人97超碰超爽8 | 黑森林福利视频导航 | 国产亚洲精品久久久久久久久动漫 | 精品厕所偷拍各类美女tp嘘嘘 | 久久人人97超碰a片精品 | 国产亚洲欧美日韩亚洲中文色 | 国产sm调教视频在线观看 | 国产内射爽爽大片视频社区在线 | 久久国产精品精品国产色婷婷 | av人摸人人人澡人人超碰下载 | 精品夜夜澡人妻无码av蜜桃 | 小泽玛莉亚一区二区视频在线 | 欧美日韩视频无码一区二区三 | 国产精品毛片一区二区 | 久久99精品久久久久婷婷 | 一本久久a久久精品vr综合 | 性做久久久久久久免费看 | 国产av无码专区亚洲a∨毛片 | 欧美日本免费一区二区三区 | 色欲久久久天天天综合网精品 | 福利一区二区三区视频在线观看 | 无码人妻av免费一区二区三区 | 国产97在线 | 亚洲 | 给我免费的视频在线观看 | 高清国产亚洲精品自在久久 | 又紧又大又爽精品一区二区 | 亚洲精品中文字幕乱码 | 日日碰狠狠丁香久燥 | 中文字幕乱码人妻二区三区 | 日韩av无码一区二区三区 | 无遮无挡爽爽免费视频 | 377p欧洲日本亚洲大胆 | 日本xxxx色视频在线观看免费 | 久久久久成人精品免费播放动漫 | 亚洲一区二区三区香蕉 | 自拍偷自拍亚洲精品10p | 色一情一乱一伦一视频免费看 | 免费国产成人高清在线观看网站 | 成在人线av无码免费 | 中文字幕亚洲情99在线 | 少妇无码av无码专区在线观看 | 曰韩少妇内射免费播放 | av无码久久久久不卡免费网站 | 免费看少妇作爱视频 | 国产一区二区三区影院 | 任你躁国产自任一区二区三区 | 欧洲美熟女乱又伦 | 久久精品视频在线看15 | 中文字幕无码热在线视频 | 国产区女主播在线观看 | 在线欧美精品一区二区三区 | 狠狠亚洲超碰狼人久久 | 夜夜影院未满十八勿进 | 日韩人妻无码中文字幕视频 | 中文字幕乱码中文乱码51精品 | 大地资源中文第3页 | 久久精品人人做人人综合 | 99精品久久毛片a片 | 天海翼激烈高潮到腰振不止 | 国产国产精品人在线视 | 亚洲综合久久一区二区 | 国产亚洲美女精品久久久2020 | 久久久www成人免费毛片 | 日韩视频 中文字幕 视频一区 | 国产高清av在线播放 | 性欧美熟妇videofreesex | 久久天天躁夜夜躁狠狠 | 又粗又大又硬又长又爽 | 日韩精品一区二区av在线 | 免费无码的av片在线观看 | 久久伊人色av天堂九九小黄鸭 | 理论片87福利理论电影 | 国产精品久久久久久无码 | 久9re热视频这里只有精品 | 亚洲の无码国产の无码影院 | 国产偷国产偷精品高清尤物 | 国产成人精品视频ⅴa片软件竹菊 | 日本丰满护士爆乳xxxx | 亚洲国产成人av在线观看 | 一本大道伊人av久久综合 | 国产女主播喷水视频在线观看 | 无码人妻出轨黑人中文字幕 | 亚洲欧美国产精品专区久久 | 色综合久久久无码网中文 | 无码人中文字幕 | 国产农村乱对白刺激视频 | 婷婷综合久久中文字幕蜜桃三电影 | 少妇人妻大乳在线视频 | 国精品人妻无码一区二区三区蜜柚 | 九九在线中文字幕无码 | 精品国产成人一区二区三区 | 狠狠cao日日穞夜夜穞av | 亚拍精品一区二区三区探花 | 久久久久亚洲精品男人的天堂 | 欧美日本日韩 | 四虎永久在线精品免费网址 | 高潮毛片无遮挡高清免费视频 | 久久精品人人做人人综合 | 女人和拘做爰正片视频 | 97资源共享在线视频 | 水蜜桃av无码 | 亚洲成av人片天堂网无码】 | 亚洲国产午夜精品理论片 | 中文字幕乱码人妻二区三区 | 国产av久久久久精东av | 成人欧美一区二区三区 | 一本无码人妻在中文字幕免费 | 国产成人一区二区三区别 | 国产va免费精品观看 | 7777奇米四色成人眼影 | 7777奇米四色成人眼影 | 国产精品va在线观看无码 | 成人性做爰aaa片免费看不忠 | 国产精品高潮呻吟av久久4虎 | 国产精品无码久久av | 99久久久无码国产精品免费 | 亚洲日韩乱码中文无码蜜桃臀网站 | 激情国产av做激情国产爱 | 激情内射亚州一区二区三区爱妻 | 乱人伦中文视频在线观看 | 亚洲精品一区三区三区在线观看 | 国产精品永久免费视频 | 300部国产真实乱 | 成在人线av无码免费 | 久久国产劲爆∧v内射 | 欧美三级不卡在线观看 | 欧美成人午夜精品久久久 | 一区二区三区高清视频一 | 中文字幕人成乱码熟女app | 东京热男人av天堂 | 国产精品福利视频导航 | 日韩精品无码一本二本三本色 | 欧美日韩久久久精品a片 | 久9re热视频这里只有精品 | 精品无码一区二区三区爱欲 | 日日天干夜夜狠狠爱 | 永久免费观看国产裸体美女 | 亚洲精品午夜无码电影网 | 亚洲娇小与黑人巨大交 | 一本大道久久东京热无码av | 亚洲成色www久久网站 | 欧美丰满老熟妇xxxxx性 | 水蜜桃av无码 | 日欧一片内射va在线影院 | 岛国片人妻三上悠亚 | 国产精品va在线观看无码 | 日本乱人伦片中文三区 | 国产无遮挡又黄又爽免费视频 | 国産精品久久久久久久 | 国内老熟妇对白xxxxhd | 荫蒂添的好舒服视频囗交 | 久久午夜夜伦鲁鲁片无码免费 | 久久久久免费精品国产 | 色偷偷人人澡人人爽人人模 | 久久99国产综合精品 | 强辱丰满人妻hd中文字幕 | 亚洲国产午夜精品理论片 | a在线亚洲男人的天堂 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 曰本女人与公拘交酡免费视频 | 人妻少妇精品久久 | 亚洲精品一区二区三区婷婷月 | 99精品无人区乱码1区2区3区 | 在线看片无码永久免费视频 | 午夜精品一区二区三区的区别 | 国产人妻精品午夜福利免费 | 国产免费久久精品国产传媒 | 成年女人永久免费看片 | 人人妻人人澡人人爽欧美精品 | 国产午夜亚洲精品不卡 | 国产精品久久久久久亚洲影视内衣 | 国产精品久久久一区二区三区 | 老太婆性杂交欧美肥老太 | 精品久久久久久人妻无码中文字幕 | 免费看少妇作爱视频 | 国精品人妻无码一区二区三区蜜柚 | 一本大道久久东京热无码av | 国内精品人妻无码久久久影院蜜桃 | 丰满人妻精品国产99aⅴ | 欧美成人家庭影院 | 欧美精品在线观看 | 亚洲精品成a人在线观看 | 女人被男人爽到呻吟的视频 | 免费观看的无遮挡av | 亚洲人成影院在线无码按摩店 | 色妞www精品免费视频 | 亚洲精品久久久久中文第一幕 | 亚洲精品一区二区三区四区五区 | 欧美日本日韩 | 久久精品无码一区二区三区 | 成人欧美一区二区三区 | 久久综合网欧美色妞网 | 5858s亚洲色大成网站www | 婷婷丁香六月激情综合啪 | 久久午夜无码鲁丝片午夜精品 | 精品无码一区二区三区爱欲 | 亚洲日韩一区二区 | 国产熟妇高潮叫床视频播放 | 熟妇女人妻丰满少妇中文字幕 | 三上悠亚人妻中文字幕在线 | 少妇无码一区二区二三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲狠狠婷婷综合久久 | 国产午夜精品一区二区三区嫩草 | 少妇性荡欲午夜性开放视频剧场 | 丁香啪啪综合成人亚洲 | 性史性农村dvd毛片 | 亚洲啪av永久无码精品放毛片 | 精品厕所偷拍各类美女tp嘘嘘 | 国产两女互慰高潮视频在线观看 | 97资源共享在线视频 | 又色又爽又黄的美女裸体网站 | 亚洲精品鲁一鲁一区二区三区 | 天堂а√在线地址中文在线 | 精品国产国产综合精品 | 精品国产福利一区二区 | 国产在线无码精品电影网 | 无人区乱码一区二区三区 | 牛和人交xxxx欧美 | 久久久中文久久久无码 | av无码不卡在线观看免费 | 久久久久人妻一区精品色欧美 | 国产一区二区三区四区五区加勒比 | 亚洲国产精品无码久久久久高潮 | 免费乱码人妻系列无码专区 | 国产色在线 | 国产 | 国产午夜手机精彩视频 | 亚洲欧美国产精品久久 | 中文字幕久久久久人妻 | 无码人妻丰满熟妇区五十路百度 | 国产97在线 | 亚洲 | 久久精品国产亚洲精品 | 超碰97人人射妻 | 人人澡人摸人人添 | 色婷婷综合激情综在线播放 | 亚洲区欧美区综合区自拍区 | 亚欧洲精品在线视频免费观看 | 亚洲va中文字幕无码久久不卡 | 国产精品va在线观看无码 | 精品人妻人人做人人爽夜夜爽 | www国产亚洲精品久久网站 | 宝宝好涨水快流出来免费视频 | 99视频精品全部免费免费观看 | 亚洲精品中文字幕乱码 | 欧美真人作爱免费视频 | a片在线免费观看 | 亚洲精品中文字幕久久久久 | 国产舌乚八伦偷品w中 | 日韩av无码一区二区三区不卡 | 好男人社区资源 | 国产亚洲tv在线观看 | 国产乱子伦视频在线播放 | 丝袜美腿亚洲一区二区 | 麻豆md0077饥渴少妇 | 99麻豆久久久国产精品免费 | 欧洲熟妇精品视频 | 国产成人无码一二三区视频 | 天天躁夜夜躁狠狠是什么心态 | 欧美真人作爱免费视频 | 国产精品久久福利网站 | 亚洲 激情 小说 另类 欧美 | 无码人妻丰满熟妇区毛片18 | 国产av无码专区亚洲awww | 人妻少妇精品无码专区动漫 | 高清国产亚洲精品自在久久 | 无码任你躁久久久久久久 | 日本爽爽爽爽爽爽在线观看免 | 丝袜人妻一区二区三区 | 精品成在人线av无码免费看 | 色欲av亚洲一区无码少妇 | 久久综合给合久久狠狠狠97色 | 小鲜肉自慰网站xnxx | 亚洲中文字幕无码中文字在线 | 亚洲色成人中文字幕网站 | 久青草影院在线观看国产 | 久久综合激激的五月天 | 亚洲成a人片在线观看无码3d | 国产精品久久久久7777 | 亚洲无人区午夜福利码高清完整版 | 青青草原综合久久大伊人精品 | 国产偷自视频区视频 | √8天堂资源地址中文在线 | 国产亚洲精品久久久久久久久动漫 | 亚洲精品中文字幕久久久久 | 性欧美牲交xxxxx视频 | 亚洲呦女专区 | 人妻人人添人妻人人爱 | 丰满岳乱妇在线观看中字无码 | 亚洲欧美精品aaaaaa片 | 精品国产一区av天美传媒 | 亚洲自偷自偷在线制服 | 国产成人亚洲综合无码 | 秋霞特色aa大片 | 久久综合网欧美色妞网 | 欧美日本免费一区二区三区 | 老熟女乱子伦 | 色狠狠av一区二区三区 | 久久视频在线观看精品 | 思思久久99热只有频精品66 | 18无码粉嫩小泬无套在线观看 | 少妇人妻大乳在线视频 | 午夜理论片yy44880影院 | 青草视频在线播放 | 久久久www成人免费毛片 | 国产精品va在线观看无码 | 一二三四社区在线中文视频 | 久9re热视频这里只有精品 | 成人精品天堂一区二区三区 | 大地资源网第二页免费观看 | av在线亚洲欧洲日产一区二区 | 色一情一乱一伦一视频免费看 | a片免费视频在线观看 | 亚洲区欧美区综合区自拍区 | 亚洲精品无码国产 | 在线精品亚洲一区二区 | 欧美丰满熟妇xxxx | 国产精品二区一区二区aⅴ污介绍 | 无码国产乱人伦偷精品视频 | 狠狠色欧美亚洲狠狠色www | 久久99精品国产.久久久久 | 欧美黑人性暴力猛交喷水 | 亚洲中文字幕无码一久久区 | 日本精品久久久久中文字幕 | 日本大香伊一区二区三区 | 精品成在人线av无码免费看 | 人人澡人人妻人人爽人人蜜桃 | 亚洲а∨天堂久久精品2021 | 国产亚洲日韩欧美另类第八页 | 乱人伦人妻中文字幕无码 | 亚洲精品中文字幕 | 亚洲国产精品无码久久久久高潮 | 无码国产激情在线观看 | 偷窥村妇洗澡毛毛多 | 国产精品福利视频导航 | 中文无码伦av中文字幕 | 激情国产av做激情国产爱 | 国内少妇偷人精品视频 | 两性色午夜免费视频 | 波多野结衣av在线观看 | 人妻少妇精品无码专区动漫 | 又湿又紧又大又爽a视频国产 | 成年美女黄网站色大免费视频 | 日本熟妇大屁股人妻 | 无码午夜成人1000部免费视频 | 无码乱肉视频免费大全合集 | 日韩av无码一区二区三区不卡 | 欧美 日韩 亚洲 在线 | 少妇高潮喷潮久久久影院 | 熟妇激情内射com | 奇米影视7777久久精品人人爽 | 熟妇激情内射com | 成人性做爰aaa片免费看 | 国产成人精品优优av | 亚洲综合伊人久久大杳蕉 | 清纯唯美经典一区二区 | 亚洲欧美精品aaaaaa片 | 1000部啪啪未满十八勿入下载 | 中文字幕无码人妻少妇免费 | 少妇邻居内射在线 | 久久综合色之久久综合 | 人人妻人人澡人人爽欧美精品 | 色综合久久久久综合一本到桃花网 | 国产香蕉97碰碰久久人人 | 国产精品二区一区二区aⅴ污介绍 | 亚洲综合无码久久精品综合 | 亚洲中文字幕无码中字 | 久久久中文字幕日本无吗 | 小sao货水好多真紧h无码视频 | 九九在线中文字幕无码 | 久久无码中文字幕免费影院蜜桃 | 久久久久99精品国产片 | 欧美人与禽zoz0性伦交 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 精品国产一区二区三区av 性色 | 国产欧美精品一区二区三区 | 久久久久久国产精品无码下载 | 精品乱码久久久久久久 | 日韩少妇内射免费播放 | 国产无av码在线观看 | 乱人伦人妻中文字幕无码久久网 | 国产亚洲欧美在线专区 | 久久精品99久久香蕉国产色戒 | 欧美性生交xxxxx久久久 | 巨爆乳无码视频在线观看 | 亚洲欧洲日本综合aⅴ在线 | 在线精品亚洲一区二区 | 精品国产青草久久久久福利 | 亚洲成av人在线观看网址 | 欧美熟妇另类久久久久久不卡 | 黑人巨大精品欧美一区二区 | 无码毛片视频一区二区本码 | 久久午夜无码鲁丝片 | 国产精品人人爽人人做我的可爱 | 少妇无套内谢久久久久 | 国产成人无码午夜视频在线观看 | 老熟妇乱子伦牲交视频 | 99久久精品无码一区二区毛片 | 精品国产福利一区二区 | 中文字幕人妻丝袜二区 | 正在播放老肥熟妇露脸 | 国产人成高清在线视频99最全资源 | 亚洲经典千人经典日产 | 任你躁国产自任一区二区三区 | 国产精品久免费的黄网站 | 97久久国产亚洲精品超碰热 | 国产口爆吞精在线视频 | 国产人妻久久精品二区三区老狼 | 色一情一乱一伦一区二区三欧美 | 乱码午夜-极国产极内射 | 久久亚洲a片com人成 | 一本久久伊人热热精品中文字幕 | 亚洲中文字幕在线观看 | 精品欧美一区二区三区久久久 | 欧美zoozzooz性欧美 | 1000部啪啪未满十八勿入下载 | 亚洲国精产品一二二线 | 纯爱无遮挡h肉动漫在线播放 | 亚洲国产精品久久久天堂 | 无码人妻丰满熟妇区毛片18 | 亚洲aⅴ无码成人网站国产app | 人妻少妇精品无码专区动漫 | 无码精品国产va在线观看dvd | 国产人妻人伦精品1国产丝袜 | 久久亚洲日韩精品一区二区三区 | 欧美熟妇另类久久久久久不卡 | 亚洲成熟女人毛毛耸耸多 | 日日干夜夜干 | 高中生自慰www网站 | 国产av无码专区亚洲a∨毛片 | 国产精品久久久久久久影院 | 欧美 日韩 亚洲 在线 | 亚洲日本一区二区三区在线 | 国产精品高潮呻吟av久久4虎 | 未满成年国产在线观看 | 精品乱子伦一区二区三区 | 成人精品天堂一区二区三区 | 久久久久免费看成人影片 | 久久人人爽人人人人片 | 亚洲一区二区三区偷拍女厕 | 精品乱子伦一区二区三区 | 无码帝国www无码专区色综合 | 国産精品久久久久久久 | 亚洲热妇无码av在线播放 | 樱花草在线社区www | 成人免费视频一区二区 | 国产精品无码久久av | 欧美日韩一区二区综合 | 无码毛片视频一区二区本码 | 无码av免费一区二区三区试看 | 精品人妻人人做人人爽夜夜爽 | 国产内射爽爽大片视频社区在线 | 狂野欧美性猛交免费视频 | 丝袜 中出 制服 人妻 美腿 | 波多野结衣av一区二区全免费观看 | 欧美阿v高清资源不卡在线播放 | 久久无码人妻影院 | 国产精品沙发午睡系列 | 亚洲 高清 成人 动漫 | 亚洲色大成网站www | 久久国内精品自在自线 | 日日碰狠狠躁久久躁蜜桃 | 嫩b人妻精品一区二区三区 | 成人欧美一区二区三区黑人免费 | 一本大道伊人av久久综合 | 久久久成人毛片无码 | 久久99精品国产麻豆 | 久久zyz资源站无码中文动漫 | 成人三级无码视频在线观看 | 国产sm调教视频在线观看 | 国产精品久久久久久无码 | 国产人妻人伦精品 | 日韩欧美成人免费观看 | 精品一区二区不卡无码av | 男女超爽视频免费播放 | 老熟女重囗味hdxx69 | 人妻有码中文字幕在线 | av在线亚洲欧洲日产一区二区 | 特级做a爰片毛片免费69 | 亚洲中文字幕无码一久久区 | 成人三级无码视频在线观看 | 又大又硬又黄的免费视频 | 国产欧美精品一区二区三区 | 久久这里只有精品视频9 | 伊人久久大香线蕉av一区二区 | 中文字幕久久久久人妻 | 亚洲呦女专区 | 少妇性俱乐部纵欲狂欢电影 | 亚洲a无码综合a国产av中文 | 性开放的女人aaa片 | 亚洲色欲色欲天天天www | av无码久久久久不卡免费网站 | 国内揄拍国内精品少妇国语 | 久久国产精品萌白酱免费 | 色综合久久中文娱乐网 | 无套内射视频囯产 | 国产99久久精品一区二区 | 小sao货水好多真紧h无码视频 | 无码帝国www无码专区色综合 | 亚洲a无码综合a国产av中文 | 六十路熟妇乱子伦 | 亚洲s码欧洲m码国产av | 久久熟妇人妻午夜寂寞影院 | 无码人妻精品一区二区三区不卡 | 亚洲成av人片在线观看无码不卡 | 免费看少妇作爱视频 | 丝袜 中出 制服 人妻 美腿 | 国产精品国产自线拍免费软件 | 最新版天堂资源中文官网 | 久久zyz资源站无码中文动漫 | 丰满岳乱妇在线观看中字无码 | 久久www免费人成人片 | 亚洲日本va中文字幕 | 无码一区二区三区在线 | 天天爽夜夜爽夜夜爽 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲欧美精品伊人久久 | 天天拍夜夜添久久精品 | 无码人妻精品一区二区三区下载 | 欧美日韩综合一区二区三区 | 麻豆人妻少妇精品无码专区 | 亚洲欧美综合区丁香五月小说 | 国产小呦泬泬99精品 | 亚洲精品成人福利网站 | 奇米影视7777久久精品人人爽 | 久久精品人人做人人综合 | 无码免费一区二区三区 | 少妇性l交大片欧洲热妇乱xxx | 成 人 网 站国产免费观看 | 色综合久久88色综合天天 | 人人澡人摸人人添 | 久久精品国产99精品亚洲 | 国产亚洲精品久久久久久大师 | 特黄特色大片免费播放器图片 | 国产精品igao视频网 | 人妻插b视频一区二区三区 | 人人妻人人澡人人爽欧美精品 | 亚洲人成影院在线无码按摩店 | 欧洲精品码一区二区三区免费看 | а√天堂www在线天堂小说 | 国产精品国产三级国产专播 | 亚洲熟妇色xxxxx欧美老妇 | 99麻豆久久久国产精品免费 | 精品国产av色一区二区深夜久久 | 精品偷自拍另类在线观看 | 国产特级毛片aaaaaa高潮流水 | 沈阳熟女露脸对白视频 | 无码av最新清无码专区吞精 | 丁香花在线影院观看在线播放 | 无码人妻精品一区二区三区不卡 | 性生交大片免费看女人按摩摩 | 国内精品人妻无码久久久影院蜜桃 | 成人片黄网站色大片免费观看 | 中文字幕人妻丝袜二区 | 欧洲精品码一区二区三区免费看 | 偷窥日本少妇撒尿chinese | 国产精品高潮呻吟av久久4虎 | www一区二区www免费 | 在线 国产 欧美 亚洲 天堂 | 日韩无码专区 | 色婷婷欧美在线播放内射 | 久久久久久av无码免费看大片 | 精品夜夜澡人妻无码av蜜桃 | 亚洲热妇无码av在线播放 | 欧美老熟妇乱xxxxx | 又紧又大又爽精品一区二区 | 人妻少妇被猛烈进入中文字幕 | 97精品国产97久久久久久免费 | 国产成人精品一区二区在线小狼 | 日韩在线不卡免费视频一区 | 蜜桃视频插满18在线观看 | 国产乱人伦av在线无码 | www国产精品内射老师 | 少妇被黑人到高潮喷出白浆 | 精品欧洲av无码一区二区三区 | 香港三级日本三级妇三级 | 久久精品国产一区二区三区肥胖 | 国产av无码专区亚洲a∨毛片 | 色欲综合久久中文字幕网 | 免费人成在线视频无码 | 日本一区二区三区免费高清 | 日韩精品久久久肉伦网站 | 免费人成网站视频在线观看 | 久久久久免费看成人影片 | 亚洲精品久久久久久久久久久 | 老司机亚洲精品影院 | 午夜福利试看120秒体验区 | 国产欧美精品一区二区三区 | 精品国产精品久久一区免费式 | 无码人妻精品一区二区三区不卡 | 免费播放一区二区三区 | 日韩精品一区二区av在线 | 国产色xx群视频射精 | 人人妻人人澡人人爽欧美一区 | 国产偷国产偷精品高清尤物 | 中文字幕乱码中文乱码51精品 | 天天躁日日躁狠狠躁免费麻豆 | 中文字幕日韩精品一区二区三区 | 日欧一片内射va在线影院 | 久久久精品人妻久久影视 | 人人澡人摸人人添 | 丁香啪啪综合成人亚洲 | 天堂无码人妻精品一区二区三区 | 久久久久久国产精品无码下载 | 成人欧美一区二区三区黑人 | 欧美激情一区二区三区成人 | 亚洲国产精品美女久久久久 | 草草网站影院白丝内射 | 熟妇女人妻丰满少妇中文字幕 | 在线观看欧美一区二区三区 | 欧美激情综合亚洲一二区 | 1000部夫妻午夜免费 | 国产成人综合色在线观看网站 | 亚洲精品国偷拍自产在线麻豆 | 大屁股大乳丰满人妻 | 精品 日韩 国产 欧美 视频 | 无码帝国www无码专区色综合 | 久久99热只有频精品8 | 又湿又紧又大又爽a视频国产 | 黑人巨大精品欧美一区二区 | 国产亚洲tv在线观看 | 少妇激情av一区二区 | 久久综合色之久久综合 | 久久午夜无码鲁丝片秋霞 | 综合激情五月综合激情五月激情1 | 国产精品久久久一区二区三区 | 欧美三级不卡在线观看 | 丰满人妻翻云覆雨呻吟视频 | 久久久精品欧美一区二区免费 | aⅴ亚洲 日韩 色 图网站 播放 | 少妇高潮喷潮久久久影院 | 色五月五月丁香亚洲综合网 | 欧美性生交活xxxxxdddd | 蜜桃无码一区二区三区 | 免费无码午夜福利片69 | 性色av无码免费一区二区三区 | 日日摸天天摸爽爽狠狠97 | 狠狠综合久久久久综合网 | 在线 国产 欧美 亚洲 天堂 | 男人扒开女人内裤强吻桶进去 | 久久久久亚洲精品男人的天堂 | 99国产精品白浆在线观看免费 | 又大又硬又黄的免费视频 | 午夜丰满少妇性开放视频 | 久久久中文字幕日本无吗 | 中文精品久久久久人妻不卡 | 亚洲日本一区二区三区在线 | 131美女爱做视频 | 日韩无套无码精品 | 无码av中文字幕免费放 | 欧美日韩在线亚洲综合国产人 | 国产精品久久久久9999小说 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲综合无码一区二区三区 | 国产午夜亚洲精品不卡下载 | 国产熟妇另类久久久久 | 999久久久国产精品消防器材 | 人人妻人人澡人人爽欧美一区 | a在线亚洲男人的天堂 | 亚洲精品一区二区三区四区五区 | 好爽又高潮了毛片免费下载 | 18无码粉嫩小泬无套在线观看 | 国产亚洲人成在线播放 | 377p欧洲日本亚洲大胆 | 领导边摸边吃奶边做爽在线观看 | 亚洲精品欧美二区三区中文字幕 | 欧美一区二区三区视频在线观看 | 久久综合香蕉国产蜜臀av | 对白脏话肉麻粗话av | 欧美国产日韩久久mv | 精品久久久无码人妻字幂 | 亚洲大尺度无码无码专区 | 国产精品igao视频网 | 东京热男人av天堂 | 精品国产一区av天美传媒 | 丰满少妇熟乱xxxxx视频 | 国产国语老龄妇女a片 | 久久精品国产日本波多野结衣 | 熟妇女人妻丰满少妇中文字幕 | 国产成人无码专区 | 亚洲色偷偷偷综合网 | 国语精品一区二区三区 | 成人亚洲精品久久久久软件 | 中文精品久久久久人妻不卡 | 欧美黑人性暴力猛交喷水 | 国产免费无码一区二区视频 | 无码吃奶揉捏奶头高潮视频 | 99久久99久久免费精品蜜桃 | 国产精品无码mv在线观看 | 国产办公室秘书无码精品99 | 在教室伦流澡到高潮hnp视频 | 国产色在线 | 国产 | 一区二区三区乱码在线 | 欧洲 | 国产亚洲精品久久久ai换 | 欧美老熟妇乱xxxxx | 精品欧洲av无码一区二区三区 | 亚洲の无码国产の无码步美 | 亚洲精品www久久久 | 67194成是人免费无码 | 亚欧洲精品在线视频免费观看 | 亚洲 日韩 欧美 成人 在线观看 | 久久精品中文字幕一区 | 18精品久久久无码午夜福利 | 久久午夜夜伦鲁鲁片无码免费 | 久久久精品人妻久久影视 | 狠狠综合久久久久综合网 | 波多野结衣 黑人 | 99re在线播放 | 青青青爽视频在线观看 | 亚洲娇小与黑人巨大交 | 18禁黄网站男男禁片免费观看 | 久久久亚洲欧洲日产国码αv | 人妻熟女一区 | 粗大的内捧猛烈进出视频 | 日韩亚洲欧美中文高清在线 | 久久综合给久久狠狠97色 | 国产精品对白交换视频 | 老司机亚洲精品影院无码 | 亚洲日韩av一区二区三区四区 | 亚洲国产精品无码久久久久高潮 | 婷婷丁香五月天综合东京热 | 亚洲欧美色中文字幕在线 | 国产成人无码av片在线观看不卡 | 国产午夜无码精品免费看 | 亚洲国产欧美日韩精品一区二区三区 | 又大又硬又黄的免费视频 | 熟女体下毛毛黑森林 | 国产精品高潮呻吟av久久 | 久久99热只有频精品8 | 男女猛烈xx00免费视频试看 | 国产一区二区三区日韩精品 | 性欧美牲交xxxxx视频 | 日韩av无码一区二区三区不卡 | 亚洲中文字幕无码一久久区 | 欧洲欧美人成视频在线 | 露脸叫床粗话东北少妇 | 亚洲精品国产a久久久久久 | 日本www一道久久久免费榴莲 | 中文字幕亚洲情99在线 | 欧美亚洲国产一区二区三区 | 国内综合精品午夜久久资源 | 亚洲国产欧美在线成人 | 久久久久久国产精品无码下载 | 在线播放亚洲第一字幕 | 中文字幕无线码免费人妻 | 成人无码视频在线观看网站 | 欧美 日韩 人妻 高清 中文 | 亚洲熟悉妇女xxx妇女av | 无码播放一区二区三区 | 国产精品多人p群无码 | 99久久精品日本一区二区免费 | 在线精品国产一区二区三区 | 熟妇人妻无码xxx视频 | 国产福利视频一区二区 | 久久精品视频在线看15 | 亚洲国产午夜精品理论片 | 又黄又爽又色的视频 | 亚洲熟妇色xxxxx欧美老妇y | 麻豆果冻传媒2021精品传媒一区下载 | 中文字幕无码av激情不卡 | 精品国产一区二区三区四区 | 国产亚洲精品久久久久久久久动漫 | 日本爽爽爽爽爽爽在线观看免 | 精品少妇爆乳无码av无码专区 | 亚洲欧洲日本无在线码 | 乌克兰少妇性做爰 | 国产农村乱对白刺激视频 | 色情久久久av熟女人妻网站 | 香蕉久久久久久av成人 | 成人欧美一区二区三区黑人 | 欧美成人午夜精品久久久 | 国产特级毛片aaaaaaa高清 | 亚洲区小说区激情区图片区 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产在线aaa片一区二区99 | 亚洲欧洲日本综合aⅴ在线 | 亚洲精品中文字幕久久久久 | 中文字幕无码人妻少妇免费 | 一个人看的视频www在线 | 网友自拍区视频精品 | 高潮毛片无遮挡高清免费 | 久久久精品欧美一区二区免费 | 国产无遮挡吃胸膜奶免费看 | 国内揄拍国内精品人妻 | 最新国产乱人伦偷精品免费网站 | av无码不卡在线观看免费 | 国产av一区二区三区最新精品 | 人人爽人人爽人人片av亚洲 | 网友自拍区视频精品 | 男女作爱免费网站 | 欧美丰满少妇xxxx性 | 成人欧美一区二区三区黑人免费 | 精品无码国产一区二区三区av | 日本在线高清不卡免费播放 | 久久久久久av无码免费看大片 | 国产真人无遮挡作爱免费视频 | 亚洲一区二区三区 | 国产亚洲精品久久久久久 | 日韩欧美成人免费观看 | 大乳丰满人妻中文字幕日本 | 高清无码午夜福利视频 | 久久亚洲a片com人成 | 国产亚洲精品久久久久久国模美 | 啦啦啦www在线观看免费视频 | 樱花草在线播放免费中文 | 少妇被粗大的猛进出69影院 | 99久久无码一区人妻 | 国产热a欧美热a在线视频 | 无遮无挡爽爽免费视频 | 色噜噜亚洲男人的天堂 | 国内揄拍国内精品少妇国语 | 亚洲精品一区二区三区大桥未久 | 成人性做爰aaa片免费看 | 99久久精品午夜一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 内射后入在线观看一区 | 欧美zoozzooz性欧美 | 欧美日韩久久久精品a片 | 日本一本二本三区免费 | 国产偷抇久久精品a片69 | 影音先锋中文字幕无码 | 性生交大片免费看女人按摩摩 | 亚洲日本一区二区三区在线 | 精品国产麻豆免费人成网站 | 国产 精品 自在自线 | 欧美三级a做爰在线观看 | 扒开双腿吃奶呻吟做受视频 | 国产精品成人av在线观看 | 国产午夜无码视频在线观看 | 免费观看的无遮挡av | 国产午夜视频在线观看 | 国产一区二区三区日韩精品 | 国产猛烈高潮尖叫视频免费 | 丰满岳乱妇在线观看中字无码 | 亚拍精品一区二区三区探花 | 又大又紧又粉嫩18p少妇 | 色婷婷久久一区二区三区麻豆 | 久久午夜无码鲁丝片午夜精品 | 日韩亚洲欧美中文高清在线 | 国产口爆吞精在线视频 | 小泽玛莉亚一区二区视频在线 | 夜先锋av资源网站 | а√资源新版在线天堂 | 日韩亚洲欧美中文高清在线 | 久久人妻内射无码一区三区 | 强奷人妻日本中文字幕 | 国产精品资源一区二区 | 无码国产色欲xxxxx视频 | 少妇性l交大片欧洲热妇乱xxx | 在线观看欧美一区二区三区 | 中文字幕av日韩精品一区二区 | 噜噜噜亚洲色成人网站 | 夜夜高潮次次欢爽av女 | 久青草影院在线观看国产 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产精品毛片一区二区 | 在线播放免费人成毛片乱码 | 欧美激情一区二区三区成人 | 欧美乱妇无乱码大黄a片 | 最新版天堂资源中文官网 | 丰满肥臀大屁股熟妇激情视频 | 久久国产自偷自偷免费一区调 | 国产精品美女久久久 | 免费国产成人高清在线观看网站 | 国产 精品 自在自线 | 99久久人妻精品免费二区 | 成人欧美一区二区三区 | 动漫av网站免费观看 | 国产亚洲欧美日韩亚洲中文色 | 亚洲中文字幕va福利 | 黑人玩弄人妻中文在线 | 色欲av亚洲一区无码少妇 | 中文字幕乱妇无码av在线 | 中文精品无码中文字幕无码专区 | 国产无av码在线观看 | 97夜夜澡人人爽人人喊中国片 | 日韩欧美成人免费观看 | 377p欧洲日本亚洲大胆 | 亚洲精品成人福利网站 | 熟妇人妻无乱码中文字幕 | 黑人粗大猛烈进出高潮视频 | 国产黄在线观看免费观看不卡 | 日韩精品无码一区二区中文字幕 | 国产特级毛片aaaaaaa高清 | 精品久久久中文字幕人妻 | 台湾无码一区二区 | 午夜福利电影 | 国产成人精品必看 | a片在线免费观看 | 无码人妻丰满熟妇区毛片18 | 国产亚洲视频中文字幕97精品 | 国产精品亚洲专区无码不卡 | 日本肉体xxxx裸交 | 在线播放无码字幕亚洲 | 国产精品毛片一区二区 | 精品一区二区三区无码免费视频 | 国产精品无码久久av | 51国偷自产一区二区三区 | 国产精品久久福利网站 | 亚洲成色在线综合网站 | 高清国产亚洲精品自在久久 | 国产美女精品一区二区三区 | 国产偷自视频区视频 | 久久综合给久久狠狠97色 | 亚洲午夜无码久久 | 国产成人无码av片在线观看不卡 | 一本无码人妻在中文字幕免费 | 国精产品一品二品国精品69xx | 亚洲精品久久久久中文第一幕 | 2020久久香蕉国产线看观看 | 99国产精品白浆在线观看免费 | 久久亚洲国产成人精品性色 | 久久久成人毛片无码 | 少妇厨房愉情理9仑片视频 | 大地资源网第二页免费观看 | 中文字幕无码日韩专区 | 帮老师解开蕾丝奶罩吸乳网站 | 正在播放东北夫妻内射 | 午夜精品久久久久久久 | 亚洲欧洲中文日韩av乱码 | 国産精品久久久久久久 | 亚洲最大成人网站 | 蜜桃臀无码内射一区二区三区 | 精品人人妻人人澡人人爽人人 |