作者: Jamal Eason, Android 產(chǎn)品經(jīng)理
您是否曾希望 Android Studio 可以速度更快、性能更優(yōu)、效率更高?如是的話,請立即下載最新的 Android Studio 3.5磕道!您將會體驗到前所未有的穩(wěn)定版 Android Studio。在過去的 8 個月中行冰,Android Studio 團(tuán)隊暫緩了新特性的開發(fā)工作溺蕉,專心提升 Studio 的產(chǎn)品質(zhì)量,只為讓您享受到速度更快的日常開發(fā)體驗悼做!我們把這項工作命名為 Project Marble 計劃焙贷。該計劃圍繞系統(tǒng)健康、特性優(yōu)化和錯誤修復(fù)三大核心領(lǐng)域贿堰,力圖在 Android Studio 與 Android 模擬器中構(gòu)建功能強大且穩(wěn)定的基礎(chǔ)特性與流辙芍。我們會在 Project Marble 計劃中直接整合收到的開發(fā)者反饋,歡迎大家繼續(xù)向我們提交反饋羹与,分享您的想法與感受故硅。
為了提升 Android Studio 的系統(tǒng)健康,我們首先開發(fā)了一套全新的基礎(chǔ)架構(gòu)和內(nèi)部儀表盤纵搁,以便更好地監(jiān)測系統(tǒng)性能問題吃衅。通過這種方法部署的安全網(wǎng)可以幫助我們成功捕捉到常規(guī)單元測試難以識別的問題。接著腾誉,團(tuán)隊解決了一系列問題徘层,其中包括: 修復(fù)了 600 余個錯誤、50 個內(nèi)存泄漏以及 20 個 IDE 掛起問題利职,并且減緩了 XML 和 Kotlin 從輸入到被顯示的延遲現(xiàn)象趣效。此外在 Android 模擬器方面,我們降低了 CPU 和內(nèi)存對您開發(fā)設(shè)備的影響猪贪。盡管 Project Marble 計劃的工作重心在于優(yōu)化 IDE 和 Android 模擬器的系統(tǒng)健康跷敬,但是在計劃的實施階段,我們還發(fā)現(xiàn)了幾個新的質(zhì)量領(lǐng)域热押,需要團(tuán)隊在未來繼續(xù)攻克西傀。
除了內(nèi)存和性能以外斤寇,團(tuán)隊還投入了大量時間用以優(yōu)化和修復(fù)面向開發(fā)者的若干核心特性。例如: 我們檢查了設(shè)備上的應(yīng)用部署流拥褂,對 Instant Run 進(jìn)行了徹底重構(gòu)娘锁,開發(fā)出了一款更加可靠且值得信賴的替代方案——Apply Changes。引入 Apply Changes 后饺鹃,我們不會再在構(gòu)建時重寫您的 APK 文件致盟,而是利用 runtime instrumentation 在運行時重新定義類。如果您想要快速編輯代碼尤慰,并查看代碼變更,請立即上手試一下 Android Studio 3.5雷蹂。
最后伟端,我們還在 Project Marble 計劃期間,修復(fù)了 Android Studio 3.5 中的多個錯誤匪煌。感謝大家向我們提交錯誤報告责蝠,并在多個社交平臺上與團(tuán)隊進(jìn)行積極互動,特別是 Android 社區(qū)中的?40 位外部貢獻(xiàn)者萎庭,非常感謝他們一直以來的熱心奉獻(xiàn)霜医,幫助團(tuán)隊提交和解決 Android Studio 3.5 中的重要質(zhì)量問題。盡管 Android Studio 3.5 穩(wěn)定版的發(fā)布對我們來說已經(jīng)是一個里程碑驳规,象征著團(tuán)隊為提升 IDE 質(zhì)量所付出的艱苦努力肴敛,但是我們的質(zhì)量調(diào)優(yōu)工作并不會止步于 Project Marble 計劃。我們希望每一位下載并使用 Android Studio 3.5 的開發(fā)者都可以享受到 Project Marble 計劃所帶來的裨益吗购,借助高質(zhì)量產(chǎn)品和全新架構(gòu)医男,顯著提升 Android 應(yīng)用的開發(fā)效率。
我們在 Android Studio 3.5 中引入了許多質(zhì)量變更捻勉,請參閱《Android Studio 3.5 Beta 現(xiàn)已發(fā)布》或者Android Studio 版本說明镀梭,查看完整版變更列表。當(dāng)然踱启,您也可以先閱讀一下這篇文章或收看下方視頻报账,快速了解一下其中的若干重要變更:
騰訊視頻鏈接:
https://v.qq.com/x/page/w0919w56970.html
Bilibili 視頻鏈接:
https://www.bilibili.com/video/av65716536/
系統(tǒng)健康
Project Marble 計劃中系統(tǒng)健康方面的改進(jìn)包括: 內(nèi)存性能、輸入與用戶界面凍結(jié)埠偿、構(gòu)建速度透罢、CPU 使用以及 I/O 性能。我們針對這五點分別設(shè)計了新的監(jiān)測機制冠蒋,以便在開發(fā)過程中更準(zhǔn)確地識別問題琐凭,此外,流程上的優(yōu)化也讓團(tuán)隊得以更好地分析用戶反饋浊服,從開發(fā)者自愿分享的統(tǒng)計數(shù)據(jù)和錯誤報告中獲取更多洞見统屈。
盡管系統(tǒng)健康的許多優(yōu)化項可能并不為大家所熟知胚吁,不過其中還是有幾個比較明顯的變更,其中包括:
自動推薦內(nèi)存設(shè)置
在 Android Studio 3.5 中愁憔,IDE 會識別出一個應(yīng)用項目在 RAM 容量更高的機器上何時需要更多的 RAM腕扶,并在通知開發(fā)者增加內(nèi)存堆大小吨掌;或者您也可以在 Appearance & Behavior → Memory Settings 下自行調(diào)整設(shè)置半抱。
用戶界面凍結(jié)
在 Project Marble 計劃開發(fā)期間,我們在產(chǎn)品分析數(shù)據(jù)中發(fā)現(xiàn) IDE 中的 XML 代碼編輯速度明顯較慢膜宋。我們基于這個數(shù)據(jù)點優(yōu)化了 XML 輸入窿侈,使得 Android Studio 3.5 的性能表現(xiàn)有了極大的提升。從以下兩張圖中您可以發(fā)現(xiàn)秋茫,得益于輸入延遲的改進(jìn)史简,使用 XML 編輯數(shù)據(jù)綁定表達(dá)式的速度明顯加快了。
構(gòu)建速度
為了提高 Android Studio 3.5 的構(gòu)建速度肛著,我們采取了許多措施圆兵,其中最為重要的一項變更是為頂級注釋處理器添加增量構(gòu)建支持,這些處理器包括 Glide枢贿、AndroidX data binding殉农、Dagger、Realm 和 Kotlin (KAPT)。增量支持能夠顯著提高構(gòu)建速度。更多內(nèi)容税朴,請閱讀《在 Android Studio 中加快構(gòu)建速度》。
磁盤 I/O 文件訪問速度
Android Studio 的許多用戶都在使用微軟旗下的 Windows 系統(tǒng)聪建。我們發(fā)現(xiàn)與其他平臺相比,Windows 的磁盤 I/O 文件訪問耗時明顯更久茫陆。深度分析數(shù)據(jù)后金麸,我們發(fā)現(xiàn)在一些殺毒程序在默認(rèn)設(shè)置下,并未將 Android Studio 的構(gòu)建輸出文件夾 (build output folder) 排除在掃描范圍之外簿盅。在 Android Studio 3.5 中挥下,一旦系統(tǒng)監(jiān)測到這個情況,Studio 將通過彈窗引導(dǎo)您進(jìn)行最優(yōu)設(shè)置桨醋。
特性優(yōu)化
除改善系統(tǒng)健康之外棚瘟,我們還重新檢查了一些關(guān)鍵用戶流程, 修復(fù)了一些錯誤以及若干導(dǎo)致不良用戶體驗的問題喜最,涉及領(lǐng)域包括: 數(shù)據(jù)綁定偎蘸、布局、Chrome OS 支持和項目升級,而應(yīng)用部署流則是其中較為關(guān)鍵的一項改進(jìn)迷雪。
Apply Changes
在 Project Marble 計劃期間限书,我們移除了 Instant Run,然后在 Android Studio 3.5 中重新構(gòu)建并實現(xiàn)了一個更加實用的替代方案章咧,即Apply Changes倦西。Apply Changes 使用 Android Oreo 及以上版本中的平臺特定 API 來確保可靠且一致的系統(tǒng)行為赁严。與 Instant Run 的機制不同扰柠,更改系統(tǒng)配置并不會重寫您的 APK 文件。為了支持此項變更疼约,我們重構(gòu)了整個部署管道卤档,以此提升部署速度;與此同時程剥,我們還微調(diào)了工具欄中的運行與部署按鈕劝枣,希望借此為您提供更為精簡的開發(fā)體驗。
總結(jié)一下倡缠,Android Studio 3.5 共修復(fù)幾百個錯誤,并針對以下核心領(lǐng)域引入了若干關(guān)鍵變更:
系統(tǒng)健康
> 內(nèi)存設(shè)置
>?內(nèi)存使用報告
>?減少異常
>?用戶界面凍結(jié)
>?構(gòu)建速度
>?IDE 速度
>?Lint 代碼分析
>?I/O 文件訪問
模擬器 CPU 使用
特性優(yōu)化
>?Apply Changes?
>?Gradle 同步
>?項目更新
>?布局編輯器
>?數(shù)據(jù)綁定
>?應(yīng)用部署
>?C++ 改進(jìn)
>?Intellij 2019 平臺升級
>?動態(tài)特性支持之條件交付
>?模擬器對可折疊設(shè)備及 Google Pixel 設(shè)備的支持
>?Chrome OS 支持
更多內(nèi)容茎活,請參閱Android Studio 版本說明昙沦,或閱讀下列與 Project Marble 計劃相關(guān)的深度學(xué)習(xí)專欄或收看 Google I/O 專題分享會:
Project Marble 計劃: Apply Changes
https://medium.com/androiddevelopers/android-studio-project-marble-apply-changes-e3048662e8cd
在 Android Studio 中加快構(gòu)建速度
https://medium.com/androiddevelopers/improving-build-speed-in-android-studio-3e1425274837
Android 模擬器: Project Marble 計劃改進(jìn)項
https://medium.com/androiddevelopers/android-emulator-project-marble-improvements-1175a934941e
Android Studio Project Marble 計劃: Lint 性能
https://medium.com/androiddevelopers/android-studio-project-marble-lint-performance-8baedbff2521
Android Studio Project Marble 計劃: 布局編輯器
https://medium.com/androiddevelopers/android-studio-project-marble-layout-editor-608b6704957a
Google I/O: Marble 計劃 — Android 開發(fā)工具有哪些更新?
https://www.youtube.com/watch?v=8rfvfojtRss
自愿數(shù)據(jù)分享與反饋
我們基于開發(fā)者提交的反饋與指標(biāo)數(shù)據(jù),判斷 Android Studio 中有哪些內(nèi)容適用于 Project Marble 計劃载荔,并決定具體的優(yōu)化項目和實現(xiàn)手段盾饮。開發(fā)者可自愿在 Android Studio 內(nèi)勾選數(shù)據(jù)分享,收集上來的數(shù)據(jù)將幫助團(tuán)隊判定產(chǎn)品是否含有波及全體用戶的問題懒熙,接著在此基礎(chǔ)上丘损,調(diào)整功能開發(fā)工作的順序,優(yōu)先解決最令用戶頭疼的問題工扎。為了獲取最優(yōu)洞見徘钥,我們在產(chǎn)品整合了多種不同的反饋渠道,指標(biāo)數(shù)據(jù)分享是其中最基本的一款反饋工具肢娘,您可通過以下路徑在 Android Studio 中啟用該功能 Preferences /Settings → Appearance & Behavior → Data Sharing呈础。
不知道您今年是否留意到 IDE 右下角的用戶心情標(biāo)志。Android Studio 通過這個小小的心情標(biāo)志橱健,了解用戶的使用感受而钞,并獲取與實際用例相關(guān)的反饋。這是用戶向團(tuán)隊提交錯誤報告最快的途徑拘荡。
即刻體驗
下載
請前往下載頁面臼节,獲取 Android Studio 3.5。如果您當(dāng)前正在使用舊版本的 Android Studio,請直接進(jìn)行升級操作即可网缝。
如需使用上述 Android 模擬器特性巨税,請確保您正在運行通過 Android Studio SDK 管理器下載的 Android 模擬器 v29.1.9 或更高版本。
非常感謝大家繼續(xù)踴躍反饋途凫,與我們分享您的所感所想垢夹,建議與意見,或者任何您期望看到的新特性维费。如果您遇到任何錯誤或問題果元,請提交錯誤報告,或在評論區(qū)留言犀盟。
點擊這里提交產(chǎn)品反饋建議