日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

Android Studio 清理未使用 import 全攻略:從快捷鍵到自動(dòng)配置

Android Studio 清理未使用 import 全攻略:從快捷鍵到自動(dòng)配置 寫(xiě) Java/Kotlin 寫(xiě)了有幾年Android Studio 里的 import 管理一直是一個(gè)容易被忽略、但體驗(yàn)反饋極快的細(xì)節(jié)。項(xiàng)目進(jìn)入中后期一個(gè)文件被多人改過(guò)頂部 import 區(qū)長(zhǎng)出一堆根本用不到的類(lèi)引用看著礙眼review 的時(shí)候更是浪費(fèi)時(shí)間。這篇就把 Android Studio 里清理未使用 import 的方法從頭到尾梳理一遍單文件怎么清、多文件怎么清、怎么配置讓它自動(dòng)清以及清理過(guò)程中容易踩的坑。不管你是剛?cè)胄羞€是維護(hù)老項(xiàng)目這份清單都能直接用得上。1. 為什么必須較真未使用 import 帶來(lái)的連鎖反應(yīng)1.1 警告雖小閱讀成本卻高很多人覺(jué)得未使用的 import 不是編譯錯(cuò)誤放著不管也不影響功能。這句話對(duì)但只說(shuō)對(duì)了一半。它不影響 APK 運(yùn)行卻實(shí)實(shí)在在影響人讀代碼的效率。我維護(hù)過(guò)一個(gè)中型項(xiàng)目某個(gè)業(yè)務(wù)文件被迭代了兩年打開(kāi)一看import 區(qū)占了小半個(gè)屏幕里面至少三分之一是已經(jīng)不再使用的類(lèi)引用。新同事接手時(shí)第一件事往往是猜測(cè)這些 import 對(duì)應(yīng)的功能還在不在。比如看到一個(gè)對(duì)接第三方支付 SDK 的 import會(huì)以為這里還有支付邏輯結(jié)果全局搜索根本沒(méi)有使用點(diǎn)時(shí)間就這么浪費(fèi)了。更麻煩的是同名類(lèi)的誤導(dǎo)。Android 開(kāi)發(fā)里經(jīng)常出現(xiàn)工具類(lèi)、日期類(lèi)重名的情況比如自己項(xiàng)目里的 DateUtils 和引用庫(kù)里的 DateUtils 同時(shí)存在。如果 import 區(qū)殘留著舊類(lèi)后來(lái)者在閱讀代碼時(shí)很容易把使用點(diǎn)歸錯(cuò)類(lèi)輕則理解偏差重則改錯(cuò)地方。未使用 import 在 IDE 里是 Warning 級(jí)別的提示默認(rèn)在編輯器的 Problems 面板里能看到。它不會(huì)像 Error 一樣攔截你但累積多了Problems 面板被一堆無(wú)關(guān)警告淹沒(méi)真正的隱患反而被掩蓋。這也是我建議把它清掉的原因之一保持警告列表的干凈才能讓 IDE 在你需要的時(shí)候給你真正有用的提示。1.2 合并沖突與評(píng)審噪音多人協(xié)作的項(xiàng)目里import 區(qū)還是合并沖突的高發(fā)地帶。原因很簡(jiǎn)單import 集中在文件頂部?jī)蓚€(gè)分支各自新增了一個(gè)類(lèi)時(shí)Git 大概率會(huì)把兩處改動(dòng)識(shí)別成同一塊區(qū)域的沖突。保持 import 有序并且及時(shí)清理并不能完全消滅這類(lèi)沖突但能顯著降低它的頻率。如果每次都把 import 整理成標(biāo)準(zhǔn)順序、只保留當(dāng)前用到的至少不會(huì)因?yàn)橐欢褵o(wú)效 import 的存在讓 diff 變得沒(méi)法看。代碼評(píng)審時(shí)這也是個(gè)體驗(yàn)問(wèn)題。一次改動(dòng)只有幾十行核心邏輯import 區(qū)域卻刪了十幾行、改了幾十行評(píng)審人需要額外確認(rèn)每一個(gè)變化。雖說(shuō) Optimize Imports 的改動(dòng)大多是機(jī)械性的但在嚴(yán)格的團(tuán)隊(duì)流程里這種噪音會(huì)讓 review 變得痛苦也容易掩蓋真正的邏輯變更。1.3 IDE 索引與補(bǔ)全體驗(yàn)編譯速度上未使用 import 對(duì) javac 的影響其實(shí)微乎其微但不代表沒(méi)有代價(jià)。Android Studio 的代碼補(bǔ)全、錯(cuò)誤高亮、跳轉(zhuǎn)定義等功能都依賴(lài)符號(hào)索引import 區(qū)域里堆了太多無(wú)效引用索引和分析的開(kāi)銷(xiāo)會(huì)變大。最直觀的體驗(yàn)是你在按 Ctrl空格 補(bǔ)全類(lèi)名時(shí)候選列表里可能混入來(lái)自未使用 import 的干擾項(xiàng)。這類(lèi)情況在大型項(xiàng)目里更明顯。把 import 清理干凈補(bǔ)全候選列表更貼近當(dāng)前文件的真實(shí)依賴(lài)開(kāi)發(fā)時(shí)的流暢度會(huì)好一些。2. 單個(gè)文件的清理快捷鍵一梭子搞定2.1 主力快捷鍵與菜單路徑Android Studio 清理單個(gè)文件未使用 import 的核心操作叫 Optimize Imports是 IntelliJ 系 IDE 的老牌功能??旖萱I是Windows / LinuxCtrl Alt OmacOSControl Option O操作對(duì)象是當(dāng)前打開(kāi)且聚焦的編輯器文件。按一下IDE 會(huì)做三件事刪除未使用的 import把剩下的 import 按字母序重新排列按配置把同一包下的類(lèi)合并到一條 import 語(yǔ)句里。整個(gè)過(guò)程是即時(shí)的文件里所有 import 相關(guān)的整潔工作一次完成。如果你不習(xí)慣快捷鍵菜單路徑是 Code - Optimize Imports。對(duì)剛上手的人我更推薦先記快捷鍵因?yàn)樗彀亚謇韯?dòng)作變成肌肉記憶之后你會(huì)在提交代碼前順手按一下。這里有個(gè)需要注意的點(diǎn)Optimize Imports 不只是刪除未使用的類(lèi)它還會(huì)重排 import 順序。如果你當(dāng)前文件里的 import 本來(lái)就是亂的這個(gè)功能可以一并解決但如果團(tuán)隊(duì)對(duì) import 順序有特殊要求比如靜態(tài) import 必須放在最前面那就需要提前在 Code Style 里配置好跳過(guò)配置直接按快捷鍵可能會(huì)把順序整理成默認(rèn)結(jié)構(gòu)和團(tuán)隊(duì)規(guī)范不一致。配置方法后面專(zhuān)門(mén)講。2.2 只刪一個(gè) import 的情況有些場(chǎng)景你并不想全場(chǎng)清理只想刪掉某一條多余的 import。比如你在調(diào)試一個(gè)和第三方庫(kù)相關(guān)的 bug希望盡量少改動(dòng)文件內(nèi)容只移除確認(rèn)無(wú)效的那一行。最常用的做法是把光標(biāo)放在 import 那一行按 Alt Enter在彈出的菜單中選擇 Remove unused import。編輯器左側(cè)的燈泡圖標(biāo)也是同樣的入口。這種方式的好處是改動(dòng)最小、可控性最強(qiáng)缺點(diǎn)是效率低適合偶爾用一下不適合集中清理。我自己的習(xí)慣是日常開(kāi)發(fā)隨手清理用單個(gè) import 的快捷操作提交代碼前統(tǒng)一做一次整體的 Optimize Imports保證 import 區(qū)整體干凈且有序。兩種方式各有適用場(chǎng)景看你當(dāng)下的需求。2.3 快捷鍵沖突排查快捷鍵失效是很多人第一次接觸這個(gè)功能時(shí)遇到的問(wèn)題。最常見(jiàn)的原因是組合鍵被系統(tǒng)或者輸入法占用。比如在 Windows 上Ctrl Alt O 這類(lèi)組合鍵偶爾會(huì)被第三方輸入法組件用來(lái)切換中英文模式部分 Android 設(shè)備的廠商驅(qū)動(dòng)也可能攔截。因?yàn)?Android Studio 本身是開(kāi)源的 IDE 內(nèi)核第三方插件同樣會(huì)給這個(gè)快捷鍵掛上自己的動(dòng)作。排查方法很直接打開(kāi) Settings - Keymap在搜索框輸入 Optimize Imports看右側(cè)顯示的綁定是什么。如果發(fā)現(xiàn)快捷鍵綁定的動(dòng)作不是預(yù)期的或者有多個(gè)動(dòng)作共享同一個(gè)快捷鍵可以右鍵這個(gè)條目選擇 Add Keyboard Shortcut 重新設(shè)置一個(gè)自己順手的組合比如 Ctrl Shift O。我個(gè)人的做法是直接改成一個(gè)不會(huì)沖突的組合鍵一勞永逸避免每次換一臺(tái)機(jī)器都要重新適應(yīng)。3. 批量清理整個(gè)模塊文件多也不用慌3.1 Project 面板批量操作單個(gè)文件清理解決的是點(diǎn)狀問(wèn)題但真實(shí)項(xiàng)目里未使用 import 往往散布在幾十個(gè)甚至上百個(gè)文件里。一個(gè)個(gè)打開(kāi)再按快捷鍵效率太低這時(shí)候需要批量處理。在 Project 面板中選中一個(gè)包目錄、多個(gè)文件、甚至整個(gè)模塊目錄右鍵菜單里會(huì)出現(xiàn) Optimize Imports 選項(xiàng)。點(diǎn)擊后IDE 會(huì)彈出一個(gè)確認(rèn)對(duì)話框顯示即將處理的文件范圍確認(rèn)后對(duì)所有選中文件統(tǒng)一執(zhí)行清理和排序。實(shí)測(cè)下來(lái)這個(gè)操作對(duì)中型模塊幾十個(gè)文件基本是秒級(jí)完成大型模塊幾百上千個(gè)文件也只需要幾秒鐘。處理過(guò)程中底部進(jìn)度條會(huì)顯示當(dāng)前掃描到的文件如果項(xiàng)目里有生成代碼目錄比如 build 目錄下的自動(dòng)生成文件建議在操作前先把它們從選擇范圍里排除掉或者用文件類(lèi)型過(guò)濾避免無(wú)意義的改動(dòng)。選中整個(gè)模塊目錄批量處理時(shí)改動(dòng)量會(huì)非常大。我之前對(duì)一個(gè)幾百文件的模塊直接跑了一次Git 狀態(tài)里瞬間多了一百多個(gè)改動(dòng)文件。好處是代碼確實(shí)干凈了壞處是這次提交的可讀性非常差而且一旦中間有文件清理錯(cuò)了回滾成本也高。3.2 批量操作前的準(zhǔn)備和回滾策略批量清理 import 前我的標(biāo)準(zhǔn)流程是先確認(rèn)當(dāng)前分支處于干凈狀態(tài)至少保證改動(dòng)都能被 Git 追蹤然后從模塊下最核心的源碼目錄開(kāi)始處理不要第一次就把所有目錄全部勾選處理完馬上編譯一次確認(rèn)沒(méi)有因?yàn)檎`刪導(dǎo)致編譯錯(cuò)誤。如果清理之后發(fā)現(xiàn)某些文件的改動(dòng)不是預(yù)期結(jié)果最直接的辦法是用 Git 的 checkout 命令回滾指定文件而不是一個(gè)個(gè)手動(dòng)恢復(fù) import。具體到 Android Studio 里可以在 Version Control 工具窗口中選中目標(biāo)文件右鍵選擇 Revert只撤銷(xiāo)清理相關(guān)的改動(dòng)不影響其他文件的成果。還有一個(gè)經(jīng)驗(yàn)批量清理最好放在解耦的小任務(wù)里不要和功能開(kāi)發(fā)混在同一個(gè)提交中。因?yàn)?import 優(yōu)化產(chǎn)生的 diff 噪音很大混在一起后后續(xù)如果要回溯某個(gè)功能改動(dòng)得從一堆 import 變化里翻很痛苦。單獨(dú)一個(gè) commit 記錄cleanup imports后面隨時(shí)可以單獨(dú)回滾或 diff。3.3 Code Cleanup 和 Inspect Code 的配合除了 Optimize ImportsAndroid Studio 還有一個(gè)更綜合的功能叫 Code Cleanup。路徑是右鍵選中目標(biāo)范圍 - Analyze - Code Cleanup。它會(huì)彈出一個(gè)配置窗口里面列出各種可執(zhí)行的清理操作其中就包括 Optimize Imports還有移除冗余代碼、簡(jiǎn)化表達(dá)式等。如果你只是想清理 import直接使用 Optimize Imports 即可如果想順手做一輪代碼凈化可以用 Code Cleanup。我個(gè)人的經(jīng)驗(yàn)是Code Cleanup 適合在專(zhuān)門(mén)的技術(shù)債清理任務(wù)里用不適合日常提交。因?yàn)樗那謇矸秶鷱V很容易動(dòng)到多余的東西比如格式化規(guī)則、 lambda 替換、字符串拼接方式等這些改動(dòng)如果團(tuán)隊(duì)沒(méi)有統(tǒng)一認(rèn)可會(huì)在評(píng)審時(shí)引發(fā)不少爭(zhēng)論。另外Code - Inspect Code 可以用來(lái)提前發(fā)現(xiàn)問(wèn)題文件。選擇整個(gè)模塊運(yùn)行一次代碼檢查然后在結(jié)果面板中過(guò)濾 Unused import 分類(lèi)就能看到所有存在未使用 import 的文件列表。這時(shí)候你可以用鼠標(biāo)選中這些文件回到 Project 面板批量?jī)?yōu)化比盲目全選模塊處理更有針對(duì)性。4. 配置層面根治讓 import 自動(dòng)保持干凈4.1 Auto Import 兩個(gè)開(kāi)關(guān)怎么選手動(dòng)清理再勤快也不如讓 IDE 在寫(xiě)代碼時(shí)就把 import 管好。Android Studio 的 Settings - Editor - General - Auto Import 頁(yè)面里有兩個(gè)開(kāi)關(guān)需要重點(diǎn)理解。第一個(gè)是 Add unambiguous imports on the fly。它的作用是在你敲代碼引用一個(gè)還沒(méi)有導(dǎo)入的類(lèi)時(shí)IDE 自動(dòng)幫你加上唯一的 import不需要你手動(dòng)按 Alt Enter。這個(gè)功能適合大多數(shù)人因?yàn)榻^大多數(shù)情況下一個(gè)類(lèi)名的候選只有一個(gè)自動(dòng)導(dǎo)入不會(huì)出錯(cuò)。唯一需要注意的是如果同一個(gè)類(lèi)名存在多個(gè)候選IDE 不會(huì)自動(dòng)導(dǎo)入而是等你手動(dòng)選擇這正是它防止誤導(dǎo)入的設(shè)計(jì)。第二個(gè)是 Optimize imports on the fly。它的作用是在你編輯文件時(shí)后臺(tái)自動(dòng)清理當(dāng)前文件里的未使用 import。打開(kāi)之后刪除一段舊代碼時(shí)相關(guān)的 import 會(huì)跟著消失不需要刻意去清。這兩個(gè)開(kāi)關(guān)我建議配合使用一個(gè)負(fù)責(zé)加一個(gè)負(fù)責(zé)清日常開(kāi)發(fā)的 import 區(qū)域基本能保持干凈。不過(guò)要注意Optimize imports on the fly 只作用于你當(dāng)前正打開(kāi)編輯的文件不會(huì)自動(dòng)掃描整個(gè)項(xiàng)目中那些沒(méi)有被打開(kāi)的文件。所以已經(jīng)存在的存量垃圾還是需要用上一節(jié)講的批量操作處理一遍。我見(jiàn)過(guò)一些團(tuán)隊(duì)為了減少 diff 噪音選擇關(guān)閉 Optimize imports on the fly然后在提交前統(tǒng)一執(zhí)行一次 Optimize Imports。這也是一種可行的策略但需要每個(gè)人都養(yǎng)成習(xí)慣否則 import 垃圾還是會(huì)在代碼合并過(guò)程中慢慢積累。個(gè)人項(xiàng)目我傾向于全部打開(kāi)少想一件事。4.2 import 布局與通配符閾值配置清理 import 不只是刪和排還有排序規(guī)則和通配符策略。這些配置在 Settings - Editor - Code Style 里Java 和 Kotlin 分別設(shè)置。Java 語(yǔ)言的配置路徑是 Code Style - Java - Imports。比較關(guān)鍵的選項(xiàng)有兩塊。一個(gè)是 Import Layout它定義一個(gè)文件里 import 語(yǔ)句的排序規(guī)則默認(rèn)是普通 import 按字母序排列靜態(tài) import 放在另一組。如果你的項(xiàng)目規(guī)范要求靜態(tài) import 先于普通 import或者要求兩組之間空一行都可以在這里調(diào)整。另一個(gè)是 Class count to use import with 和 Names count to use static import with 這兩個(gè)是通配符閾值。默認(rèn)值通常是 5意思是當(dāng)一個(gè)包下同一個(gè)文件引用了超過(guò) 5 個(gè)類(lèi)時(shí)Optimize Imports 會(huì)把這些類(lèi)合并成一條 import xxx.*。很多團(tuán)隊(duì)不喜歡通配符 import因?yàn)轱@式列出每個(gè)類(lèi)更利于追蹤依賴(lài)做法是把這個(gè)閾值改成一個(gè)很大的值比如 999這樣 IDE 就永遠(yuǎn)不會(huì)自動(dòng)生成通配符 import。Kotlin 的配置在 Code Style - Kotlin - Imports里面也有一組類(lèi)似設(shè)置。需要注意Kotlin 中通配符 import 在官方文檔里本來(lái)就不建議使用默認(rèn)的閾值邏輯也會(huì)更保守。如果你在混合項(xiàng)目中同時(shí)維護(hù) Java 和 Kotlin兩邊都要檢查一遍避免出現(xiàn) Java 和 Kotlin 風(fēng)格不一致的情況。配置好之后由 Optimize Imports 生成的排序結(jié)果才具備一致性。這個(gè)一致性在多人協(xié)作里非常重要因?yàn)樗?import 區(qū)的 diff 變得可預(yù)測(cè)。4.3 團(tuán)隊(duì)統(tǒng)一配置的落地方式個(gè)人配置好了怎么讓團(tuán)隊(duì)成員也保持一致很多團(tuán)隊(duì)會(huì)在評(píng)審時(shí)約定 import 規(guī)范但人肉把關(guān)效率低。更靠譜的做法是把這部分配置納入 IDE 的共享機(jī)制。團(tuán)隊(duì)級(jí)配置文件可以放到項(xiàng)目的 .idea 目錄下通過(guò)版本控制系統(tǒng)讓所有成員共用。但 .idea 目錄里有大量個(gè)人配置直接整目錄共享容易互相覆蓋所以更精細(xì)的做法是單獨(dú)導(dǎo)出 Code Style 配置。在 Settings - Editor - Code Style 里可以點(diǎn)擊設(shè)置圖標(biāo)選擇 Export生成一份配置文件放到項(xiàng)目文檔庫(kù)中讓新人導(dǎo)入。另外如果項(xiàng)目代碼使用 EditorConfig 管理格式也可以在里面寫(xiě)部分 import 相關(guān)配置比如禁用通配符導(dǎo)入但 EditorConfig 對(duì) import 排序的支持有限不能完全替代 IDE 的 Code Style 配置。最穩(wěn)妥的組合是核心 Code Style 配置通過(guò)團(tuán)隊(duì)共享文件分發(fā)EditorConfig 只做兜底。我見(jiàn)過(guò)一些團(tuán)隊(duì)用自動(dòng)化手段在提交代碼時(shí)用 Git 鉤子對(duì)暫存文件執(zhí)行 Optimize Imports保證進(jìn)入倉(cāng)庫(kù)的代碼都是干凈的。這個(gè)方案細(xì)節(jié)比較多需要謹(jǐn)慎處理但它在徹底解放人手上確實(shí)是有效的。小團(tuán)隊(duì)可以先從約定開(kāi)始慢慢過(guò)渡到自動(dòng)化。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 清理后編譯報(bào)錯(cuò)怎么辦理論上刪除未使用的 import 不會(huì)引發(fā)編譯錯(cuò)誤因?yàn)榉?hào)解析依賴(lài)的是類(lèi)路徑而不是 import 語(yǔ)句本身。但我在實(shí)際項(xiàng)目中確實(shí)遇到過(guò)清理完 import 之后編譯失敗的情況需要具體情況具體分析。一類(lèi)常見(jiàn)場(chǎng)景是反射調(diào)用。代碼里用字符串形式做反射或動(dòng)態(tài)加載時(shí)IDE 無(wú)法從源碼層面判斷某個(gè) import 是否被使用。比如你用 Class.forName 加載一個(gè)類(lèi)這個(gè)類(lèi)的 import 可能被 IDE 標(biāo)記為 unused清理掉之后反射調(diào)用依然能工作因?yàn)榉瓷溆玫氖亲址薅?import 無(wú)關(guān)。這種情況下編譯失敗其實(shí)不是刪掉 import 導(dǎo)致的直接后果真正原因是某個(gè)依賴(lài)在新版本環(huán)境中沒(méi)有被正確傳遞只是清理動(dòng)作讓問(wèn)題暴露了。另一類(lèi)場(chǎng)景是 IDE 索引過(guò)期。文件改動(dòng)較多或者長(zhǎng)時(shí)間沒(méi)重啟 IDE 時(shí)符號(hào)解析可能不準(zhǔn)導(dǎo)致某些明明還有使用的 import 被誤判為 unused。批量清理之后一編譯就報(bào)錯(cuò) cannot find symbol。這種情況的處理方法是先驗(yàn)證一下報(bào)錯(cuò)的符號(hào)是不是真的需要 import如果是手動(dòng)加回來(lái)如果報(bào)錯(cuò)很集中更合適的方法是用 File - Invalidate Caches / Restart 清理索引緩存再重新編譯。我的習(xí)慣是批量清理后第一件事就是編譯不要延遲到提交后再驗(yàn)證。如果模塊很大至少編一次主 debug 變體確保清理沒(méi)有引入編譯問(wèn)題。5.2 誤刪了有用 import 的處理誤刪 import 不管是誰(shuí)都會(huì)遇到關(guān)鍵是怎么快速恢復(fù)。最推薦的永遠(yuǎn)是用版本控制回滾而不是手動(dòng)補(bǔ)上。操作上如果在批量清理后立即發(fā)現(xiàn)編譯錯(cuò)誤用 Ctrl Z 撤銷(xiāo)最近一次動(dòng)作可以讓所有文件恢復(fù)到清理前狀態(tài)。如果已經(jīng)過(guò)了好幾個(gè)操作撤銷(xiāo)鏈太長(zhǎng)那就從 Version Control 窗口里找到對(duì)應(yīng)文件右鍵 Revert 該文件把整個(gè)文件恢復(fù)到最近一次提交版本。需要注意Revert 是從 Git 倉(cāng)庫(kù)恢復(fù)如果這個(gè)文件在清理之前還有其他工作區(qū)的未提交改動(dòng)這些改動(dòng)也會(huì)一并被撤銷(xiāo)。所以使用 Revert 前要確認(rèn)這個(gè)文件的本地改動(dòng)都不需要保留。另一種避免誤刪的方法是分批處理。不要一次對(duì)一個(gè)超大模塊做全量?jī)?yōu)化而是按包或按目錄分批執(zhí)行每批執(zhí)行后編譯驗(yàn)證再把改動(dòng)提交。這樣即使誤刪影響的文件范圍也小排查起來(lái)快得多。5.3 快捷鍵失效與緩存異常除了前面講的快捷鍵沖突還有一種情況是快捷鍵本身工作正常但在某些文件上 Optimize Imports 的菜單是灰的怎么點(diǎn)都沒(méi)反應(yīng)。遇到這個(gè)問(wèn)題優(yōu)先考慮文件類(lèi)型。如果你正在打開(kāi)的是 .gradle 文件、XML 文件或者某些非源碼文件這個(gè)功能本來(lái)就不適用菜單置灰是正?,F(xiàn)象。Java 和 Kotlin 文件才支持這個(gè)功能。如果確認(rèn)是源碼文件但功能沒(méi)有生效可能是 IDE 的代碼分析沒(méi)有完成。大型項(xiàng)目首次打開(kāi)時(shí)索引構(gòu)建需要時(shí)間索引沒(méi)建好之前分析類(lèi)操作會(huì)受限??梢缘鹊撞繝顟B(tài)欄的進(jìn)度條跑完再執(zhí)行一次 Optimize Imports。如果索引一直卡住Inspect Code 也無(wú)法執(zhí)行就需要 Invalidate Caches 后重啟 IDE 重建索引。還有一個(gè)小概率情況是插件沖突。裝了代碼生成或者字節(jié)碼修改類(lèi)插件后插件可能改變編輯器的高亮和解析邏輯導(dǎo)致 import 狀態(tài)判斷異常。排查方法是進(jìn)入安全模式禁用第三方插件后再試。這個(gè)問(wèn)題比較少見(jiàn)但遇到時(shí)排查思路要清醒。5.4 快速定位所有未使用 import 的文件項(xiàng)目很大時(shí)你不知道哪些文件有未使用 import總不能一個(gè)個(gè)點(diǎn)開(kāi)看。有兩個(gè)方法可以快速摸清存量。第一種是使用 Problems 工具窗口。打開(kāi)一個(gè)文件時(shí)Problems 面板會(huì)匯總當(dāng)前文件的警告包括 Unused import。逐個(gè)文件看依然低效但對(duì)單個(gè)文件的日常檢查很有用。第二種是運(yùn)行 Code - Inspect Code。選擇整個(gè)模塊或項(xiàng)目等待檢查完成后在結(jié)果面板中搜索 Unused importIDE 會(huì)列出所有檢出這個(gè)問(wèn)題的文件和具體 import 行。這時(shí)候?qū)φ战Y(jié)果在 Project 面板里選中這些文件批量執(zhí)行 Optimize Imports就能做到精準(zhǔn)清理。順便說(shuō)一下Android 項(xiàng)目里要注意生成代碼目錄。比如 build/generated 下的代碼、路由生成類(lèi)、數(shù)據(jù)綁定類(lèi)它們有時(shí)也會(huì)出現(xiàn)未使用的 import 警告但這些文件是構(gòu)建過(guò)程中自動(dòng)生成的不必手動(dòng)清理。批量操作時(shí)把生成目錄排除掉可以省很多事。6. Kotlin 項(xiàng)目與團(tuán)隊(duì)協(xié)作細(xì)節(jié)6.1 Kotlin 文件清理的差異現(xiàn)在很多新項(xiàng)目已經(jīng)全面 Kotlin 化Kotlin 文件的 import 清理邏輯和 Java 有些細(xì)微差別值得單獨(dú)說(shuō)一下。Kotlin 里未使用的 import編輯器里的表現(xiàn)是文字變灰鼠標(biāo)移上去會(huì)有 Unused import 警告??旖萱I和菜單路徑與 Java 完全一樣所以不存在額外的記憶成本。但 Kotlin 有個(gè) Java 沒(méi)有的特點(diǎn)import 時(shí)可以給導(dǎo)入的類(lèi)起別名比如 import com.example.databinding.FooBinding as Foo。別名如果不使用同樣會(huì)被判定為未使用Optimize Imports 也會(huì)一并刪掉。這個(gè)行為對(duì) Java 轉(zhuǎn) Kotlin 的開(kāi)發(fā)者是容易忽略的。Kotlin 的頂層函數(shù)和擴(kuò)展函數(shù)在 import 時(shí)也很特殊。如果導(dǎo)入的是一個(gè)擴(kuò)展函數(shù)但沒(méi)有實(shí)際調(diào)用IDE 會(huì)把它標(biāo)記為 unused。清理時(shí)要注意擴(kuò)展函數(shù)和普通類(lèi)的刪除標(biāo)準(zhǔn)完全一樣都是看有沒(méi)有實(shí)際使用點(diǎn)不存在特殊豁免。還有一點(diǎn)Kotlin 文件里同一個(gè)包下的類(lèi)不需要顯式導(dǎo)入IDE 默認(rèn)能識(shí)別同包類(lèi)。如果你批量?jī)?yōu)化整個(gè)模塊涉及 Kotlin 文件的 import 改動(dòng)會(huì)自然適配這一點(diǎn)不需要手動(dòng)干預(yù)。但在 diff 檢查時(shí)注意不要誤以為某些同包 import 被誤刪了它其實(shí)屬于無(wú)效導(dǎo)入。6.2 提交代碼前的一攬子檢查清理 import 這件事我建議把它嵌到提交代碼前的檢查清單里而不是出了問(wèn)題再處理。尤其多人協(xié)作的項(xiàng)目里一個(gè)人的 import 規(guī)范會(huì)影響很多人的 review 體驗(yàn)。我在實(shí)際協(xié)作中總結(jié)出來(lái)的提交流程大致是這樣寫(xiě)完全部功能后先對(duì)自己改動(dòng)的文件逐個(gè)執(zhí)行一次 Optimize Imports然后看一次 diff重點(diǎn)確認(rèn) import 變化里沒(méi)有誤刪的內(nèi)容再編譯一次最后才提交。如果用了 Git 的 staged 文件暫存可以在 stage 之后對(duì)暫存文件統(tǒng)一執(zhí)行 Optimize Imports確保進(jìn)入倉(cāng)庫(kù)的文件是干凈的。如果有持續(xù)集成流水線可以在上面掛一個(gè)靜態(tài)檢查步驟專(zhuān)門(mén)檢查 import 配置和代碼風(fēng)格。這一步不需要非常復(fù)雜跑一遍項(xiàng)目已有的 lint 和 ktlint/detekt 之類(lèi)工具就能攔截大部分類(lèi)似問(wèn)題。你會(huì)發(fā)現(xiàn)配置一次之后后續(xù)的 code review 會(huì)輕松很多因?yàn)檫@些噪音問(wèn)題基本不會(huì)再出現(xiàn)在討論里。最后再分享一個(gè)我在實(shí)際維護(hù)老項(xiàng)目時(shí)的小習(xí)慣每次接手的模塊第一次做功能開(kāi)發(fā)時(shí)我都會(huì)順手執(zhí)行一次批量 Optimize Imports把該模塊的歷史 import 垃圾一次清完。這個(gè)動(dòng)作成本很低但之后每次打開(kāi)這個(gè)目錄代碼都清爽很多。清理 import 不是炫技更像是一種日常工作紀(jì)律。真正把它用好靠的不是記得住快捷鍵而是理解它背后的排序規(guī)則、自動(dòng)化配置和團(tuán)隊(duì)協(xié)作方式再把這些落實(shí)到每天的提交習(xí)慣里。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本性爱欧美性爱| 人人搡人人肉久久精品| 91这里只有精品| 毛片中心9视频99| 日本影视久久免费| 国产91av在线播放| 中文有码第五页| 国产Av超碰| 亚洲综合校园春色| 97在线观看视频| 久久久久久中文字幕中文字幕最新| 国产精品熟女一区二区三区| 天天日熟妇| 国产婷婷一区| 中文字暮97| 家庭乱伦性爱av| 亚洲超碰97| 国产人妻精品一区二区三区秋霞 | 亚洲文学偷乱拍啪啪啪啪 | 99国内熟女露脸视频| 欧美另类色图片| 一区二区视频在线播放| 欧美精品一区二区少妇免费A片 | 东京热一区二区中文字幕| 亚洲中亚日激情视频| 玖玖综合色| 97爱爱爱综合| 性色一线| 高清有码一区二区| 嗯嗯不要视频| 欧美性色网| 欧洲性人爱视频| 超碰97最新人妻| 女人妻一区| 99热精品在线观看| 欧美少妇第一页| 久久手机视直播| 欧美成人精品A片免费一区99| 亚洲?V无码专区在线电影| 大逼色网站| 九九九九九九九九九九九九九九九女| 久久免费看高潮毛片韩国| 五月丁香| 看日韩美女二区三区免费操逼视频| 日韩一级特黄av毛片| 麻豆久久精品亚洲精品88| 老司机福利社视频在线观看| 国产尤物在线三区| 91 天天综合| 中文字幕视频二区| 性色亚洲| 中文字幕日韩人妻视频| 亚洲国产ⅴ高清在线观看| 欧美日韩插逼视频| 男人的天堂2000| 久久久不卡区一区二区三区久久久| 久久久久久久久久久97| 中文幕97| 欧美AB在线| oumeizonghese,www| av资源在线观看少妇| 色色婷婷五月| 日韩一999精品| 中文幕97| 99热销国产这里有精品| 岛国黄片网站| 日本道久久综合色色| 国产美女高潮叫床视频| 人妻丝袜无 码视频专区| 97天天摸天天碰| 69AV女优男人的天堂| 97日视频| 另类欧美色| 激情小说日韩无码| 无码日韩网站| 色女综合| 91色欧美| 色综合av男人天堂| 日本三级久| 精品人妻一区二区视频| 亚洲精品人妻吞精av| 蜜臀久久99精品久久久老,,| 小草av不卡亚洲二区| 亚洲AV无码乱码| 亚洲啪啪视频一区二区| 欧美强奸一区二区诱惑| 98精品国产乱码久久久久久| 老女人综合网| 九九色综合| 天天综合网~91综合网| 欧美性爱精品七区| 青青草操逼逼视频| 人妻色情天天操| 香蕉国产精品麻豆亚洲欧美日韩 | 亚洲欧美一区二区三区一猛片| 97精品国产97久久久久久| 天天激色| 天天做日日做| 国产传媒一区日韩| jizz啪啪| 欧美日韩国产男人| 亚洲欧洲中文日韩女优乱码| 日韩一999精品| 久久6热精品99视频| 亚洲综合另类小说色区亚洲成av人片在www| 91精品久久久久久77777| 欧美伦乱爱| 日韩无码一级黄色av片| 欧美三级一级| 欧美综合国产精品久久丁香| 一区 欧美 日韩 麻豆| 婷婷色综合欧美日韩| 国产精品爱欲| 999精品国产高清一区二区| 狼狼色丁香久久婷婷综合五月| 亚洲美欧999| 97 色综合| 国产超碰| 国产路线专区| 97九色人妻| 亚洲九九视频| 蜜臀在线免费观看在线免费观看| 日本αv| 欧美一区二区三区大综合| 91丝袜在线观看| 久久精品欧美一区蜜桃| 日韩无码一区二区三区| 好看的91视频| 丁香婷婷久久 | 3P乱轮视频| 久久是精品| 日本免费亚洲欧美| 91 欧美| 抽查国产福利主播| 性暴力欧美猛交在线直播| 亚洲精品1区| 图片区小说区| 亚洲国产成人精品久久久国产成人一区二区 | 久久久性爱视频| 另类 日韩 熟女| 久久久久久久久久久久色网| 国产污视频麻豆传媒一区二区| 伊人网青青| 亚洲欧美校园| 亚洲视频一二区| 大香网站| 亚洲 综合 第一页| 久久精品国产精品亚洲艾通辽熟妇 | 国产又黄又粗的视频| 免费精品无码一级毛片牛牛影视 | 欧美人妖内射| 97视频在线观看免费高清| 国产精品一区二区麻豆| 香蕉色网| 蜜桃网熟妇| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 顶级丝袜熟女一区二区三区| 亚洲无码久久久久久久| 精品久热| 久久久久久久久久久久久久久性生活视频| 成人热久久精品| 日韩国产品视频中文字| 亚洲色图欧美色图制服诱惑| 美女9118禁| 2020久久免费视频| 久久久久亚洲三级电影| 1禁看欧美黄片免费看| 99热这里只有精品地址 | 日韩三级一区| 日韩精品人妻系列无码天堂| 狠狠爱AV| 亚洲国产精品无码AV久久| 久久av无码| 中日韩久久久| 嗯啊不要啊在线| 蜜臀久久99精品久久综合| 久久久久久91香蕉国产| 欧美女同在线| www亚洲免费| 口爆吞精在线观看| 校园春色之综合网| 99热aaa| 天天情欲宗合网| 午夜操一视频一区| 五月天婷婷在线看| 91站街按摩店老熟女熟女| 啊啊啊 在线观看| m欧洲一级午老| 3级毛片一二| 欧美18 在线观看| 色噜噜精品一区二区三| 久久国产精品91| 国产熟女精品区| 色九久| 成人无码在线视频网站| 九九香蕉网| 欧美性,色九九| 97久久久久久久久久| 男人的天堂 在线一区| 人人 操人人 操人人| 超碰九区| 国产熟女完整版中字| 婷婷五月丁香五月| 97精品97久久| 久96热在线观看视频| 伊人黄色视频免费观看| 国产精品乱码久久久久久久久久久久| 美女黄色91| 成人无遮挡毛片免费看| 毛片中心9视频99| 精品久久久一本一道| 亚洲国产精品成人久久蜜臀| 亚洲 日本 国产 综合| 亚洲激情网一二三四区| 中文字幕在线第二页| 翔田千里无码一区| 黑丝内射一区二区三区| 超碰诱惑| 岛国黄色大片网站| 伊人991| 亚洲不雅视频1区二区| 久久欲| 亚洲宅男天堂| www欧美91| 亚洲国产成人精品无码专区| 日韩视频小说在线观看 | 肏逼视频日本| 欧色综合| 成人免费性爱视视| 日韩精品午夜操呦呦不卡影院| 亚洲精品国产熟女| 玖玖蜜臀资源网| 国产捆绑一区| 伊色综合天堂色97| 国产91 丝袜在线播放00-百度| 日本2020一区二区| 国产精品白丝| 欧美大的香蕉有线电视视频| 图片区小说区| 91日韩网站| 美女写真| 九热超碰| 岛园激情| 夜夜夜夜爽| 亚洲 一区二区 自拍| 在线视频一区二区传媒| 激情熟女12P| 亚洲18禁| 网友自拍第一页| 亚洲色图91欧美日韩| 色爱天堂| 91爽啪| 日本加勒比无码专区| 亚洲激情网| 揉揉揉夜夜| 99热婷婷| 久久人妻| 久久超碰、| 丰满少妇高潮无码| 亚洲成aⅴ人片不卡无码| 99在线视频播放| 亚洲最新av无码成人精品区| 97国产中文| 自拍偷拍2025在线观看| 鸥美中出| 欧美老妇女内射网址| 黄色av网站在线播放| 欧日韩在线观看| 日欧亚洲二三区大片不卡| 日韩 女同 综合| 成人av免费观看| 九热久| 精品人妻1237| 青椒国产97在线熟女| 丝袜狂射91| 午夜黄色免费在线观看| 中文字幕一区二区无码成人| 800zy一区二区| 8x福利精品第一福利视频导航| 久久欧洲| 操逼视频色| 毛片麻豆91糖心精品毛情片| 无码色| 中文字幕国产在线天堂| 任我爽在线视频免费观看| 激情久久av一区av二区av| 狠狠色五月亚洲91| 天美一二三在线观看Av| www.国产高潮精品| 欧美视频一| 天天情欲宗合网| 亚洲情色婷婷五月天| 无码直播久久久| 涩亚洲欧洲| 看看小穴| 亚洲成a人在线观看久| AV女优男人的天堂| 一区二区不卡| 97视频网站| 欧美第二页午夜| 一区二区激情国产熟女| 无遮挡男女激烈动态图| 九九九九九九九| 少妇 综合| 国产女人和拘做爰视频 | 大干人妻| 91色五月俺来也| 免費黃色視頻觀看一| 日韩免费在线观看不卡| 情色五月天就去干| 国产精品91ai| 青草视频在线看看看看看看看看看| 亚洲欧美日韩制服另类| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 97啪啪| 吖在线不卡一区二区国产剧情| 丰满搜索结果 -第18页- 久久高清无码| 日本性爱不卡视频| 91性高朝久久久久久久久| 欧美 日韩第一性色| 伊人久久亚洲中文字幕| 色色色网站| 人人看欧美性爱| 性无码专区2020| 综合网少妇| 国产精品视频播放| 久久久久久性爱片| 大香樵伊人网| 天天爽天天爽| 综合五月婷婷| 天天色播| 午夜精品视频777| 黄色电影在线播放综合网站| 国产女同在线观看视频| 精品97久久| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 久久最新免费视频23| 亚洲国产麻豆一区二区三区 | 国产精品久久妻无码网站| 97在线视频免费看| 老鸭窝日丰县女人| 加勒比五月天| 日韩三级性| 神马久久久久久久久久| 夜夜久久| 欧美一区二区传媒| 噜噜在线| 天天干天天干天天干| 熟女被操视频网址| 久久久久久AⅤ无码免费肉站| www.99色| 欧美午夜视频免费观看| 秋霞一集毛片观看| 性爱网站一区二区| 操B视频日韩无码| 亚洲婷婷丁香在线| 一起草三级AV电影在线观看 | 日韩精品电影| 久偷拍欧美日韩三区| 久久久久久中文版| 神马久久69| 亚洲精品国产av天美传媒| 啊操爽品善一区二区三区| 欧美性,色九九| 91在线限制级| 日本天天吊| 东京太热久久久| 91人妻丝袜无码| 日韩久久超碰色| av网站在线看| 亚洲无 码A片在线观看麻豆| 在线毛片片免费观看| 一区二区三区免费视频入口| 青青伊人这里只有精品| 日韩一级成人毛片免费观看 | 天天综合91在线| 中文有码第五页| 国产精品肉丝自拍| 午夜综合在线| 极品少妇久久久久| 亚洲中文字幕一区二区| 午夜福利国产欧美日韩夜夜| 天天色天天干天天射| 九月丁香婷婷色| 午夜无码精品免费看性色| 蜜乳AV色欲AVAV无码| 丁香六月婷| 国产一区麻豆免费观看| 男女性扦B| 一级AAA片一区二区三区| 99少妇内射| 99久久99久久免费精品蜜臀| 91人妻素女| 91久久久久久| 大香网伊人久久综合网eew| 另类视频在线| 青青草依人大香蕉| 欧亚日韩一区在线| 无码精品久久| 激情婷婷| 天天做天天爱天天爽AV| 欧美96交| 午夜人人操| 国产成人bd在线观看| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 人妻五十路在线| 日韩天天综合| 国产91av在线播放| 丝袜美腿诱惑亚洲欧美视频在线观看 | 碰碰97| 蜜乳AV一区| 蜜桃视频精品一区二区| 欧美91精彩| 果冻传媒A片麻豆熟妇人妻| 成人免费性爱视视| 日本高清有码网址视频| 亚洲。日韩。欧美| 东京热,男人的天堂| 久久精品福利影院| 蜜桃久久一区二区三区| 久男人久久| 东京热一区二区中文字幕| 18禁超污无遮挡无码免费网| 亚洲综合影视| 国产AV中文| 色官网色综合| 大香蕉十区| 精品人妻丰满熟妇一区二区三| 日韩亚洲精品一区二区| 亚州成人a∨| 日韩黄色成人性爱| 亚洲天堂情色| 性饥渴少妇av无码毛片| 精品超碰中文在线| 欧美另类丝袜熟女| 日韩欧美aⅴ综合网站发布| 亚洲熟妇图片| 黄页| av一区二区三区 中文| 国产精品色哟哟| 亚洲色交| 久久综合九九| 亚洲同性aV综合| 人人摸人人添人人操| 2025亚洲男人天堂| 亚洲天堂男人天堂网| 丰满人妻av一区二区三区| 亚洲熟女乱综合一区二区三区| 国产综合色精品在线观看| 国产女人成人精品视频| 九九九九免费视频| 插穴性爱视频在线观看| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 日本淫穴在线| 午夜.DJ高清在线观看免费7| 啊啊好多水| 亚洲无码 国产无码| 婷婷五月花| 日韩99999| 亚洲操人| 欧美在线电影| 日本在线一二| 天天综合网~91| 日本久久99| 国产精品乱码久久久久久久久| 免费综合亚洲中文| 日夜尻逼网| 黄片www.| 国产激情在线| 色色热| 抽插亚洲无码| 最新国产精品久久精品| 免费亚洲国产精品久久一区| 成人无码影片视频在线| 久久五月婷| 另类小说欧美激情校园春色| 久操婷婷| 男人的天堂2019| 日夜啪电影| 91欧洲国产成人久久精品网站| 1024亚洲中文字幕久在线看片你懂的| 亚洲成人贴图| 熟妇一区二区三区| 日本熟女免费視颖| 九七毛片九九毛片| 人人扣人人操| 免费国产视频| 蜜桃不卡一区二区| 五月天婷精品激情| 外国免费性情大片| 日本天堂网| 樱花蜜乳av| 欧美综合自拍亚洲综合图| 91|九色|国产熟女| 亚洲色图图片| 91草草草| 天天综合网站| 男人天堂网站| 亚洲男人天堂2016| 欧美日韩99| 中文字幕精品探花视频| 蜜桃久久精品一区二区三区| 9999免费精彩视频| 家庭乱伦麻豆| 激情文学小说一区二区| 亚洲影视综合网| 色综合V| 亚洲日本大香蕉1| 极品五月天噜噜| 伊人久久在线视频观看| 2003天天干夜夜操| 国产欧美一区二区| 色嗨嗨在线| 青青草好吊色| 偷拍片久久| 五月色综合| 色色香蕉| 欧美日韩在线小说| 欧美亚洲宗合色性图| 五月丁香婷婷综合| 成人小说视频在线精品欧美| 78m成人视线| 西西美女视频网| 天天看,天天做| 日本操逼无码| 国产91 丝袜在线播放| 欧美老妇女内射网址| 色综合色欲色综合色综合色综合| 欧美中文字幕日韩在线| 亚洲天堂电影网99999| 欧美白嫩女HD| 青青草操逼逼视频| 久久久无码av精| 精品无码久久久久久久杏吧| 久久久性爱| 国产偷人妻精品一区二区在线| 天天爱天天韩国日本牛牛牛牛| 美国一区二区三区视频| 九九综合九九综合| 青草精品视频日本久久久久网站在线| 九九人妻| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 一级A片女人高潮叫床| 亚洲无码偷拍| 国产深喉视频一区二区| 超碰色大香蕉| 色777999综合| 制服诱惑亚洲一区二区三区在线观看| 亚洲码和欧洲精品激情系列| h在线看免费版在线看| 国产成人自拍视频视频| 日日操免费视频| 欧美色女人| 99久草| 蜜臀中文无码午夜| 一区二区视频你懂的| 亚洲成人一二三区| 亚殴在线| 亚 欧 美 综合| 色情成人五月天| 美女国产一区二区久久| 色欲无码人妻日韩欧美精品| 91大神精品长腿在线观看网站| 91久久久久久久久18| 超碰欧美COM| 亚洲色天堂九9| 嗯嗯啊啊好疼| 国产乱弄免费在线视频。| 99啪啪视频| 4141514逼喷水三级片| 天天影视色香色欲| 中亚av| 黄色污污污污污污网站| 伊人成人中文字幕久久网| 99综合网| 少妇二级| 女优视频第10页| 人妻天天夜夜爽一区二区| www.色婷婷色综合| 超碰99在线| 五月开心网| 色色99| oumeisetu综合| 日本天天吊| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 情侣操 逼视频99| 999 久久久| 亚洲资源网| 超碰欧美在线欧美| 淫穴高潮色图| 自拍六区| 91亚洲综合在线| 超碰2017| 日本乱人伦片中文三区| 欧美1区二区三区公司| 日本免费专区| 亚洲国产欧美中文永久| 激情第四色| 日韩女优中文字幕| 欧美情色男人的天堂| 粉嫩久久久久| 91精品久久久久| 亚洲天堂少妇| 老熟女综合网| 一本久道久久综合狠狠爱一密臀精| 黄页av| 免费精品国偷自产在线在线| 亚洲国产婷婷在线播放| 中文人妻av高清一区| 伊人五月天激情| 久久女婷| 国产91美女高潮| 99操| 人伦四五区| 中国人高清www色视频免费| 欧美日韩性爱电影在线| 粉嫩av在线一区二区| 日本在线一二| 色九九九综合| 亚洲九九视频在线观看| 噜噜瑟| 欧美综合91| 大黄片做爱的大的| 极品极品色影院| 蜜桃中文字日产乱幕4区| 久久精品中文| 91国模| 黄色AAAAAAAAAAA大片| 亚洲福利中文字幕在线| 久久亚洲骚逼综合| 色阁阁AV综合网| 久久久四区| 一线黄色免费性爱片| 伊人久久婷婷| 日韩人妻精品中文字幕| 欧美亚洲首页| 国产欧美一级在线观看| 九九碰九九爱97超碰| 婷婷香网站| 性色综合网| www.久久制服糖| 五月婷在线| 欧美少妇色综合| 欧美亚洲情色| 国产无套粉嫩白浆在| 夜夜爽妓女| 国产一二三福利视频网| 91深夜夜| 亚洲天堂人妻一区二区| 中文字幕欧洲有码| 久久性爱精品一区| 麻豆 欧美 日韩| 欧美精品不卡一二三四在线91| 日韩免费av片高清无码| 色噜噜狠狠色综无码久久合欧美| 素颜老阿姨乱情色| 人人弄人人摸| 大香蕉123| 91老妇女| 午夜一区二区三区国产| oumeisetu综合| 91热色| 亚洲一级性爱视频免费看| 亚洲另类久操网| 欧美色图综合| 亚洲精品国产日韩无码AV永久免| 青青草色情网站视频| 欧美片第一页| av久日| 九九久久首页| 黄人人操人人操| 新久久AV| 欧美精品三区| 97人人爱人人做人人乐| 日韩乱中文| 色九久| 日韩99神马视频片| 日韩三级天堂在线观看| 四虎在线视频| av在线免费一区二区| 性色国产东北露脸精品视频| 午夜福利在线视频1000| 任你爽视频| 一区二区精品日韩欧美在线观看| 91欧美巨乳| 中文字幕加勒比海高清无码免费视频| 青娱乐国产精品| 1区2区3区视频| 日韩精彩视频| 精品十三区| 五月丁香大香蕉| 欧美日韩精品一区二区三区高清| 亚洲色天| 舔足天天操天天射| 97精品97| 日本有码久久| 操逼日韩无码| 国产精品一级毛片不卡视| 尤物网站91| 亚州欧美色图| 99re在线| 人妻另类 专区 欧美 制服| 老熟女阿 国产91| 99热 按摩 日韩| AV高清一区| 亚洲大色堂| 欧美久久久15P| 亚洲男人天堂Av| 无码少妇精品一区二区60岁老人| 无套内射人妻在线播放| 久操网无码在线| 黄色网址在线免费观看| 亚洲 欧美 手机在线观看| 51一区二区三区| 91动漫操逼视频| 色综合久| 国产av高清版| 久草热制服丝袜在线观看| 中出789在线视频| 日韩人妻精品中文字幕| 久久人妻少妇| AV女优男人的天堂| 久久天堂| 一区二区三区探花在线观看| 狼人久草| www.久久99| 久久精品人体| 久9久9精品| 加勒比综合在线| 国语对白露脸XXXXXX| 国产综合永久精品日韩鬼片| 床上啊啊啊一区二区三区| 久久蜜色情在线视频xxx免费观看| 亚洲天天精品| 日本久久女同性恋视频| 欧美日韩国产中文精品字幕自在自线| 91人妻爽爽人人做人人澡| 极品粉嫩少妇视频| 91老司机在线| 久久精品日韩| 亚洲素人综合| 性猛交| 精品国产肉丝袜在线拍国语| 久久久久久中文字幕中文字幕最新| 狠狠综合| 日本免费一区二区不卡| 以及麻豆国产入口在线观看免费| 婷婷五月天福利| 亚州高清av| 黄色电影观看久久9| 女色视频社区| 国产91 丝袜在线播放 | 91精品免费| 97人人夜夜精品视频| 偷拍欧美激情| 亚洲男人天堂av| 九九九九久久久| 91麻豆天美国产欧美高潮| 国产一区二区三区视频在线看| 毛片中心9视频99| 啊啊啊 在线| 国内三级自拍小视频在线观看| a网站免费观看| 超碰在线1234区| 自拍鲍鱼一区在线高清观看免费| 曰本特级特黄特色黄色A级网站高清在线免费看 | 骚货操死你| 亚洲精品视频在线| 97超碰这里只有精品| 不卡一区二区日本视频| 色97欧美| 国产精品老师| 日本精品一级二级三级| 日韩国产十八禁| 亚洲一区二区三区在线激情| 96免费视频在线| 国产人伦a片信息免费片| 成人开心网在线视频| 国产成人AV麻豆| 啪啪AV导航| 成人九九| av优播| 亚洲av无线观看| 精品视频久久| 亚洲。日韩。欧美| 国产精品一区二区亚洲人成毛片| 极品内射| 97干在线视频| 以及麻豆国产入口在线观看免费| 精品美女人人干| 国产精品一区二区在钱播放| 成人a级高清视频在线观看| 午夜操操操| 97看操| 国产网红精品| 98人妻精品一区二区色欲| 宗合情欲网| 爽爽淫人网| 亚洲中文日韩精品| 午夜亚洲| 精品国产一区二区三区久久久蜜臀| 人人爱操| 亚洲成熟国产精品美女| 成 人 A V免费视频在线观看| 中文字幕1区2区| 97在线资源| 色色综合97| 色天堂综合| 伊人成人情色综合| 国产亚洲精品自在线亚洲情侣 | 嫩草影院在线观看精品| 九九亚洲视频| 欧美色婷婷| 免费黄色片。| 免费看国产曰批40分钟怎么下载| 天天色综合影视网| 欧美日韩精品青青| 人妻美腿丝袜日韩| 4tube欧美女厕所| 日韩欧美中文字幕搭讪巨乳美人妻视频| 97se综合| 国产精品另类| 国产精品熟女一区二区三区| 久久久久久性爱免费视频| 日韩无码一区二区三区| 欧美色自拍| 劲爆欧美人妖三区91| 久久九七| 亚洲熟女一区二区| 精品传媒在线一区| 秋霞 色色| 91人妻做a观看视频| www…国产操逼| 成人看片网站| 操狠狠| 久久久久久久久久久久久久久久9| 人人摸人人舔一区二区| 欧美最婬乱婬爆婬牲视频| 99re99| 亚洲第一黄色av网站| 国产乱伦一二三区| 用力操死我| 熟女自慰久久久| 91欧美巨乳| 九九九久久久| 国产高清成人传媒影视| 男女激情中文字幕| 亚欧美色| 狠狠色一区二区中文字幕| 欧美激情 亚洲色图| 国产白丝在线| 男人的天堂久久狠| 日韩精品资源| 欧美系列在线一区二区| 五月天色图影视| 曰韩少妇无码| 激情五月天插| 嫩草 人人网精品| 97久久久网站| aⅴ日韩成人电影av在线免费看av大全 | 精品视频123区小说区| www. 男人天堂成人在线| 日本 情色 1区2区3区| 中美日韩毛片| 91久久青青草原精品| 国产小视频91| 人人妻天天做天天爽| 欧美一级黄片免费播放| 天天色踪合| 91精品国产日韩欧美综合| 日本超碰97日韩精品人妻| 欧美日韩插逼视频| 欧美性爱网97| 伊人激情五月天一区二区| 中文字幕精品专区搜索结果91| 逼逼逼逼操操操操操操操操操午夜剧场| 久久的网站啊啊啊啊啊| 国产亚洲色停停久久99精品91| 嗯嗯嗯啊啊啊操的我好爽| 国产捆绑一区| 美女AV一区二区| 婷婷五月丁香五月| 男人的天堂2018| 啊啊啊好疼| 午夜天堂精品久久久久91| 日语五十路和六十路亚洲国产精品| 97人人中文网| A 天堂在线观看视频| 欧美熟妇色| 青青国产在线拍揄自揄拍| 国产精品无码论坛| 日韩欧无码一区二区三区免费不卡 | 亚洲一本色道中文无码aV天美| 丰满人妻一区二区三区四区| 婷婷五月综合在线| 交换娇妻呻吟声不停中文字幕| KK色在线影院| 精品美女在线视频| 亚洲综合婷婷| 蜜臀AV秘一区翔田千里| 亚洲另类春色| 破处bbq| 黄色二级片网站| av一区二区三区不卡| 国产精品对白自产拍| 亚洲成av人片色午夜乱码| 久久久久久久九九九九九九| 综合色区偷拍| 综合网~91综合网| 日本精品无码三级网站| 欧美精品二区视频在线| 蜜臀99久久国产| 精品九九淫乱男| 超碰综合色| 成人色女网| 久久婷婷一区二| www.五月天| 婷婷五月天成人| 第一高清av中文字幕| 欧美操逼熟女| 国产啊v在线免费播放| 日韩欧美大力操| 在线观看不卡一区二区三区| 乱伦一二三| 国产精品不卡一区二区三区av| 国产乱伦搜索结果91P| 亚洲综合另类小说色区亚洲成av人片在www | 天久久久噜噜噜久久国产精品爽爽| 免费99精品国产自在在线| 色踪合AV| 欲香欲色综合天天伊人| 国产精品天干天干综合网麻豆| 偷拍超碰| 91精品人妻啪啪间| 久久精品国产97欧美精品亚洲 | aaaa少妇高潮大片| 久草福利在线资源站| 五月婷婷丁香中文字幕| 女人高潮抽搐喷水视频网站| 人人操人人干网页| 日本三级韩三级99久久| renqi久久久久久久久久久久| 玖色AV| 性爱AV天堂| 人妻天堂三区| 国产在线能看的你懂的| 久操网视频| 97人妻碰碰中文无码久热丝袜| 亚洲一区二区三区四区视频| 天天综合色电影| 人妻无码久久一区二区三区免费| 日韩精品大香蕉伊人在线| 天天躁日日躁狠狠狠躁| 一类无码操逼视频| 午夜大香蕉| 夜夜爽爽夜夜精品视频| 玖玖久久久| 天天色综合天天操| 欧美日韩国产男人| 欧美日韩制服| 国产亚洲精品农村妇女| 亚洲成人美女无吗| 热久日综合| 五十路六十路素人熟女| 亚洲 欧美 天天| juliaann欧美丝袜办公室| 欧美日韩日产免费网站看| 男人的天堂.com| 国产97色在线| caorenqi shipin| 97超碰9| 国产久久久久久久久一区二区| 老司机免费视频在线91| 日韩免费a级毛片无码a∨| 成片免费观看视频大全| 久久 久久国内精品亚洲| 午夜福利1区2区3区| 91丨九色丨43老版熟女| 很狠操| 十八禁视频网站| 九九九九一区| 岛园激情| 啊v在线观看视频| 国产探花精品在线| 老汉网| a天堂视频| 国产外初女出血视频| 日本国产欧美高清在线| 99久在线精品99re8| 人看人人摸人人操| 91精品91久久久久77777| 日韩成人大片在线观看| 日韩97P| 国产精品2020| 久久精品毛片免费不卡| 欧美色图片91| 欧美特大黄一级片片免费| 免费99精品国产自在在线| 国产亚洲精品第一最新| a级免费在线观看| 夜夜嗨绯色| 国产高潮AA片免费看| 天天看天天日天天操| 亚洲天堂美臀在线| 综合婷婷| 亚洲制服aⅴ中文字幕| 日夜精品| 91嫩草欧美| 日韩人妻一区二区精品| 亚洲欧美另类激情小说| 久操视频在线| 国产精品制服丝袜中文字幕日韩一区二区三区 | 夜夜中出国产| 亚洲国产精品无码AV在线| 人人妻人人爱人人玩| 91狠狠狠| 久久神马影院| 欧美AB在线观看| 91精品大奶人妻| av天堂精品久久| 天天上日日上日韩精品| 偷拍欧美亚洲| 欧美一区二区成人一卡| 熟女精品va中文字幕| 超碰欧美| 天天日天天干天天摸天天操| 啊啊啊啊啊在线视频| 欧美日不卡| 亚洲色五月| 激情综合五月| 亚洲第一综合| 天天干美少妇一区| 亚洲老熟妇xxx| 国产乱码久久| 色av中文字| 欧美中文字幕一区 | 人人做,人人操,人人摸| se吧提供91精品国产91久久久久久| 中出欧美| 热思思免费视频| 国产又黄又粗的视频| 91视频伊人| www.yeyecao| 欧美一区二区三区不卡高清视频| 五月天伊人网| 九九碰九九爱97超| 欧色性第一页| 欧美日韩人妻精品一区二区三区| 蜜臀在线网站| 欧美在线电影| 你懂的在线观看区国产 | 秋霞一级视频在线观看免费| 99色在线| 91网18| 久久中出在线| 欧美色97| 中文一区二区三区影院| 欧美少妇高潮视频| 91一区二区三区蜜桃| 久久国产性爱| 婷婷亚洲天堂| 97超碰亚洲| 香蕉精品二区二区| 日韩图区 偷拍| 色婷婷导航| 18岁禁 茉莉成人久久| 青春草A| 91高清欧美| se吧提供91精品国产91久久久久久 | 久久久久久久强迫| 综合免费无码中文| 香蕉99秘 精品一区丁香| www.男人天堂| 91综合色噜噜| 6080yy午夜理论三级一区二区三区无码| 欧美一区二区传媒| 色五月AV| 国产av尤物| 欧美另类丝袜熟女| 高清孕妇孕交 交| 91久操| 人人妻天天做天天爽| www.黄色在线| 欧美熟妇乱码在线一区| 久久精品超碰| 97五月天| 加勒比aⅴ| 99热9| 国产sv美女内射| 日本肏逼视频在线观看| 天天综合网亚洲综合网| 91深夜夜| 亚洲AV无码久久精品蜜桃小说| 丁香婷婷五月| 国产久久久9999| 超碰78| 嗯~啊~快点 死我视频| 日骚逼视频| 嗯嗯嗯,草死我| 婷婷操视频| 樱花草社区www中国| 天天操夜夜嗨| 无码人妻丰满熟妇区毛片| 亚洲1区| 色香AV| 97视频620| 探花一区在线| 97在线播放| 97一区二区蜜臀| 在线观看成人性爱免费小视频| 亚洲综合69| 一区二区 韩日AV| 亚洲无码com| 97操综合| 亚洲最大的黄色电影网站。 | 男人的天堂啪啪| 男人天堂黄片| 五月天AV资源| 九九九九日本| 超碰人人干| 亚洲小电影免费涩涩成人在线高清| 色踪合AV| 久久一留热品黄| 色五月婷婷在线| 欧美爱三级日韩久久| 熟女熟妇一区二区三四区| 久久久久密| 成人短视频在线观看| AV不卡在线| 日韩啊V| 亚洲另类天堂| 欧美性少妇| 九九九九97| 中文字幕日韩精品一区二区三区| 被男人添B超爽视频| 97精品一区二区视频| 蜜桃臀av一区二区| 久久是精品| 中文字幕女同在线| 九九九久千久久激情蜜桃在线看| 91超级碰| 欧美午夜视频免费观看| 国语对白露脸XXXXXX| 麻豆成人影音在线| 亚洲日韩美女丝袜美腿人妻视频| 青青草久草AV| 久9爱经典视频| 人妻少妇久久| 久久大香蕉97| 97综合久第一页| 欧美亚洲第1页| 色天堂综合| 欧美少妇性乱| 九一国产精品| 超碰这里有精品| 99re99在线视频| 亚洲精品九九九九九九| 野狼福利社区| 午夜精品久久久| 亚洲乱码尤物193YW|