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

亚洲精品久久久久久| 性高潮久久久久久久久| 日韩免费一级片| 欧美人与物videos另类xxxxx| 欧美偷拍一区二区| 少妇久久久久久被弄到高潮| 亚洲 欧美 激情 小说 另类| 另类小说欧美激情| 国精产品一区一区三区有限在线| 免费一级做a爰片久久毛片潮| 美女精品久久| 在线欧美日韩国产| 女人被男人躁得好爽免费视频 | 热久久最新地址| 欧美婷婷久久五月精品三区| 国产美女av一区二区三区| 日本成人在线视频网址| 久草视频免费在线播放| 日韩欧美午夜| 国产视频亚洲视频| 日本亚洲一区二区三区| 国产精品第一| 日韩欧中文字幕| 黄色一级片黄色| 韩国av网站在线| 国产女人水真多18毛片18精品视频| 不卡视频一区二区三区| 亚洲在线视频播放| 久久婷婷影院| …久久精品99久久香蕉国产| 在线日韩国产网站| 在线日本制服中文欧美| 欧美精品一区二区三区久久久| 国产精品区在线| 激情亚洲影院在线观看| 欧美日韩亚洲一区二区| 欧美精品久久久久久久久久久| 精品孕妇一区二区三区| 国产精品久久久久久亚洲毛片| 免费毛片一区二区三区久久久| 全部免费毛片在线播放一个| 国产成人综合亚洲网站| 成人a在线视频| 一二三四区视频| 日本系列欧美系列| 国产精品久久久久7777婷婷| 国产精品视频一区在线观看| 亚洲欧美视频一区二区三区| 午夜精品一区二区三区在线| 国产午夜小视频| 国产真实久久| 国内精品模特av私拍在线观看| 欧美人与禽zozzo禽性配| 欧美有码视频| 欧美精品18videos性欧| 国产真人真事毛片| 亚洲精品乱码| 91成人国产在线观看| 天天做天天爱夜夜爽| 亚洲一区二区成人| 日韩av快播网址| 91丨九色丨海角社区| 日本欧美韩国一区三区| 国产精品在线看| 国产高清第一页| 床上的激情91.| 国产一区再线| 国产在线日本| 国产精品国产自产拍在线| 一区二区视频在线免费| 国内精品久久久久国产| 亚洲一区av在线| 日日摸日日碰夜夜爽无码| 性欧美xxx69hd高清| 在线精品观看国产| 国产乱女淫av麻豆国产| 一区二区三区欧洲区| 亚洲成人久久网| 一色道久久88加勒比一| 91欧美大片| 欧美精品18videos性欧| 亚洲黄网在线观看| 韩国一区二区三区| 久草精品电影| 中文字幕日本在线观看| 亚洲在线中文字幕| 亚洲成熟丰满熟妇高潮xxxxx| 欧美午夜三级| 亚洲国产精品va在看黑人| 天天躁日日躁aaaxxⅹ| 99精品电影| 国语自产精品视频在免费| 国产成人自拍偷拍| 国产不卡视频在线播放| 欧美一区二区三区在线免费观看 | 91精品国产成人| 中文文字幕一区二区三三| 国产精品亚洲专一区二区三区| 精品一区二区三区免费毛片| 快射av在线播放一区| 欧美日韩美女视频| 亚洲精品永久视频| 日韩欧美四区| 欧美精品免费在线| 免费在线不卡av| 在线成人视屏| 国产成人免费视| 日韩动漫在线观看| 999精品网| 欧美二区乱c少妇| 亚洲AV无码国产成人久久| 亚洲v在线看| 日韩av电影手机在线| 午夜精品久久久久久久99热黄桃 | 成人av免费电影网站| 欧美一级黄色大片| 久久国产柳州莫菁门| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产成一区二区| 人妻视频一区二区三区| 亚洲欧美日韩在线播放| 日本va中文字幕| 五月天亚洲一区| 欧美成人手机在线| 中文文字幕一区二区三三| ww久久中文字幕| 精品成在人线av无码免费看| 亚洲精品第一| 一区二区三区美女xx视频| 欧美一级视频免费观看| 国产a久久麻豆| 国产资源第一页| 91成人app| 最近2019年日本中文免费字幕| 国产一级免费视频| 久久综合资源网| 欧美亚洲日本一区二区三区| 999久久久久久久久6666| 久久久精品999| 国产一区二区三区中文字幕 | 九九视频在线观看| 国产精品2024| www国产免费| 精品国产第一国产综合精品| 久久综合五月天| www.日韩在线观看| 亚洲激情男女视频| 中文字幕1区2区| 在线观看一区视频| 国产伦精品一区二区三区免| www.8ⅹ8ⅹ羞羞漫画在线看| 亚洲精品在线网站| 国内免费精品视频| 91免费观看国产| 国内自拍视频一区| 亚洲色图美女| 国产精品亚洲激情| 黄色动漫在线| 精品少妇一区二区三区日产乱码 | 捆绑调教美女网站视频一区| 在线观看精品视频| 久久9999免费视频| 久久久久五月天| 外国精品视频在线观看 | caoporen国产精品| 成人黄色动漫| 亚洲欧美日韩中文在线制服| 亚洲国产成人精品女人久久| 中文字幕中文字幕在线一区| 小早川怜子一区二区三区| 国产精品a级| 久久综合狠狠综合久久综青草| 色8久久影院午夜场| 中文字幕亚洲欧美日韩2019| 国产男女猛烈无遮挡| 一区二区欧美视频| 黄色a一级视频| 蜜臀av亚洲一区中文字幕| 国内外成人激情免费视频| 国偷自产av一区二区三区| 日韩暖暖在线视频| 成人影院在线看| 日韩av中文字幕在线播放| 波多野结衣电车痴汉| 亚洲男人的天堂av| 欧美 变态 另类 人妖| 日韩va欧美va亚洲va久久| 超碰97在线看| 免费国产自久久久久三四区久久| 国产精品一区二区三区毛片淫片| 免费影视亚洲| 中文精品99久久国产香蕉| 性生活免费网站| 91福利视频网站| 日本黄色小说视频| 久久久国产精华| 99国产精品免费视频| 首页综合国产亚洲丝袜| 欧美日韩午夜爽爽| 国产乱码精品一区二区亚洲| 91|九色|视频| 成人日韩精品| 欧美激情在线观看视频| 思思99re6国产在线播放| 日韩av在线不卡| aaa一区二区| 91福利资源站| 亚洲欧美综合另类| 亚洲综合在线五月| 香蕉久久久久久久| 久久久精品免费网站| 黄页网站在线看| 久久国内精品自在自线400部| 无码专区aaaaaa免费视频| 一区二区三区在线| 三级三级久久三级久久18| 欧美偷窥清纯综合图区| 91在线观看网站| 亚洲欧美久久精品| 国产精品大片wwwwww| 日本午夜大片a在线观看| 久久97精品久久久久久久不卡| caoporn国产精品免费视频| 亚洲第一偷拍网| 亚洲精品久久久蜜桃动漫 | 婷婷一区二区三区| 欧美卡一卡二卡三| 国产精品高潮呻吟久久| 中文字幕网站在线观看| 99久久久国产精品| 乱码一区二区三区| 国产成人综合网| aaaaaaaa毛片| 国产一区不卡视频| 亚洲精品永久视频| 国精产品一区一区三区mba桃花 | 日韩免费大片| 国产精品入口免费视| 欧美日韩免费观看视频| 国产精品大片wwwwww| 久久精品女人天堂av免费观看| 69av在线视频| 不卡av影片| 国产成+人+综合+亚洲欧洲 | 91精品国产综合久久精品app| 中文天堂在线资源| 欧美精品日韩一区| 国产美女主播在线观看| 欧美一区二区三区在线看 | 亚洲美女在线观看| 国产在线三区| 日韩一级黄色av| 国产素人视频在线观看| 久久综合九色九九| 污视频网站在线免费| 欧美国产日韩一区二区| 国产极品人妖在线观看| 81精品国产乱码久久久久久| 中文字幕资源网在线观看免费| 日本欧美精品在线| 超碰这里只有精品| 亚洲专区中文字幕| 精品亚洲免a| 欧美一区三区二区在线观看| 成人影视亚洲图片在线| 五月天av影院| 亚洲国产二区| 免费观看成人在线视频| 精品在线一区二区三区| 色欲欲www成人网站| 91美女在线视频| 国产馆在线观看| 一区二区三区免费观看| 免费av网站在线| 欧美日韩成人一区| 丰满肥臀噗嗤啊x99av| 日韩精品中文字幕在线| 992tv免费直播在线观看| 欧美裸体xxxx极品少妇| 悠悠资源网亚洲青| 国产欧美中文字幕| 日韩在线视频一区二区三区| 久久资源亚洲| 中文无码久久精品| 免费无码国产v片在线观看| 久久精品国产精品亚洲红杏| 精品一区二区三区四区五区六区| 国产色综合一区| 久久久久国产精品夜夜夜夜夜| 日韩欧美在线免费| 国产欧美日韩综合精品一区二区三区| 亚洲国产精品国自产拍av秋霞| 国产精品久久久久久久龚玥菲 | 亚洲一区尤物| 一区二区三区福利| 亚洲午夜激情影院| 久久女同性恋中文字幕| 欧美激情一区二区视频| 欧洲日韩一区二区三区| 老熟妇高潮一区二区高清视频| 中文字幕在线亚洲| 在线看片福利| 97超级碰碰| 久久国产中文字幕| 日韩有码免费视频| 成人午夜在线播放| 亚洲欧美卡通动漫| 91久久国产最好的精华液| 黄色av一区二区三区| 日韩在线中文字| 亚洲精品粉嫩美女一区| 国产一区国产精品| 欧美黄在线观看| jizz18女人| 国产网站一区二区| 国产无遮挡呻吟娇喘视频| 日韩精品资源二区在线| 免费a级毛片在线播放| 国产97免费视| 亚洲理论电影片| 欧美男女爱爱视频| 国产成人精品午夜视频免费| 日本黄色片免费观看| 在线观看三级视频欧美| 日韩精品视频无播放器在线看| 欧美激情一区二区久久久| 日本一区二区三区视频在线看 | 中文字幕av久久爽一区| 欧美日韩激情小视频| 免费国产黄色片| 欧美精品videossex88| 麻豆精品国产| 伊人网在线免费| 国产精品亚洲一区二区三区在线| 国产黄色录像片| 欧美日韩视频在线第一区| 都市激情一区| 国产精品在线看| 91综合视频| 中文字幕第三区| 亚洲欧美激情插| 国产wwwxxx| 欧美激情在线观看视频| 精品日产乱码久久久久久仙踪林| 成人小视频在线观看免费| 国产精品99久久久久久久女警| 日本少妇高清视频| 精品精品欲导航| 成人黄色动漫| 日本高清视频一区二区三区| 日韩av中文字幕一区二区三区 | 亚洲一级二级在线| 韩国中文字幕hd久久精品| 国模gogo一区二区大胆私拍 | 欧美v亚洲v综合v国产v仙踪林| 小说区图片区图片区另类灬| 久久er精品视频| 欧美色图一区二区| 亚洲精品一区二区三区蜜桃下载 | 国产盗摄在线视频网站| 国产乱码精品一区二区三区不卡| 日韩一区二区免费看| 亚洲精品视频大全| 欧美视频你懂的| 亚洲大胆人体大胆做受1| 国产中文一区二区| 日韩不卡一区二区| 欧美丰满艳妇bbwbbw| 亚洲国产欧美一区二区丝袜黑人| 日本在线影院| 亚洲欧美精品在线观看| 国产成人免费在线观看不卡| 日本在线观看视频网站| 亚洲天堂av高清| 日韩精品视频在线看| 99视频在线免费播放| 中文字幕免费一区| 成 人 免费 黄 色| 国产成人福利网站| 影音先锋日韩在线| 日本一区二区三区网站| 欧美日韩国产中文| 羞羞的网站在线观看| 日本一区视频在线观看免费| 国产乱码精品一区二区三区av| 日韩久久久久久久久| 色系列之999| 久久久久97| av中文字幕网址| 婷婷激情综合网| 免费观看在线午夜影视| 精品一区二区日本| 国产一区二区调教| 99精品人妻国产毛片| 欧美精品做受xxx性少妇| 国产在线观看91一区二区三区| 日本黄色一级网站| 欧美中文一区二区三区| 丰满大乳少妇在线观看网站| 亚洲欧美日产图|