Android Studio 3.5: 穩(wěn)步推進(jìn) Project Marble 計劃

作者: 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)然踱启,您也可以先閱讀一下這篇文章或收看下方視頻报账,快速了解一下其中的若干重要變更:


Android Studio 3.5 重要變更說明_騰訊視頻

騰訊視頻鏈接:

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è)置半抱。

內(nèi)存設(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á)式的速度明顯加快了。

改進(jìn)前: 在 Android Studio 3.4 中編輯代碼??
改進(jìn)后: 在 Android Studio 3.5 中編輯代碼??

構(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è)置桨醋。

系統(tǒng)健康通知——殺毒軟件檢查??

特性優(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ā)體驗。

Apply Changes 按鈕
應(yīng)用部署用戶流

總結(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 數(shù)據(jù)分享

不知道您今年是否留意到 IDE 右下角的用戶心情標(biāo)志。Android Studio 通過這個小小的心情標(biāo)志橱健,了解用戶的使用感受而钞,并獲取與實際用例相關(guān)的反饋。這是用戶向團(tuán)隊提交錯誤報告最快的途徑拘荡。

IDE 用戶反饋

即刻體驗

下載

請前往下載頁面臼节,獲取 Android Studio 3.5。如果您當(dāng)前正在使用舊版本的 Android Studio,請直接進(jìn)行升級操作即可网缝。

如需使用上述 Android 模擬器特性巨税,請確保您正在運行通過 Android Studio SDK 管理器下載的 Android 模擬器 v29.1.9 或更高版本。

非常感謝大家繼續(xù)踴躍反饋途凫,與我們分享您的所感所想垢夹,建議與意見,或者任何您期望看到的新特性维费。如果您遇到任何錯誤或問題果元,請提交錯誤報告,或在評論區(qū)留言犀盟。

點擊這里提交產(chǎn)品反饋建議

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末而晒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子阅畴,更是在濱河造成了極大的恐慌倡怎,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贱枣,死亡現(xiàn)場離奇詭異监署,居然都是意外死亡,警方通過查閱死者的電腦和手機纽哥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門钠乏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人春塌,你說我怎么就攤上這事晓避。” “怎么了只壳?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵俏拱,是天一觀的道長。 經(jīng)常有香客問我吼句,道長锅必,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任惕艳,我火速辦了婚禮况毅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尔艇。我一直安慰自己尔许,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布终娃。 她就那樣靜靜地躺著味廊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上余佛,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天柠新,我揣著相機與錄音,去河邊找鬼辉巡。 笑死恨憎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的郊楣。 我是一名探鬼主播憔恳,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼净蚤!你這毒婦竟也來了钥组?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤今瀑,失蹤者是張志新(化名)和其女友劉穎程梦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橘荠,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡屿附,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哥童。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡如蚜,死狀恐怖影暴,靈堂內(nèi)的尸體忽然破棺而出错邦,到底是詐尸還是另有隱情型宙,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布妆兑,位于F島的核電站,受9級特大地震影響搁嗓,放射性物質(zhì)發(fā)生泄漏芯勘。R本人自食惡果不足惜腺逛,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧安疗,春花似錦抛杨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玉罐,卻和暖如春屈嗤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厌小。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工恢共, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人璧亚。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓讨韭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親癣蟋。 傳聞我的和親對象是個殘疾皇子透硝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容