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

模仿Android微信小程序,實現小程序獨立任務視圖的效果

移動開發 Android
小程序相信現在所有人都使用過的對吧,很多人甚至天天都在使用。小程序特別的方便,無需下載,無需安裝,在微信當中打開就能立刻使用。隨取隨用,隨用隨走,也不占用任何手機的存儲空間。

?今天跟大家分享一個非常有趣的技術,如何在我們的App中實現類似于微信小程序的功能。

哈哈開個玩笑,如果我能徒手實現一套微信小程序系統的話,早就被騰訊挖過去當架構師了。

小程序相信現在所有人都使用過的對吧,很多人甚至天天都在使用。小程序特別的方便,無需下載,無需安裝,在微信當中打開就能立刻使用。隨取隨用,隨用隨走,也不占用任何手機的存儲空間。

而Android上的微信小程序做得格外的像一個真正的應用程序。為什么這么說呢?因為Android上的每個微信小程序甚至還能擁有自己的任務視圖,就像是一個真正的獨立應用程序一樣。點擊手機任務欄鍵可以看到如下界面:

圖片

上圖中美團外賣、微博熱搜、星巴克都是小程序。

擁有獨立的任務視圖的話,就可以更加方便地在多個小程序或微信本體之間進行快速切換,在這點上Android的體驗要比iOS更好。

那么問題來了,這種依附于其他程序的小程序是如何做到擁有一個獨立的任務視圖的呢?

本篇文章我們就來一探究竟。

事實上,這是一個很基礎的功能。有多基礎呢?任何一位Android開發者在入門時都一定學過這個知識:Launch Mode。

因此,我就不在這里對Launch Mode進行展開講解了。如果你真的從來沒有聽說過Launch Mode,建議參考《第一行代碼 第3版》第3章的內容。

我們都知道,Android中Activity的啟動模式一共有4種:standdard、singleTop、singleTask和singleInstance。

從字面意思上來看,singleTask表示的就是要啟用一個單獨的任務來存放當前Activity。但假如你把一個Activity聲明成了singleTask,你會發現并不能得到我們想要的效果,所有的Activity仍然是放在同一個任務當中的。

這是因為,singleTask還會關聯一個叫taskAffinity的屬性,只有被聲明成singleTask的Activity,且它的taskAffinity值也是獨立的,那么這個Activity才會被放在一個單獨的任務當中。

而默認情況下,每個Activity的taskAffinity屬性值都是當前應用程序的包名,也就是說它們的值都是相同的,所以才不能得到我們想要的效果。

那么解決方法也很簡單,給每一個要啟用獨立任務視圖的Activity都賦值一個不同的taskAffinity值即可。

接下來我們就開始動手實踐一下吧。

首先創建一個叫MiniProgramTest的項目。

接下來創建3個空的Activity,分別給它們起名為FirstActivity、SecondActivity和ThirdActivity。

然后編輯項目的activity_main.xml布局文件,在里面加入3個按鈕,分別用于啟動FirstActivity、SecondActivity和ThirdActivity:

<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<Button
android:id="@+id/first_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="啟動第一行代碼"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@+id/second_btn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/second_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="啟動第二行代碼"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@+id/third_btn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/first_btn" />

<Button
android:id="@+id/third_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="啟動第三行代碼"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/second_btn" />

</androidx.constraintlayout.widget.ConstraintLayout>

布局文件定義好了之后,接下來修改MainActivity的代碼,加入啟動邏輯:

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val firstBtn = findViewById<Button>(R.id.first_btn)
val secondBtn = findViewById<Button>(R.id.second_btn)
val thirdBtn = findViewById<Button>(R.id.third_btn)

firstBtn.setOnClickListener {
val intent = Intent(this, FirstActivity::class.java)
startActivity(intent)
}
secondBtn.setOnClickListener {
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
thirdBtn.setOnClickListener {
val intent = Intent(this, ThirdActivity::class.java)
startActivity(intent)
}
}
}

代碼非常簡單,點擊哪個按鈕就去啟動相應的Activity就可以了。

但如果僅僅是這樣,FirstActivity、SecondActivity和ThirdActivity一定與MainActivity是存放在同一個任務當中的。

因此下面我們就要去編寫最核心的代碼了,修改AndroidManifest.xml文件,如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.miniprogramtest">

<application
...>

<activity
android:name=".FirstActivity"
android:exported="false"
android:label="第一行代碼"
android:launchMode="singleTask"
android:taskAffinity="com.example.miniprogramtest.first"
/>

<activity
android:name=".SecondActivity"
android:exported="false"
android:label="第二行代碼"
android:launchMode="singleTask"
android:taskAffinity="com.example.miniprogramtest.second" />

<activity
android:name=".ThirdActivity"
android:exported="false"
android:label="第三行代碼"
android:launchMode="singleTask"
android:taskAffinity="com.example.miniprogramtest.third"
/>
...
</application>

</manifest>

可以看到,這里我們將FirstActivity、SecondActivity和ThirdActivity的launchMode都設置成了singleTask,并且給它們都指定了一個不同的taskAffinity。

現在運行一下程序,并分別點擊界面上的3個按鈕,然后按下手機任務欄鍵,我們就能看到如下效果了:

圖片

有沒有覺得很神奇?明明都是同一個App中的3個Activity,現在我們竟然可以讓它們在3個獨立的任務視圖中顯示,是不是感覺就好像是微信小程序一樣?

不過,雖然FirstActivity、SecondActivity和ThirdActivity都擁有獨立的任務視圖了,它們和微信小程序還有一個非常明顯的差距。

因為每個程序都有自己專屬的應用Logo,小程序也不例外。就像我們在最開始的圖片中看到的一樣,美團小程序有美團的Logo,微博小程序有微博的Logo,星巴克小程序有星巴克的Logo。

而目前,FirstActivity、SecondActivity和ThirdActivity顯示的都是MiniProgramTest這個項目的Logo,這使得它們看上去仍然不像是一個獨立的應用程序。

下面我們就開始著手優化這部分問題。

首先,這里我準備了3張圖片first_line.png、second_line.png、third_line.png,分別用于作為FirstActivity、SecondActivity和ThirdActivity的Logo:

圖片

接下來,編輯FirstActivity、SecondActivity和ThirdActivity的代碼,在里面加入如下邏輯:

class FirstActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_first)
setCustomTaskDescription()
}

private fun setCustomTaskDescription() {
val taskDescription = ActivityManager.TaskDescription(
"FirstActivity",
BitmapFactory.decodeResource(resources, R.drawable.first_line)
)
setTaskDescription(taskDescription)
}
}

class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
setCustomTaskDescription()
}

private fun setCustomTaskDescription() {
val taskDescription = ActivityManager.TaskDescription(
"SecondActivity",
BitmapFactory.decodeResource(resources, R.drawable.second_line)
)
setTaskDescription(taskDescription)
}
}

class ThirdActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_third)
setCustomTaskDescription()
}

private fun setCustomTaskDescription() {
val taskDescription = ActivityManager.TaskDescription(
"ThirdActivity",
BitmapFactory.decodeResource(resources, R.drawable.third_line)
)
setTaskDescription(taskDescription)
}
}

這3段代碼的邏輯基本都是相同的。

核心部分就是調用了setCustomTaskDescription()方法來給當前Activity設置一個自定義的TaskDescription。

所謂TaskDescription就是給當前的任務設置一個描述,描述中可以包含任務的名稱和圖標。

那么這里我們給FirstActivity、SecondActivity和ThirdActivity分別設置了不同的TaskDescription,這樣在任務視圖當中,就可以看到各不相同的應用Logo了,如下圖所示:

圖片

其實到這里為止,我們就把微信小程序的外殼搭建得差不多了。剩下的部分,當然也是最難的部分,就是在這個殼子里面添加小程序的內容了。這部分的技術以前端為主,并不是我擅長的領域,我也講不了,因此就不再繼續向下延伸了。

不過或許還有些朋友會存在這樣的疑惑:目前我們的技術實現方案是給每個小程序定義一個單獨的Activity(FirstActivity、SecondActivity和ThirdActivity),而微信小程序卻可以有無限多個,我們顯然不可能在AndroidManifest.xml文件中注冊無限個Activity,那么微信又是如何實現的呢?

其實這只是一個美麗的誤會,因為微信小程序并不是可以有無限多個,只是你平時沒有注意這個小細節而已。

我們通過做個實驗來驗證一下吧,觀察下圖中的效果:

圖片

可以看到,這里我事先依次按照順序打開了嗶哩嗶哩、QQ音樂、微博熱搜、京東購物、星巴克,這5個小程序。

這個時候回到微信當中,再打開一個順豐速運小程序。

再次回到任務視圖列表界面,你會發現現在多了一個順豐速運的小程序,而最早打開的嗶哩嗶哩小程序卻從任務視圖列表中消失不見了。

由此可以看出,微信其實在AndroidManifest.xml文件中也只是放置了5個占位的Activity。當你嘗試打開第6個小程序時,最先打開的那個小程序就會被回收,將它的容器提供給第6個小程序使用。

好了,本篇文章到這里就結束了。內容其實非常的簡單,但是已經把在Android上如何實現小程序外層的架子講明白了。至于如何實現小程序最核心的內容部分,那就要看各位架構師的水準了。?

責任編輯:武曉燕 來源: 郭霖
相關推薦

2017-05-08 15:03:07

微信小程序開發實戰

2016-11-04 10:48:37

信小程序

2017-02-06 13:32:12

微信小程序思想

2016-10-20 21:02:12

微信小程序javascript

2017-01-09 10:01:49

微信小程序

2017-06-09 10:40:00

微信小程序架構分析

2016-09-28 18:10:59

微信程序MINA

2017-06-09 12:58:20

微信小程序架構分析

2017-06-09 10:06:54

微信小程序架構分析

2016-11-04 10:31:49

微信程序指南

2016-11-22 11:23:52

微信小程序騰訊微信

2016-09-27 15:40:58

微信程序前端

2016-11-04 10:49:48

微信小程序

2021-06-10 10:51:27

程序基礎架構

2016-09-27 16:38:24

JavaScript微信Web

2021-10-28 19:32:16

微信原理程序

2016-11-04 10:30:17

微信小程序

2018-08-03 11:10:30

前端小程序vue.js

2021-03-03 14:23:06

微信小程序互聯網

2017-06-27 10:53:32

點贊
收藏

51CTO技術棧公眾號

国产一区二区不卡| 国产成人精品一区二区免费看京| 亚洲欧美日韩国产另类专区| 丁香婷婷久久久综合精品国产| 国产女片a归国片aa| 美女精品视频在线| 黄色一区二区在线| 性欧美大战久久久久久久免费观看| 97人妻精品一区二区三区视频| 91精品国产自产在线观看永久∴| 精品女同一区二区| 国产成人久久777777| 日本中文字幕视频在线| 国产精品1024| 国产福利视频一区| 午夜国产福利一区二区| 色婷婷久久久| 日韩无一区二区| aa在线免费观看| 午夜伦理大片视频在线观看| 久久久精品国产99久久精品芒果 | 久久精品ww人人做人人爽| 最新国产中文字幕| 国产亚洲精品自拍| 一区二区成人精品| 中国黄色片视频| 伊人久久一区| 日本韩国精品一区二区在线观看| 亚洲国产一二三精品无码 | 99这里都是精品| 国产有码在线一区二区视频| 国产精品va无码一区二区三区| 欧美一区二区三区久久精品茉莉花| 亚洲人成电影网站色| 大尺度在线观看| 在线观看欧美| 欧美日韩电影一区| 天天爽天天爽夜夜爽| 91禁在线看| 一区二区三区四区精品在线视频 | av无码av天天av天天爽| 亚洲1区在线观看| 6080yy午夜一二三区久久| 国产精品免费观看久久| 人狥杂交一区欧美二区| 亚洲综合在线第一页| 国产高潮呻吟久久久| 99青草视频在线播放视| 久久免费的精品国产v∧| 国产一区二区三区黄| 国产综合视频在线| 国产精品亚洲第一| 亚洲专区在线视频| www.com在线观看| 国产酒店精品激情| 亚洲在线免费视频| 亚洲av无码片一区二区三区 | 成人欧美在线| 亚洲欧美在线高清| 日本一级淫片演员| 在线观看小视频| 亚洲一区二区三区四区中文字幕| 91xxx视频| 爱福利在线视频| 黄色成人在线免费| 狠狠操精品视频| 成人自拍视频网| 欧美三级欧美一级| 青青草久久伊人| 精品一区二区三区中文字幕视频| 欧美一区二区三区视频免费| 欧美人与性动交α欧美精品| 1313精品午夜理伦电影| 亚洲国产精品专区久久| 国产色视频一区二区三区qq号| 蜜桃精品wwwmitaows| 一区二区三区四区视频| 久久久精品少妇| 欧美日韩国产成人精品| 91成人在线视频| 一级黄色在线观看| 激情国产一区二区| 成人黄视频免费| 午夜性色福利影院| 欧美激情一区在线| 日本一区二区免费高清视频| 手机在线免费看av| 日韩欧美黄色动漫| 久久久精品高清| 国产精品高潮呻吟久久久久| 亚洲欧洲一区二区三区在线观看| 国产精品1区2区3区4区| 欧美精品播放| 国产999精品久久久| 91中文字幕在线视频| 成人激情av网| 亚洲7777| av漫画网站在线观看| 欧美伊人久久大香线蕉综合69| www.欧美激情.com| 日韩黄色网络| 久久国产精品影视| 亚洲婷婷综合网| 国产福利91精品| 久草精品电影| a级网站在线播放| 色综合一个色综合亚洲| 宇都宫紫苑在线播放| 夜夜春成人影院| 欧美精品亚州精品| 日韩国产成人在线| eeuss国产一区二区三区| 亚洲一区3d动漫同人无遮挡 | 久久久pmvav| 亚洲天堂中文字幕| 国产精品亚洲αv天堂无码| 激情不卡一区二区三区视频在线| 国产视频精品va久久久久久| 波多野结衣在线网址| 久久久久久久波多野高潮日日| 亚洲a中文字幕| shkd中文字幕久久在线观看| 黄色91在线观看| www.黄色网| 久久久久久影院| 国产精品久久久91| 完全免费av在线播放| 密臀av在线播放| 日韩欧美一区二区不卡| 青青青视频在线播放| 久久精品官网| 久久久久久艹| 久草在线资源福利站| 精品少妇一区二区三区在线播放| 来吧亚洲综合网| 男人的j进女人的j一区| 奇米视频888战线精品播放| 九色porny自拍视频在线播放| 日韩一级完整毛片| 精品国产欧美日韩不卡在线观看| 蜜桃精品视频在线观看| 手机看片福利永久国产日韩| 精品3atv在线视频| 亚洲欧美日韩在线高清直播| 综合网在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美午夜小视频| 国产主播性色av福利精品一区| 欧美激情精品久久久久久大尺度| 99久久99久久久精品棕色圆| 亚洲免费电影在线| 中文字幕乱妇无码av在线| 国内视频精品| 精品国产一区二区三区日日嗨| yellow在线观看网址| 亚洲激情视频网站| 9i看片成人免费看片| 久久精品水蜜桃av综合天堂| 国语对白做受xxxxx在线中国| 国产成人3p视频免费观看| 国产成人在线亚洲欧美| av中文天堂在线| 欧美高清视频一二三区| 1024手机在线视频| 成人高清免费观看| 日韩视频第二页| 欧美限制电影| 91老司机精品视频| eeuss鲁一区二区三区| 亚洲激情视频在线观看| 无码人妻丰满熟妇区bbbbxxxx| 国产免费观看久久| 国产一级免费大片| 激情综合中文娱乐网| 欧美高清视频一区| 欧美男女视频| 欧美极品少妇xxxxⅹ裸体艺术 | 中文字幕不卡av| 国产欧美日韩成人| 午夜精品久久久久久久久| 插吧插吧综合网| 老汉av免费一区二区三区| 9191国产视频| 亚洲素人在线| 亚洲sss综合天堂久久| 98色花堂精品视频在线观看| 亚洲天堂男人天堂女人天堂| 国产毛片在线视频| 狠狠操狠狠色综合网| 肉色超薄丝袜脚交69xx图片| 成人做爰69片免费看网站| 无码人妻丰满熟妇区五十路百度| 欧美大人香蕉在线| 国产无套精品一区二区| 狠狠久久综合| 欧美激情一区二区三区高清视频| 美女做暖暖视频免费在线观看全部网址91 | 一区二区三欧美| 精品国产va久久久久久久| 欧美日韩中文字幕在线| 污软件在线观看| 久久婷婷综合激情| 乳色吐息在线观看| 日本在线不卡一区| 欧美一级片免费播放| 91免费精品| 蜜桃91精品入口| 婷婷视频一区二区三区| 国产精品成人一区二区三区吃奶| 欧洲一区二区三区| 色悠悠久久88| 天堂а√在线8种子蜜桃视频| 91麻豆精品国产91久久久更新时间 | 在线观看麻豆蜜桃| 日韩电影网在线| 99视频国产精品免费观看a| 日本精品一区二区三区高清 | 日韩电影在线观看电影| 999一区二区三区| 99久久夜色精品国产亚洲1000部| 久久亚洲一区二区| www.丝袜精品| 1区1区3区4区产品乱码芒果精品| 日韩精品一区二区三区av| 8x海外华人永久免费日韩内陆视频| 成人video亚洲精品| 色阁综合伊人av| 美国成人毛片| 亚洲精品国产欧美| 黑人乱码一区二区三区av| 91精品一区二区三区在线观看| 国产又粗又猛又黄视频| 黑人精品xxx一区| 97人人澡人人爽人人模亚洲| 一区二区高清在线| 国产成人自拍网站| 国产精品久久二区二区| 日本欧美一区二区三区不卡视频| www国产亚洲精品久久麻豆| 中文字幕人妻一区二区三区| 国产成人综合亚洲网站| 女王人厕视频2ⅴk| 国产麻豆欧美日韩一区| 国产精品嫩草影视| 国产一区二区影院| www.久久com| 国产乱人伦偷精品视频不卡| www.51色.com| 国产一区二区三区黄视频 | 精品国产黄色片| 日韩三级电影网址| 午夜美女福利视频| 精品日韩一区二区| 日韩一区二区三区在线观看视频| 欧美岛国在线观看| 日本精品一二区| 国产视频丨精品|在线观看| 亚洲 欧美 自拍偷拍| 日韩国产一区三区| 国产在线视频网站| 日韩在线视频导航| av免费在线观看网站| 欧美激情免费观看| 天天综合av| 国产精品男人的天堂| 亚洲伊人精品酒店| 国产精选一区二区| 亚洲日本三级| 一区二区三视频| 欧美在线精品一区| 国产原创popny丨九色| 老司机免费视频久久| www.久久久精品| 国产精品99久久久久久久女警| 美女久久久久久久久| 久久久亚洲欧洲日产国码αv| www.99热| 一区二区三区中文字幕在线观看| 精品无码av在线| 色婷婷久久99综合精品jk白丝| 亚洲在线免费观看视频| 精品国产一区二区在线观看| 香蕉av在线播放| 少妇高潮久久77777| 日本大片在线播放| 日韩免费在线播放| 电影中文字幕一区二区| 好吊色欧美一区二区三区四区 | 亚洲免费视频二区| 欧美一级二级三级蜜桃| 色资源在线观看| 久久躁日日躁aaaaxxxx| 国产h片在线观看| 成人国产精品久久久久久亚洲| 国产精品网址| 一区二区三区在线视频看| 亚洲精品社区| 色www免费视频| 91天堂素人约啪| 国产麻豆视频在线观看| 欧美午夜精品伦理| 国产成人精品免费看视频| 亚洲人av在线影院| 国产蜜臀在线| 91精品国产综合久久久久久久久| 精品素人av| 激情图片qvod| 日韩福利视频导航| 玖玖爱在线精品视频| 亚洲人成影院在线观看| 天干夜夜爽爽日日日日| 日韩欧美中文字幕一区| 超碰国产在线观看| 欧美有码在线视频| 超碰97久久| 亚洲av首页在线| 麻豆国产91在线播放| 一本加勒比北条麻妃| 亚洲二区在线视频| www.天堂av.com| 久久精品人人做人人爽| 中文字幕系列一区| 久久久久久久久久码影片| 欧美特黄一级| 天天干天天曰天天操| 国产精品久久毛片a| 日批视频免费在线观看| 日韩国产在线看| 2021中文字幕在线| av蓝导航精品导航| 欧美在线高清| 一区二区三区人妻| 亚洲精品成人在线| 99久久精品国产色欲| 色黄久久久久久| 外国成人毛片| 久久久国产精华液999999| 美女视频黄免费的久久 | 小说区亚洲自拍另类图片专区| 日日碰狠狠躁久久躁婷婷| 久久久久国产成人精品亚洲午夜| xxxxxx国产| 亚洲国产欧美一区二区三区久久| 免费电影网站在线视频观看福利| 1卡2卡3卡精品视频| 一本一道久久综合狠狠老| 色婷婷激情视频| 中文字幕综合网| 国产成人精品白浆久久69| 欧美人在线观看| 影音先锋欧美激情| av免费看网址| bt7086福利一区国产| 中文字幕一区二区三区精品| 亚洲精品ady| 韩日精品一区二区| 亚洲电影免费| 久久99国产精品免费网站| 乱h高h女3p含苞待放| 精品国产一区a| 黑人巨大精品欧美一区二区桃花岛| 蜜桃视频日韩| 免费人成黄页网站在线一区二区| 国产中文字幕久久| 日韩一区二区免费视频| 国精一区二区三区| 免费亚洲精品视频| 麻豆成人91精品二区三区| 神马久久精品综合| 日韩女同互慰一区二区| 国产夫妻在线| 色之综合天天综合色天天棕色| 久久精品99国产精品| 欧美成人三级视频| 日韩成人在线视频观看| 精品亚洲美女网站| 国产树林野战在线播放| av在线免费不卡| 中文字幕 亚洲视频| 欧美成人性色生活仑片| 精品三级av在线导航| 无遮挡又爽又刺激的视频| 亚洲女同ⅹxx女同tv| 四虎影视在线观看2413| 国产欧美日韩视频| 亚洲国产一区二区精品专区| 无码一区二区三区在线| 91精品国产综合久久国产大片| 高清毛片在线观看| 一区二区三视频| 99精品欧美一区二区蜜桃免费| 制服丝袜在线一区| 午夜免费久久久久| 色小子综合网| 国产白嫩美女无套久久| 欧美精品久久天天躁| 综合久久2023| 黄色a级片免费看| 欧美国产欧美综合| 六月丁香综合网|