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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android基础知识精简版(转)

發(fā)布時間:2023/12/20 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android基础知识精简版(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文? http://blog.csdn.net/heimady/article/details/10363995

1.?前言

裁剪了下轉(zhuǎn)載內(nèi)容,只保留我認為有用的知識點。

2.?搭建開發(fā)環(huán)境

http://tools.android-studio.org/

3.?開發(fā)一個 Android 程序

3.1.?創(chuàng)建 Android 程序

??創(chuàng)建 Android?Project

??Project?name :項目名

??Build?Target Android 版本

??Application?name :程序名,顯示在程序列表中,以及程序啟動后的標(biāo)題欄

??Package?name :包名,程序的唯一標(biāo)識

??Create?Activity :選擇程序啟動時是否創(chuàng)建一個窗體,設(shè)置主窗體名字

??Min?SDK?Version :設(shè)置運行該程序所需的最低版本

3.2.?安裝、卸載程序

??Eclipse 安裝

右鍵點擊工程?–?Run?as?–?Android?Application

??虛擬機卸載

設(shè)置?–?應(yīng)用程序?–?管理應(yīng)用程序?–?選中要卸載的程序?–?卸載

3.3.?了解項目目錄結(jié)構(gòu)

??src :源代碼

??gen :系統(tǒng)自動生成的文件

R.java?中記錄了項目中各種資源 ID

??res :系統(tǒng)資源,所有文件都會在 R 文件生成資源 ID

drawable :圖片

layout :界面布局

values :數(shù)據(jù)

anim :定義動畫的 XML

raw :原生文件

??assets :資源路徑,不會在 R 文件注冊

??project.properties :供 Eclipse 使用,讀取該項目使用 Android 版本號。早期版本名為: default.properties

??AndroidManifest.xml :清單文件,在軟件安裝的時候被讀取

Android 中的四大組件( Activity 、 ContentProvider 、 BroadcastReceiver 、 Service )都需要在該文件中注冊

程序所需的權(quán)限也需要在此文件中聲明,例如:電話、短信、互聯(lián)網(wǎng)、訪問 SD

??bin :二進制文件,包括 class 、資源文件、 dex apk

??proguard.cfg:用來混淆代碼的配置文件,防止別人反編譯

3.4.?程序啟動過程

??Eclipse .java 源文件編譯成 .class

??使用 dx 工具將所有 .class 文件轉(zhuǎn)換為 .dex 文件

??再將 .dex 文件和所有資源打包成 .apk 文件

??將 .apk 文件安裝到虛擬機完成程序安裝

??啟動程序?–?開啟進程?–?開啟主線程

??創(chuàng)建 Activity 對象? –?執(zhí)行 OnCreate() 方法

??按照 main.xml 文件初始化界面

4.?演示案例

41.?查看程序錯誤信息

??Android 程序中如果出錯,錯誤不會顯示在 Console 中,而是顯示在 LogCat 界面下。可以從 window? –?show?view 中打開

??日志信息分為 5 個級別: verbose?>?debug?>?info?>?warn?>?error? 高級的包含低級的

??可以創(chuàng)建過濾器對日志進行過濾顯示,點擊綠色加號,可以按照 tag 、 pid level 進行篩選

4.2.?布局

??RelativeLayout (相對布局)

??android-sdk-windows/docs/guide/topics/ui/layout-objects.html#relativelayout

??TableLayout (表格布局)

android-sdk-windows/docs/guide/topics/ui/layout-objects.html#tablelayout

??FrameLayout (幀布局)

android-sdk-windows/docs/guide/topics/ui/layout-objects.html#framelayout

setRequestedOrientation(ActivityInfo. SCREEN_ORIENTATION_LANDSCAPE );

setRequestedOrientation(ActivityInfo. SCREEN_ORIENTATION_PORTRAIT );

4.3.?Junit

??項目中添加測試類

??在 AndroidManifest.xml 清單文件中添加配置

< instrumentation? android:targetPackage = "cn.itcast.junit"? android:name = "android.test.InstrumentationTestRunner"? />

< uses-library? android:name = "android.test.runner"? />

??定義一個類繼承 AndroidTestCase ,定義測試方法

??在 Outline 視圖下右鍵點擊測試方法? –?Run?as?–?Android?Junit?Test

??創(chuàng)建測試項目

??創(chuàng)建 Android?Test?Project

??輸入項目名,選擇一個已存在的工程, Eclipse 可以自動配置 Junit 環(huán)境

5.?文件操作( File XML SharedPreferences

5.1.?讀寫文件

??寫入文件到 SD

??需要在清單文件中注冊權(quán)限

< uses-permission? android:name = "android.permission.WRITE_EXTERNAL_STORAGE"? />

??2.1 版本以下的 SDCard 位置和 2.2 之后版本不同

可以通過Environment.getExternalStorageDirectory()獲取當(dāng)前 SDCard 位置,兼容所有版本

??獲取 SDCard 狀態(tài)

通過Environment.getExternalStorageState()方法獲取 SDCard 當(dāng)前狀態(tài)

常量?Environment.MEDIA_MOUNTED?為已安裝

??寫入文件

??通過 Context. openFileOutput(String?name,? int ?mode)可以獲取一個文件輸入流

name 為文件名, mode 為文件模式,有 4 種模式

輸出流指向路徑為: /data/data/ 包名 /files/?

??文件模式在 Context 中有定義常量

MODE_PRIVATE 私有

MODE_WORLD_READABLE 其他程序可讀(不可寫)

MODE_WORLD_WRITEABLE 其他程序可寫(不可讀)

模式可以組合使用,例如:MODE_WORLD_READABLE?+?MODE_WORLD_WRITEABLE

MODE_APPEND 追加

??讀取文件

??通過 Context. openFileInput(String?name)可以獲取一個文件輸入流

該輸入流可以讀取? /data/data/ 包名 /files/? 路徑下的文件

??獲取當(dāng)前程序 Files 文件路徑

ContextWrapper.getFilesDir()

5.2.?XML

??Pull 簡介

??常見的 XML 解析方式有三種, DOM 、 SAX 、 Pull Android 系統(tǒng)中推薦使用 Pull

??Pull 解析器是一個開源的 Java 項目, Android 系統(tǒng)內(nèi)部解析 XML 文件均為此種方式,也可用于 JavaEE 項目

??Android?SDK 中已經(jīng)集成了 Pull 解析器,無需添加任何 jar 文件

??Pull 解析器運行方式與 SAX 類似,提供各種事件的判斷

??官方網(wǎng)站: http://xmlpull.org/

??使用 Pull 解析器解析 XML 文件

??Xml.newPullParser()?獲得解析器

??parser.setInput(in,? "UTF-8" )?設(shè)置輸入流以及編碼

??parser.next()?獲取下一個解析事件,得到一個事件代碼

??XmlPullParser中定義了常量來標(biāo)識各種解析事件

START_DOCUMENT 、 END_DOCUMENT? START_TAG? 、END_TAG? TEXT?

??使用XmlSerializer寫出 XML

??使用以下方法生成 XML ,和 XML 文檔順序類似

startDocument

startTag

attribute

text

endTag

endDocument

5.3.?偏好設(shè)定( SharedPreferences )?

??在程序中保存一些配置參數(shù)的時候我們經(jīng)常使用 SharedPreferences

Context.getSharedPreferences(String?name, int ?mode)

該方法可以在 /data/data/<package>/shared_pref/ 目錄下創(chuàng)建一個以 name 命名的 xml 文件, mode 文件為模式

??存儲偏好

調(diào)用edit()方法可以獲取一個 Editor 對象,對數(shù)據(jù)進行存儲,存儲之后需要調(diào)用 commit()保存到文件

??讀取偏好

獲得SharedPreferences之后調(diào)用 getString() getInt() 等方法獲取其中設(shè)置的值

??在 Activity 中獲取 SharedPreferences

Activity 中可以調(diào)用 getPreferences( int ?mode)方法獲得一個SharedPreferences,文件名和 Activity 名一致

6.?數(shù)據(jù)庫( SQLite

6.1.?SQLite 特點

??Android 平臺中嵌入了一個關(guān)系型數(shù)據(jù)庫 SQLite ,和其他數(shù)據(jù)庫不同的是 SQLite 存儲數(shù)據(jù)時不區(qū)分類型

例如一個字段聲明為 Integer 類型,我們也可以將一個字符串存入,一個字段聲明為布爾型,我們也可以存入浮點數(shù)。

除非是主鍵被定義為 Integer ,這時只能存儲 64 位整數(shù)

??創(chuàng)建數(shù)據(jù)庫的表時可以不指定數(shù)據(jù)類型,例如:

CREATE?TABLE?person(id?INTEGER?PRIMARY?KEY?AUTOINCREMENT,?name?VARCHAR(20))

CREATE?TABLE?person(id?INTEGER?PRIMARY?KEY?AUTOINCREMENT,?name)

??SQLite 支持大部分標(biāo)準(zhǔn) SQL 語句,增刪改查語句都是通用的,分頁查詢語句和 MySQL 相同

SELECT?*?FROM?person?LIMIT?20?OFFSET?10

SELECT?*?FROM?person?LIMIT?10,20

6.2.?創(chuàng)建數(shù)據(jù)庫

??定義類繼承SQLiteOpenHelper

??聲明構(gòu)造函數(shù), 4 個參數(shù)

??重寫 onCreate ()方法

??重寫 upGrade() 方法

??注意: SQLite 數(shù)據(jù)庫中列一旦創(chuàng)建不能修改,如果一定要修改,需要重新創(chuàng)建表,拷貝數(shù)據(jù)

6.3.?CRUD操作

??和 JDBC 訪問數(shù)據(jù)庫不同,操作 SQLite 數(shù)據(jù)庫無需加載驅(qū)動,不用獲取連接,直接可以使用

獲取 SQLiteDatabase 對象之后通過該對象直接可以執(zhí)行 SQL 語句

SQLiteDatabase.execSQL()

SQLiteDatabase.rawQuery()

??getReadableDatabase()和getWritableDatabase()的區(qū)別

查看源代碼后我們發(fā)現(xiàn)getReadableDatabase()在通常情況下返回的就是getWritableDatabase() 拿到的數(shù)據(jù)庫

只有在拋出異常的時候才會以只讀方式打開

??數(shù)據(jù)庫對象緩存

getWritableDatabase() 方法最后會使用一個成員變量記住這個數(shù)據(jù)庫對象,下次打開時判斷是否重用

??SQLiteDatabase 封裝了 insert() 、 delete ()、 update ()、 query ()四個方法也可以對數(shù)據(jù)庫進行操作

這些方法封裝了部分 SQL 語句,通過參數(shù)進行拼接

6.4.?事務(wù)管理

??在使用 SQLite 數(shù)據(jù)庫時可以用 SQLiteDatabase類中定義的相關(guān)方法控制事務(wù)

beginTransaction()? 開啟事務(wù)

setTransactionSuccessful()? 設(shè)置事務(wù)成功標(biāo)記

endTransaction()? 結(jié)束事務(wù)

??endTransaction() 需要放在 finally 中執(zhí)行,否則事務(wù)只有到超時的時候才自動結(jié)束,會降低數(shù)據(jù)庫并發(fā)效率

7.?內(nèi)容提供者( ContentProvider

7.1.?什么是內(nèi)容提供者

??內(nèi)容提供者是 Android 中的四大組件之一,可以將應(yīng)用中的數(shù)據(jù)對外進行共享

??內(nèi)容提供者將數(shù)據(jù)的訪問方式統(tǒng)一,不必針對不同數(shù)據(jù)類型采取不同的訪問策略

??內(nèi)容提供者將數(shù)據(jù)封裝,只暴露出我們希望提供給其他程序的數(shù)據(jù)

??內(nèi)容提供者中數(shù)據(jù)更改可被監(jiān)聽

7.2.?創(chuàng)建內(nèi)容提供者

??定義類繼承 ContentProvider ,根據(jù)需要重寫內(nèi)部方法

??在清單文件的 <application> 節(jié)點下進行配置, <provider> 標(biāo)簽中需要指定 name authorities 屬性

name 為類名,包名從程序 Package 開始,以“ . ”開始

authorities :是訪問 Provider 時的路徑,要唯一

??URI 代表要操作的數(shù)據(jù),由 scheme 、 authorites 、 path 三部分組成

content:// cn.itcast. sqlite . provider / person

scheme :固定為 content ,代表訪問內(nèi)容提供者

authorites : <provider> 節(jié)點中的 authorites 屬性

path :程序定義的路徑,可根據(jù)業(yè)務(wù)邏輯定義

7.3.?完成 CRUD 方法

??當(dāng)程序調(diào)用 CRUD 方法時會傳入 Uri

??我們通過 Uri 判斷調(diào)用者要操作的數(shù)據(jù)

可以使用工具類 UriMatcher 來判斷 Uri

addURI 方法可以添加 Uri

match 方法可以匹配一個 Uri 判斷其類型

??根據(jù)業(yè)務(wù)邏輯操作數(shù)據(jù)

7.4.?訪問內(nèi)容提供者

??通過 Context 獲得 ContentResolver 對象

??調(diào)用 ContentResolver 對象的方法即可訪問內(nèi)容提供者

7.5.?完成 getType 方法

??如果返回數(shù)據(jù)是單條數(shù)據(jù):vnd.android.cursor.item?

??如果返回數(shù)據(jù)是多條數(shù)據(jù):vnd.android.cursor.dir

7.6.?監(jiān)聽內(nèi)容提供者數(shù)據(jù)變化

??在內(nèi)容提供者中可以通知其他程序數(shù)據(jù)發(fā)生變化

通過 Context 的 getContentResolver() 方法獲取 ContentResolver

調(diào)用其notifyChange() 方法發(fā)送數(shù)據(jù)修改通知

??在其他程序中可以通過ContentObserver監(jiān)聽數(shù)據(jù)變化

通過 Context 的 getContentResolver() 方法獲取 ContentResolver

調(diào)用其registerContentObserver() 方法指定對某個 Uri 注冊 ContentObserver

自定義ContentObserver,重寫 onChange() 方法獲取數(shù)據(jù)

7.7.?GIT 獲取源代碼

??資源地址

??Git

http://code.google.com/p/msysgit/

??源碼

https://github.com/android

注意:

GIT1.7.7 安裝后不能卸載,可以用其他版本覆蓋后再卸載。

使用 GIT 時不要使用中文目錄,否則 GIT?GUI 會報錯無法啟動。刪除 C 盤中 .gitconfig文件可以解決。

8.?網(wǎng)絡(luò)通信

8.1.?獲取文本數(shù)據(jù)

??通過 URL 對象封裝地址,打開一個 HttpURLConnection

??設(shè)置頭信息之后獲取響應(yīng)碼,如果成功返回 200 即可從 HttpURLConnection 中獲取輸入流讀取數(shù)據(jù)

??代碼過長屏幕顯示不全可以使用 <ScrollView> 進行顯示

??需要訪問網(wǎng)絡(luò)的權(quán)限

< uses-permission? android:name = "android.permission.INTERNET"? />

8.2.?獲取網(wǎng)絡(luò)圖片

??通過 BitmapFactory 的 decodeByteArray(byte[]?data,?int?offset,?int?length)方法將數(shù)據(jù)轉(zhuǎn)換為圖片對象

8.3.?獲取 XML

??使用 URL 封裝路徑,打開一個 HttpURLConnection

??設(shè)置頭信息之后獲取相應(yīng)碼,從輸入流中獲取數(shù)據(jù)

??使用 XmlPullPaser 解析

8.4.?獲取 JSON

??使用 URL 封裝路徑,打開一個 HttpURLConnection

??設(shè)置頭信息之后獲取相應(yīng)碼,從輸入流中獲取數(shù)據(jù)

??將數(shù)據(jù)轉(zhuǎn)為 String ,封裝成 JSONArray 對象

??遍歷 JSONArray 對象,調(diào)用獲取其中的 JSONObject

??再從 JSONObject 中獲取每個字段的信息

8.5.?發(fā)送 GET 請求

??拼接路徑和參數(shù),通過 URL 進行封裝,打開一個 HttpURLConnection ,發(fā)送請求

??如果參數(shù)是中文會出現(xiàn)亂碼

??URL 中包含的中文參數(shù)需要使用 URLEncoder 進行編碼

??服務(wù)器端如果是 TOMCAT ,其默認使用 ISO8859-1 編碼,接收時需要處理編碼問題

8.6.?發(fā)送 POST 請求

??通過 URL 打開一個 HttpURLConnection

??頭信息中除了超時時間和請求方式之外還必須設(shè)置Content-Type和Content-Length

??從 HttpURLConnection 獲得輸出流輸出參數(shù)數(shù)據(jù)

??服務(wù)端可以使用 request 對象的 setCharacterEncoding方法設(shè)置編碼

8.7.?發(fā)送 XML ,訪問 WebService

??發(fā)送 XML

??通過 URL 封裝路徑打開一個 HttpURLConnection

??設(shè)置請求方式,Content-Type和Content-Length

XML 文件的 Content-Type為:text/xml;?charset=UTF-8

??使用 HttpURLConnection 獲取輸出流輸出數(shù)據(jù)

??WebService

??WebService 是發(fā)布在網(wǎng)絡(luò)上的 API ,可以通過發(fā)送 XML 調(diào)用, WebService 返回結(jié)果也是 XML 數(shù)據(jù)

??WebService 沒有語言限制,只要可以發(fā)送 XML 數(shù)據(jù)和接收 XML 數(shù)據(jù)即可

?? http://www.webxml.com.cn ?網(wǎng)站上提供了一些 WebService 服務(wù),我們可以對其進行調(diào)用

?? http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo ?中提供了電話歸屬地查詢的使用說明

8.8.?HTTP 協(xié)議上傳文件

??搭建服務(wù)器,完成上傳功能

??使用瀏覽器上傳,查看請求信息

??HttpURLConnection

??通過 URL 封裝路徑打開一個 HttpURLConnection

??設(shè)置請求方式以及頭字段:Content-Type、Content-Length、Host

??拼接數(shù)據(jù)發(fā)送

??Socket

??使用 HttpURLConnection 發(fā)送時內(nèi)部有緩存機制,如果上傳較大文件會導(dǎo)致內(nèi)存溢出

??我們可以使用 Socket 發(fā)送 TCP 請求,將上傳數(shù)據(jù)分段發(fā)送

??HttpClient

public ? void ?upload(String?name,?String?password,?String?path)? throws ?Exception?{

//? 創(chuàng)建 HttpClient 對象

HttpClient?client?=? new ?HttpClient();

//? 設(shè)置超時事件

client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

//? 創(chuàng)建一個 Post 請求 ,? 指定路徑

PostMethod?postMethod?=? new ?PostMethod( "http://192.168.1.102:8080/14.Web/LoginServlet" );

//? 封裝每個表單項

Part[]?parts?=?{? new ?StringPart( "name" ,?name),? new ?StringPart( "password" ,?password),? new ?FilePart( "file" ,? new ?File(path))?};

//? Post 請求設(shè)置實體

postMethod.setRequestEntity( new ?MultipartRequestEntity(parts,?postMethod.getParams()));

//? 執(zhí)行 Post 請求

client.executeMethod(postMethod);

//?Post 請求是釋放資源

postMethod.releaseConnection();

}


8.9.?多線程斷點續(xù)傳下載器

??在下載的時候多個線程并發(fā)可以占用服務(wù)器端更多資源,從而加快下載速度

??手機端下載數(shù)據(jù)時難免會出現(xiàn)無信號斷線、電量不足等情況,所以需要斷點續(xù)傳功能

??根據(jù)下載數(shù)據(jù)長度計算每個線程下載的數(shù)據(jù)位置,程序中開啟多個線程并發(fā)下載

在請求頭中設(shè)置 Range 字段就可以獲取指定位置的數(shù)據(jù),例如: Range:?bytes=100-200

??在下載過程中記錄每個線程已拷貝數(shù)據(jù)的數(shù)量,如果下載中斷,下次啟動時從記錄位置繼續(xù)下載

??多線程下載

??進度條使用 <Progress> 進行配置

默認為圓形進度條,水平進度條需要配置 style 屬性, ?android:attr/progressBarStyleHorizontal

使用 android.R.attr. progressBarStyleHorizontal作為樣式

??當(dāng)點擊下載按鈕時開啟多線程下載,下載過程中修改進度條進度

設(shè)置最大刻度:setMax()

設(shè)置當(dāng)前進度:setProgress()

??斷點續(xù)傳

??斷點續(xù)傳需要在下載過程中記錄每條線程的下載進度

??每次下載開始之前先讀取數(shù)據(jù)庫,查詢是否有未完成的記錄,有就繼續(xù)下載,沒有則創(chuàng)建新記錄插入數(shù)據(jù)庫

??在每次向文件中寫入數(shù)據(jù)之后,在數(shù)據(jù)庫中更新下載進度

??下載完成之后刪除數(shù)據(jù)庫中下載記錄

??Handler 傳輸數(shù)據(jù)

??主線程中創(chuàng)建的 View 只能在主線程中修改,其他線程只能通過和主線程通信,在主線程中改變 View 數(shù)據(jù)

??我們使用 Handler 可以處理這種需求

主線程中創(chuàng)建 Handler ,重寫 handleMessage() 方法

新線程中使用 Handler 發(fā)送消息,主線程即可收到消息,并且執(zhí)行 handleMessage() 方法

??動態(tài)生成新 View

??創(chuàng)建 XML 文件,將要生成的 View 配置好

??獲取系統(tǒng)服務(wù) LayoutInflater ,用來生成新的 View

LayoutInflater?inflater?=?(LayoutInflater)?getSystemService( LAYOUT_INFLATER_SERVICE );

??使用inflate( int ?resource,?ViewGroup?root)方法生成新的 View

??調(diào)用當(dāng)前頁面中某個容器的 addView ,將新創(chuàng)建的 View 添加進來

9.?活動( Activity

9.1.?創(chuàng)建 Activity

??定義 Activity

??定義類繼承 Activity

??在 AndroidManifest.xml <application> 節(jié)點中聲明 <activity>

??顯式意圖創(chuàng)建方式

??構(gòu)造函數(shù),代碼少

new ?Intent( this ,?NewActivity. class );

??類名形式,靈活,可擴展性強

intent.setClassName( this ,? "cn.itcast.activity.NewActivity" );

??包名類名形式,可啟動其他程序中的 Activity

intent.setClassName( "cn.itcast.downloader" ,? "cn.itcast.downloader.MainActivity" );

??創(chuàng)建 Activity 并傳遞數(shù)據(jù)

??在意圖對象中封裝了一個 Bundle 對象,可以用來攜帶數(shù)據(jù)

??在新 Activity 中可以獲得意圖對象以獲取其中 Bundle 保存的數(shù)據(jù)

??創(chuàng)建 Activity 獲取返回數(shù)據(jù)

??使用startActivityForResult(Intent?intent,? int ?requestCode)?方法打開 Activity

??重寫onActivityResult( int ?requestCode,? int ?resultCode,?Intent?data)?方法

??新 Activity 中調(diào)用 setResult( int ?resultCode,?Intent?data)?設(shè)置返回數(shù)據(jù)之后,關(guān)閉 Activity 就會調(diào)用 onActivityResult方法

??隱式意圖創(chuàng)建 Activity

??顯式意圖是指在創(chuàng)建意圖時指定了組件,而隱式意圖則不指定組件,通過動作、類型、數(shù)據(jù)匹配對應(yīng)的組件

??在清單文件中定義 <activity> 時需要定義 <intent-filter> 才能被隱式意圖啟動

??<intent-filter> 中至少配置一個 <action> 和一個 <category> ,否則無法被啟動

??Intent 對象中設(shè)置的 action 、 category 、 data <intent-filter> 必須全部包含才能啟動

??<intent-filter> 中的 <action> 、 <category> <data> 都可以配置多個, Intent 對象中不用全部匹配,每樣匹配一個即可啟動

??如果一個意圖可以匹配多個 Activity Android 系統(tǒng)會提示選擇

9.2.?生命周期

??Acitivity 三種狀態(tài)

運行: activity 在最前端運行

暫停: activity 可見,但前端還有其他 acti vity ,被覆蓋一部分,或者前端 activity 透明

停止: activity 不可見,完全被覆蓋

??生命周期相關(guān)方法

onCreate :創(chuàng)建時調(diào)用,或者程序在暫停、停止?fàn)顟B(tài)下被殺死之后重新打開時也會調(diào)用

onStart onCreate 之后或者從停止?fàn)顟B(tài)恢復(fù)時調(diào)用

onResume onStart 之后或者從暫停狀態(tài)恢復(fù)時調(diào)用,從停止?fàn)顟B(tài)恢復(fù)時由于調(diào)用 onStart ,也會調(diào)用 onResume

onPause:進入暫停、停止?fàn)顟B(tài),或者銷毀時會調(diào)用

onStop:進入停止?fàn)顟B(tài),或者銷毀時會調(diào)用

onDestroy:銷毀時調(diào)用

onRestart :從停止?fàn)顟B(tài)恢復(fù)時調(diào)用

??保存信息相關(guān)方法

onSaveInstanceState:在 Activity 被動的摧毀或停止的時候調(diào)用,用于保存運行數(shù)據(jù),可以將數(shù)據(jù)存在在 Bundle

onRestoreInstanceState:該方法在 Activity 被重新繪制的時候調(diào)用,例如改變屏幕方向, savedInstanceState為onSaveInstanceState保存的數(shù)據(jù)

9.3.?啟動模式

??在 AndroidManifest.xml 中的 <activity> 標(biāo)簽中可以配置 android:launchMode 屬性,用來控制 Actvity 的啟動模式

??在 Android 系統(tǒng)中我們創(chuàng)建的 Acitivity 是以棧的形式呈現(xiàn)的

standard :每次調(diào)用 startActivity() 啟動時都會創(chuàng)建一個新的 Activity 放在棧頂

singleTop :如果啟動的 Activity 時,指定 Activity 不在棧頂就創(chuàng)建,如在棧頂,則不再創(chuàng)建

singleTask :如果啟動的 Activity 不存在就創(chuàng)建,如果存在直接跳轉(zhuǎn)到指定的 Activity 所在位置

singleInstance :如果啟動的 Activity 不存在就創(chuàng)建,如果存在就將指定的 Activity 移動到棧頂

9.4.?內(nèi)存管理

??Android 系統(tǒng)在運行多個進程時,如果系統(tǒng)資源不足,會強制結(jié)束一些進程。優(yōu)先選擇哪個進程來結(jié)束是有優(yōu)先級的。以下順序靠上的優(yōu)先結(jié)束

空:進程中所有 Activity 都已銷毀

后臺:進程中有一個停止?fàn)顟B(tài)的 Activity

可見:進程中有一個暫停狀態(tài)的 Activity

前臺:進程中正在運行一個 Activity

10.?廣播接收者 (BroadcastReceiver)

10.1.?定義廣播接收者

??定義類繼承 BroadcastReceiver ,重寫 onReceive 方法

??清單文件中聲明<receiver>,需要在其中配置<intent-filter>指定接收廣播的動作

??當(dāng)接收到匹配廣播之后就會執(zhí)行 onReceive 方法

??BroadcastReceiver 除了在清單文件中聲明,也可以在代碼中聲明,使用 registerReceiver方法注冊 Receiver

10.2.?發(fā)送廣播

??無序廣播

??使用sendBroadcast方法發(fā)送

??被所有廣播接收者接收,無序,不可中斷

??廣播時可設(shè)置接收者權(quán)限,僅當(dāng)接收者含有權(quán)限才能接收

??接收者的<receiver>也可設(shè)置發(fā)送方權(quán)限,只接收含有權(quán)限應(yīng)用的廣播

??有序廣播

??使用sendOrderedBroadcast方法發(fā)送

??接收者可以在<intent-filter>中定義android:priority定義優(yōu)先級,數(shù)字越大優(yōu)先級越高

??被各個廣播接收者逐個接收,中途可以中斷或者添加數(shù)據(jù)

abortBroadcast()??

getResultExtras( true ).putString( "data" ,? " 新增數(shù)據(jù) " );

10.3.?監(jiān)聽短信接收

??Android 系統(tǒng)在收到短信的時候會發(fā)送一條有序廣播,我們?nèi)绻x一個接收者接收這個廣播,就可以得到短信內(nèi)容,也可以攔截短信

??定義廣播接收者接收廣播 android.provider.Telephony.SMS_RECEIVED

??在 onReceive 方法內(nèi)部調(diào)用 Intent getExtras() 再調(diào)用 get(String) 獲取其中 pdus 字段,得到一個 Object[],其中每一個元素都是一個 byte[]

??通過SmsMessage類的createFromPdu方法創(chuàng)建 SmsMessage 對象

??從 SmsMessage 對象中即可獲取發(fā)送者號碼、短信內(nèi)容、發(fā)送時間等信息

??需要接收短信權(quán)限: < uses-permission? android:name ="android.permission.RECEIVE_SMS" />

??Android 系統(tǒng)中收到短信的通知是一個有序通知,我們?nèi)缧钄r截垃圾短信,可以配置較高的 priority,收到信息進行判斷是否abortBroadcast()

10.4.?監(jiān)聽呼出電話

??定義廣播接收者接收? android.intent.action.NEW_OUTGOING_CALL

??需要權(quán)限? < uses-permission? android:name = "android.permission.PROCESS_OUTGOING_CALLS" />

??在 onReceive 方法中使用 getResultData()?和? setResultData()? 方法獲取和設(shè)置電話號碼

10.5.?生命周期

??廣播接收者的生命周期是非常短暫的,在接收到廣播的時候創(chuàng)建, onReceive() 方法結(jié)束之后銷毀

??廣播接收者中不要做一些耗時的工作,否則會彈出 Application?No?Response 錯誤對話框

??最好也不要在廣播接收者中創(chuàng)建子線程做耗時的工作,因為廣播接收者被銷毀后進程就成為了空進程,很容易被系統(tǒng)殺掉

??耗時的較長的工作最好放在服務(wù)中完成

11.?服務(wù) (Service)

11.1.?基本概念

??Service 是一種在后臺運行,沒有界面的組件,由其他組件調(diào)用開始。

??創(chuàng)建 Service ,定義類繼承 Service AndroidManifest.xml 中定義 <service>

??開啟 Service ,在其他組件中調(diào)用 startService方法

??停止 Service ,調(diào)用 stopService方法

11.2.?電話錄音

需要權(quán)限: android.permission.READ_PHONE_STATE

TelephonyManager?manager?=?(TelephonyManager)?getSystemService( TELEPHONY_SERVICE );

manager.listen( new ?MyListener(),?PhoneStateListener. LISTEN_CALL_STATE );

private ? final ? class ?MyListener? extends ?PhoneStateListener?{

private ?String? num ;

private ?MediaRecorder? recorder ;

public ? void ?onCallStateChanged( int ?state,?String?incomingNumber)?{

switch ?(state)?{

case ?TelephonyManager. CALL_STATE_RINGING :

num ?=?incomingNumber;

break ;

case ?TelephonyManager. CALL_STATE_OFFHOOK :

try ?{

File? file ?=? new ?File(Environment.getExternalStorageDirectory(),? num ?+? "_" ?+?System.currentTimeMillis()?+? ".3gp" );

recorder ?=? new ?MediaRecorder();

recorder .setAudioSource(AudioSource. MIC );

recorder .setOutputFormat(OutputFormat. THREE_GPP );

recorder .setAudioEncoder(AudioEncoder. AMR_NB );

recorder .setOutputFile( file .getAbsolutePath());

recorder .prepare();

recorder .start();

}? catch ?(Exception?e)?{

e.printStackTrace();

}

break ;

case ?TelephonyManager. CALL_STATE_IDLE :

if ?( recorder ?!=? null )?{

recorder .stop();

recorder .release();

}

break ;

}

}

}

11.3.?綁定本地服務(wù)

??使用bindService綁定服務(wù),傳入一個自定義的ServiceConnection用來接收 IBinder

??定義一個業(yè)務(wù)接口,其中定義需要的使用的方法

??服務(wù)中自定義一個 IBinder 繼承 Binder 并實現(xiàn)業(yè)務(wù)接口,在 onBind方法中返回

??調(diào)用端將 IBinder 轉(zhuǎn)為接口類型,調(diào)用接口中的方法即可調(diào)用到服務(wù)中的方法

11.4.?綁定遠程服務(wù)

??遠程綁定服務(wù)時無法通過同一個接口來調(diào)用方法,這時就需要使用 AIDL 技術(shù)

??將接口擴展名改為“.aidl”

??去掉權(quán)限修飾符

??gen 文件夾下會生成同名接口

??將服務(wù)中自定義的 IBinder 類改為繼承接口中的 S tub

??ServiceConnection中返回的 IBinder 是代理對象,不能使用強轉(zhuǎn),改用 S tub.asInterface()

11.5.?AIDL 使用自定義類型

??AIDL 默認只能使用 Java 中基本數(shù)據(jù)類型和 String 、 List 、 Map List Map 中的元素類型也只能是這些類型。

??如果需要使用其他類型數(shù)據(jù),使用的類必須實現(xiàn) Parcelable 接口以完成序列化和反序列化工作

重寫?public?void?writeToParcel(Parcel?dest,?int?flags)

定義?public?static?final?Parcelable.Creator<Person>? CREATOR

??定義該類對應(yīng)的 AIDL

package? 包名

parcelable? 類名

??在接口 AIDL 中導(dǎo)入該類,注意:即使是同一個包也需要導(dǎo)入

12.?多媒體

12.1.?音頻播放器

12.2.?視頻播放器

screenSV .getHolder().setType(SurfaceHolder. SURFACE_TYPE_PUSH_BUFFERS );? //? 設(shè)置緩沖區(qū)數(shù)據(jù)

screenSV .getHolder().setKeepScreenOn( true );? //? 設(shè)置屏幕保持

screenSV .getHolder().addCallback( new ?MyCallback());? //? 設(shè)置回調(diào)函數(shù)

player .reset();

player .setDisplay( screenSV .getHolder()); //? 設(shè)置顯式

player .setDataSource( "/mnt/sdcard/1.mp4" ); //? 設(shè)置數(shù)據(jù)源

player .prepare(); //? 準(zhǔn)備

player .seekTo(position); //? 跳轉(zhuǎn)到指定位置

player .start();

12.3.?拍照

??需要權(quán)限

< uses-permission? android:name = "android.permission.CAMERA"? />

??打開攝像頭

Camera.open()

SDK2.3 之后支持前置攝像頭, open 方法可以接收一個 int 參數(shù),用來指定哪個攝像頭

??設(shè)置預(yù)覽顯示位置

setPreviewDisplay(SurfaceHolder?holder)

注意 SurfaceView 不在前端顯示的時候會被銷毀,恢復(fù)之后會重繪

??開始預(yù)覽?

startPreview()

將攝像頭拍攝畫面顯示在 SurfaceView 中,在此之前可對攝像頭進行參數(shù)配置

getParameters()?方法可以獲取攝像頭的相關(guān)參數(shù)Parameters,調(diào)用其內(nèi)部方法即可進行配置

??自動對焦

autoFocus(AutoFocusCallback?cb)

自動對焦是一個異步操作,如果我們向等待自動對焦結(jié)束之后才開始拍照,需要傳入一個回調(diào)對象,在其回調(diào)函數(shù)中調(diào)用拍照方法

??拍照?

takePicture(ShutterCallback?shutter,?PictureCallback?raw,?PictureCallback?jpeg)

拍照也是異步操作,需要通過回調(diào)函數(shù)來得到拍照之后的數(shù)據(jù)

注意拍照之后攝像頭不回自動回到預(yù)覽狀態(tài),需要重寫調(diào)用startPreview()方法

12.4.?錄像

??需要權(quán)限

< uses-permission? android:name = "android.permission.RECORD_AUDIO" />

< uses-permission? android:name = "android.permission.CAMERA" />

??創(chuàng)建MediaRecorder

new ?MediaRecorder()

??設(shè)置音頻輸入源

setAudioSource( int ?audio_source)

??設(shè)置視頻輸入源

setVideoSource( int ?video_source)

??設(shè)置輸出格式

setOutputFormat( int ?output_format)

??設(shè)置音頻編碼器

setAudioEncoder( int ?audio_encoder)

??設(shè)置視頻編碼器

setVideoEncoder( int ?video_encoder)

??設(shè)置預(yù)覽顯示位置

setPreviewDisplay(Surface?sv)

??設(shè)置輸出文件

setOutputFile(String?path)

??準(zhǔn)備錄制

prepare()

??開始錄制

start()

開始錄制之前需要結(jié)束攝像頭的預(yù)覽

??結(jié)束錄制釋放資源

stop()

release()

13.?通知

13.1.?吐司通知

??創(chuàng)建通知

Toast.makeText(Context?context,?CharSequence?text,? int ?duration)

Toast.makeText(Context?context,? int ?resId,? int ?duration)

??發(fā)送通知

show()

13.2.?狀態(tài)欄通知

??獲取系統(tǒng)通知服務(wù)?

NotificationManager?nm?=?(NotificationManager)?getSystemService( NOTIFICATION_SERVICE )

??創(chuàng)建通知

通過構(gòu)造函數(shù)創(chuàng)建 :? Notification( int ?icon,?CharSequence?tickerText,? long ?when)

icon:? 通知的圖片資源 ID

tickerText:? 狀態(tài)欄中顯示的消息內(nèi)容

when:? 時間

??創(chuàng)建PendingIntent以供點擊時發(fā)送

PendingIntent.getActivity(Context?context,? int ?requestCode,?Intent?intent,? int ?flags)

context:? 當(dāng)前上下文

requestCode:? 請求碼

intent:? 點擊時要發(fā)送的意圖

flags:? 類型 ,? PendingIntent中提供了常量選擇

??設(shè)置通知點擊事件

調(diào)用Notification?對象方法 :? setLatestEventInfo(Context?context,?CharSequence?contentTitle,?CharSequence?contentText,?PendingIntent?contentIntent)

context:? 當(dāng)前上下文

contentTitle:? 標(biāo)題

contentText:?內(nèi)容

contentIntent:? 點擊時觸發(fā)的意圖

??設(shè)置通知點擊后清除

設(shè)置Notification?對象屬性?n. flags ?=?Notification. FLAG_AUTO_CANCEL ;

??發(fā)送消息

調(diào)用Notification對象方法 :? notify( int ?id,?Notification?notification)

13.3.?對話框通知

??普通對話框

new ?AlertDialog.Builder( this )? //

.setTitle( " 普通對話框 " )? //

.setMessage( " 普通內(nèi)容 " )? //

.setCancelable( false )? //

.setPositiveButton( "YES" ,?listener)? // ? listener?為 OnClickListener? 監(jiān)聽器對象 ,? 監(jiān)聽按鈕被選中

.setNeutralButton( "CANCEL" ,?listener)? //

.setNegativeButton( "NO" ,?listener)? //

.show();

??列表對話框

new ?AlertDialog.Builder( this )? //

.setTitle( " 列表對話框 " )? //

.setCancelable( false )? //

.setItems( items ,?listener)? // ? listener?為 OnClickListener? 監(jiān)聽器對象 ,? 監(jiān)聽列表項被選中

.show();

??單選對話框

new ?AlertDialog.Builder( this )? //

.setTitle( " 單選對話框 " )? //

.setCancelable( false )? //

.setSingleChoiceItems( items ,?0,?choiceLinstener)? // ? 0,? 為默認選中索引 ,? choiceLinstener?為? OnClickListener? 監(jiān)聽器對象 ,? 監(jiān)聽單選按鈕被選中

.setPositiveButton( " 確定 " ,?positiveLinstener)? // ? positiveLinstener?為? OnClickListener? 監(jiān)聽器對象 ,? 監(jiān)聽確定按鈕點擊

.show();

??多選對話框

new ?AlertDialog.Builder( this )? //

.setTitle( " 多選對話框 " )? //

.setCancelable( false )? //

.setMultiChoiceItems( items ,?checkedArr,?choiceListener)? // ? checkedArr?為默認選中 ,? choiceListener?為? OnMultiChoiceClickListener? 監(jiān)聽器對象 ,? 監(jiān)聽多選按鈕被選中

.setPositiveButton( " 確定 " ,?positiveLinstener)? // ? positiveLinstener?為? OnClickListener? 監(jiān)聽器對象 ,? 監(jiān)聽確定按鈕點擊

.show();

??進度對話框

ProgressDialog?dialog?=? new ?ProgressDialog( this );

dialog.setProgressStyle(ProgressDialog. STYLE_HORIZONTAL ); //?設(shè)置進度條樣式

dialog.setTitle( " 下載中 " );

dialog.setMessage( " 請稍候 ..." );

dialog.setCancelable( false );

dialog.setMax(100);

dialog.show();

dialog.setProgress(10); //? 設(shè)置進度

dialog.dismiss(); //? 對話框結(jié)束

關(guān)于通知的文檔位置: android-sdk-windows/docs/guide/topics/ui/notifiers/index.html

14.?常用 UI

14.1.?列表視圖 (ListView)

??XML 配置

??在主界面中配置 <ListView> 標(biāo)簽

??在 res/layout/ 文件夾下創(chuàng)建一個新的 xml 文件指定每個條目的布局

??Java 代碼構(gòu)建 ListView

??獲取 ListView 對象

??設(shè)置一個 Adapter

BaseAdapter :實現(xiàn)內(nèi)部抽象方法

SimpleAdapter:以 List<Map<String,??>> 形式封裝數(shù)據(jù)

SimpleCursorAdapter:以 Cursor 對象封裝數(shù)據(jù), Cursor 中需要有“ _id ”一列

??添加 OnItemClickListener

調(diào)用 ListView 的 getItemAtPosition(int) 方法可以獲取封裝數(shù)據(jù)的容器

如果傳入的是 BaseAdapter ,獲取到的就是我們自定義方法中返回的內(nèi)容

如果傳入的是SimpleAdapter,獲取到的就是一個 Map<String,??>

如果傳入的是SimpleCursorAdapter,獲得到的就是一個 Cursor ,并且 Cursor 以指向選中的一條記錄

14.2.?單選 (RadioGroup)

??定義 <RadioGroup>

??在 <RadioGroup> 中定義 <RadioButton> <Button>

??處理 Button 的點擊事件

??根據(jù) ID 獲取 RadioGroup 對象,調(diào)用其 getCheckedRadioButtonId()方法可以獲取其中被選中的RadioGroup ID

??代碼

< RadioGroup

???? android:id = "@+id/lessonsRG"

???? android:layout_width = "fill_parent"

???? android:layout_height = "wrap_content"

???? android:orientation = "horizontal" ? >

???? < RadioButton

???????? android:id = "@+id/javaRB"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:text = "Java" ? />

???? < RadioButton

???????? android:id = "@+id/netRB"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:text = ".Net" ? />

???? < RadioButton

???????? android:id = "@+id/phpRB"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:text = "PHP" ? />

???? < Button

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:onClick = " onR radioClick"

???????? android:text = " 確定 " ? />

</ RadioGroup >

public ? void ?onRradioClick(View?view)?{

RadioGroup?lessonRG?=?(RadioGroup)?findViewById(R.id. lesson s RG );

int ?id?=?lessonRG.getCheckedRadioButtonId();? //? 獲取選中的 id

String?msg?=? null ;

switch ?(id)?{

case ?R.id. javaRB :

msg?=? "Java" ;

break ;

case ?R.id. netRB :

msg?=? ".Net" ;

break ;

case ?R.id. phpRB :

msg?=? "PHP" ;

break ;

}

Toast.makeText( this ,?msg,?0).show();

}

14.3.?多選 (CheckBox)

??定義若干 <CheckBox> 和一個 <Button>

??處理 Button 的點擊事件

??根據(jù) ID 獲取每個 CheckBox ,調(diào)用其 isChecked()方法判斷是否被選中

??代碼

< LinearLayout

???? android:layout_width = "fill_parent"

???? android:layout_height = "wrap_content" ? >

???? < CheckBox

???????? android:id = "@+id/javaCB"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:text = "Java" ? />

???? < CheckBox

???????? android:id = "@+id/netCB"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:text = ".Net" ? />

???? < CheckBox

???????? android:id = "@+id/phpCB"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:text = "PHP" ? />

???? < Button

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:layout_weight = "1"

???????? android:onClick = "checkboxOnClick"

???????? android:text = " 確定 " ? />

</ LinearLayout >

public ? void ?checkboxOnClick(View?view)?{

CheckBox?javaCB?=?(CheckBox)?findViewById(R.id. javaCB );

CheckBox?netCB?=?(CheckBox)?findViewById(R.id. netCB );

CheckBox?phpCB?=?(CheckBox)?findViewById(R.id. phpCB );

StringBuilder?sb?=? new ?StringBuilder();

sb.append(javaCB.isChecked()???javaCB.getText()?+? "?" ?:? "" );

sb.append(netCB.isChecked()???netCB.getText()?+? "?" ?:? "" );

sb.append(phpCB.isChecked()???phpCB.getText()?+? "?" ?:? "" );

Toast.makeText( this ,?sb,?0).show();

}

14.4.?下拉列表 ( Spinner )

??定義 <Spinner> 標(biāo)簽

??創(chuàng)建一個適配器

??獲取 Spinner 標(biāo)簽,調(diào)用 setAdapter(SpinnerAdapter?adapter)方法設(shè)置一個適配器

??調(diào)用setOnItemSelectedListener(OnItemSelectedListener?listener)方法設(shè)置監(jiān)聽器監(jiān)聽選中事件

??XML 配置

< Spinner

???? android:id = "@+id/spinner"

???? android:layout_width = "fill_parent"

???? android:layout_height = "wrap_content" ? />

??使用字符串構(gòu)建適配器

private ? void ?setSpinnerByString()?{

final ?Spinner?spinner?=?(Spinner)?findViewById(R.id. spinner );

ArrayAdapter<String>?adapter?=? new ?ArrayAdapter<String>( this ,?android.R.layout. simple_spinner_item );? // ? 設(shè)置樣式

adapter.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item ); //? 設(shè)置下拉后樣式

adapter.add( "Java" );

adapter.add( ".Net" );

adapter.add( "PHP" );

spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener( new ?OnItemSelectedListener()?{

public ? void ?onItemSelected(AdapterView<?>?parent,?View?view,? int ?position,? long ?id)?{

String?selection?=?(String)?spinner.getItemAtPosition(position);

Toast.makeText(getApplicationContext(),?selection,?0).show();

}

public ? void ?onNothingSelected(AdapterView<?>?parent)?{

}

});

}

??使用 JavaBean 構(gòu)建適配器

private ? void ?setSpinnerByJavaBean()?{

final ?Spinner?spinner?=?(Spinner)?findViewById(R.id. spinner );

ArrayAdapter<User>?adapter?=? new ?ArrayAdapter<User>( this ,?android.R.layout. simple_spinner_item );

adapter.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item );

adapter.add( new ?User(1,? "lhm" ,? "lhm@itcast.cn" ));

adapter.add( new ?User(2,? "yzk" ,? "yzk@itcast.cn" ));

adapter.add( new ?User(3,? "hsp" ,? "hsp@itcast.cn" ));

spinner .setAdapter(adapter);

spinner .setOnItemSelectedListener( new ?OnItemSelectedListener()?{

public ? void ?onItemSelected(AdapterView<?>?parent,?View?view,? int ?position,? long ?id)?{

User?selection?=?(User)? spinner .getItemAtPosition(position);

Toast.makeText(getApplicationContext(),?selection.getName(),?0).show();

}

public ? void ?onNothingSelected(AdapterView<?>?parent)?{

}

});

}

??使用資源文件構(gòu)建適配器

< string-array ? name = "items" >

???? < item > Java </ item >

???? < item > .Net </ item >

???? < item > PHP </ item >

</ string-array >

private ? void ?setSpinnerByResource()?{

final ?Spinner?spinner?=?(Spinner)?findViewById(R.id. spinner );

ArrayAdapter<CharSequence>?adapter?=?ArrayAdapter.createFromResource( this ,?R.array. items ,?android.R.layout. simple_spinner_item );

adapter.setDropDownViewResource(android.R.layout. simple_spinner_dropdown_item );

spinner .setAdapter(adapter);

spinner .setOnItemSelectedListener( new ?OnItemSelectedListener()?{

public ? void ?onItemSelected(AdapterView<?>?parent,?View?view,? int ?position,? long ?id)?{

CharSequence?selection?=?(CharSequence)? spinner .getItemAtPosition(position);

Toast.makeText(getApplicationContext(),?selection,?0).show();

}

public ? void ?onNothingSelected(AdapterView<?>?parent)?{

}

});

}

??自定義適配器樣式

<? xml ? version = "1.0" ? encoding = "utf-8" ?>

< LinearLayout ? xmlns:android = "http://schemas.android.com/apk/res/android"

???? android:layout_width = "match_parent"

???? android:layout_height = "match_parent"

???? android:orientation = "horizontal" ? >

???? < ImageView

???????? android:layout_width = "50dp"

???????? android:layout_height = "50dp"

???????? android:src = "@android:drawable/ic_delete" ? />

???? < TextView

???????? android:id = "@+id/content"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "wrap_content"

???????? android:textSize = "50sp" ? />

</ LinearLayout >

private ? void ?setSpinnerByCustom()?{

final ?Spinner?spinner?=?(Spinner)?findViewById(R.id. spinner );

ArrayAdapter<CharSequence>?adapter?=? new ?ArrayAdapter<CharSequence>( this ,?R.layout. item ,?R.id. content );

adapter.add( "Java" );

adapter.add( ".Net" );

adapter.add( "PHP" );

spinner .setAdapter(adapter);

spinner .setOnItemSelectedListener( new ?OnItemSelectedListener()?{

public ? void ?onItemSelected(AdapterView<?>?parent,?View?view,? int ?position,? long ?id)?{

String?selection?=?(String)? spinner .getItemAtPosition(position);

Toast.makeText(getApplicationContext(),?selection,?0).show();

}

public ? void ?onNothingSelected(AdapterView<?>?parent)?{

}

});

}

14.5.?菜單 (Menu)

??添加菜單項

??重寫 Actvity 的 onCreateOptionsMenu(Menu?menu)方法

??添加菜單項

調(diào)用方法中參數(shù) menu 的 add(CharSequence?title)?方法

??添加子菜單

調(diào)用 menu 對象的 addSubMenu( final ?CharSequence?title)

該方法返回一個SubMenu對象

??添加子菜單的菜單項

調(diào)用SubMenu對象的add(CharSequence?title)?方法

??處理菜單點擊事件

??重寫 Activity 的 onOptionsItemSelected(MenuItem?item)?方法

參數(shù) item 即為被選中的菜單項

??代碼

public ? boolean ?onCreateOptionsMenu(Menu?menu)?{

menu.add( " 增加 " );

menu.add( " 修改 " );

menu.add( " 刪除 " );

SubMenu?subMenu?=?menu.addSubMenu( " 查詢 " );

subMenu.add( " 按照序號查詢 " );

subMenu.add( " 按照姓名查詢 " );

subMenu.add( " 按照郵箱查詢 " );

return ? super .onCreateOptionsMenu(menu);

}

public ? boolean ?onOptionsItemSelected(MenuItem?item)?{

Toast.makeText( this ,?item.getTitle(),?0).show();

return ? super .onOptionsItemSelected(item);

}

14.6.?內(nèi)容提示文本框 ( AutoCompleteTextView)

??單次提示

??代碼

< AutoCompleteTextView

???? android:id = "@+id/actv"

???? android:layout_width = "fill_parent"

???? android:layout_height = "wrap_content"

???? android:completionThreshold = "1" ? />

private ? void ?setAutoCompleteTextView()?{

AutoCompleteTextView?actv?=?(AutoCompleteTextView)?findViewById(R.id. actv );

String[]?items?=?{? "tom" ,? "tony" ,? "terry" ,? " 張孝祥 " ,? " 張海軍 " ,? " 張澤華 " ?};

ArrayAdapter<String>?adapter?=? new ?ArrayAdapter<String>( this ,?android.R.layout. simple_dropdown_item_1line ,?items);

actv.setAdapter(adapter);

}

??多次提示

??代碼

< MultiAutoCompleteTextView

???? android:id = "@+id/mactv"

???? android:layout_width = "fill_parent"

???? android:layout_height = "wrap_content"

android:completionThreshold = "1" ? />

private ? void ?setMultiAutoCompleteTextView()?{

MultiAutoCompleteTextView?mactv?=?(MultiAutoCompleteTextView)?findViewById(R.id. mactv );

String[]?items?=?{? "tom" ,? "tony" ,? "terry" ,? " 張孝祥 " ,? " 張海軍 " ,? " 張澤華 " ?};

ArrayAdapter<String>?adapter?=? new ?ArrayAdapter<String>( this ,?android.R.layout. simple_dropdown_item_1line ,?items);

mactv.setAdapter(adapter);

mactv.setTokenizer( new ?MultiAutoCompleteTextView.CommaTokenizer());

}

14.7.?手勢識別 ( GestureOverlayView)

??創(chuàng)建手勢庫

??導(dǎo)入 SDK 中的工程

android-sdk-windows\samples\android-8\GestureBuilder

這個工程不能直接導(dǎo)入,需要添加三個配置文件:.classpath、.project、default.properties

??將工程部署到手機中,創(chuàng)建手勢庫

手勢庫會存儲在手機 SD 卡的根目錄,文件名為: gestures

??代碼

將gestures放入 res/raw 文件夾下

< android.gesture.GestureOverlayView

???? android:id = "@+id/gov"

???? android:layout_width = "fill_parent"

???? android:layout_height = "fill_parent"

android:gestureStrokeType = "multiple" ? />

GestureOverlayView?gov?=?(GestureOverlayView)?findViewById(R.id. gov );

final ?GestureLibrary?library?=?GestureLibraries.fromRawResource( this ,?R.raw. gestures );

library.load();

gov.addOnGesturePerformedListener( new ?OnGesturePerformedListener()?{

public ? void ?onGesturePerformed(GestureOverlayView?overlay,?Gesture?gesture)?{

ArrayList<Prediction>?list?=?library.recognize(gesture);

for ?(Prediction?p?:?list)

System. out .println(p. name ?+? ":?" ?+?p. score );

}

});

14.8.?網(wǎng)頁視圖 (WebView)

??代碼

< WebView

???? android:id = "@+id/webView"

???? android:layout_width = "fill_parent"

???? android:layout_height = "fill_parent" ? />

WebView?webView?=?(WebView)?findViewById(R.id. webView );

webView.getSettings().setBuiltInZoomControls( true ); //? 放大縮小按鈕

webView.getSettings().setJavaScriptEnabled( true ); //?JS 允許?

webView.setWebChromeClient( new ?WebChromeClient()); //?Chrome 內(nèi)核

webView.loadUrl( "http://192.168.1.10 0 :8080" );

15.?樣式與主題

15.1.?樣式

??定義樣式

??設(shè)置樣式,在 values 文件夾下的任意文件中的 <resources>中配置 <style> 標(biāo)簽

< style? name = " style 1" >

< item? name = "android:layout_width" > fill_parent </ item >

< item? name = "android:layout_height" > wrap_content </ item >

</ style >

??繼承樣式,在 <style> 標(biāo)簽中配置屬性 parent

< style? name = " style2 "? parent = "@style/ style 1" >

< item? name = "android:textColor" > #FF0000 </ item >

</ style >

??繼承樣式,在 name 中引用其他樣式

< style? name = " style 2. style 3" >

< item? name = "android:textSize" > 30sp </ item >

</ style >

??使用樣式

??在 layout 文件的標(biāo)簽中配置 style 屬性

< Button??

style = "@style/ style2.style3 "

???? android:text = " 這是 一個按鈕 "

/>

15.2.?主題

??定義過的樣式也可以應(yīng)用在 <activity> <application> 標(biāo)簽中,使用 theme屬性盡心配置

< style? name = "theme" >

< item? name = "android:windowNoTitle" > true </ item >

< item? name = "android:windowFullscreen" > ?android:windowNoTitle </ item >

</ style >

< activity? android:name = ".MainActivity"

?????????????????? android:label = "@string/app_name"

?????????????????? android:theme = "@style/theme"

>

???? 表示引用其他屬性的值

??@? 表示訪問資源文件

??如果使用 android 內(nèi)置的樣式, IDE 自動提示的“ _ ”要替換成“ .

16.?國際化與屏幕適配

16.1.?國際化

??在 values drawable 文件夾后加上語言以及地區(qū)名,程序中需要國際化的部分使用資源 ID

values-en-rUK

values-en-rUS

values-zh-rCN

values-zh-rTW

??匹配規(guī)則

在匹配資源時先會找語言、地區(qū)完全匹配的

如果沒有地區(qū)匹配的,則查找語言匹配的

如果沒有語言匹配的則找默認 values

16.2.?屏幕適配

??在 layout 文件夾后加上分辨率,系統(tǒng)會根據(jù)屏幕尺寸自動選擇

注意分辨率中的乘號是“ x ”不是“ *

??如果沒有匹配的分辨率會找默認 layout 文件夾

17.?動畫特效

17.1.?Frame

??通過多個畫面連續(xù)播放實現(xiàn)動畫效果

??詳見文檔?android-sdk-windows/docs/guide/topics/resources/animation-resource.html

17.2.?Tween

??將某個組件以漸變的方式實現(xiàn)透明、縮放、移動、旋轉(zhuǎn)等動畫效果

??詳見文檔?android-sdk-windows/docs/guide/topics/resources/animation-resource.html

17.3.?使用動畫切換 Activity

??在 startActivity() 方法調(diào)用之后調(diào)用 overridePendingTransition( int ?enterAnim,? int ?exitAnim)方法

enterAnim?進入的動畫資源 id

exitAnim?退出的動畫 資源 id

17.4.?使用動畫翻頁

??XML 配置

< ViewFlipper

android:id = "@+id/viewFlipper"

android:layout_width = "fill_parent"

android:layout_height = "fill_parent"

>

??? < ImageView

???? android:layout_width = "wrap_content"

???? android:layout_height = "wrap_content"

??? android:src = "@drawable/bb2"

??? />

??? < ImageView

???? android:layout_width = "wrap_content"

???? android:layout_height = "wrap_content"

??? android:src = "@drawable/bb3"

??? />

</ ViewFlipper >

??Java 代碼

public ? boolean ?onTouchEvent(MotionEvent?event)?{

ViewFlipper?viewFlipper?=?(ViewFlipper)?findViewById(R.id. viewFlipper );

switch ?(event.getAction())?{

case ?MotionEvent. ACTION_DOWN :

start ?=?event.getX();

break ;

case ?MotionEvent. ACTION_UP :

float ?end?=?event.getX();

if ?(end?>? start )?{

viewFlipper .setInAnimation( this ,?R.anim. previous_enter );

viewFlipper .setOutAnimation( this ,?R.anim. previous_exit );

viewFlipper .showPrevious();

}? else ? if ?(end?<? start )?{

viewFlipper .setInAnimation( this ,?R.anim. next_enter );

viewFlipper .setOutAnimation( this ,?R.anim. next_exit );

viewFlipper .showNext();

}

break ;

}

return ? super .onTouchEvent(event);

}

18.?其他

18.1.?傳感器

??傳感器參數(shù)

??傳感器類型

方向 Sensor. TYPE_ORIENTATION

加速 Sensor. TYPE_ACCELEROMETER

光線 Sensor. TYPE_LIGHT

磁場 Sensor. TYPE_MAGNETIC_FIELD

距離 Sensor. TYPE_PROXIMITY

溫度 Sensor. TYPE_TEMPERATURE

??傳感器反應(yīng)速度

SensorManager. SENSOR_DELAY_FASTEST

SensorManager. SENSOR_DELAY_GAME

SensorManager. SENSOR_DELAY_UI

SensorManager. SENSOR_DELAY_NORMAL

??使用方向傳感器

??獲得傳感器管理器

SensorManager?manager?=?(SensorManager)?getSystemService( SENSOR_SERVICE );

??獲得方向傳感器

Sensor?sensor?=?manager.getDefaultSensor(Sensor. TYPE_ORIENTATION );

??注冊監(jiān)聽器

manager .registerListener( listener ,? sensor ,?SensorManager. SENSOR_DELAY_NORMAL );

??監(jiān)聽器

private ? final ? class ?MySensorEventListener? implements ?SensorEventListener?{

public ? void ?onSensorChanged(SensorEvent?event)?{

System. out .println(event. values [0]);

}

public ? void ?onAccuracyChanged(Sensor?sensor,? int ?accuracy)?{

}

}

??取消監(jiān)聽器

manager .unregisterListener( listener ,? sensor );

18.2.?觸摸事件

??拖拽

??XML 配置

< ImageView

???? android:id = "@+id/image"

???? android:layout_width = "wrap_content"

???? android:layout_height = "wrap_content"

???? android:scaleType = "matrix"

???? android:src = "@drawable/image" ? />

??Java代碼

ImageView?imageView?=?(ImageView)?findViewById(R.id. image );

imageView.setOnTouchListener( new ?MyOnTouchListener());

private ? class ?MyOnTouchListener? implements ?OnTouchListener?{

private ? float ? x ;

private ? float ? y ;

private ?Matrix? currentMatrix ?=? new ?Matrix(); //? 用來操作圖片的矩陣

private ?Matrix? oldMatrix ?=? new ?Matrix();

public ? boolean ?onTouch(View?v,?MotionEvent?event)?{

switch ?(event.getAction())?{

case ?MotionEvent. ACTION_DOWN :? //? 按下時

x ?=?event.getX();? //? 獲取 x 軸坐標(biāo)

y ?=?event.getY(); //? 獲取 y 軸坐標(biāo)

oldMatrix .set( imageView .getImageMatrix()); //? 記住位置

break ;

case ?MotionEvent. ACTION_MOVE :? //? 移動時

currentMatrix .set( oldMatrix );? //? 設(shè)置成按下時記住的位置

currentMatrix .postTranslate(event.getX()?-? x ,?event.getY()?-? y ); //? 改變位置

break ;

}

imageView .setImageMatrix( currentMatrix ); //? 移動圖片

return ? true ;

}

}

??多點觸摸

private ? class ?MyOnTouchListener? implements ?OnTouchListener?{

private ? float ? x ; //? 圖片移動前的 x 軸坐標(biāo)

private ? float ? y ; //? 圖片移動前的 y 軸坐標(biāo)

private ?Matrix? currentMatrix ?=? new ?Matrix();? //? 用來移動圖片的矩陣

private ?Matrix? oldMatrix ?=? new ?Matrix(); //? 圖片移動前的矩陣

private ? int ? type ; //? 操作類型 ,? 一根手指觸摸還是兩根手指觸摸

private ? float ? start ; //? 第二根手指按下時的距離

private ? float ? end ; //? 兩根手指移動后的距離

private ?PointF? point ; //? 放大時的中心點

public ? boolean ?onTouch(View?v,?MotionEvent?event)?{

switch ?(event.getAction()?&?MotionEvent. ACTION_MASK )?{

case ?MotionEvent. ACTION_DOWN :

type ?=?1;

x ?=?event.getX();

y ?=?event.getY();

oldMatrix .set( imageView .getImageMatrix());

break ;

case ?MotionEvent. ACTION_MOVE :

currentMatrix .set( oldMatrix );

if ?( type ?==?1)?{? //?1 根手指觸摸

currentMatrix .postTranslate(event.getX()?-? x ,?event.getY()?-? y );

}? else ?{? //?2 跟手指觸摸

end ?=?countDistance(event);? //? 計算結(jié)束時距離

float ?scale?=? end ?/? start ;? //? 計算縮放比例

currentMatrix .postScale(scale,?scale,? point . x ,? point . y );? //? 設(shè)置縮放

}

break ;

case ?MotionEvent. ACTION_POINTER_DOWN :

type ?=?2;

start ?=?countDistance(event);? //? 計算開始時距離

point ?=?countPoint(event);? //? 計算中心點

oldMatrix .set( imageView .getImageMatrix());

break ;

}

imageView .setImageMatrix( currentMatrix );? //? 改變圖片

return ? true ;

}

}

public ? float ?countDistance(MotionEvent?event)?{

float ?a?=?event.getX(1)?-?event.getX(0);? //?x 軸距離

float ?b?=?event.getY(1)?-?event.getY(0);? //?y 軸距離

return ?( float )?Math.sqrt(a?*?a?+?b?*?b);? //? 勾股定理

}

public ?PointF?countPoint(MotionEvent?event)?{

float ?x?=?(event.getX(0)?+?event.getX(1))?/?2;? //?x 軸中間點

float ?y?=?(event.getY(0)?+?event.getY(1))?/?2;? //?y 軸中間點

return ? new ?PointF(x,?y);

}

18.3.?讀取 SIM

??電話號碼、運營商信息

??需要權(quán)限

< uses-permission? android:name = "android.permission.READ_PHONE_STATE"? />

< uses-permission? android:name = "android.permission.ACCESS_COARSE_LOCATION"? />

??Java 代碼

TelephonyManager?manager?=?(TelephonyManager)?getContext().getSystemService(Context. TELEPHONY_SERVICE );

System. out .println( " 電話號碼 :?" ?+?manager.getLine1Number());

System. out .println( " 運營商編號 :?" ?+?manager.getNetworkOperator());

System. out .println( " 運營商名字 :?" ?+?manager.getNetworkOperatorName());

??聯(lián)系人

??需要權(quán)限

< uses-permission? android:name = "android.permission.READ_ CONTACTS "? />

< uses-permission? android:name = "android.permission. WRITE _ CONTACTS "? />

??Java 代碼

Uri?uri?=?Uri.parse( "content://icc/adn" );

Cursor?c?=?getContentResolver().query(uri,? null ,? null ,? null ,? null );

while ?(c.moveToNext())

System. out .println(c.getString(c.getColumnIndex( "name" ))?+? ":?" ?+?c.getString(c.getColumnIndex( "number" )));

??通話記錄

??需要權(quán)限

< uses-permission? android:name = "android.permission.READ_ CONTACTS "? />

< uses-permission? android:name = "android.permission. WRITE _ CONTACTS "? />

??Java 代碼

Uri?uri?=?CallLog.Calls. CONTENT_URI ;

Cursor?c?=?getContentResolver().query(uri,? null ,? null ,? null ,? null );

while ?(c.moveToNext())

System. out .println(c.getString(c.getColumnIndex( "number" ))?+? ":?" ?+?c.getString(c.getColumnIndex( "type" )));

??源代碼

ContactsProvider\src\com\android\providers\contacts\?CallLogProvider.java

18.4.?安裝程序

??需要權(quán)限

< uses-permission? android:name = "android.permission. INSTALL_PACKAGES "? />

??Java 代碼

File?file?=? new ?File(Environment.getExternalStorageDirectory(),? " test .apk" );

Intent?intent?=? new ?Intent();

intent.setAction(Intent. ACTION_VIEW );

intent.setDataAndType(Uri.fromFile(file),? "application/vnd.android.package-archive" );

startActivity(intent);

18.5.?關(guān)閉程序

??殺死當(dāng)前進程

Process.killProcess(Process.myPid());

??退出虛擬機

System.exit(0);

??根據(jù)包名關(guān)閉后臺進程

ActivityManager?manager?=?(ActivityManager)?getSystemService( ACTIVITY_SERVICE );

manager.restartPackage( "cn.itcast.test" );

< uses-permission? android:name = "android.permission.RESTART_PACKAGES"? />

18.6.?使用 HTML 構(gòu)建界面

??HTML

<! DOCTYPE ? html ? PUBLIC ? "-//W3C//DTD?HTML?4.01?Transitional//EN" ? "http://www.w3.org/TR/html4/loose.dtd" >

< html >

< head >

< meta ? http-equiv = "Content-Type" ? content = "text/html;?charset=UTF-8" >

< title > Insert?title?here </ title >

< script ? type = "text/javascript" >

function ?show(jsondata)?{

var ?jsonobjs?=?eval(jsondata);

var ?table?=?document.getElementById( "personTable" );

for ?(? var ?y?=?0;?y? < ?jsonobjs.length;?y++)?{

var ?tr?=?table.insertRow(table.rows.length);

var ?td1?=?tr.insertCell(0);

var ?td2?=?tr.insertCell(1);

td2.align?=? "center" ;

var ?td3?=?tr.insertCell(2);

td3.align?=? "center" ;

td1.innerHTML?=?jsonobjs[y].name;

td2.innerHTML?=?jsonobjs[y].amount;

td3.innerHTML?=? "<a?href='javascript:contact.call(\"" ?+?jsonobjs[y].phone?+? "\")'>" ?+?jsonobjs[y].phone?+? "</a>" ;

}

}

</ script >

</ head >

< body ? onload = "javascript:contact.show C ontacts()" >

< table ? border = "0" ? width = "100%" ? id = "personTable" ? cellspacing = "0" >

< tr >

< td ? width = "30%" > 姓名 </ td >

< td ? width = "30%" ? align = "center" > 存款 </ td >

< td ? align = "center" > 電話 </ td >

</ tr >

</ table >

</ body >

</ html >

??XML 代碼

< WebView

???????? android:id = "@+id/webView"

???????? android:layout_width = "fill_parent"

???????? android:layout_height = "fill_parent" ? />

??Java 代碼

public ? class ?MainActivity? extends ?Activity?{

private ?WebView? webView ;

public ? void ?onCreate(Bundle?savedInstanceState)?{

super .onCreate(savedInstanceState);

setContentView(R.layout. main );

webView ?=?(WebView)?findViewById(R.id. webView );

webView .getSettings().setJavaScriptEnabled( true );

webView .loadUrl( "file:///android_asset/index.html" );

webView .addJavascriptInterface( new ?Contact(),? "contact" );

}

private ? final ? class ?Contact?{

public ? void ?showContacts()?{

String?json?=? "[{\"name\":\"zxx\",?\"amount\":\"99999\",?\"phone\":\"18600012345\"}]" ;

webView .loadUrl( "javascript:show('" ?+?json?+? "')" );

}

public ? void ?call(String?phone)?{

startActivity( new ?Intent(Intent. ACTION_CALL ,?Uri.parse( "tel:" ?+?phone)));

}

}

}

18.7.?apk 文件反編譯

??使用解壓縮工具打開 apk 文件,找到其中 dex 文件

??創(chuàng)建 Java 工程,導(dǎo)入 dex2jar中的所有 jar 文件

??創(chuàng)建運行環(huán)境運行其中pxb.android.dex2jar.v3.Main?類,?指定 dex 文件地址,會在同目錄下生成 jar 文件

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/xxr2015/p/7462579.html

總結(jié)

以上是生活随笔為你收集整理的Android基础知识精简版(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

久久精品丝袜高跟鞋 | 国产色视频一区二区三区 | 日韩精品成人一区二区三区 | 国产熟妇高潮叫床视频播放 | 国产成人人人97超碰超爽8 | 国内少妇偷人精品视频 | 亚洲精品国产第一综合99久久 | 天堂一区人妻无码 | 久久久久av无码免费网 | 欧美人妻一区二区三区 | 中文字幕av日韩精品一区二区 | 成人女人看片免费视频放人 | 久久综合九色综合欧美狠狠 | 乱人伦人妻中文字幕无码久久网 | 无码国产色欲xxxxx视频 | 欧美三级不卡在线观看 | 日日碰狠狠躁久久躁蜜桃 | v一区无码内射国产 | 帮老师解开蕾丝奶罩吸乳网站 | 四虎影视成人永久免费观看视频 | 九月婷婷人人澡人人添人人爽 | 99久久婷婷国产综合精品青草免费 | 又黄又爽又色的视频 | 18无码粉嫩小泬无套在线观看 | 国产亚洲人成在线播放 | 国内精品人妻无码久久久影院 | 老熟妇乱子伦牲交视频 | 亚洲日本在线电影 | 99久久久国产精品无码免费 | 啦啦啦www在线观看免费视频 | 嫩b人妻精品一区二区三区 | 亚洲精品中文字幕 | 2020最新国产自产精品 | 熟妇人妻无码xxx视频 | 青草视频在线播放 | 性欧美videos高清精品 | 国产又爽又猛又粗的视频a片 | 精品国精品国产自在久国产87 | 日本丰满护士爆乳xxxx | 99久久人妻精品免费二区 | 西西人体www44rt大胆高清 | 风流少妇按摩来高潮 | 蜜桃臀无码内射一区二区三区 | 欧美第一黄网免费网站 | 我要看www免费看插插视频 | 国产精品久免费的黄网站 | 中文字幕人妻无码一夲道 | 精品人人妻人人澡人人爽人人 | 少妇激情av一区二区 | 国产香蕉尹人综合在线观看 | 九九热爱视频精品 | 亚拍精品一区二区三区探花 | 亚洲人成网站在线播放942 | 色老头在线一区二区三区 | 亚洲无人区一区二区三区 | 无码人妻精品一区二区三区下载 | 人妻无码久久精品人妻 | 男人和女人高潮免费网站 | 成人欧美一区二区三区黑人免费 | 亚洲熟熟妇xxxx | 熟女少妇人妻中文字幕 | 亚洲gv猛男gv无码男同 | 131美女爱做视频 | 香港三级日本三级妇三级 | 男女爱爱好爽视频免费看 | 自拍偷自拍亚洲精品10p | 人人超人人超碰超国产 | 亚洲国产精品久久久久久 | 97无码免费人妻超级碰碰夜夜 | 国产精品无套呻吟在线 | 成熟妇人a片免费看网站 | 在线亚洲高清揄拍自拍一品区 | 4hu四虎永久在线观看 | 欧美性色19p | 天堂а√在线中文在线 | 成人无码精品一区二区三区 | 色婷婷久久一区二区三区麻豆 | 男人和女人高潮免费网站 | 欧美变态另类xxxx | 波多野结衣av在线观看 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲一区二区三区香蕉 | 成人av无码一区二区三区 | 亚欧洲精品在线视频免费观看 | 国内少妇偷人精品视频免费 | 亚洲精品一区二区三区四区五区 | 中文毛片无遮挡高清免费 | 久久97精品久久久久久久不卡 | 精品一区二区三区无码免费视频 | 亚洲精品久久久久中文第一幕 | 波多野42部无码喷潮在线 | 无码毛片视频一区二区本码 | 亚洲精品综合一区二区三区在线 | 国产精品鲁鲁鲁 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产在线aaa片一区二区99 | 午夜福利不卡在线视频 | 高清国产亚洲精品自在久久 | 久久精品成人欧美大片 | 2019午夜福利不卡片在线 | 国产真实乱对白精彩久久 | 99视频精品全部免费免费观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲爆乳无码专区 | 亚洲人成网站免费播放 | 久久国产自偷自偷免费一区调 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩av激情在线观看 | 精品国精品国产自在久国产87 | 国产国产精品人在线视 | 六十路熟妇乱子伦 | 精品国产aⅴ无码一区二区 | 麻花豆传媒剧国产免费mv在线 | 性做久久久久久久免费看 | 色老头在线一区二区三区 | 亚洲日韩av片在线观看 | 亚洲国产综合无码一区 | 精品人妻人人做人人爽 | 欧美猛少妇色xxxxx | 亚洲精品中文字幕 | 久久久久久国产精品无码下载 | 蜜桃无码一区二区三区 | 婷婷丁香五月天综合东京热 | 中文字幕乱码亚洲无线三区 | 内射爽无广熟女亚洲 | 精品 日韩 国产 欧美 视频 | 美女极度色诱视频国产 | 久久午夜无码鲁丝片 | 性生交大片免费看女人按摩摩 | 亚洲精品一区二区三区大桥未久 | 国产精品对白交换视频 | 中文字幕无码日韩专区 | 欧美喷潮久久久xxxxx | 亚洲精品一区国产 | 久久精品国产日本波多野结衣 | 中文字幕乱妇无码av在线 | 亚洲国产精品无码一区二区三区 | 亚洲成av人片天堂网无码】 | 亚洲精品国产精品乱码不卡 | 一本大道久久东京热无码av | 久久熟妇人妻午夜寂寞影院 | 精品成人av一区二区三区 | 久久久久亚洲精品中文字幕 | 国产黑色丝袜在线播放 | 99精品视频在线观看免费 | 日韩av无码一区二区三区不卡 | 扒开双腿疯狂进出爽爽爽视频 | 久久伊人色av天堂九九小黄鸭 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 99er热精品视频 | 少妇人妻偷人精品无码视频 | 国产成人精品三级麻豆 | 亚洲欧美色中文字幕在线 | 无码人妻丰满熟妇区五十路百度 | 久久国产精品_国产精品 | 欧美人与禽zoz0性伦交 | 国产精品亚洲专区无码不卡 | 麻豆精品国产精华精华液好用吗 | 久久久久成人精品免费播放动漫 | 亚洲欧美国产精品专区久久 | 一本色道久久综合亚洲精品不卡 | 女人色极品影院 | а√天堂www在线天堂小说 | 亚洲成a人片在线观看无码 | 国产av一区二区三区最新精品 | 美女极度色诱视频国产 | 无码人妻精品一区二区三区不卡 | 国产av剧情md精品麻豆 | 蜜桃av抽搐高潮一区二区 | 丰满少妇人妻久久久久久 | 日本一本二本三区免费 | 久久午夜无码鲁丝片秋霞 | 国産精品久久久久久久 | 久久亚洲国产成人精品性色 | 国内少妇偷人精品视频 | 亚洲国产精华液网站w | 日本高清一区免费中文视频 | 亚洲午夜福利在线观看 | 中文字幕乱码人妻无码久久 | 97久久精品无码一区二区 | 国产成人精品视频ⅴa片软件竹菊 | 乱码av麻豆丝袜熟女系列 | 国产精品无码一区二区三区不卡 | 亚洲国产精品久久久久久 | 伊人久久大香线蕉午夜 | 国产成人精品久久亚洲高清不卡 | 夜精品a片一区二区三区无码白浆 | 精品一区二区三区无码免费视频 | 国产成人无码av一区二区 | 激情内射日本一区二区三区 | 精品无人区无码乱码毛片国产 | 精品久久久久久亚洲精品 | 国产成人无码av在线影院 | 亚洲一区二区观看播放 | 午夜肉伦伦影院 | 国产精品99爱免费视频 | 成人精品天堂一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 久久久无码中文字幕久... | 久久99精品国产麻豆 | 秋霞成人午夜鲁丝一区二区三区 | 最近免费中文字幕中文高清百度 | 亚洲中文无码av永久不收费 | 一本久道久久综合婷婷五月 | 欧美性生交活xxxxxdddd | 伊人久久大香线蕉av一区二区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 77777熟女视频在线观看 а天堂中文在线官网 | 精品久久综合1区2区3区激情 | 99久久人妻精品免费一区 | 国产人妻久久精品二区三区老狼 | 97人妻精品一区二区三区 | 亚拍精品一区二区三区探花 | 成人免费视频在线观看 | 99麻豆久久久国产精品免费 | 人妻有码中文字幕在线 | 国产黑色丝袜在线播放 | 草草网站影院白丝内射 | 中文字幕乱妇无码av在线 | 亚洲一区二区三区香蕉 | 无遮挡啪啪摇乳动态图 | 久久久久免费精品国产 | 精品久久久久久人妻无码中文字幕 | 久久国产精品二国产精品 | 东京热一精品无码av | 九九综合va免费看 | 亚洲精品成人福利网站 | 无遮挡啪啪摇乳动态图 | 国产熟女一区二区三区四区五区 | 乱人伦人妻中文字幕无码 | 国产精品99久久精品爆乳 | 精品国产aⅴ无码一区二区 | 日本乱人伦片中文三区 | 亚洲人成人无码网www国产 | 性欧美熟妇videofreesex | 欧美人与动性行为视频 | 色一情一乱一伦一视频免费看 | 四虎国产精品免费久久 | 亚洲男人av天堂午夜在 | av香港经典三级级 在线 | 国产av无码专区亚洲a∨毛片 | 草草网站影院白丝内射 | 国产在线一区二区三区四区五区 | 日本护士xxxxhd少妇 | 国产麻豆精品精东影业av网站 | 人人妻人人澡人人爽人人精品 | 少妇性l交大片欧洲热妇乱xxx | 蜜臀av无码人妻精品 | 妺妺窝人体色www婷婷 | 超碰97人人射妻 | 成人免费视频视频在线观看 免费 | 亚洲综合色区中文字幕 | 丰满少妇女裸体bbw | 国产欧美熟妇另类久久久 | 国产在线精品一区二区高清不卡 | 国产精品亚洲专区无码不卡 | 成人av无码一区二区三区 | 国产精品无码久久av | 无码av最新清无码专区吞精 | 亚洲国产成人av在线观看 | 亚洲色成人中文字幕网站 | 人人澡人人妻人人爽人人蜜桃 | 久久精品人人做人人综合试看 | 久久久久成人精品免费播放动漫 | 精品国产av色一区二区深夜久久 | 中文字幕无码日韩专区 | 亲嘴扒胸摸屁股激烈网站 | 台湾无码一区二区 | 老司机亚洲精品影院无码 | 欧美日韩在线亚洲综合国产人 | 中文字幕无线码免费人妻 | 亚洲精品无码人妻无码 | 精品水蜜桃久久久久久久 | 欧美丰满老熟妇xxxxx性 | 又色又爽又黄的美女裸体网站 | 国产成人精品优优av | 国产偷自视频区视频 | 99久久久国产精品无码免费 | 日本又色又爽又黄的a片18禁 | 国产成人无码区免费内射一片色欲 | 久9re热视频这里只有精品 | 精品国产国产综合精品 | 欧洲熟妇精品视频 | 久久99精品国产麻豆蜜芽 | 国内老熟妇对白xxxxhd | 亚洲va中文字幕无码久久不卡 | 999久久久国产精品消防器材 | 成人一在线视频日韩国产 | 国产情侣作爱视频免费观看 | 内射欧美老妇wbb | 亚洲 日韩 欧美 成人 在线观看 | 久久久久成人精品免费播放动漫 | 国产区女主播在线观看 | 免费观看的无遮挡av | 久久精品国产日本波多野结衣 | 国产精品无码一区二区三区不卡 | 色综合久久88色综合天天 | 精品人妻av区 | 久久精品无码一区二区三区 | 狠狠综合久久久久综合网 | 中文字幕人妻无码一区二区三区 | 国产麻豆精品精东影业av网站 | 亚洲精品美女久久久久久久 | 欧美一区二区三区视频在线观看 | 亚洲gv猛男gv无码男同 | 伦伦影院午夜理论片 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久99精品久久久久久 | 波多野结衣av一区二区全免费观看 | 帮老师解开蕾丝奶罩吸乳网站 | 国产成人无码av片在线观看不卡 | 伊人久久婷婷五月综合97色 | 日韩无套无码精品 | 粗大的内捧猛烈进出视频 | 欧美日韩亚洲国产精品 | 扒开双腿疯狂进出爽爽爽视频 | 久久精品国产日本波多野结衣 | 男女作爱免费网站 | 国产色精品久久人妻 | 亚洲精品国产精品乱码不卡 | 一本久道久久综合婷婷五月 | 人人妻人人澡人人爽欧美一区九九 | 国产99久久精品一区二区 | 动漫av网站免费观看 | 免费网站看v片在线18禁无码 | 曰本女人与公拘交酡免费视频 | 青青青爽视频在线观看 | 好屌草这里只有精品 | 亚洲精品一区二区三区大桥未久 | 欧美老妇交乱视频在线观看 | 日本爽爽爽爽爽爽在线观看免 | 欧洲熟妇色 欧美 | 人妻无码久久精品人妻 | 88国产精品欧美一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 国产亚洲精品久久久闺蜜 | 国产高潮视频在线观看 | 欧美国产日韩久久mv | 一区二区三区乱码在线 | 欧洲 | 国产人妻大战黑人第1集 | 色五月五月丁香亚洲综合网 | 精品人人妻人人澡人人爽人人 | 亚洲成色在线综合网站 | 熟女少妇人妻中文字幕 | 人妻少妇精品无码专区二区 | 国产精品人人妻人人爽 | 丁香啪啪综合成人亚洲 | 久久综合给合久久狠狠狠97色 | 18黄暴禁片在线观看 | 国产内射爽爽大片视频社区在线 | 高清无码午夜福利视频 | 99精品无人区乱码1区2区3区 | 色欲av亚洲一区无码少妇 | 理论片87福利理论电影 | 国产亚洲欧美在线专区 | 亚洲国产成人av在线观看 | 欧美亚洲国产一区二区三区 | 青青青手机频在线观看 | 人妻无码αv中文字幕久久琪琪布 | 精品国产麻豆免费人成网站 | 一区二区三区高清视频一 | 在线а√天堂中文官网 | 久久久久免费看成人影片 | 久久亚洲精品成人无码 | 欧美日韩综合一区二区三区 | 久久精品人人做人人综合试看 | 精品午夜福利在线观看 | 国产精品久久国产精品99 | 亚洲第一无码av无码专区 | 东京热无码av男人的天堂 | 无码成人精品区在线观看 | 99久久婷婷国产综合精品青草免费 | 人妻熟女一区 | 啦啦啦www在线观看免费视频 | 性欧美牲交xxxxx视频 | 欧美日韩一区二区三区自拍 | 久激情内射婷内射蜜桃人妖 | 国产精品美女久久久久av爽李琼 | 亚洲人成网站在线播放942 | 免费乱码人妻系列无码专区 | 激情内射日本一区二区三区 | 亚洲中文字幕久久无码 | 九月婷婷人人澡人人添人人爽 | 精品夜夜澡人妻无码av蜜桃 | 日日噜噜噜噜夜夜爽亚洲精品 | 免费乱码人妻系列无码专区 | 在线观看国产午夜福利片 | 亚洲欧美国产精品久久 | 日本成熟视频免费视频 | 在线视频网站www色 | 少女韩国电视剧在线观看完整 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产在线无码精品电影网 | 狠狠噜狠狠狠狠丁香五月 | 亚洲色偷偷偷综合网 | 无码人妻少妇伦在线电影 | 67194成是人免费无码 | 中文字幕av伊人av无码av | 乱码午夜-极国产极内射 | 又大又硬又黄的免费视频 | 国产av无码专区亚洲a∨毛片 | 国产熟妇另类久久久久 | 九一九色国产 | 天堂久久天堂av色综合 | 久久国产精品_国产精品 | 中文字幕 亚洲精品 第1页 | 色老头在线一区二区三区 | 亚洲中文字幕在线无码一区二区 | 亚洲成av人在线观看网址 | 我要看www免费看插插视频 | 动漫av一区二区在线观看 | 蜜桃无码一区二区三区 | 无码国模国产在线观看 | 性欧美牲交xxxxx视频 | 中文字幕无码免费久久99 | 国产精品毛多多水多 | 久久精品国产一区二区三区肥胖 | 亚洲精品美女久久久久久久 | 亚洲成在人网站无码天堂 | 99久久人妻精品免费一区 | 伊人久久婷婷五月综合97色 | 国产乡下妇女做爰 | 最新版天堂资源中文官网 | 国产午夜亚洲精品不卡下载 | 久久天天躁狠狠躁夜夜免费观看 | 久久精品中文闷骚内射 | 国产精品爱久久久久久久 | 日日夜夜撸啊撸 | 国产 精品 自在自线 | 成人精品视频一区二区 | 一本大道久久东京热无码av | 疯狂三人交性欧美 | 无码国内精品人妻少妇 | 无码av最新清无码专区吞精 | 亚洲娇小与黑人巨大交 | 成人免费视频一区二区 | 好爽又高潮了毛片免费下载 | 国产麻豆精品精东影业av网站 | 免费男性肉肉影院 | 国产精品亚洲а∨无码播放麻豆 | 成人影院yy111111在线观看 | 亚洲成av人片天堂网无码】 | 国产婷婷色一区二区三区在线 | 又湿又紧又大又爽a视频国产 | 久久97精品久久久久久久不卡 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产精品内射视频免费 | 亚洲一区二区观看播放 | 欧洲精品码一区二区三区免费看 | 国产香蕉尹人视频在线 | 无码国产色欲xxxxx视频 | 丰满少妇女裸体bbw | 亚洲精品久久久久久久久久久 | 在线精品亚洲一区二区 | 国产一区二区三区影院 | 99国产欧美久久久精品 | 国产人妻人伦精品1国产丝袜 | 亚洲国产精品成人久久蜜臀 | 天天拍夜夜添久久精品 | 久久97精品久久久久久久不卡 | 青青草原综合久久大伊人精品 | 无码人妻精品一区二区三区不卡 | 国产精品99久久精品爆乳 | 精品一区二区三区无码免费视频 | 99riav国产精品视频 | 欧美人与动性行为视频 | 天天综合网天天综合色 | 欧美猛少妇色xxxxx | 亚洲欧美日韩成人高清在线一区 | 亚洲精品综合五月久久小说 | 国产成人无码午夜视频在线观看 | 久久精品丝袜高跟鞋 | 亚洲s色大片在线观看 | 老头边吃奶边弄进去呻吟 | 麻豆国产人妻欲求不满谁演的 | 日日天日日夜日日摸 | 77777熟女视频在线观看 а天堂中文在线官网 | 成人av无码一区二区三区 | 久久国语露脸国产精品电影 | 99久久精品日本一区二区免费 | 亚洲 欧美 激情 小说 另类 | 鲁一鲁av2019在线 | 夫妻免费无码v看片 | 成人av无码一区二区三区 | 日日麻批免费40分钟无码 | 久久久久亚洲精品中文字幕 | 偷窥日本少妇撒尿chinese | 97人妻精品一区二区三区 | 成年女人永久免费看片 | 扒开双腿吃奶呻吟做受视频 | 成人性做爰aaa片免费看 | 亚洲精品国产精品乱码不卡 | 欧美日韩在线亚洲综合国产人 | av小次郎收藏 | 九九综合va免费看 | 国产电影无码午夜在线播放 | 日本护士xxxxhd少妇 | 国产偷国产偷精品高清尤物 | 97se亚洲精品一区 | 欧美xxxxx精品 | 成人精品视频一区二区三区尤物 | 午夜熟女插插xx免费视频 | 亚洲s色大片在线观看 | 日产国产精品亚洲系列 | 中文字幕无码日韩专区 | 草草网站影院白丝内射 | 久久人人爽人人爽人人片av高清 | 亚洲色偷偷男人的天堂 | 日本www一道久久久免费榴莲 | 色综合久久中文娱乐网 | 在线播放无码字幕亚洲 | 无码毛片视频一区二区本码 | 亚洲阿v天堂在线 | 国产香蕉尹人综合在线观看 | 熟妇激情内射com | 国产激情综合五月久久 | 成人无码视频在线观看网站 | 无码福利日韩神码福利片 | 在教室伦流澡到高潮hnp视频 | 亚洲日韩av一区二区三区四区 | 成人欧美一区二区三区黑人 | 精品成人av一区二区三区 | 无码中文字幕色专区 | 无码帝国www无码专区色综合 | 国产精品亚洲а∨无码播放麻豆 | 牲欲强的熟妇农村老妇女 | 国产综合久久久久鬼色 | 亚洲国产精品久久久天堂 | 2019nv天堂香蕉在线观看 | 久久午夜无码鲁丝片午夜精品 | 天堂一区人妻无码 | 香蕉久久久久久av成人 | 国产一精品一av一免费 | 中文字幕亚洲情99在线 | 久久综合给合久久狠狠狠97色 | 久久国产精品精品国产色婷婷 | 亚洲国产精品美女久久久久 | 特级做a爰片毛片免费69 | 1000部夫妻午夜免费 | 一个人免费观看的www视频 | 中文字幕日韩精品一区二区三区 | 丰满少妇高潮惨叫视频 | 欧美国产日产一区二区 | 波多野结衣av在线观看 | 日本在线高清不卡免费播放 | 国产亚洲精品久久久久久国模美 | 麻花豆传媒剧国产免费mv在线 | 日韩精品成人一区二区三区 | 色偷偷人人澡人人爽人人模 | 日本一本二本三区免费 | 欧美日韩一区二区三区自拍 | 无码人中文字幕 | 国产精品亚洲专区无码不卡 | 一二三四社区在线中文视频 | 人妻天天爽夜夜爽一区二区 | 色婷婷欧美在线播放内射 | 国产精品成人av在线观看 | 男女爱爱好爽视频免费看 | 美女极度色诱视频国产 | 高清国产亚洲精品自在久久 | 日本精品人妻无码77777 天堂一区人妻无码 | 激情综合激情五月俺也去 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品久久国产三级国 | 国精产品一品二品国精品69xx | www成人国产高清内射 | 人人澡人人透人人爽 | 日本xxxx色视频在线观看免费 | 中文字幕无码av激情不卡 | 色一情一乱一伦一区二区三欧美 | 六月丁香婷婷色狠狠久久 | 色综合视频一区二区三区 | 十八禁视频网站在线观看 | 伦伦影院午夜理论片 | 亚洲精品成a人在线观看 | 丰满人妻翻云覆雨呻吟视频 | 精品人妻人人做人人爽 | 水蜜桃av无码 | 日本熟妇人妻xxxxx人hd | 乱人伦人妻中文字幕无码久久网 | 精品久久久久香蕉网 | 日韩欧美群交p片內射中文 | 日本饥渴人妻欲求不满 | 亚洲精品欧美二区三区中文字幕 | 亚洲人亚洲人成电影网站色 | 国产女主播喷水视频在线观看 | 国产精品香蕉在线观看 | 一本大道久久东京热无码av | 秋霞成人午夜鲁丝一区二区三区 | 丝袜人妻一区二区三区 | 亚洲中文字幕无码一久久区 | 亚洲精品一区三区三区在线观看 | 性欧美疯狂xxxxbbbb | 久久精品国产大片免费观看 | 无码午夜成人1000部免费视频 | 国産精品久久久久久久 | ass日本丰满熟妇pics | 亚洲日韩一区二区三区 | 久久久国产精品无码免费专区 | 综合人妻久久一区二区精品 | 精品一区二区三区无码免费视频 | 亚洲欧美精品伊人久久 | 国产精品办公室沙发 | 久久久久久久女国产乱让韩 | 欧美日韩人成综合在线播放 | 特大黑人娇小亚洲女 | 成人亚洲精品久久久久 | 久久久av男人的天堂 | 天天综合网天天综合色 | 中文字幕人妻无码一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 人人妻人人澡人人爽欧美一区九九 | 国产真实伦对白全集 | 欧美日韩视频无码一区二区三 | 一本大道久久东京热无码av | 亚洲精品一区二区三区大桥未久 | 成人av无码一区二区三区 | 色爱情人网站 | 国产无遮挡吃胸膜奶免费看 | 人人澡人摸人人添 | 人妻少妇精品久久 | 天天做天天爱天天爽综合网 | 日韩精品a片一区二区三区妖精 | 亚洲啪av永久无码精品放毛片 | 国产精品美女久久久网av | 欧美国产日韩久久mv | 亚洲热妇无码av在线播放 | 亚洲国产精华液网站w | 麻豆av传媒蜜桃天美传媒 | 欧美黑人巨大xxxxx | 少妇太爽了在线观看 | 色情久久久av熟女人妻网站 | 亚洲一区二区三区四区 | 成人欧美一区二区三区 | 日产国产精品亚洲系列 | 欧美日韩一区二区三区自拍 | 免费无码一区二区三区蜜桃大 | 日韩av无码一区二区三区 | 7777奇米四色成人眼影 | 国产熟妇高潮叫床视频播放 | 少妇无套内谢久久久久 | 狠狠色丁香久久婷婷综合五月 | 草草网站影院白丝内射 | 女人高潮内射99精品 | 2019午夜福利不卡片在线 | 日本又色又爽又黄的a片18禁 | 国产精品第一区揄拍无码 | 精品国产aⅴ无码一区二区 | 日本大乳高潮视频在线观看 | 99视频精品全部免费免费观看 | 精品人妻人人做人人爽夜夜爽 | 日韩精品乱码av一区二区 | 少妇性荡欲午夜性开放视频剧场 | 中文字幕无码日韩欧毛 | 国产无套粉嫩白浆在线 | 亚洲欧美国产精品专区久久 | 少妇无码吹潮 | 在线 国产 欧美 亚洲 天堂 | 九一九色国产 | 国产人成高清在线视频99最全资源 | 亚洲 a v无 码免 费 成 人 a v | 欧美丰满少妇xxxx性 | 亚洲成av人片在线观看无码不卡 | 亚洲国产精品一区二区美利坚 | 亚洲精品一区二区三区大桥未久 | 影音先锋中文字幕无码 | 成 人影片 免费观看 | 国内精品九九久久久精品 | 丰满人妻一区二区三区免费视频 | 天下第一社区视频www日本 | 国产精品久久精品三级 | 免费观看黄网站 | 秋霞成人午夜鲁丝一区二区三区 | 久久国产精品_国产精品 | 5858s亚洲色大成网站www | 国产一区二区三区影院 | 国产无套粉嫩白浆在线 | 国内少妇偷人精品视频免费 | 久久久久久国产精品无码下载 | 精品国产一区av天美传媒 | 亚洲中文字幕久久无码 | 中文无码精品a∨在线观看不卡 | 欧美精品一区二区精品久久 | 四虎永久在线精品免费网址 | 色综合久久久久综合一本到桃花网 | 日韩精品无码一区二区中文字幕 | 亚洲精品久久久久久久久久久 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久久无码中文字幕久... | 无码人中文字幕 | 国产激情一区二区三区 | 毛片内射-百度 | 蜜臀aⅴ国产精品久久久国产老师 | 小sao货水好多真紧h无码视频 | 亚洲精品午夜国产va久久成人 | 无遮挡国产高潮视频免费观看 | 亚洲国产欧美日韩精品一区二区三区 | 午夜福利不卡在线视频 | 国模大胆一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲人成网站免费播放 | 亚洲男人av香蕉爽爽爽爽 | 亚洲乱码中文字幕在线 | 亚洲中文字幕av在天堂 | 久久久久国色av免费观看性色 | 国产精品免费大片 | 久久久久成人精品免费播放动漫 | 午夜福利一区二区三区在线观看 | 国产超级va在线观看视频 | 日韩av无码中文无码电影 | 成人av无码一区二区三区 | 国产亚洲视频中文字幕97精品 | 啦啦啦www在线观看免费视频 | 亚洲色欲色欲天天天www | 白嫩日本少妇做爰 | 十八禁视频网站在线观看 | 国产亚洲美女精品久久久2020 | 久久午夜无码鲁丝片秋霞 | 国产午夜福利100集发布 | а天堂中文在线官网 | av香港经典三级级 在线 | 国产成人久久精品流白浆 | 精品人妻av区 | 乱码午夜-极国产极内射 | 国产精品美女久久久 | 亚洲精品国产a久久久久久 | 少妇被粗大的猛进出69影院 | 国产人妻精品一区二区三区不卡 | 久久久久免费精品国产 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 国内精品久久久久久中文字幕 | 风流少妇按摩来高潮 | 一本久道高清无码视频 | 国产另类ts人妖一区二区 | 丰满肥臀大屁股熟妇激情视频 | 久久无码专区国产精品s | 亚洲无人区一区二区三区 | 成 人 免费观看网站 | 妺妺窝人体色www婷婷 | 欧美性生交xxxxx久久久 | 日本免费一区二区三区最新 | 久久伊人色av天堂九九小黄鸭 | 国内综合精品午夜久久资源 | 欧美国产日韩亚洲中文 | 亚洲一区av无码专区在线观看 | 丰满少妇高潮惨叫视频 | 欧美亚洲日韩国产人成在线播放 | 国产三级久久久精品麻豆三级 | 日本爽爽爽爽爽爽在线观看免 | 国产做国产爱免费视频 | √天堂中文官网8在线 | 精品国产福利一区二区 | 狠狠色丁香久久婷婷综合五月 | 欧美熟妇另类久久久久久多毛 | 国内老熟妇对白xxxxhd | 亚洲国产高清在线观看视频 | 任你躁在线精品免费 | 亚洲人成网站在线播放942 | 欧美人与牲动交xxxx | 欧美精品国产综合久久 | 熟女体下毛毛黑森林 | 乱中年女人伦av三区 | 亚洲国产精品一区二区第一页 | 99久久精品午夜一区二区 | 免费看少妇作爱视频 | www国产亚洲精品久久网站 | 爱做久久久久久 | 大屁股大乳丰满人妻 | 欧美人妻一区二区三区 | 欧美肥老太牲交大战 | 亚洲人成网站在线播放942 | 国产成人无码一二三区视频 | 亚欧洲精品在线视频免费观看 | 久久国语露脸国产精品电影 | 熟女体下毛毛黑森林 | 骚片av蜜桃精品一区 | 玩弄人妻少妇500系列视频 | 亚洲一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 国产成人无码av片在线观看不卡 | 黑人粗大猛烈进出高潮视频 | 欧美激情内射喷水高潮 | 领导边摸边吃奶边做爽在线观看 | 亚洲码国产精品高潮在线 | 少妇高潮喷潮久久久影院 | 激情亚洲一区国产精品 | 国产人妻精品午夜福利免费 | 亚洲国产精品无码一区二区三区 | 狂野欧美激情性xxxx | 亚洲s码欧洲m码国产av | 国产精品内射视频免费 | 日韩精品成人一区二区三区 | 特大黑人娇小亚洲女 | 激情爆乳一区二区三区 | 久久久久久久久蜜桃 | 久久精品国产日本波多野结衣 | 亚洲经典千人经典日产 | 亚洲成色www久久网站 | 成人女人看片免费视频放人 | 高潮毛片无遮挡高清免费视频 | 熟女少妇人妻中文字幕 | 国产成人精品一区二区在线小狼 | 亚洲熟悉妇女xxx妇女av | 久久伊人色av天堂九九小黄鸭 | 日本乱人伦片中文三区 | 国产精品久久久久7777 | av无码久久久久不卡免费网站 | 国产精品亚洲专区无码不卡 | 天天做天天爱天天爽综合网 | 熟妇人妻无码xxx视频 | 国产精品久久久久久亚洲影视内衣 | 性欧美大战久久久久久久 | 国产激情无码一区二区app | 国产特级毛片aaaaaaa高清 | 丰满少妇高潮惨叫视频 | 内射爽无广熟女亚洲 | 久久久中文字幕日本无吗 | 18禁黄网站男男禁片免费观看 | 中文字幕久久久久人妻 | 午夜成人1000部免费视频 | 国产精品第一国产精品 | 成人av无码一区二区三区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产精品亚洲综合色区韩国 | 欧美真人作爱免费视频 | 高潮毛片无遮挡高清免费视频 | 丝袜美腿亚洲一区二区 | 超碰97人人做人人爱少妇 | 中文字幕无码人妻少妇免费 | 97se亚洲精品一区 | 亚洲熟女一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 国产真实夫妇视频 | 精品乱码久久久久久久 | 国产人妻久久精品二区三区老狼 | 国产午夜视频在线观看 | 亚洲一区二区三区四区 | 国产精品久久久久无码av色戒 | 成人亚洲精品久久久久软件 | aⅴ在线视频男人的天堂 | 一本久久伊人热热精品中文字幕 | 亚洲无人区午夜福利码高清完整版 | 岛国片人妻三上悠亚 | 伊人久久大香线蕉av一区二区 | 欧美日韩在线亚洲综合国产人 | 久久久久久亚洲精品a片成人 | 18禁止看的免费污网站 | 丝袜美腿亚洲一区二区 | 亚洲国产欧美日韩精品一区二区三区 | 丝袜足控一区二区三区 | 亚洲自偷自拍另类第1页 | 性欧美疯狂xxxxbbbb | 国产成人精品无码播放 | 国产精品国产自线拍免费软件 | 性色欲网站人妻丰满中文久久不卡 | 日韩精品成人一区二区三区 | 99精品无人区乱码1区2区3区 | 无码人妻av免费一区二区三区 | 中文字幕人妻无码一区二区三区 | 在线观看国产一区二区三区 | 日韩精品无码免费一区二区三区 | 少妇厨房愉情理9仑片视频 | 骚片av蜜桃精品一区 | 99精品无人区乱码1区2区3区 | 久久综合九色综合97网 | 久久久亚洲欧洲日产国码αv | 又色又爽又黄的美女裸体网站 | 成人无码视频免费播放 | 人人澡人人妻人人爽人人蜜桃 | 麻豆人妻少妇精品无码专区 | 大乳丰满人妻中文字幕日本 | 2019午夜福利不卡片在线 | 国产国产精品人在线视 | 亚洲熟悉妇女xxx妇女av | 日本熟妇乱子伦xxxx | 中文无码成人免费视频在线观看 | 男人的天堂2018无码 | 久久精品国产一区二区三区 | 亚洲大尺度无码无码专区 | 欧美激情一区二区三区成人 | 午夜肉伦伦影院 | 黄网在线观看免费网站 | 日本精品少妇一区二区三区 | 国产精品香蕉在线观看 | 成人性做爰aaa片免费看不忠 | 三上悠亚人妻中文字幕在线 | 色综合久久久无码网中文 | 国产精品久久国产三级国 | 久青草影院在线观看国产 | 国产偷国产偷精品高清尤物 | 99久久久国产精品无码免费 | 亚洲午夜福利在线观看 | 最近免费中文字幕中文高清百度 | 久久精品女人天堂av免费观看 | 久久久精品人妻久久影视 | 日欧一片内射va在线影院 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲中文字幕av在天堂 | 国产精品内射视频免费 | 精品无码av一区二区三区 | 日韩精品无码免费一区二区三区 | 精品日本一区二区三区在线观看 | 一本久道高清无码视频 | 99久久人妻精品免费一区 | 又湿又紧又大又爽a视频国产 | 婷婷五月综合缴情在线视频 | 日本成熟视频免费视频 | 人妻少妇精品无码专区动漫 | yw尤物av无码国产在线观看 | 18无码粉嫩小泬无套在线观看 | 四虎永久在线精品免费网址 | 亚洲欧美国产精品专区久久 | 国产精品国产自线拍免费软件 | 久久午夜无码鲁丝片 | 成人免费视频视频在线观看 免费 | 澳门永久av免费网站 | 牲欲强的熟妇农村老妇女 | 久久无码人妻影院 | 国产亚洲欧美在线专区 | 午夜福利一区二区三区在线观看 | 国产精品成人av在线观看 | 欧美激情内射喷水高潮 | 亚洲经典千人经典日产 | 波多野结衣高清一区二区三区 | 老熟妇仑乱视频一区二区 | 欧美35页视频在线观看 | 国产香蕉97碰碰久久人人 | 国产精品久久久久无码av色戒 | 亚洲第一网站男人都懂 | 久久久久99精品国产片 | 日日摸天天摸爽爽狠狠97 | 性生交大片免费看女人按摩摩 | 成人免费视频一区二区 | 97夜夜澡人人双人人人喊 | 啦啦啦www在线观看免费视频 | 在线天堂新版最新版在线8 | 国产亚洲美女精品久久久2020 | 亚洲日韩精品欧美一区二区 | 久久精品中文字幕一区 | 人人妻人人澡人人爽人人精品浪潮 | 日韩av无码中文无码电影 | 国产精品香蕉在线观看 | 99在线 | 亚洲 | 欧美午夜特黄aaaaaa片 | 老司机亚洲精品影院 | 最新国产麻豆aⅴ精品无码 | 久久精品99久久香蕉国产色戒 | 天堂一区人妻无码 | 亚洲日韩av一区二区三区四区 | 国产在线aaa片一区二区99 | 亚洲中文字幕在线无码一区二区 | 亚洲精品午夜国产va久久成人 | 中文字幕乱码中文乱码51精品 | 国产色视频一区二区三区 | 亚洲国产精品久久久天堂 | 人妻熟女一区 | 亚洲热妇无码av在线播放 | 88国产精品欧美一区二区三区 | 久久久久久久女国产乱让韩 | 亚洲狠狠婷婷综合久久 | 国产色xx群视频射精 | 色一情一乱一伦一区二区三欧美 | 成人性做爰aaa片免费看 | 国产麻豆精品精东影业av网站 | 久久99久久99精品中文字幕 | 亚洲欧美日韩综合久久久 | 国产人成高清在线视频99最全资源 | 亚洲爆乳精品无码一区二区三区 | 国产97色在线 | 免 | 55夜色66夜色国产精品视频 | 久久综合久久自在自线精品自 | 色五月丁香五月综合五月 | 又大又紧又粉嫩18p少妇 | 国产性生大片免费观看性 | 亚洲精品www久久久 | 老头边吃奶边弄进去呻吟 | 99riav国产精品视频 | 日韩精品无码免费一区二区三区 | 超碰97人人做人人爱少妇 | 日日碰狠狠躁久久躁蜜桃 | 99久久精品日本一区二区免费 | 国产精品18久久久久久麻辣 | 免费网站看v片在线18禁无码 | 国产午夜福利100集发布 | 亚洲自偷自拍另类第1页 | 国产精品香蕉在线观看 | 亚洲欧美精品伊人久久 | 欧美xxxx黑人又粗又长 | 国产在线精品一区二区三区直播 | 欧美成人免费全部网站 | 婷婷五月综合缴情在线视频 | 亚洲日韩一区二区三区 | 乱人伦人妻中文字幕无码 | 久久久中文字幕日本无吗 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 成人精品一区二区三区中文字幕 | 欧美丰满老熟妇xxxxx性 | 性欧美牲交在线视频 | 久久久久久国产精品无码下载 | 波多野结衣av一区二区全免费观看 | 久久久国产一区二区三区 | 精品国产av色一区二区深夜久久 | 亚洲综合无码一区二区三区 | 免费视频欧美无人区码 | 久久精品中文字幕大胸 | 日本熟妇人妻xxxxx人hd | 久久www免费人成人片 | 人人爽人人澡人人人妻 | 久久无码专区国产精品s | 国产欧美精品一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 蜜桃视频韩日免费播放 | 久久久久久久女国产乱让韩 | 台湾无码一区二区 | aa片在线观看视频在线播放 | 亚洲阿v天堂在线 | 久久精品国产一区二区三区肥胖 | 国产午夜福利100集发布 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 无人区乱码一区二区三区 | 亚洲精品成a人在线观看 | aⅴ在线视频男人的天堂 | 亚洲成av人综合在线观看 | 巨爆乳无码视频在线观看 | 国产在线无码精品电影网 | 国产真人无遮挡作爱免费视频 | 超碰97人人做人人爱少妇 | 人妻少妇精品视频专区 | 精品久久久中文字幕人妻 | 男人扒开女人内裤强吻桶进去 | 国产成人无码av在线影院 | 98国产精品综合一区二区三区 | 国产人妻人伦精品1国产丝袜 | 国产又爽又猛又粗的视频a片 | 亚洲精品综合五月久久小说 | 国产艳妇av在线观看果冻传媒 | 国产 浪潮av性色四虎 | 日本一本二本三区免费 | 性欧美牲交xxxxx视频 | 一本精品99久久精品77 | 久久精品视频在线看15 | 精品一区二区三区无码免费视频 | 久久久www成人免费毛片 | 国产小呦泬泬99精品 | ass日本丰满熟妇pics | 亚洲色www成人永久网址 | 波多野结衣高清一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 好男人社区资源 | 国产一区二区三区影院 | 六月丁香婷婷色狠狠久久 | 欧美黑人巨大xxxxx | 又粗又大又硬又长又爽 | 正在播放东北夫妻内射 | 久久99精品久久久久久 | 亚洲成av人片在线观看无码不卡 | 国产精品怡红院永久免费 | 麻豆国产97在线 | 欧洲 | 无码人妻久久一区二区三区不卡 | 久久综合九色综合欧美狠狠 | 亚无码乱人伦一区二区 | 久久人人爽人人人人片 | 精品少妇爆乳无码av无码专区 | 激情爆乳一区二区三区 | 免费国产成人高清在线观看网站 | 久久精品国产精品国产精品污 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产电影无码午夜在线播放 | 国产99久久精品一区二区 | ass日本丰满熟妇pics | 成人免费视频在线观看 | 娇妻被黑人粗大高潮白浆 | 国产极品美女高潮无套在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 午夜男女很黄的视频 | 天堂无码人妻精品一区二区三区 | 3d动漫精品啪啪一区二区中 | 人妻少妇被猛烈进入中文字幕 | 国产精品久久久 | 国产麻豆精品一区二区三区v视界 | 在线精品国产一区二区三区 | 思思久久99热只有频精品66 | 特级做a爰片毛片免费69 | 国产精品视频免费播放 | 漂亮人妻洗澡被公强 日日躁 | 天天av天天av天天透 | 国产真人无遮挡作爱免费视频 | 一本久道久久综合狠狠爱 | 亚洲色欲色欲天天天www | 中文久久乱码一区二区 | 乱人伦人妻中文字幕无码久久网 | 亚洲 高清 成人 动漫 | 久久精品中文闷骚内射 | 欧美xxxx黑人又粗又长 | 老熟妇仑乱视频一区二区 | 荫蒂被男人添的好舒服爽免费视频 | 日日碰狠狠丁香久燥 | 精品人人妻人人澡人人爽人人 | 成人性做爰aaa片免费看 | 久久天天躁狠狠躁夜夜免费观看 | 免费人成在线视频无码 | 成人精品天堂一区二区三区 | 国产乡下妇女做爰 | 国产精品亚洲а∨无码播放麻豆 | 精品久久久无码人妻字幂 | 国产精品久久久久久亚洲毛片 | 成人毛片一区二区 | 久久久久99精品成人片 | 国产情侣作爱视频免费观看 | 捆绑白丝粉色jk震动捧喷白浆 | 中文字幕无码视频专区 | 国产精品久久久久7777 | 国产猛烈高潮尖叫视频免费 | 激情内射日本一区二区三区 | 中文字幕无码视频专区 | 少妇激情av一区二区 | 四虎国产精品一区二区 | 久青草影院在线观看国产 | 精品国产乱码久久久久乱码 | 日韩av无码中文无码电影 | 少妇人妻av毛片在线看 | 亚洲日韩精品欧美一区二区 | 老熟妇仑乱视频一区二区 | 5858s亚洲色大成网站www | 日本免费一区二区三区最新 | 内射爽无广熟女亚洲 | 国内少妇偷人精品视频 | 清纯唯美经典一区二区 | ass日本丰满熟妇pics | 性做久久久久久久免费看 | 亚洲一区二区三区含羞草 | 帮老师解开蕾丝奶罩吸乳网站 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲精品中文字幕 | 熟妇人妻无码xxx视频 | 色情久久久av熟女人妻网站 | 日韩欧美中文字幕公布 | 精品无码国产自产拍在线观看蜜 | 久久久久av无码免费网 | 欧美日韩亚洲国产精品 | 亚洲精品中文字幕久久久久 | 国产免费久久久久久无码 | 纯爱无遮挡h肉动漫在线播放 | 国产精华av午夜在线观看 | 东京热无码av男人的天堂 | 亚欧洲精品在线视频免费观看 | 精品国产一区二区三区av 性色 | 国产成人精品必看 | 亚洲中文字幕无码中字 | 大乳丰满人妻中文字幕日本 | 国产亚洲欧美日韩亚洲中文色 | 少妇的肉体aa片免费 | 日日麻批免费40分钟无码 | 大肉大捧一进一出视频出来呀 | www国产亚洲精品久久久日本 | www国产亚洲精品久久久日本 | 国内精品久久毛片一区二区 | 国产成人无码a区在线观看视频app | 麻豆国产人妻欲求不满 | 无码人妻少妇伦在线电影 | 国产在线精品一区二区高清不卡 | 国产后入清纯学生妹 | 日本一本二本三区免费 | 97se亚洲精品一区 | 精品久久久久久人妻无码中文字幕 | 无码乱肉视频免费大全合集 | 女人高潮内射99精品 | 亚洲精品一区国产 | 国产亚洲人成a在线v网站 | 熟妇女人妻丰满少妇中文字幕 | 蜜桃臀无码内射一区二区三区 | 色综合天天综合狠狠爱 | 丰满人妻被黑人猛烈进入 | 日本高清一区免费中文视频 | 任你躁在线精品免费 | 亚洲熟妇自偷自拍另类 | 无码纯肉视频在线观看 | 国产一区二区三区四区五区加勒比 | 亚洲第一无码av无码专区 | 无码人妻黑人中文字幕 | 成人精品视频一区二区 | 国产精品亚洲а∨无码播放麻豆 | 欧美丰满少妇xxxx性 | 亚洲狠狠婷婷综合久久 | 精品久久久无码中文字幕 | 亚洲爆乳无码专区 | 亚洲人成影院在线无码按摩店 | 日本精品人妻无码免费大全 | 亚洲日本va中文字幕 | 2019午夜福利不卡片在线 | 中文字幕无码日韩欧毛 | 97夜夜澡人人爽人人喊中国片 | 精品夜夜澡人妻无码av蜜桃 | 无码吃奶揉捏奶头高潮视频 | 亚洲欧美精品aaaaaa片 | 国产精品免费大片 | av无码不卡在线观看免费 | 久久精品99久久香蕉国产色戒 | 欧美成人午夜精品久久久 | 久久久久av无码免费网 | 国产精品亚洲а∨无码播放麻豆 | 亚洲中文字幕av在天堂 | 熟女少妇在线视频播放 | 日韩人妻系列无码专区 | 无码毛片视频一区二区本码 | 国产片av国语在线观看 | 美女毛片一区二区三区四区 | 影音先锋中文字幕无码 | 国产在线aaa片一区二区99 | 午夜精品久久久久久久 | 亚洲欧洲无卡二区视頻 | 午夜福利一区二区三区在线观看 | 国产va免费精品观看 | 欧美人与物videos另类 | 亚洲经典千人经典日产 | 成熟人妻av无码专区 | 玩弄人妻少妇500系列视频 | 三级4级全黄60分钟 | 国产激情一区二区三区 | 强伦人妻一区二区三区视频18 | 一本久道高清无码视频 | 国产成人精品视频ⅴa片软件竹菊 | 美女扒开屁股让男人桶 | 成年美女黄网站色大免费全看 | 欧美性猛交内射兽交老熟妇 | 青春草在线视频免费观看 | 国产性生交xxxxx无码 | 国产乱子伦视频在线播放 | 久久精品中文字幕一区 | 亚洲中文无码av永久不收费 | 国产精品美女久久久网av | 精品无码一区二区三区的天堂 | 精品无码一区二区三区的天堂 | 人妻插b视频一区二区三区 | 久久亚洲日韩精品一区二区三区 | 国产办公室秘书无码精品99 | 玩弄中年熟妇正在播放 | 粗大的内捧猛烈进出视频 | 中文字幕无码人妻少妇免费 | 亚洲熟熟妇xxxx | 国产精品国产自线拍免费软件 | 婷婷五月综合激情中文字幕 | 未满成年国产在线观看 | 精品一二三区久久aaa片 | 真人与拘做受免费视频一 | 久久 国产 尿 小便 嘘嘘 | 婷婷丁香五月天综合东京热 | 精品国产aⅴ无码一区二区 | 婷婷丁香五月天综合东京热 | 亚洲精品午夜无码电影网 | 国产综合在线观看 | 动漫av网站免费观看 | 精品乱子伦一区二区三区 | 人人妻人人澡人人爽人人精品浪潮 | 国产精品无码一区二区三区不卡 | 国产绳艺sm调教室论坛 | 午夜丰满少妇性开放视频 | 亚洲熟妇色xxxxx欧美老妇y | 久久人人爽人人人人片 | 日韩欧美成人免费观看 | 在线观看欧美一区二区三区 | 欧美性黑人极品hd | 欧美人与牲动交xxxx | 天下第一社区视频www日本 | 国产精品第一国产精品 | 无码乱肉视频免费大全合集 | 国产一区二区三区精品视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 美女扒开屁股让男人桶 | а天堂中文在线官网 | 青青久在线视频免费观看 | 国产香蕉尹人综合在线观看 | 国产精品亚洲五月天高清 | 久久久精品国产sm最大网站 | 西西人体www44rt大胆高清 | 在线欧美精品一区二区三区 | 中文字幕乱妇无码av在线 | 99久久久无码国产精品免费 | 97精品国产97久久久久久免费 | 中文字幕av伊人av无码av | 少妇久久久久久人妻无码 | 无码免费一区二区三区 | 欧美精品无码一区二区三区 | 任你躁国产自任一区二区三区 | 性生交大片免费看l | 日本在线高清不卡免费播放 | 无码帝国www无码专区色综合 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 中文字幕无码免费久久9一区9 | 亚洲狠狠色丁香婷婷综合 | 精品无人区无码乱码毛片国产 | 激情国产av做激情国产爱 | 久久久精品欧美一区二区免费 | 欧美变态另类xxxx | 国产综合色产在线精品 | 国产精品久久久久久亚洲影视内衣 | 荫蒂添的好舒服视频囗交 | 国内精品久久久久久中文字幕 | 国产成人精品一区二区在线小狼 | 久久人人爽人人爽人人片av高清 | 精品久久综合1区2区3区激情 | 人妻天天爽夜夜爽一区二区 | 国内少妇偷人精品视频 | 日本xxxx色视频在线观看免费 | 亚洲va欧美va天堂v国产综合 | 无码精品人妻一区二区三区av | 国产一精品一av一免费 | 国产真实伦对白全集 | 久久zyz资源站无码中文动漫 | 精品国产成人一区二区三区 | 99精品国产综合久久久久五月天 | 少妇被粗大的猛进出69影院 | 波多野结衣av一区二区全免费观看 | 激情综合激情五月俺也去 | 欧美成人免费全部网站 | 亚洲の无码国产の无码影院 | 风流少妇按摩来高潮 | 日本乱人伦片中文三区 | 日韩人妻系列无码专区 | 一本大道久久东京热无码av | 狠狠色丁香久久婷婷综合五月 | 乱人伦人妻中文字幕无码久久网 | 乌克兰少妇性做爰 | 亚洲色www成人永久网址 | 人人妻人人澡人人爽欧美精品 | 国产成人无码av在线影院 | 熟女俱乐部五十路六十路av | 性欧美牲交在线视频 | 六月丁香婷婷色狠狠久久 | 国产美女极度色诱视频www | 午夜成人1000部免费视频 | 国产人妻人伦精品1国产丝袜 | 人妻少妇精品久久 | 久久久中文字幕日本无吗 | 国产精品久久久久7777 | 国产疯狂伦交大片 | 成人欧美一区二区三区 | 无码播放一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 成人无码精品1区2区3区免费看 | 国产极品视觉盛宴 | 久久久国产精品无码免费专区 | 久9re热视频这里只有精品 | 天天躁夜夜躁狠狠是什么心态 | 国产精品福利视频导航 | 国产激情一区二区三区 | 国产精品18久久久久久麻辣 | 中文字幕无码日韩专区 | 日韩人妻无码中文字幕视频 | 亚洲成av人影院在线观看 | 日日摸天天摸爽爽狠狠97 | 狠狠色欧美亚洲狠狠色www | 狂野欧美激情性xxxx | 亚洲精品国偷拍自产在线麻豆 | 真人与拘做受免费视频 | 亚洲中文字幕无码中文字在线 | 国产精品无码mv在线观看 | 伊人久久大香线焦av综合影院 | 精品国产aⅴ无码一区二区 | 久久五月精品中文字幕 | 内射爽无广熟女亚洲 | 欧洲美熟女乱又伦 | 鲁鲁鲁爽爽爽在线视频观看 | 18禁止看的免费污网站 | 丰腴饱满的极品熟妇 | 思思久久99热只有频精品66 | 全黄性性激高免费视频 | 正在播放东北夫妻内射 | 久久久无码中文字幕久... | 成人一在线视频日韩国产 | 澳门永久av免费网站 | 日日干夜夜干 | 婷婷六月久久综合丁香 | 国产在线精品一区二区三区直播 | 亚洲呦女专区 | 日韩精品a片一区二区三区妖精 | 日韩少妇内射免费播放 | 日韩精品一区二区av在线 | 欧美兽交xxxx×视频 | 精品久久8x国产免费观看 | 成人性做爰aaa片免费看不忠 | 激情内射日本一区二区三区 | 国产精品高潮呻吟av久久4虎 | 四虎国产精品一区二区 | 国产亚洲美女精品久久久2020 | 丰满人妻一区二区三区免费视频 | 久久无码中文字幕免费影院蜜桃 | 亚洲精品综合一区二区三区在线 | 性做久久久久久久免费看 | 国产福利视频一区二区 | av香港经典三级级 在线 | 国产亚洲精品精品国产亚洲综合 | 国产日产欧产精品精品app | 成熟女人特级毛片www免费 | 国产口爆吞精在线视频 | 无码国产乱人伦偷精品视频 | 在线播放免费人成毛片乱码 | 国产色xx群视频射精 | 55夜色66夜色国产精品视频 | 天下第一社区视频www日本 | 永久黄网站色视频免费直播 | 欧美怡红院免费全部视频 | 亚洲第一无码av无码专区 | 亚洲小说图区综合在线 | 亚洲国产欧美日韩精品一区二区三区 | 久久人人爽人人爽人人片av高清 | 国产xxx69麻豆国语对白 | 国产精品久久久久久亚洲影视内衣 | 久久精品女人的天堂av | 国产激情精品一区二区三区 | 婷婷五月综合激情中文字幕 | 久久综合给合久久狠狠狠97色 | 亚洲精品久久久久久久久久久 | 无人区乱码一区二区三区 | 99国产欧美久久久精品 | 久久婷婷五月综合色国产香蕉 | 国产特级毛片aaaaaa高潮流水 | 少妇性l交大片欧洲热妇乱xxx | 亚洲综合精品香蕉久久网 | 欧美自拍另类欧美综合图片区 | 色狠狠av一区二区三区 | 精品熟女少妇av免费观看 | 精品午夜福利在线观看 | 又黄又爽又色的视频 | 久久国产精品二国产精品 | 午夜福利不卡在线视频 | 日日橹狠狠爱欧美视频 | 女人被男人爽到呻吟的视频 | 国产又爽又猛又粗的视频a片 | 欧美日韩视频无码一区二区三 | 亚洲成av人影院在线观看 | 国产人成高清在线视频99最全资源 | 国产午夜精品一区二区三区嫩草 | 国产精品久久久午夜夜伦鲁鲁 | 久久无码专区国产精品s | 99精品国产综合久久久久五月天 | 丝袜美腿亚洲一区二区 | 少妇性俱乐部纵欲狂欢电影 | 黑人玩弄人妻中文在线 | a国产一区二区免费入口 | 97人妻精品一区二区三区 | 国精产品一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 亚洲成在人网站无码天堂 | 中文字幕乱码亚洲无线三区 | 久久久久久久久蜜桃 | 欧美真人作爱免费视频 | 国产午夜视频在线观看 | 久久综合给合久久狠狠狠97色 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 久久国产36精品色熟妇 | 久久久久99精品成人片 | 中文无码精品a∨在线观看不卡 | 国语精品一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 久久综合网欧美色妞网 | 欧美丰满老熟妇xxxxx性 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 天堂а√在线中文在线 | 粗大的内捧猛烈进出视频 | 国产亚洲欧美日韩亚洲中文色 | 99久久久无码国产精品免费 | 亚洲人亚洲人成电影网站色 | 97色伦图片97综合影院 | 亚洲一区二区三区国产精华液 | 成人精品视频一区二区 | 欧美国产日产一区二区 | 日日橹狠狠爱欧美视频 | 国内精品九九久久久精品 | 天堂一区人妻无码 | 日日摸天天摸爽爽狠狠97 | 国产成人无码区免费内射一片色欲 | 一区二区传媒有限公司 | 三上悠亚人妻中文字幕在线 | 午夜性刺激在线视频免费 | 亚洲色偷偷偷综合网 | 中文字幕无码日韩欧毛 | 国产一区二区三区四区五区加勒比 | 亚洲人成人无码网www国产 | 国产精品第一区揄拍无码 | 人人妻人人澡人人爽欧美一区九九 | 国内综合精品午夜久久资源 | 国产激情综合五月久久 | 一本加勒比波多野结衣 | 精品一二三区久久aaa片 | 任你躁在线精品免费 | 图片区 小说区 区 亚洲五月 | 国内综合精品午夜久久资源 | 少妇性l交大片 | 欧美日韩人成综合在线播放 | 在线 国产 欧美 亚洲 天堂 | 日本精品少妇一区二区三区 | 亚洲国产成人a精品不卡在线 | 老头边吃奶边弄进去呻吟 | 国产精品国产三级国产专播 | 日韩精品无码免费一区二区三区 | 99久久精品午夜一区二区 | 国产特级毛片aaaaaa高潮流水 | 一个人看的www免费视频在线观看 | 我要看www免费看插插视频 | 人人澡人摸人人添 | 精品熟女少妇av免费观看 | 老司机亚洲精品影院无码 | 国产色在线 | 国产 | 成人免费无码大片a毛片 | 久久午夜无码鲁丝片午夜精品 | 欧美老妇交乱视频在线观看 | 香蕉久久久久久av成人 | 性生交大片免费看l | 亚洲人成影院在线无码按摩店 | 亚洲成av人片在线观看无码不卡 | 又色又爽又黄的美女裸体网站 | 97夜夜澡人人双人人人喊 | 日本精品人妻无码免费大全 | 欧美日韩在线亚洲综合国产人 | 天干天干啦夜天干天2017 | 国产偷自视频区视频 | 天下第一社区视频www日本 | 自拍偷自拍亚洲精品10p | 欧美性猛交xxxx富婆 | 极品尤物被啪到呻吟喷水 | 亚洲日本va中文字幕 | 人妻互换免费中文字幕 | 鲁一鲁av2019在线 | 日韩欧美中文字幕在线三区 | 国产真人无遮挡作爱免费视频 | 青春草在线视频免费观看 | 欧美日韩在线亚洲综合国产人 | 婷婷色婷婷开心五月四房播播 | 精品少妇爆乳无码av无码专区 | 激情内射亚州一区二区三区爱妻 | 国产婷婷色一区二区三区在线 | 好男人社区资源 | 国产精品久久久久久亚洲影视内衣 | 亚洲国产精品一区二区第一页 | 欧美真人作爱免费视频 | 天堂а√在线中文在线 | 免费观看的无遮挡av | 黄网在线观看免费网站 | 99久久精品无码一区二区毛片 | 人人妻在人人 | 人妻人人添人妻人人爱 | 午夜福利一区二区三区在线观看 | 国产三级久久久精品麻豆三级 | 久久综合香蕉国产蜜臀av | 色综合久久中文娱乐网 | 国产激情无码一区二区app | 久久精品国产99精品亚洲 | 国产成人无码a区在线观看视频app | 国产无遮挡又黄又爽免费视频 | 久久久久久久人妻无码中文字幕爆 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲色在线无码国产精品不卡 | 一本色道婷婷久久欧美 | 亚洲日韩一区二区三区 | 欧美日韩综合一区二区三区 | 国产欧美熟妇另类久久久 | 国产亚洲精品精品国产亚洲综合 | 精品无码一区二区三区的天堂 | 色综合久久88色综合天天 | 亚洲国产精品一区二区美利坚 | 一本一道久久综合久久 | 中文字幕 人妻熟女 | 国产精品丝袜黑色高跟鞋 | 日本熟妇人妻xxxxx人hd | 久久久婷婷五月亚洲97号色 | 亚洲熟悉妇女xxx妇女av | aa片在线观看视频在线播放 | 福利一区二区三区视频在线观看 | 久久综合给合久久狠狠狠97色 | 国产免费久久久久久无码 | 人人澡人人透人人爽 | 日本熟妇乱子伦xxxx | 国产国语老龄妇女a片 | 精品国产乱码久久久久乱码 | 中文字幕乱码中文乱码51精品 | 无码人妻出轨黑人中文字幕 | 成人精品一区二区三区中文字幕 | 亚洲天堂2017无码中文 | 欧洲精品码一区二区三区免费看 | av香港经典三级级 在线 | 无套内谢的新婚少妇国语播放 | 婷婷色婷婷开心五月四房播播 | 人妻少妇精品无码专区动漫 | 亚洲а∨天堂久久精品2021 | 婷婷五月综合激情中文字幕 | 欧美国产日韩亚洲中文 | 无码纯肉视频在线观看 | 国产黄在线观看免费观看不卡 | 久久精品女人的天堂av | 亚洲aⅴ无码成人网站国产app | 亚洲成熟女人毛毛耸耸多 | 欧美丰满熟妇xxxx | 午夜精品久久久久久久 | 俺去俺来也在线www色官网 | 性啪啪chinese东北女人 | 国产精品.xx视频.xxtv | 成人一在线视频日韩国产 | 国产精品美女久久久 | 青青青爽视频在线观看 | 亚洲精品综合一区二区三区在线 | 亚洲爆乳无码专区 | 丰满肥臀大屁股熟妇激情视频 | 亚洲中文字幕无码中字 | 精品少妇爆乳无码av无码专区 | 国产午夜福利亚洲第一 | 国精产品一区二区三区 | 中文久久乱码一区二区 | 亚洲色大成网站www国产 | 国产成人一区二区三区在线观看 | 夫妻免费无码v看片 | 宝宝好涨水快流出来免费视频 | 国产精品a成v人在线播放 | 亚洲精品一区二区三区在线 | 伊在人天堂亚洲香蕉精品区 | 日产精品高潮呻吟av久久 | 国产成人精品必看 | 福利一区二区三区视频在线观看 | 熟女少妇人妻中文字幕 | 熟女少妇人妻中文字幕 | 亚洲人成人无码网www国产 | 波多野结衣一区二区三区av免费 | 精品国产成人一区二区三区 | 香港三级日本三级妇三级 | 亚洲欧美色中文字幕在线 | 无码av最新清无码专区吞精 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 日韩视频 中文字幕 视频一区 | 综合网日日天干夜夜久久 | 国产福利视频一区二区 | 国产精品久久久 | 成熟妇人a片免费看网站 | 综合网日日天干夜夜久久 | 午夜成人1000部免费视频 | 亚洲人成网站在线播放942 | 国产99久久精品一区二区 | 99精品无人区乱码1区2区3区 | 久久精品视频在线看15 | 377p欧洲日本亚洲大胆 | 999久久久国产精品消防器材 | 亚洲色无码一区二区三区 | 国产成人精品无码播放 | 成人三级无码视频在线观看 | 巨爆乳无码视频在线观看 | 国产精品人人妻人人爽 | 精品少妇爆乳无码av无码专区 | 亚洲色www成人永久网址 | 天天躁夜夜躁狠狠是什么心态 | 乌克兰少妇xxxx做受 | 日本高清一区免费中文视频 | 国产人妻精品午夜福利免费 | 无码人妻精品一区二区三区不卡 | 国产午夜手机精彩视频 | 午夜精品久久久久久久久 | 无码乱肉视频免费大全合集 | 国产办公室秘书无码精品99 | 色窝窝无码一区二区三区色欲 | 日韩人妻系列无码专区 | 日本精品久久久久中文字幕 | 少妇太爽了在线观看 | 成人精品一区二区三区中文字幕 | 欧美一区二区三区视频在线观看 | 97无码免费人妻超级碰碰夜夜 | 色 综合 欧美 亚洲 国产 | 中文字幕乱码人妻二区三区 | 国内精品九九久久久精品 | 亚洲人亚洲人成电影网站色 | 国产办公室秘书无码精品99 | 亚洲综合伊人久久大杳蕉 | 精品久久综合1区2区3区激情 | 亚洲国产午夜精品理论片 | 国精品人妻无码一区二区三区蜜柚 | 精品人妻av区 | 一区二区传媒有限公司 | 爱做久久久久久 | 国产在线精品一区二区高清不卡 |