久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Android 開(kāi)發(fā)最佳實(shí)踐(Futurice 版)完整指南:Gradle 構(gòu)建、資源組織與 ProGuard 實(shí)戰(zhàn)

Android 開(kāi)發(fā)最佳實(shí)踐(Futurice 版)完整指南:Gradle 構(gòu)建、資源組織與 ProGuard 實(shí)戰(zhàn) 文檔教程移動(dòng)開(kāi)發(fā)【免費(fèi)下載鏈接】android-best-practicesDos and Donts for Android development, by Futurice developers項(xiàng)目地址https://gitcode.com/gh_mirrors/an/android-best-practices點(diǎn)擊查看免費(fèi)下載本指南以 Futurice 團(tuán)隊(duì)多年 Android 實(shí)戰(zhàn)沉淀的《android-best-practices》為骨架對(duì)應(yīng)倉(cāng)庫(kù)根目錄 README.md 及其多語(yǔ)言譯本如 西語(yǔ)版系統(tǒng)梳理從構(gòu)建系統(tǒng)、依賴管理、代碼與資源組織到測(cè)試、調(diào)試、內(nèi)存泄漏檢測(cè)與發(fā)布加固的完整最佳實(shí)踐鏈路。讀完本文你將掌握一套可直接落地的 Android 工程規(guī)范如何用 Gradle 安全管理簽名密鑰、如何用規(guī)范的 XML 資源組織避免布局與樣式的失控、如何規(guī)避 65k 方法數(shù)限制、如何正確配置 ProGuard 并排查混淆引發(fā)的崩潰以及如何用 Stetho 與 LeakCanary 提升調(diào)試與內(nèi)存治理效率。一、總覽這些建議從何而來(lái)這些實(shí)踐并非紙上談兵而是來(lái)自 Futurice 公司一線 Android 開(kāi)發(fā)者的真實(shí)經(jīng)驗(yàn)教訓(xùn)其目的在于避免重復(fù)發(fā)明輪子Avoid reinventing the wheel。文檔同時(shí)面向開(kāi)發(fā)流程的各個(gè)環(huán)節(jié)其核心主張可以歸納為構(gòu)建默認(rèn)使用 Gradle 及其推薦的項(xiàng)目結(jié)構(gòu)構(gòu)建過(guò)程由 Gradle 文件定義而非 IDE 配置。安全密碼與敏感數(shù)據(jù)一律放入不納入版本控制的gradle.properties。依賴優(yōu)先使用成熟庫(kù)Jackson/OkHttp/Retrofit/Picasso/Glide不自己造 HTTP 客戶端輪子同時(shí)警惕 65k 方法數(shù)限制謹(jǐn)慎控制庫(kù)的數(shù)量。代碼組織精心規(guī)劃 Activities 與 Fragments 的職責(zé)邊界、Java 包結(jié)構(gòu)與資源文件layouts、styles、colors、dimens、strings。質(zhì)量用合適的測(cè)試框架、模擬器、ProGuard、Stetho、LeakCanary 保證發(fā)布質(zhì)量與可維護(hù)性。倉(cāng)庫(kù)以單一 Markdown 文檔承載全部?jī)?nèi)容README.md并提供了包含 中文、法語(yǔ)、日語(yǔ)、韓語(yǔ)、葡萄牙語(yǔ)、俄語(yǔ)、西語(yǔ)、土耳其語(yǔ)、越南語(yǔ) 在內(nèi)的多語(yǔ)言版本且全文基于 Creative Commons Attribution 4.0 International (CC BY 4.0) 協(xié)議開(kāi)放見(jiàn) LICENSE方便團(tuán)隊(duì)將其內(nèi)化為自己的工程規(guī)范。二、開(kāi)發(fā)環(huán)境Android SDK 的安放位置核心建議把 Android SDK 放在home目錄或其他與應(yīng)用程序無(wú)關(guān)的獨(dú)立位置。有些 IDE 發(fā)行版在安裝時(shí)會(huì)順帶把 SDK 放到 IDE 自身目錄之下這會(huì)在你升級(jí)或重裝 IDE 時(shí)帶來(lái)隱患——很可能連 SDK 一起被覆蓋或刪除迫使你重新經(jīng)歷漫長(zhǎng)而繁瑣的下載過(guò)程。同時(shí)要避免把 SDK 放到需要sudo權(quán)限的系統(tǒng)級(jí)目錄如果你的 IDE 以普通用戶身份運(yùn)行而非 root后續(xù) SDK 組件的安裝與更新會(huì)頻繁遭遇權(quán)限問(wèn)題。三、構(gòu)建系統(tǒng)Gradle 與推薦的項(xiàng)目結(jié)構(gòu)3.1 為什么默認(rèn)選擇 Gradle文檔明確建議將 Gradle 作為默認(rèn)構(gòu)建系統(tǒng)理由是它讓以下工作變得簡(jiǎn)單創(chuàng)建應(yīng)用的不同flavor變體用腳本完成簡(jiǎn)單任務(wù)管理與下載依賴自定義 keystore以及更多……Ant 作為舊構(gòu)建系統(tǒng)已于 2015 年廢棄Android 的 Gradle 插件改由 Google 親自開(kāi)發(fā)與維護(hù)。關(guān)鍵原則應(yīng)用的構(gòu)建過(guò)程必須由 Gradle 文件定義而不是依賴 IDE 特定的配置。這樣才能保證在不同工具鏈之間構(gòu)建結(jié)果一致并為持續(xù)集成CI系統(tǒng)提供良好支持。3.2 采用 Gradle 的默認(rèn)項(xiàng)目結(jié)構(gòu)盡管 Gradle 在項(xiàng)目結(jié)構(gòu)上提供了很大靈活性除非你有令人信服的理由否則應(yīng)當(dāng)采用它的默認(rèn)結(jié)構(gòu)基于 source set 的main、androidTest等目錄劃分這會(huì)大幅簡(jiǎn)化構(gòu)建腳本。倉(cāng)庫(kù)中 中文譯本 對(duì)這種新舊結(jié)構(gòu)的差異做了更直觀的對(duì)照舊式 Ant Eclipse ADT 結(jié)構(gòu)把a(bǔ)ssets、libs、res、src、AndroidManifest.xml平鋪在根目錄而新式 Gradle 結(jié)構(gòu)則引入頂層app模塊內(nèi)部再分src/main、src/androidTest并將第三方庫(kù)項(xiàng)目如library-foobar獨(dú)立為同級(jí)模塊通過(guò)根目錄的settings.gradle引用。3.3 Gradle 配置細(xì)節(jié)通用結(jié)構(gòu)遵循 Google 官方的 Gradle for Android 指南。小任務(wù)與其寫(xiě) shell、Python、Perl 等外部腳本不如直接在 Gradle 中定義任務(wù)Task遵循 Gradle 官方文檔即可。密碼與敏感數(shù)據(jù)重點(diǎn)在應(yīng)用模塊的build.gradle中為release構(gòu)建定義signingConfigs時(shí)切勿把密碼硬編碼進(jìn)構(gòu)建文件signingConfigs { release { storeFile file(myapp.keystore) storePassword password123 keyAlias thekey keyPassword password789 } }這樣做會(huì)把密鑰信息泄露進(jìn)版本控制系統(tǒng)。正確做法是創(chuàng)建一個(gè)不加入版本控制的gradle.properties文件KEYSTORE_PASSWORDpassword123 KEY_PASSWORDpassword789該文件會(huì)被 Gradle 自動(dòng)導(dǎo)入因此在build.gradle中可以直接引用并配合try/catch在缺失時(shí)給出清晰提示signingConfigs { release { try { storeFile file(myapp.keystore) storePassword KEYSTORE_PASSWORD keyAlias thekey keyPassword KEY_PASSWORD } catch (ex) { throw new InvalidUserDataException(Deberías definir tu KEYSTORE_PASSWORD y KEY_PASSWORD en gradle.properties.) } } }提示gradle.properties位于項(xiàng)目根目錄時(shí)對(duì)模塊級(jí)build.gradle全局可見(jiàn)務(wù)必把該文件加入.gitignore并可為團(tuán)隊(duì)成員提供一份不含真實(shí)密碼的模板。優(yōu)先使用 Maven 依賴解析而非導(dǎo)入 jar 文件顯式將 jar 放進(jìn)項(xiàng)目意味著版本被凍結(jié)在特定版本上下載與管理更新非常繁瑣而 Maven 依賴解析恰好解決了這個(gè)問(wèn)題這也是 Gradle 推薦的做法。例如dependencies { implementation com.squareup.okhttp:okhttp:2.2.0 implementation com.squareup.okhttp:okhttp-urlconnection:2.2.0 }避免動(dòng)態(tài)依賴版本不要使用2.1.這類動(dòng)態(tài)解析它會(huì)導(dǎo)致構(gòu)建不穩(wěn)定、不同構(gòu)建之間出現(xiàn)難以追蹤的行為差異使用2.1.1這樣的靜態(tài)版本有助于打造更穩(wěn)定、可預(yù)測(cè)、可復(fù)現(xiàn)的開(kāi)發(fā)環(huán)境。為非 release 構(gòu)建使用不同的包名借助applicationIdSuffix讓debug與release兩個(gè) APK 可以同時(shí)安裝在同一臺(tái)設(shè)備上自定義構(gòu)建類型若有需要也可照做這在應(yīng)用上架后尤其有價(jià)值android { buildTypes { debug { applicationIdSuffix .debug versionNameSuffix -DEBUG } release { // ... } } }配套實(shí)踐用不同圖標(biāo)區(qū)分設(shè)備上的構(gòu)建版本例如不同顏色或疊加 debug 字樣。借助默認(rèn)項(xiàng)目結(jié)構(gòu)只需把 debug 圖標(biāo)放進(jìn)app/src/debug/res、release 圖標(biāo)放進(jìn)app/src/release/resGradle 會(huì)自動(dòng)按構(gòu)建類型選擇資源。此外還可以按構(gòu)建類型修改應(yīng)用名與versionName。3.4 IDE 與文本編輯器原則編輯器是個(gè)人選擇但必須讓它適配項(xiàng)目結(jié)構(gòu)與構(gòu)建系統(tǒng)。推薦 Android Studio由 Google 開(kāi)發(fā)并高頻更新對(duì) Gradle 支持良好內(nèi)置大量實(shí)用的監(jiān)測(cè)與分析工具專為 Android 開(kāi)發(fā)定制。也可以使用 Vim、Sublime Text、Emacs 等純文本編輯器但此時(shí)必須自己用命令行 Gradle 與adb完成構(gòu)建與調(diào)試。Eclipse ADT 已不再是好的選擇Google 于 2015 年停止對(duì) ADT 的支持并建議用戶盡快遷移到 Android Studio。無(wú)論選擇哪種工具都不要把編輯器專屬配置文件如 Android Studio 的.iml文件提交到版本控制——它們通常包含你本機(jī)特有的配置無(wú)法在同事的機(jī)器上正常工作。最后請(qǐng)善待團(tuán)隊(duì)其他開(kāi)發(fā)者不要強(qiáng)迫他們更換自己更順手的工具。四、依賴選型庫(kù)的取舍與 65k 方法數(shù)限制4.1 JSON 解析Jackson 為主Gson 為備Jackson 是 Java 領(lǐng)域的 JSON 序列化/反序列化庫(kù)支持三種 JSON 處理方式流式streaming、內(nèi)存樹(shù)模型in-memory tree model與傳統(tǒng)的JSON-POJO 數(shù)據(jù)綁定API 覆蓋面廣且靈活。Gson 同樣是熱門(mén)選擇但它比 Jackson 更小——在需要規(guī)避 65k 方法數(shù)限制的場(chǎng)景下可以考慮以 Gson 替代。其他備選還有 Json-smart 與 Boon JSON。4.2 網(wǎng)絡(luò)、緩存與圖片不要自己寫(xiě) HTTP 客戶端請(qǐng)求后端服務(wù)器有幾套久經(jīng)實(shí)戰(zhàn)考驗(yàn)的方案應(yīng)直接采用而非自行實(shí)現(xiàn)客戶端Volley 或 Retrofit發(fā)起網(wǎng)絡(luò)請(qǐng)求。Volley 還附帶圖片加載與緩存能力。若選 Retrofit建議配 Picasso 做圖片加載與緩存、OkHttp 做更高效的 HTTP 請(qǐng)求。Retrofit、Picasso、OkHttp 出自同一家公司Square彼此配合良好、兼容性問(wèn)題少見(jiàn)OkHttp 也可以與 Volley 配合使用。Glide 是另一款圖片加載/緩存方案支持 GIF 動(dòng)圖與圓形圖片宣稱性能優(yōu)于 Picasso但方法數(shù)也更多。4.3 RxJava強(qiáng)大的異步范式謹(jǐn)慎落地RxJava 是響應(yīng)式編程庫(kù)用于處理異步事件。它是一個(gè)強(qiáng)大且前景廣闊的范式但也與傳統(tǒng)思維方式差異巨大、容易讓人困惑文檔明確建議在使用它架構(gòu)整個(gè)應(yīng)用之前保持謹(jǐn)慎。漸進(jìn)式采用路徑如果對(duì) Rx 沒(méi)有經(jīng)驗(yàn)先只把它用于后端 API 響應(yīng)的處理隨后再逐步應(yīng)用到 UI 事件處理如點(diǎn)擊事件、搜索框輸入事件若確信自己的 Rx 水平并想將其用于整個(gè)架構(gòu)務(wù)必為所有棘手部分編寫(xiě) Javadocs——其他不熟悉 RxJava 的開(kāi)發(fā)者可能很難維護(hù)這樣的項(xiàng)目請(qǐng)盡力幫助他們理解你的代碼與 Rx。補(bǔ)充倉(cāng)庫(kù)英文版 README.md 還提到用 RxAndroid 提供 Android 線程支持、用 RxBinding 從既有 Android 組件輕松創(chuàng)建 Observable并指出從 Android Studio 3.0 起 Java 8 lambda 支持已內(nèi)建、不再需要 Retrolambda。4.4 Retrolambda在舊平臺(tái)使用 Lambda 語(yǔ)法Retrolambda 允許在 Android 及其他 JDK8 之前的平臺(tái)上使用 Lambda 表達(dá)式語(yǔ)法能讓代碼更緊湊易讀尤其適合函數(shù)式風(fēng)格如與 RxJava 搭配。Android Studio 對(duì) Java 8 lambda 提供代碼輔助新手可以這樣入手任何只有一個(gè)方法的接口都是lambda 友好的可以折疊成更緊湊的語(yǔ)法對(duì)參數(shù)等細(xì)節(jié)拿不準(zhǔn)時(shí)先寫(xiě)普通匿名內(nèi)部類再讓 Android Studio 幫你折疊成 lambda。4.5 警惕 dex 方法數(shù)限制慎用庫(kù)Android 應(yīng)用打包為 dex 文件后存在65536 個(gè)引用方法的硬性上限一旦超過(guò)就會(huì)編譯失敗。因此盡量使用最少數(shù)量的庫(kù)用 dex-method-counts 工具統(tǒng)計(jì)各庫(kù)的方法數(shù)確定哪些庫(kù)組合能讓你保持在上限之下尤其避免使用 Guava它包含約 13k 個(gè)方法是方法數(shù)大戶。說(shuō)明英文版補(bǔ)充提到從 API 21 起 multidex 支持庫(kù)不再是必需README.md 的 Gradle 配置一節(jié)但 65k 單 dex 限制的告誡依舊適用于老設(shè)備與舊 API 場(chǎng)景。五、Activities 與 Fragments謹(jǐn)慎駛過(guò)架構(gòu)選擇的暗礁社區(qū)與 Futurice 內(nèi)部對(duì)如何用 Fragments/Activities 組織架構(gòu)并無(wú)統(tǒng)一共識(shí)。Square 甚至推出過(guò)主要基于 View 構(gòu)建架構(gòu)的 mortar 庫(kù)來(lái)繞開(kāi) Fragments但這并未被社區(qū)廣泛認(rèn)可為推薦實(shí)踐。受 Android API 歷史影響可以粗略地把Fragments 視為屏幕上的 UI 片段通常與界面相關(guān)把Activities 視為控制器尤其對(duì)生命周期與狀態(tài)管理重要。不過(guò)實(shí)際中角色常有交叉Activities 可能承擔(dān) UI 職責(zé)如屏幕間轉(zhuǎn)場(chǎng)Fragments 也可能只作為控制器使用。文檔的建議是小心駛得萬(wàn)年船在充分了解信息的前提下做決策因?yàn)榧?Fragments、純 Activities 或純 Views 的架構(gòu)各有弊端。需要警惕的要點(diǎn)盡量避免嵌套 Fragments嵌套容易引發(fā)套娃式matryoshkabug僅在有明確理由時(shí)使用例如橫向滑動(dòng)的 ViewPager 內(nèi)的 Fragment位于類似屏幕的 Fragment 內(nèi)部或確屬深思熟慮的決策。避免在 Activities 中堆砌過(guò)多代碼盡量讓 Activity 保持輕量容器角色主要用于生命周期與 Android 系統(tǒng) API 交互。優(yōu)先使用單 Fragment 的 Activity而非裸 Activity——把 UI 代碼放進(jìn) Activity 對(duì)應(yīng)的 Fragment這樣將來(lái)要改為標(biāo)簽頁(yè)布局或多 Fragment 平板界面時(shí)可以直接復(fù)用除非有充分的決策理由避免出現(xiàn)沒(méi)有對(duì)應(yīng) Fragment 的 Activity。不要濫用 Android API level如果應(yīng)用內(nèi)部大量依賴 Intent 進(jìn)行通信可能影響 Android 系統(tǒng)或其他應(yīng)用造成錯(cuò)誤或延遲。例如已知的問(wèn)題是若應(yīng)用包間用 Intent 做內(nèi)部通信恰在系統(tǒng)剛啟動(dòng)后打開(kāi)應(yīng)用時(shí)可能帶來(lái)數(shù)秒的用戶體驗(yàn)延遲。六、Java 包結(jié)構(gòu)面向功能的組織方式文檔給出的思路是把 Android 的 Java 架構(gòu)放到 MVC 框架下審視Fragments/Activities 既算控制器、又因顯式參與 UI 而算視圖因此難以嚴(yán)格歸類。建議的做法是Fragments 放進(jìn)獨(dú)立的fragments包Activities 數(shù)量不超過(guò) 23 個(gè)時(shí)留在頂層包更多時(shí)則建activities包。models包存放供 JSON 解析器與 API 響應(yīng)使用的 POJO。views包存放所有 Views、通知、Action Bar Views、widgets 等adapters作為數(shù)據(jù)與視圖的中介結(jié)構(gòu)通常需要通過(guò)getView()導(dǎo)出 View因此可放在views之下。managers包全局性的、貼近 Android 系統(tǒng)的控制器類。utils包數(shù)據(jù)處理類如 DateUtils。network包負(fù)責(zé)與后端交互的類。整體上按從離后端最近到離用戶最近排列com.futurice.project ├─ network ├─ models ├─ managers ├─ utils ├─ fragments └─ views ├─ adapters ├─ actionbar ├─ widgets └─ notifications說(shuō)明這是該文檔西語(yǔ)版所呈現(xiàn)的按層分包方案?jìng)}庫(kù)英文版 README.md 已演進(jìn)為更推薦的面向功能feature based分包并列舉了依賴邊界清晰、利于封裝、便于按功能移除代碼、易于過(guò)渡到模塊化構(gòu)建等收益。團(tuán)隊(duì)可根據(jù)項(xiàng)目階段選擇適合的方案。七、資源組織布局、樣式、顏色、尺寸與字符串7.1 資源命名規(guī)范遵循type_foo_bar.xml的命名模式類型前綴 功能 具體對(duì)象例如fragment_contact_details.xmlview_primary_button.xmlactivity_main.xml7.2 布局 XML 的編排規(guī)范如果不確定布局文件如何排版可遵循以下約定每行一個(gè)屬性縮進(jìn) 4 個(gè)空格始終把a(bǔ)ndroid:id放在第一個(gè)屬性android:layout_****類屬性置于頂部style屬性放在最后自閉合標(biāo)簽/獨(dú)占一行便于排序與追加屬性不要硬編碼android:text考慮使用 Android Studio 提供的 Designtime 屬性設(shè)計(jì)期預(yù)覽專用。示例?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:toolshttp://schemas.android.com/tools android:layout_widthmatch_parent android:layout_heightmatch_parent android:orientationvertical TextView android:idid/name android:layout_widthmatch_parent android:layout_heightwrap_content android:layout_alignParentRighttrue android:textstring/name stylestyle/FancyText / include layoutlayout/reusable_part / /LinearLayout黃金法則android:layout_****屬性定位、外邊距、尺寸等布局屬性應(yīng)留在布局 XML 中而其余android:****外觀屬性顏色、內(nèi)邊距、字體等應(yīng)放進(jìn)樣式文件。存在以下例外android:id顯然應(yīng)留在布局文件LinearLayout的android:orientation通常放在布局文件中更合理android:text定義內(nèi)容應(yīng)放在布局文件有時(shí)把通用的android:layout_width/android:layout_height抽成樣式是合理的但默認(rèn)仍應(yīng)寫(xiě)在布局文件里。7.3 使用樣式styles消除重復(fù)屬性幾乎所有項(xiàng)目都需要恰當(dāng)使用樣式因?yàn)?View 的外觀復(fù)用極為常見(jiàn)。至少應(yīng)為應(yīng)用中的大部分文本定義一個(gè)通用樣式例如style nameContentText item nameandroid:textSizedimen/font_normal/item item nameandroid:textColorcolor/basic_black/item /style并應(yīng)用到 TextViewTextView android:layout_widthwrap_content android:layout_heightwrap_content android:textstring/price stylestyle/ContentText /按鈕通常也需要同樣的處理但不要止步于此把一組重復(fù)且相關(guān)的android:****屬性遷移到公共樣式。7.4 拆分大樣式文件沒(méi)有必要只用一個(gè)styles.xml。Android SDK 原生支持任意文件名styles這個(gè)名字并無(wú)特殊魔法真正起作用的是文件內(nèi)部的styleXML 標(biāo)簽。因此你可以擁有styles.xml、styles_home.xml、styles_item_details.xml、styles_forms.xml等多個(gè)文件。與資源目錄名對(duì)構(gòu)建系統(tǒng)有意義不同res/values下的文件名可以是任意的。7.5colors.xml只做一件事定義調(diào)色板colors.xml中除了顏色名 → RGBA 值的映射外不應(yīng)再有任何別的內(nèi)容。這樣既能避免 RGBA 值被反復(fù)書(shū)寫(xiě)也讓?xiě)?yīng)用到底用了多少種顏色一目了然方便日后變更與重構(gòu)對(duì)美觀的 UI 而言收斂顏色種類本身就很重要。不要這樣定義把業(yè)務(wù)語(yǔ)義揉進(jìn)顏色名resources color namebutton_foreground#FFFFFF/color color namebutton_background#2A91BD/color color namecomment_background_inactive#5F5F5F/color color namecomment_background_active#939393/color color namecomment_foreground#FFFFFF/color color namecomment_foreground_important#FF9D2F/color ... color namecomment_shadow#323232/color這樣極易重復(fù) RGBA 值而且buttoncomment這類帶上下文的定義本應(yīng)放進(jìn)按鈕/注釋的樣式文件而不是colors.xml。應(yīng)該這樣定義純調(diào)色板resources !-- Escala de grises灰度 -- color namewhite #FFFFFF/color color namegray_light#DBDBDB/color color namegray #939393/color color namegray_dark #5F5F5F/color color nameblack #323232/color !-- Colores básicos基礎(chǔ)色 -- color namegreen#27D34D/color color nameblue#2A91BD/color color nameorange#FF9D2F/color color namered#FF432F/color /resources可以請(qǐng)應(yīng)用的設(shè)計(jì)師來(lái)定這套調(diào)色板命名不必是greenblue這類直白顏色名color_primario主色、color_secundario次色之類的語(yǔ)義名同樣很好。英文版 README.md 還進(jìn)一步示范了三層職責(zé)劃分colors.xml只定義調(diào)色板styles.xml中通過(guò)引用調(diào)色板來(lái)表達(dá)顏色用途如按鈕前景為白色activity_main.xml引用樣式給按鈕上色若需要更徹底的解耦還可以再建一個(gè)引用調(diào)色板的中間顏色資源文件color namebutton_foregroundcolor/white/color color namebutton_backgroundcolor/blue/colorstyle nameAcceptButton item nameandroid:foregroundcolor/button_foreground/item item nameandroid:backgroundcolor/button_background/item /style這種做法的收益是更強(qiáng)的顏色重構(gòu)能力與更穩(wěn)定的樣式定義代價(jià)是需要額外維護(hù)一組顏色映射。7.6dimens.xml同樣做成尺寸調(diào)色板與colors.xml同理應(yīng)對(duì)典型字號(hào)與間距定義一套調(diào)色板。一份好的 dimens 文件示例resources !-- Tama?o de letra字號(hào) -- dimen namefont_larger22sp/dimen dimen namefont_large18sp/dimen dimen namefont_normal15sp/dimen dimen namefont_small12sp/dimen !-- Espacio entre dos Views視圖間典型間距 -- dimen namespacing_huge40dp/dimen dimen namespacing_large24dp/dimen dimen namespacing_normal14dp/dimen dimen namespacing_small10dp/dimen dimen namespacing_tiny4dp/dimen !-- Tama?o de una View視圖典型尺寸 -- dimen namebutton_height_tall60dp/dimen dimen namebutton_height_normal40dp/dimen dimen namebutton_height_short32dp/dimen /resources布局中的 margin 與 padding 應(yīng)盡量使用spacing_****尺寸而非硬編碼數(shù)值——就像字符串通常的處理方式一樣。這能讓?xiě)?yīng)用獲得一致的視覺(jué)體驗(yàn)也讓樣式與布局的調(diào)整更加容易。7.7strings.xml命名與大小寫(xiě)字符串的 key 應(yīng)體現(xiàn)上下文namespace不必害怕兩個(gè)或多個(gè) key 共用同一個(gè)值語(yǔ)言是復(fù)雜的命名空間式的 key 能帶來(lái)語(yǔ)境、消解歧義。不好key 語(yǔ)義模糊string namenetwork_errorNetwork error/string string namecall_failedCall failed/string string namemap_failedMap loading failed/string好key 攜帶上下文前綴string nameerror_message_networkNetwork error/string string nameerror_message_callCall failed/string string nameerror_message_mapMap loading failed/string不要用全大寫(xiě)書(shū)寫(xiě)字符串值遵循常規(guī)文本習(xí)慣例如僅首字母大寫(xiě)。如果確實(shí)需要全大寫(xiě)展示請(qǐng)?jiān)?TextView 上使用textAllCaps屬性來(lái)實(shí)現(xiàn)不好string nameerror_message_callCALL FAILED/string好string nameerror_message_callCall failed/string八、避免過(guò)深的 ViewGroup 層級(jí)為了完成某種視圖排布你可能忍不住再套一層 LinearLayout于是出現(xiàn)類似下面這種逐層嵌套LinearLayout android:layout_widthmatch_parent android:layout_heightmatch_parent android:orientationvertical RelativeLayout ... LinearLayout ... LinearLayout ... LinearLayout ... /LinearLayout /LinearLayout /LinearLayout /RelativeLayout /LinearLayout即便單個(gè)布局文件中沒(méi)有顯式出現(xiàn)這種結(jié)構(gòu)通過(guò) Java 代碼向其他 View 中 inflate 視圖也可能在運(yùn)行時(shí)形成同樣的深樹(shù)。深層級(jí)會(huì)帶來(lái)兩類問(wèn)題一是性能問(wèn)題——處理器需要維護(hù)一棵復(fù)雜 UI 樹(shù)二是更嚴(yán)重的隱患——視圖過(guò)多時(shí)可能觸發(fā)StackOverflowError。因此應(yīng)盡量讓視圖層級(jí)保持扁平學(xué)習(xí)使用 RelativeLayout、學(xué)會(huì)優(yōu)化布局、善用merge標(biāo)簽。英文版 README.md 在此基礎(chǔ)上進(jìn)一步推薦了 ConstraintLayout它是構(gòu)建扁平層級(jí)的有力工具。九、WebViews 的注意事項(xiàng)需要展示網(wǎng)頁(yè)例如新聞?wù)臅r(shí)避免在客戶端做 HTML 清洗處理——應(yīng)要求后端返回純凈的 HTML。WebView 還有一個(gè)典型的內(nèi)存泄漏點(diǎn)當(dāng)它持有 Activity 的引用、而不是綁定到 ApplicationContext 時(shí)就會(huì)泄漏內(nèi)存。此外簡(jiǎn)單文本或按鈕不要用 WebView優(yōu)先使用平臺(tái)自帶的 TextView 或 Button。十、測(cè)試框架、模擬器與調(diào)試工具10.1 測(cè)試框架該文檔寫(xiě)作時(shí)的觀點(diǎn)西語(yǔ)版如下Android SDK 自帶的測(cè)試工具尚顯稚嫩尤其 UI 測(cè)試方面。Android Gradle 提供了connectedAndroidTest任務(wù)借助 JUnit 的 Android 擴(kuò)展運(yùn)行單元測(cè)試這意味著需要連接真機(jī)或模擬器才能執(zhí)行測(cè)試。Robolectric 只適合做單元測(cè)試不適合測(cè)視圖它以無(wú)需連接設(shè)備換取開(kāi)發(fā)速度適合 Models 與 View Models 的單元測(cè)試但它對(duì) Android 平臺(tái)的模擬實(shí)現(xiàn)并不精確也不完整動(dòng)畫(huà)、對(duì)話框等 UI 元素難以測(cè)試且測(cè)試是在盲測(cè)狀態(tài)下進(jìn)行的。Robotium 讓 UI 測(cè)試編寫(xiě)更簡(jiǎn)單雖然不強(qiáng)制需要但它提供的視圖查找/分析輔助與屏幕控制能力很有價(jià)值。測(cè)試用例可以簡(jiǎn)潔到這種程度solo.sendKey(Solo.MENU); solo.clickOnText(More); // 找到第一處 More 并點(diǎn)擊 solo.clickOnText(Preferences); solo.clickOnText(Edit File Extensions); Assert.assertTrue(solo.searchText(rtf));版本演進(jìn)提示倉(cāng)庫(kù)英文版 README.md 的測(cè)試主張已更新為——用 JUnit 做純 JVM 上的無(wú) Android 依賴單元測(cè)試、避免 Robolectric因其平臺(tái)模擬不保證正確性建議改為 JVM 單元測(cè)試 真機(jī)集成測(cè)試的組合、用 Espresso 編寫(xiě) UI 測(cè)試、用 AssertJ-Android 簡(jiǎn)化 Android 組件Support、Google Play Services、AppCompat 等的斷言。斷言示例// 使用 AssertJ-Android 的斷言示例 assertThat(layout).isVisible() .isVertical() .hasChildCount(5);10.2 模擬器該文檔當(dāng)時(shí)的建議西語(yǔ)版是若以 Android 開(kāi)發(fā)為職業(yè)購(gòu)買 Genymotion 模擬器許可證——其幀率遠(yuǎn)高于典型 AVD 模擬器提供演示、網(wǎng)絡(luò)質(zhì)量模擬、GPS 定位等工具非常適合測(cè)試覆蓋眾多但非全部設(shè)備比購(gòu)買多臺(tái)真機(jī)劃算得多。注意事項(xiàng)Genymotion 不含全部 Google 服務(wù)如 Google Play Store、Google Maps且三星特定 API 仍需真機(jī)驗(yàn)證。版本演進(jìn)提示英文版 README.md 指出Android SDK 模擬器尤其 x86 變體性能近年已大幅改善、足以應(yīng)付日常開(kāi)發(fā)同時(shí)強(qiáng)調(diào)真機(jī)驗(yàn)證的價(jià)值并建議把測(cè)試精力聚焦于市場(chǎng)份額大、與產(chǎn)品最相關(guān)的設(shè)備。10.3 Stetho把 Chrome DevTools 變成 Android 調(diào)試臺(tái)Stetho 是 Facebook 出品的 Android 調(diào)試橋與 Chrome 桌面瀏覽器的 Developer Tools 深度集成。通過(guò)它你可以輕松檢查應(yīng)用尤其是網(wǎng)絡(luò)流量還能直接查看與編輯 SQLite 數(shù)據(jù)庫(kù)和 SharedPreferences。務(wù)必確保 Stetho只在 debug 構(gòu)建中啟用絕不能進(jìn)入 release 構(gòu)建。英文版還提到備選方案 Chuck功能更簡(jiǎn)化但日志直接顯示在設(shè)備上便于測(cè)試人員使用無(wú)需連接 Chrome。10.4 LeakCanary把內(nèi)存泄漏檢測(cè)變成日常LeakCanary 讓內(nèi)存泄漏的運(yùn)行時(shí)檢測(cè)與定位成為開(kāi)發(fā)流程的常規(guī)一環(huán)。配置與用法詳見(jiàn)其官方 wiki。關(guān)鍵提醒release 構(gòu)建中只配置 no-op 依賴即空實(shí)現(xiàn)避免把檢測(cè)邏輯帶進(jìn)生產(chǎn)包。十一、ProGuard 配置與混淆問(wèn)題排查ProGuard 常用于 Android 項(xiàng)目對(duì)打包代碼進(jìn)行縮減shrink與混淆obfuscate。是否啟用取決于項(xiàng)目配置常見(jiàn)做法是讓 Gradle 只在構(gòu)建 release APK 時(shí)啟用buildTypes { debug { minifyEnabled false } release { signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro } }要判斷哪些代碼必須保留、哪些可以丟棄或混淆需要為代碼指定一個(gè)或多個(gè)入口點(diǎn)——通常是帶有 main 方法的類、applet、midlet、Activity 等。Android 框架自帶一份默認(rèn)配置位于SDK_HOME/tools/proguard/proguard-android.txt上述配置中項(xiàng)目自定義的規(guī)則文件my-project/app/proguard-rules.pro會(huì)被追加到默認(rèn)配置之后。11.1 經(jīng)典問(wèn)題構(gòu)建成功卻啟動(dòng)崩潰常見(jiàn)現(xiàn)象assembleRelease等構(gòu)建命令無(wú)警告地成功了但應(yīng)用啟動(dòng)即崩拋出ClassNotFoundException、NoSuchFieldException等異常。原因不外乎兩種ProGuard 判定某類、枚舉、方法、字段或注解不再需要將其移除ProGuard 對(duì)類、枚舉或字段名做了混淆重命名但代碼仍通過(guò)原名間接使用它例如 Java 反射。排查步驟檢查app/build/outputs/proguard/release/usage.txt確認(rèn)目標(biāo)對(duì)象是否被移除檢查app/build/outputs/proguard/release/mapping.txt確認(rèn)目標(biāo)對(duì)象是否被混淆。11.2 用 keep / keepnames 保護(hù)代碼防止 ProGuard 移除所需類或成員在 ProGuard 配置中加入keep-keep class com.futurice.project.MyClass { *; }防止 ProGuard 混淆類或成員使用keepnames-keepnames class com.futurice.project.MyClass { *; }更多示例可參考 ProGuard 官方手冊(cè)的 examples 章節(jié)。11.3 實(shí)戰(zhàn)紀(jì)律項(xiàng)目早期就做 release 構(gòu)建驗(yàn)證 ProGuard 規(guī)則是否正確保留了依賴。每引入新庫(kù)或更新依賴后再做一次 release 構(gòu)建并在真機(jī)上測(cè)試 APK。不要等到應(yīng)用做到 1.0 版才首次做 release 構(gòu)建——屆時(shí)可能遭遇一堆意外與極短的修復(fù)時(shí)間。保留每次發(fā)布的mapping.txt這樣當(dāng)用戶遇到 bug 并提交混淆后的堆棧軌跡時(shí)你才能據(jù)其定位與反解問(wèn)題。DexGuard若需要更硬核的優(yōu)化尤其是混淆能力可考慮 DexGuard——由開(kāi)發(fā) ProGuard 的同一團(tuán)隊(duì)出品的商業(yè)軟件它還能輕松拆分 dex 文件以解決 65k 方法數(shù)限制。十二、數(shù)據(jù)存儲(chǔ)SharedPreferences、ContentProviders 與 ORM12.1 SharedPreferences如果只需要持久化簡(jiǎn)單值、且應(yīng)用運(yùn)行在單一進(jìn)程中SharedPreferences 是很好的默認(rèn)選擇。以下場(chǎng)景它并不適用性能數(shù)據(jù)復(fù)雜或數(shù)據(jù)量很大多進(jìn)程訪問(wèn)有 widget 或遠(yuǎn)程服務(wù)運(yùn)行在各自進(jìn)程中、需要同步數(shù)據(jù)。英文版 README.md 還補(bǔ)充了第三種場(chǎng)景——關(guān)系型數(shù)據(jù)數(shù)據(jù)各部分之間存在關(guān)聯(lián)、需要強(qiáng)制維護(hù)這些關(guān)系。也可以把復(fù)雜對(duì)象序列化為 JSON 存儲(chǔ)、讀取時(shí)再反序列化但要注意這種做法的性能與可維護(hù)性權(quán)衡。12.2 ContentProviders當(dāng) SharedPreferences 不夠用時(shí)應(yīng)使用平臺(tái)標(biāo)準(zhǔn)的 ContentProviders——更快且進(jìn)程安全。它唯一的缺點(diǎn)是搭建所需樣板代碼較多、且高質(zhì)量教程稀缺。不過(guò)可以通過(guò) Schematic 之類的庫(kù)自動(dòng)生成 ContentProvider顯著降低工作量。之后仍需自己編寫(xiě)少量解析代碼來(lái)讀寫(xiě) SQLite 列與數(shù)據(jù)對(duì)象之間的映射。也可以借助 Gson 等把數(shù)據(jù)對(duì)象序列化只持久化結(jié)果字符串——代價(jià)是性能損失好處是不必為類的每個(gè)字段聲明一列。12.3 關(guān)于 ORM除非數(shù)據(jù)極端復(fù)雜且有迫切需求一般不推薦使用對(duì)象關(guān)系映射ORM庫(kù)它們往往復(fù)雜、學(xué)習(xí)成本高。如果決定使用 ORM務(wù)必確認(rèn)其是否進(jìn)程安全如果應(yīng)用有此需求的話——很多現(xiàn)有 ORM 方案在這方面出人意料地并不可靠。十三、持續(xù)集成CI英文版 README.md 進(jìn)一步補(bǔ)充了持續(xù)集成主張CI 系統(tǒng)能在每次向版本控制推送更新時(shí)自動(dòng)構(gòu)建與測(cè)試項(xiàng)目還能運(yùn)行靜態(tài)代碼分析、生成并分發(fā) APK。Lint 與 Checkstyle 保障代碼質(zhì)量FindBugs 則在代碼中尋找 bug。CI 軟件種類繁多、特性各異開(kāi)源項(xiàng)目通??擅赓M(fèi)使用Jenkins 適合自建本地服務(wù)器Travis CI 則是云托管 CI 的推薦選擇。這與本文開(kāi)頭構(gòu)建過(guò)程由 Gradle 文件定義、而非 IDE 配置的原則一脈相承——只有可腳本化、可復(fù)現(xiàn)的構(gòu)建才能被 CI 順利接管。十四、結(jié)語(yǔ)與許可本文所依據(jù)的規(guī)范文檔源自 Futurice 的實(shí)踐沉淀倉(cāng)庫(kù)內(nèi)提供 README.md 及各語(yǔ)言譯本中文、西語(yǔ)、法語(yǔ)、日語(yǔ)、韓語(yǔ)、葡萄牙語(yǔ)、俄語(yǔ)、土耳其語(yǔ)、越南語(yǔ)全文遵循 Creative Commons Attribution 4.0 International (CC BY 4.0) 協(xié)議LICENSE可在注明出處的前提下自由使用與演繹。文中大部分代碼示例、目錄結(jié)構(gòu)與命令均可直接對(duì)照倉(cāng)庫(kù)原文復(fù)現(xiàn)建議團(tuán)隊(duì)將其裁剪為本項(xiàng)目的工程規(guī)范并納入代碼評(píng)審清單。贊分享文檔教程移動(dòng)開(kāi)發(fā)【免費(fèi)下載鏈接】android-best-practicesDos and Donts for Android development, by Futurice developers項(xiàng)目地址https://gitcode.com/gh_mirrors/an/android-best-practices點(diǎn)擊查看免費(fèi)下載相關(guān)推薦oh-my-hermes技能體檢omh-skill-health如何守護(hù)124個(gè)技能的質(zhì)量oh my hermes技能體檢omh skill health如何守護(hù)124個(gè)技能的質(zhì)量 oh my hermesohm 是 Hermes Agent文檔教程移動(dòng)開(kāi)發(fā)iOS開(kāi)發(fā)最佳實(shí)踐指南Futurice的完整入門(mén)指南iOS開(kāi)發(fā)最佳實(shí)踐指南Futurice的完整入門(mén)指南 本文詳細(xì)介紹了iOS開(kāi)發(fā)環(huán)境的搭建與配置、項(xiàng)目初始化與架構(gòu)選擇策略、依賴管理工具對(duì)比以及Git版本控制的文檔教程RedwoodJS最佳實(shí)踐指南如何構(gòu)建可擴(kuò)展的全棧項(xiàng)目結(jié)構(gòu)RedwoodJS最佳實(shí)踐指南如何構(gòu)建可擴(kuò)展的全棧項(xiàng)目結(jié)構(gòu) RedwoodJS是一個(gè)強(qiáng)大的全棧Web框架專為幫助開(kāi)發(fā)者從 原型項(xiàng)目快速成長(zhǎng)到創(chuàng)業(yè)級(jí)應(yīng)用 而設(shè)后端前端Web框架開(kāi)發(fā)工具上一篇Home Assistant IMAP 集成 imap.fetch_part 動(dòng)作詳解提取郵件附件與 MIME 部件下一篇DataHub Prefect 集成實(shí)戰(zhàn)指南用 prefect-datahub Block 捕獲 Flow/Task 血緣與運(yùn)行元數(shù)據(jù)創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
麻豆区久久久久亚| 四虎AV无码| 久久久久女教师免费一区| 国产农村一一级特黄毛片| 色噜噜国产精品视频一区二区| 69人妻精品一区二区绯色| 亚洲欧美国产中文视频| 91精品网站| 欲香欲色天天天综合和网| 五月婷婷色| 26uuu性| 久久久久久加勒比| 天堂亚洲精品久久老牛| 久久久久久久极品香蕉视频| 最近的最新的中文字幕视频| 狠狠色伊人亚洲综合网站色| 欧美人体性爱互联网第一页婷婷日本| 暴力av在线| 亚洲自拍欧美国产首页网曝| 精品97精品97| 91九九九逼| 亚洲 日本 一 二 三| 国产精品美女在线一区| 天天草天天日| 噜噜噜噜久久久精品免费| 四虎午夜影院| 黄片免费日韩| 熟女人妻一区二区三区免费看 | 后入人妻一区| 91女网站| 天天色悠悠激情| 无套内射性感少妇视频| 久久精品国产亚洲AV片多多| 亚洲,日韩,欧美,成人播放| 亚洲图片91| 91bbbbbb| 操操吧亚洲乱伦视频| 中文字幕高清精品一区| 中文字幕美女91| 蜜臀久久99精品久久久久| 亚洲 欧美 日韩另类 麻豆| 加勒比人妻综合| 国模不卡一本二本三电影| 亚洲一二三四区机械| 欧美日韩超碰在线| 欧美有码亚洲中文字幕一区二区三区四区| 欧美在线官网| 禁止观看美女黄| 欧亚乱色熟一区二区三四区| 91网18| 国产精品不卡一区二区三区| 欧美色图人妻| 熟妇女伦乱视频视频| 青青青草原| 色五月综合| 裸体美女免费看网站青草| 狠狠色综合网| 青青国产精品在线| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 美女网站黄页| 日韩BBN| 免费视频观看60秒| 八戒午夜福利理论片| 日本免费一级AAA大片器| 久久无码成人| 无码99| 日本午夜福利视频| 中文字幕人乱码中文字的预防方法 | 在线二区不卡| 免费观看国产不卡av| 日韩中文字幕在线视频观看| 99热久| 亚洲免费精品一区| 中文字幕av一区二区三区人妻少妇| 欧美同性恋 的搜索结果 - 91n| 67914在线兔费成人视频| 中欧人妻丝袜中文字幕 | 婷婷伊人一区| 骚妻少妇精品性色无码四色A V| 91视频在线观看18| 啪啪啪东京| 91激情国产| 天天天肏屄肏屄肏屄欧美欧美| 少妇久久久久久| 欧美日韩国产另类综合| 成人午夜视频免费播放| 美腿色图| 午夜性刺激视频免费观看| 大香蕉强奸乱伦| 香蕉综合网| 香港日本韩国人妇99www.wccm20| 97Ai亚洲| 乱伦日本色图AⅤ| 性色avv| 天天草夜夜草高潮片| 91小视频| 婷婷五月天久久精品视频一区二区三区 | 九九aV| 男人的天堂亚洲| 欧美后进式| 色鬼在线综合| 91制服丝袜| www.色婷婷| 天天综合91在线| 97超碰资源网| 国产女s强制榨精视频| 国产日逼视频| 91最新综合| 欧美情色亚洲| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 天天干天天日天天射黄色| 亚洲永久永久永久永久一级一级一级精品| 狠狠躁久久躁| 看黄片视频免费| 欧美激情 日韩精品| 日日妻色网| 亚洲欧美人妻| 久久黄黄| 免费看毛片操穴| 国产99999久久精品| 久久这里只精品免费福利| 久久一二三四五六七八九区区区| 干B网| 看日韩操逼| 97久久久精品| 亚洲第一狼人丝袜美女另类| 精品人妻一区二区乱码一区二区| 九九综合九九综合| 亚洲瓯美色图| wwwcaobibi| 久久是精品| 人看人人摸人人操| 精品一级| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 亚洲国产一级中文综合久久天堂在线免费观看| 高清国产av无码| 操逼999| 乱伦熟女区| 欲综合网| 丝袜内射| 综合色久| 翔田千里Av在线| 青青青艹在线视频| 九色婷婷| 乱操乱伦AV| 怡春苑东京热| 九九九九九九亚洲| 亚洲偷拍自拍在线视频| 国产日韩在线播放av| 青青草一区二区三区四| 乱理日韩中文| 91在线色综合| 欧美专区日本专区| 亚洲少妇激情视频| 久久人妻丝袜一区二区三| 97人人夜夜精品视频| yazhououmeizongya| 荡小穴在线观看| 深夜国产一区二区三区在线看| 竹菊一区二区三区AV线| 久9爱经典视频| 久久熟妇五十路一区| 99久久综合网| 色婷婷久久| 精品人妻1区| 久久久久久久性爱| 色与欲影视天天看综合网| 中文字幕人乱码中文字的预防方法 | 亚州少妇| 欧美黑人与女人91~| 亚洲欧美精品一区天堂久久 | 大香蕉碰碰| 少妇超碰在线| 免费观看有码高清视频| 中文字幕在线24| 五月天激情小说| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 精品欧美А∨无码黑人大荫蒂| 午夜国产成人精品视频| 精品欧美老熟女一二区| 欧美一区二区三区四区综合| 日本高清一区二区在线| 色婷婷五月天| 91撸色网 玖玖网 欧美| 死我十八禁| 丁香五月性| 欧美夜夜狠| 日韩99999色| 99热18这里只有精品| 99re6在线视频精品免费完整版安卓版| 青青欧美| 秋霞色色影院| 综合操逼| 99久久综合| 9997se| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美另类色图片| 三级片大波波| 97精品一区| 国产精品盗摄 偷窥盗摄| 激情啪啪拍91| 久草色悠悠在线视频| 国产精品久久久久久无码红治院| 婷婷亚洲五月***久久| 真实高潮91| 爱丝福利| 浪人综合网| 国产精品老熟女一区二区| 亚洲日韩欧美一区二区| 日本乱人伦片中文三区| 久久久久成人蜜桃精品| 情色图区| HEYZO高无码国产精品227| 一区黄二区黄| 日本熟女不卡视频| 日韩激情视频| 91精品女厕偷拍视频| 久久手机视直播| 狠狠操,使劲操| 大香蕉综合网| 婷婷五月丁香五月| 色色毛片| 青青草色插素人| 久久91精品国产9丨久久分亭| 亚州色站 日韩电影| 精品人妻免费观看| 欧美精品久久| 欧美成人午夜免费福利785| 天天舔天天日天天射| 亚洲成人一区二区精品| 久久精品国产97欧美精品亚洲| 强奸乱伦麻豆| 精品九九九| 很黄很污的免费网站| 91精品亚洲内射孕妇| 91亚·色| 亚洲少妇中文字幕网址| 丁香九月婷婷| 91精品人妻一区二区三区蜜桃| 亚洲欧美性生活| 亚洲免费人妻在| 91香蕉国产尤物视频| 97 国产一区| 爱我干综合| 亚洲婷婷丁香在线| 97欧美色| 中文字幕天天天天天| 亚洲aV性爱| 欧洲在线性爱视频| 精品国产乱码久久久久久网站入口| 久久久影院| 日韩一区二区三区四区五区| 2020久久免费视频| 97色爱| 欧日a| 粉嫩av平台| 九九九九9999| 女生91网站| 亚洲天堂日本| 久久机热| 亚洲色婷婷综合久久一区二区三区| 99久久综合| 久热久| 99只有精品| 青青草五月天| 久久日本熟女精品一区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | se吧提供国产乱老熟视频胖女人| 亚洲啪啪综合?v一区综合精品区| 大香蕉淫人| 欧美在线大香999| 亚洲精品国产精品乱码不卡| 国产精品亚洲四五区在线观看| 欧亚乱色熟一区二区三四区| 超碰这里只有精品| 强奸熟女一区二区三区 | 亚洲天堂在线怕怕视频 | 免费99精品国产自在在线| 区自美91| 综合 亚洲 欧美| 亚洲熟妇一,二,三期| 超碰午夜| 中国AAAAAA黄色片| 大色综合| 口爆综合网| 国产吹潮女在线观看| 激情黄色片在线观看| 精品久久99| 色呦色呦色精品| 欧美性爱第一页久久| 视频二区美腿丝袜制服人妻欧美 | 午夜精品久久久久久久99| 大香蕉免费3| 亚码激情| 成人羞羞视频国产| 亚洲精品天天影视综合网 | 亚洲欧美校园另类春色| 91日韩国产欧美亚洲另类精盘州至城都| 午夜电影在线观看无码专区| 美女AV一区二区| 国产9 9在线 | 亚洲| 精品免费一区二区三区在线亚洲人成| 777超碰| 色噜噜综合网| 国产精品视屏| 一区麻豆 高清中文字幕| 国产日韩精品suv| 天天透伊人| 国产精品扒开腿做爽爽爽视频| 97香蕉碰碰人妻国产欧美| 懂色av中文字幕| 无码日韩网站| 色九久| 熟妇熟女亚洲天堂网| 精品久久久久久久| 日本97久久久精品| 国产精品69人妻无码久久久| 免费男人的天堂| 久久婷婷影院| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 秋霞一级鲁丝片A片| 97干com| 肏逼福利网站| 蜜桃色院一区久久| 色狠狠综合| 日韩少妇无码| 1204av韩国| 午夜寂寞欧美| 91在线免费精品视频| 色婷婷综合久久中文字幕雪峰 | 伊人991| 性在久久久久久| 高清一区AV无码| 日本久久999| 国产成人综合网| 亚洲牲交| 欧美第二页午夜| 九九黄色网| 日韩免费三级黄片电影| 九九九九免费视频| 97精彩视频网站| 综合五月婷婷亚洲一区| 中国少妇啪啪视频| 天天操天天谢| 97精品国产97久久久久久免费| 日韩综合成人免费视频| 玖玖久久久| 男人天堂日日夜夜| 久久精品欧美一区蜜桃| 亚洲成?V人片在线观看福利| 性色亚洲| 欧美日韩制服| 久久国产精品熟女人妻| 欧美一二三区四五区| 十八禁啪啦拍视频无遮挡| 97久久超碰| 91熟女视频网| 欧美色图私拍91| 五月丁香色综合| 99精品欧美一区二区三区桃色| 中文字幕一区二区三区人妻不卡 | 国产精品不卡一区二区电影| 天天射天天色成人| 神马久久免费电影观看| 欧美少妇色综合| 久久精精区一区二区一蜜桃一区二区| 日韩欧美中文日韩欧美色| 欧美综合另类| 日本 情色 1区| 青青草国产一区二区三区| 91jk色拍| 99久久综合| 精品一区二区啪啪啪| 免费看日产一区二区三区| 99国产精品视频尤物| 可免费观看的av毛片中日美韩 | 天天爽天天爽| 97久久视频| 国产 v乱码一区二| 欧美成人黄网色网站| 日韩簧片免费看| 国产精品女aA片爽爽视频| 欧美色网络| 久久精品一区一起草| 中文字幕伊人| 久久国产精品视频| 午夜精品久久久久久久| 日韩 女同 综合| 欧美精品三区| 综合自拍| 综合色久| 国产精品天美传媒| 国产原创精品| 伊人伊人LD| 亚洲男人的天堂在线看| 日本超碰97日韩精品人妻| 男人干美女| 日韩午夜国产| 亚洲欧美在线综合| 欧美成人精品一区二区男人蜜臀| 青青草AV色| 九九九999久久久网站| 麻豆熟妇乱妇熟色A片在线看| 97人人色| 亚洲欧美另类激情小说| 91深夜夜| 激情久久久| 久操九九九九| 天天日天天屌天天操| 亚洲宗合网| 伊人嫩草| 天天澡天天爽日日AV| 日韩免费在线观看不卡| 天天插夜夜操| 亚洲中文字母在线播放| 日韩精品一区二区三区四虎影视| 欧美97在线观看| 制服中出中文人人精品| 国产97av| 国产女人和拘做爰视频| 亚洲av强奸乱伦| 最新AVzaixian| 91精品丝袜久久久久久无码人妻| www.acm成人黄色毛片| 亚洲 欧美 第一页 | 1956日韩精品| 伊人四虎综合| 加勒比综合网| 久久久成人国产精品无码| 久久伊人大香蕉| 91天天综合网,天天综合网| 另类专区加勒比| 91国模| 日日噜噜夜夜狠狠视频无| 围产精品一区二区三区视频播放| 大香蕉色十月| 久操av在线| 思思热国产高清| 亚洲人妻中文高清| 加勒比综合九九99视频在线播放| 黄色成年| 国产一级作爱毛片| 丝袜亚洲91| 2019天天干| 91人妻中文| juliaann精品熟女一区| 日韩欧视频| 日韩精品碰碰| 日夜久久久九九九久| 日韩综合第八区国产精品| 久久午夜鲁丝片| 国产蜜臀精品一区二区尤物| 欧美成人A√在线一区二区| 国产亚洲在线观看| 在线小说视频一区| 亚洲人妻中文高清| 偷拍片久久| 黄色大片免费在线| 麻豆婷婷成人一二三| 久一区久久蜜桃| 日本中文字幕在线视频| 日韩 女同 综合| 成人97人人超碰人人| 色综合一区二区三巨| 97超碰欧美精品| www久| 蜜桃臀AV在线| 久草免费在线一区二区| 黑人干亚洲| 99精品视频在线观看免费| 后入内射蜜桃臀| 日韩肏逼视频| 超碰碰97| 国产精品嫩草影院免费| 国产白丝在线| 午夜寂寞欧美| 97国产中文| 男人的天堂一区三区| 亚洲怡春院| 亚洲综合中文字幕有码| 日韩精品人妻中文字幕不卡乱码| 激情综合网五月婷婷| 色偷偷综合91久久噜噜| 九九性视频| 熟妇视频一区二区三区在线| 精品国产乱码久久久久久久久1 | 91撸色网 玖玖网 欧美| 高潮的A片激情扒开一区| 亚洲欧美另类少妇精品| 国产亚洲精品农村妇女 | 欧美性爱日韩性爱| 亚洲另类色综合网站| 免费一级毛片在线视频观看| 亚洲欧美碰碰| 亚洲一二三四区机械| 国产日韩色综合| 中文字幕在线2| 青青操综合网| 99久草| 中文字幕视频在线观看一区二区| 国产一区二区三三视频| 天天舔日美女视频| 国产天天骚| 国产精品无码在线| 日本一区二区中文字幕久久| 330dv亚洲成年视频网| 日韩精品亚洲专区在线影视| 91人人操| 一区二区三区色综合| 9久久精品| a'v在线资源| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 久久婷五月天| 国产日韩精品人妻久久久久色欲网站| 少妇特黄一区二区三区| 国产精品视频电影| 777奇米影视777四色| 欧美天天射| 97爱b| 91蜜臀在线久久久久| 日日噜噜夜夜狠狠视频无| 上床啊啊啊| 亚洲日韩熟女人妻高清在线| 久久手机视直播| 成人免费福利网站国产| 人人性爱视频免费| 精品人妻一区二区三区视频在线| 国产精品久久久久久久久久久久久久久久久久 | 国产一区二区三区久久久精品| 综合熟妇一区二区三区| 精品久久久久久久久久久久| 日韩三级一区| 亚洲免费人妻在| 日韩av性爱在线播放| 欧美最婬乱婬爆婬牲视频| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 你操综合| 六月丁丁香| 蜜桃视频成a人v在线| 日韩欧美日韩| 91热| 青草伊人久久| 在线五区| 亚州九九九精品视频| 蜜臀在线免费观看在线免费观看| 九九久久精品| 白嫩国模丰满一二三区| 女人被男人桶爽视频网站| 黄片视频观看| 伊人一级免费黄片| 91久久久亚洲| 亚洲最新Av| 搡老女人老91妇女老熟女 | 啊啊啊啊啊啊在线看| 91粉芽高清在线一区二区| 久久久久久久9最新免费视频观看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 久久久国产av美女私房| 超碰在线人妻中文字幕| 婷婷伊人五月| 久久久精品电影| 伊人网免费视频| www.色吧5.com| 亚洲欧洲av影音| 9久在线视频只有精品| 韩国一级做a久久久久| 神马久久久久久久| 日语五十路和六十路亚洲国产精品 | 综合操逼| av资源在线播放天堂| 大屁股xxxxx| 国产激情综合| 校园春色之综合网| 综合网久久| 亚洲吊色| 欧美人妻一区二区| 福利视频网站| 欧美爱三级日韩久久| 18禁免费视频| 爱我干综合| 日韩av女优在线免费一区| 67914在线精品观看| 国产综合久久久鬼色| 欧洲精品久久| 欧美日韩久久精品爱爱| 91精品无码久久久久久久| 男女激烈网站最新| 国产精品久久久鸭无码的功能| 狠狠干综合| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲国产精品无码AV久久| 91亚洲色人| 国产小u女在线观看| 国产刺激视频| 免費黃色視頻觀看一| 亚欧性爱在线无码| 9999伦理视频| 97一本大道亚洲一区| 无马一区二区| 又大又大又大又粗爽高潮观看 | 欧美人人AAA| 啊啊啊水好多| 91伊人| 免费一级特黄特色大片在线观看看 | 国产精品91一样| 日韩精品人妻系列无码天堂| 97香蕉人人乳| 亚洲精品不卡一二三区| 亚洲深夜福利| 国产欧美一级在线观看| 天天做天天爽| 超碰在线第一页| 一本久道久久综合狠狠爱一密臀精 | 久久男人网| 国内毛片四区| 黄色操人| 欧美亚性天堂| 亚洲一区亚洲天堂| 热思思免费视频| 人看人人摸人人操| 婷婷国产精品九区| 大鸡巴久久| 亚川综合视频| 亚洲国产剧情少妇激情| 久久久久幕乱码| a一区二区三区乱码在线| 久久久国产三级黄色片| 欧美白嫩女HD| 亚洲乱码精品一区二区| 久久香蕉国产线看观看猫咪av| 国产久久日韩网站导航| 国产精品97超碰| 亚洲最新av无码成人精品区| 色哟哟的毛片| 亚洲情色综合网| 色狠狠 - 百度| 久久久工口| 久久久四区| 成视频在线观看免费看| 99亚洲人人| 91欧美亚洲| 精品国产肉丝袜在线拍国语| 99re在线视频| 欧美 综合| 家庭乱伦麻豆| 加勒比大香蕉视频在线| 综合色区偷拍| 最新啪啪视频| 曰韩少妇无码| 91足交| 男人的天堂VA在线| 国产成年免费大片黄在线观看| 96AV精品| 美女裸体无遮挡永久免费观看网站 | 热久日综合| 久久精品国产亚洲5555| 又黄又爽在线观看视频| 欧亚日韩中文在线| 夜夜操天天肏| 人人性爱视频免费| 91美女中出| 精品福利| 亚洲骚女一区二区三区| 综合影院永久入口国产| 欧美 亚洲 大香| 黄色av网站在线播放| 国产传媒一区日韩| 国产成人手机视频激情| 操淫穴亚洲五月丁香 | 亚洲日韩黑丝| 69人妻精品一区二区绯色| 天天躁日日躁狠狠狠躁| 91N五十路| 天天夜躁日日躁狠狠2002| 亚洲一区二区三区麻豆传媒| 久久亚洲AV无码专区首页| 麻豆一区在线| 亚洲AV永久无码一区仙野| 大干人妻| 在线观看十八禁| 尤物av网站免费在线播放| 亚洲国产综合久久天堂| 91欧美经典| 天美传媒国产原创中文字幕亚洲欧美另类 | 日韩不卡一二三四| 亚洲国产高清福利视频| 亚洲熟女综合一区二区| 青青青操| 日韩无码精品综合久久| 99在线精品观看视频中文| 亚洲婷婷五月天| 91精品久久久久五月天精品| 五月天亚洲网| 亚洲精品一二三四区| 伊人一区二区在线播放| 狠狠色五月亚洲91| 区一在线观看| 午夜120视频在线观看| 久久中文字幕人妻熟av女蜜柚| 久久久A∨| 秋霞一级A片黄色视频| 亚洲日本天堂| 青草青青久久久久久国产| 视频黄色国产一级| 久久久久久久91| 麻豆人妻偷人精品无码视频| 欧美一级三级| 日本欧美亚洲高清在线看| 久久久555| 玖玖综合色| 日本在线不卡v二区| 亚洲欧美电影| 麻豆a'v电影| 91中文精品日韩欧美在线 | 婷婷四五区| 黄骗免费| 综合av社区| 国产区在线| 青青草无码视频| 95精品在线| 色婷婷丁香五月天| 久久黄色视频一区二区三区 | 色一情一乱一乱一区91Av| 18禁中文字幕| 1240青青草一区二区三区视频天爱| 97超碰精品成| 白丝AV网站| 日韩内射视频| 99精品在线| 女人爽到高潮潮喷18禁网站| 涩涩涩综合| 自拍偷拍国产欧美日韩韩| 91青青在线| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| a久久| 久久一区二区三区入口| 男女激情黄色网址| 中文字幕高清精品一区| 日韩啊V| 亚洲有码视频二区| 国产精品一区二区三| 欧美九一精品久久久熟妇| 欧美影音在线| 97人人爱人人做人人乐| 人人污日韩一区二区| 欧美九9 9 9| 日韩亚洲美女一区久久| 激情亚洲天堂| 99精品久久| 国产十八禁视频| 午夜呻吟欧美| 亚洲色图加勒比| 久久啊哟| 亚洲天堂自拍| 男人下部插入女人下部 | 日本99一区二区| 亚洲视频小说| 搞中出视频在线观看| 在线情色电影 91大 | 国产第二页| 黄色不卡视频| 99日免费视频中文字幕| 九九热在线精品视频| 偷拍综合亚洲| 91女优在线观看| 91日韩网站| 夜夜黄| 校园春色亚洲| 日韩av无码网站| 日本十八禁免费看污网站| 国产又黄又粗的视频| 日韩一区二区高清在线观看的| 免费一级黄色录像影片| 91精品无码人妻系列| 日韩精品视频在线观看一卡二卡| 99久re热视频精品98| 日本三级韩国三级99| 嗯~啊~快点 死我视频| 中文字幕视频在线观看一区二区| 91色伦综合| 久久亚洲天堂| 91丝袜在线观看| 自拍偷拍草一草| 亚洲一区二区性爱电影| 久久久久久欧美精品se一二三四| 日产国产精品中文久久婷婷| 嗯嗯嗯,草死我| 少好三P| 色综合91好| 久久精品日韩| 婷婷深爱五月| 欧美色图天堂网m| 亚洲综合贴图91| 干超碰碰熟女| 日本十八禁免费看污网站| 五月天色五月| 蜜桃在线观看一区二区三区| 9精品久久久久| 91性色| 澳门特级毛片免费观看| 夜夜爽77777| 91精品少妇搡搡搡| 久久老女人| 色情五月综合婷婷| 九九九久千久久激情蜜桃在线看 | 黄色片G G G| 亚洲 欧美综合| 色乱二区| 色一射色一射| 九九热只有精品| 国产一区二区三区免费视频在性观看| 狠狠爱综合网| 国产第二页| 无码精品久久| 99热免费| 国产蜜臀精品一区二区尤物| 黑人美精品 A片| 国产精品久久久视频| 91网站18+| 久久毛卡| 色眯眯射| 精品国产网站| 91在线国产后入风骚翘臀美女素人| 2017天天插| 亚洲一欧洲中文字幕在线| 好淫网一二三视区| 黄色交缠性感爆操91国产精品免费一区二区三区| 一级性爱视频免费观看 | 伊人四虎综合| 日韩欧洲操屄视频| 日本人体九九九九九九| 少妇九九九九| 久艾草在线精品视频在线观看| 五月丁香成人网| 少好三P| 操逼视频免费日韩无码| 一区二区蜜臀| 岛国大片国产| 蜜臀AV一区二区三区激情综合| 91美女在线| 自慰白浆在线观看| 天天性射网| 日本一区二区做爱的视频| 97视频新免费| 大肥女高潮bbwbbwhd视频| 97超碰美国| 久久在线观看免费视频| 色五月婷婷麻豆在| 久久精品一区二区三区四区五区| 午夜大香蕉| 69精品| 欧美视频在线第3页| 亚洲天天操| 久久久久免费少妇| 最新无码国产| 99国产在线绯色一区| 99久久精品无码一区二区毛片免费| 欧美日韩国产中文精品字幕自在自线, | 亚洲性高潮| 中文伊人大香蕉视频| 91天天综合日韩欧美| 国产欧美一区二区| 黄片视频观看| 天天舔天天日天天射| 国产精品蜜乳AV| 精品人妻视频一区二区在线播放| 九九色逼| 天天综合官网| 97国产天堂岛| 久久精品毛片免费不卡| 大香蕉2017| 人妻啊啊人妻啊| 精品国产一区二区三区在线播出| 曰本熟女视频| 日本中文字幕在线电影| 免费成人自拍视频在线| 欧美日本久久精品一区| 99久久久er直播网址| 亚洲97网站| 99re6久热只有精品6在线直播| 午夜性生活av免费在线看| 色男人色天堂东京热| 黄网色一区二区三区四区精品| 日韩色| 色噜噜综合在线| 曰韩操B| 久久黄人人爽视频| 女同性恋一区二区三区精品视频| 在线综合色| 国产sv美女内射| 免费网色网站| 国产成人无码久久精品| 亚洲人体视频在线观看| 亚洲精品乱码久久久久久蜜桃麻豆 | 天天日日日射| 亚洲欧美激情在线视频| 亚洲影院无码在线| 97国产精品久久久久| 黄色大片一区二区密桃丝袜| 97在线观看播放视频| 超碰九7| 日本99一区二区| 一二三四日本视频高清| 国产精品一区二区亚洲人成毛片 | 国模吧 一区二区三区| 97精品网| 偷拍导航视频网站| 撸撸成人在线视频| 亚洲青青青视频在线| 午夜无码精品免费看性色| 中文字幕在线免费观看2| 蜜臀AV一区二区三区| 99国产精品免费| 91色碰| 国产97色在线| 亚洲成?V人片在线观看福利| 好爽视频在线观看视频| 国产精品农村妇女精品| 欲女人妻性色av| 欧美AB在线观看| 99re视频在线观看这里只有精品| 亚洲精品国产无码高清| 亚洲无码 国产无码| 偷拍亚洲视频一区二区三区四区| 久久99草| 99色骚| 成年男人的天堂| 97久精品| 99这里都是精品| 五月天婷婷久久| 亚洲 一区二区 自拍| 久久性爱视频免费看| 九九九网站| 国产2.3.4区| 桑老女人九区| 日本欧美m v精品网站加| 国产少妇高潮| 日韩天天本| 久久中文色图| 久久一二三四五六七八九区区| 加勒比无码一区二区三区| 五月天色综合| 中文字幕 国产区| 天天天天天干夜夜夜夜夜操| 日韩AV熟女乱伦| 全免费a敌肛交毛片免费| 日韩欧美成人综合在线| se吧提供91精品国产91久久久久久 | 亚洲欧洲另类| 九九久久精品| 国产女人成人精品视频| 五月香婷婷| 男人的天堂亚洲| 黑丝少妇在线观看| 91女人的网站| 久久久久久久久久久97| 欧美精品91| 久湿久久| 中国熟女91| 东京太热男人的天堂久久久| 欧美亚洲在线| 丰满人妻区一区二区三| 免费国产电影一区二区| 91国产操逼视频| 亚洲欧美综合区自拍另类| 亚州高清色综合| 亚洲色欧| 人人模人人看| 中文字幕人妻资源在线| 国产亚洲美日韩Aⅴ中文字幕无码成人| 人人操我人人干| 国精精品无码一二三区水多多| 女人高潮大叫一级毛片| 99热综合| 秋霞午夜视频一区二区| 极品色电影院| 日本色日夜干| 国产亚洲女v在线观看| A V视频日本| 大香樵伊人网| 色丁香五月婷婷| 大香蕉啪啪啪啪在线| 天天日天天干天天摸天天操| 天天干18禁| 91社操逼| 91超碰人人| 一区中文字幕二区日韩| 亚州综合图片| 婷婷探花久久精品一区| 日韩免费一级性爱视频| 亚洲最新中文字幕免费| 亚洲色图大香| 97视频在线视频| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 日韩美女高潮喷水视频| 91狠狠综合久久| 欧美劲爆第一页| 插穴性爱视频在线观看| 国产超碰国产97| 男人天堂最新手机版在线青青草| 91AV入口| 成人婷婷丁香| 亚洲人综合| se吧提供国产乱老熟视频胖女人| 99综合视频| 亚洲国产中文字幕| 性综合网| 91蜜桃婷婷狠狠久久综合9色| 亚洲综合99999| 欧美丝袜中文字幕07在线| 国产精品自拍xxxx| 97色碰| 亚洲欧洲色情高清| 欧美极品| 亚洲 欧美 手机在线观看| 日韩国产十八禁| 国产精品视频内谢女人| 国产亚洲日本精品在线| 日韩精品9999| 人妻无一区二区三区| 五月天综合| 九九九九精品在线| 秋霞成人做爱| 大香蕉在线视频重口味毛片在线| 久久这里只有精品9| 中文操嬖片。| 大香蕉之青青草原| 国产又黄又爽又刺激久久久久久| 五月婷在线| 婷婷激情丁香| 大香蕉520| 综合97久久| 欧美三级中文字幕hd| 天天影视网综合少妇| 一区二区三区看视频| 99久久久久| 色妇91| 能直接看AV的网站| 96精品一区| 久久久久亚洲AV无码专区少妇| 成人天天看站长推荐| 午夜乱轮操逼视频免费看| 色嘟嘟人妻天堂网| 久久产精品一区二区三区电影| 久久秀这里有精品| 日本欧美不卡| 超91综合网| 欧美丝袜美女电影一二三四区| 青青久久手机线视频| 夜夜免费视频| 国产三级多多影院2022国产AA一级毛片无码 | 久久艹逼视频| 久久9精品网站| 久综合网| 国产精品97视频| 人夜夜精品网站香蕉嫩草| 亚洲色图一区二区三区| 色色亚洲| 国产美女在线精品免费看| 2019天天操天天爽天天拍| 欧美日韩大香蕉| 啊啊啊好大好湿| 睡产熟女乱伦| 国产精品69久久久久久久| 99热在线播放| 天天上日日上日韩精品| 中文字幕55555| 秋霞久久亚洲精品成人| 男人的天堂三级| 久综合网| 香港澳门日本三级网站| 91n免费处女| A片 AV一级在线播放观看免费 | 97在线国产精品| 亚洲日韩在线a不卡99精品| 好看的久久不射无码影视影院| 久久超碰97中文字幕| 精品人妻二区三区| 日韩精品碰碰| 欧美日韩m| 天天看天天在线精品| 九九九成人| 久久东京国产精品视频| 探花视频免费观看国产专区| 久久久男人的天堂| 四虎影视永久在线免费| 1024精品在线| 老女人碰碰在线碰碰视频| 日韩97| 久欲AV| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 99日免费视频中文字幕| 91c色| 97视频网站| 大但人体久久久久| 日韩AV一区二区三区三州三州| 中文字幕久热视频在线| 人人妻人人玩人人澡人人爽| 97AV在线免费观看| 蜜乳av首页| 911av网站免费观看| 97天天日| 久9久精品视频| 久久久久9久久久久| 亚洲天堂热| 欧美黄色手机在线观看| 欧美草草高清日韩视频| 97这里只精品| 亚洲天堂,男人| 性爱精品一区| 国产91乱伦| 欧美懂色综合网| 91天堂丝袜美腿| 久久宗合亚洲| 97视频7| 日本有码久久| 五月天婷婷基地| 亚洲AV操| 蜜乳中文字幕a在线| 97精品免费视频网站| 99精品无码| 操逼精品视频| 日欧美色| 亚洲国产一区二区三区在线| 97超碰磁| 国产精品片| 啊啊啊好舒服视频| 亚洲中文字幕av | 色999人与兽| 性爱av网站| 男人的天堂一区三区| 探花熟女,姿勢到位,體驗感也到位| 人人操人人摸avav| 熟妇色99| 亚洲资源站| 国产日韩久久| 国产精品白丝AV| 日产精品久久久一区二区| KK色在线影院| 国产嫩草精品A88AV在线| 91 国产丝袜在线放观看| 嗯嗯嗯嗯啊啊啊好紧好大| 欧美专区在线| 国产成人无码网站在线视频| 伊人天天久久动态图| 91亚洲人| 农村女一级毛卡片| 精品综合久久久久久五月天| 丰满人妻-区二区三区免费看 | 2020中文字幕在线观看| 高清孕妇孕交 交孕妇| 白嫩妹子国产骚| 91N综合网| 97中文综合| 久久久久久久| 久久只有精品| 成人a级高清视频在线观看| 亚洲欧美国产中文视频| 99视频这有这里有精品| 国产传媒操逼视频|