0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入了解Android Studio的最新功能

谷歌開發(fā)者 ? 來源:谷歌開發(fā)者 ? 作者:谷歌開發(fā)者 ? 2022-01-25 11:27 ? 次閱讀
在 2021 年早些時候舉辦的 Google I/O 大會上,我們詳細介紹了 Android Studio Arctic Fox 的主要功能,該版本目前已經(jīng)位于穩(wěn)定版的發(fā)布渠道供大家下載使用。Android Studio Arctic Fox 主要聚焦于以下三個方面的改進:

1.設(shè)計: Arctic Fox 是首個包含 Jetpack Compose 的支持工具及大量設(shè)計工具和檢查器的穩(wěn)定版本,從而讓您可以更輕松地創(chuàng)建和預(yù)覽界面。

2.Android 設(shè)備支持: Arctic Fox 包含大量針對 Android 設(shè)備的功能,如 Wear OS 上的心率傳感器,以及支持 Google TV 的新版 Android TV 模擬器等功能。

3.開發(fā)效率改進: 我們對 Android Studio 的底層進行了改進,同時也帶來了 WorkManager 工具,以幫助開發(fā)者提高開發(fā)效率。

您可能已經(jīng)注意到,Arctic Fox 的繼任者 Android Studio BumbleBee 目前已經(jīng)可以在 Beta 版發(fā)布渠道下載使用了。我們在這個版本加入了許多激動人心的改進,包括首次支持了 Material You、進一步優(yōu)化了 Jetpack Compose 工具以及更多的開發(fā)效率改進,您還可以通過 BumbleBee 針對使用了 Android 12L 的大屏設(shè)備縮放您的應(yīng)用。接下來,我們將會為您詳細介紹此版本的代表功能與改進,并帶您一窺我們?yōu)槲磥戆姹镜?Android Studio 所開發(fā)的最新功能。

構(gòu)建相關(guān)

在體驗 Android Studio 的新特性前,您可能需要先升級您的項目。您可以使用 AGP (Android Gradle Plugin) 升級助手來幫您完成這一任務(wù)。在導入您的項目時,您可以點擊右下角出現(xiàn)的 "Begin Update",然后點擊 "Show Usage",此時,界面上將展示項目即將發(fā)生哪些變化。您可以直接接受這些建議并運行導入。

深入了解Android Studio的最新功能


△ 使用 AGP 升級助手對項目進行升級

構(gòu)建配置緩存

在項目的 AGP 升級為最新版本后,我們便可以開始構(gòu)建項目了。在構(gòu)建完成后,我們可以打開 Build Analyzer 面板,并查看這里提供的一些建議。在這些建議中,我們重點關(guān)注 Build Configuration (構(gòu)建配置) 時間。

我們點擊 "Optimize this",并在隨后的界面中點擊 "Try Configuration cache in a build" 按鈕,Android Studio 便會在啟用配置緩存的情況下運行您的構(gòu)建。這一過程會檢查您的構(gòu)建是否與配置緩存兼容——本例中是兼容的。點擊 "Enable Configuration Cache" 按鈕便可啟用配置緩存提升項目的構(gòu)建速度。
深入了解Android Studio的最新功能  

△ 啟用配置緩存

啟用配置緩存的操作,本質(zhì)上是在項目的 gradle.properties 文件中設(shè)置了環(huán)境變量 org.gradle.unsafe.configuration-cache=true。在本例中,gradle.properties 文件中還設(shè)置了 android.enableJetifier=true,這一環(huán)境變量用于將依賴庫中的 Support 包遷移為等效的 Android X 軟件包。我們計劃在 Build Analyzer 中添加一個設(shè)置,用于檢查是否有必要啟用 Jetifier。您可以試著自己關(guān)閉 Jetifier,如果關(guān)閉后仍可以構(gòu)建成功,則可以減少項目的構(gòu)建時長。

支持非傳遞 R 類

另一個與構(gòu)建相關(guān)的功能,是對非傳遞 R 類的支持。為了演示這一功能,我切換到了一個更大的項目——k-9 郵件應(yīng)用。我們首先點擊 "Refactor",然后選擇 "Migrate to Non-Transitive R Classes"。此操作將分析整個項目,找到所有引用資源的源文件,并將它們重新編寫為項目本地文件,與此同時還會在 gradle.properties 中添加 android.nonTransitiveRClass=true 來開啟構(gòu)建系統(tǒng)中的特定設(shè)置。這將使構(gòu)建能夠跳過大量的資源合并,從而有助于提高性能。如果您的項目中包含大量的模塊和資源,強烈建議您嘗試這一功能。

Lint 增量緩存

有關(guān)構(gòu)建速度的最后一個功能與 lint 有關(guān)。我們經(jīng)常從用戶那里收到的一個請求,便是希望 lint 在 CI 服務(wù)器上能夠運行得更快。因此,我們從 Bumblebee Canary 13 版本開始支持增量 lint 任務(wù)和緩存,其中也包括遠程緩存。

我們的 k-9 項目由大約 30 個模塊組成,共約十萬行代碼,分布在約 1,100 個源文件中。在啟用了緩存且沒有對項目進行任何更改的情況下,我們首先 clean 項目,以保證項目中沒有任何 lint 報告。接下來我們再次運行 lint,可以看到我們的任務(wù)只用了幾秒鐘便從緩存導入了這些報告。

深入了解Android Studio的最新功能


△ 模擬 CI 任務(wù)時,Lint 拉取了緩存

接下來我們更進一步,對文件中的內(nèi)容進行修改,這對于 lint 是一個新事件。再次重復前面的操作: 運行 clean,然后運行 lint (模擬 CI 的構(gòu)建流程),可以看到,lint 任務(wù)只重新分析了這個更改的模塊,并再次導入了很多緩存的結(jié)果。與舊版 lint 需要三分半鐘的時間相比,現(xiàn)在我們可以在 17 秒內(nèi)看到這個項目更新后的 lint 報告。

界面卡頓追蹤

既然我們聊到了性能問題,那不妨看一下 Profiler。我們目前還在進行最后潤色的功能之一,便是在 Android Studio 中提供追蹤卡頓的功能。卡頓是指界面跟不上幀率的現(xiàn)象。想要追蹤卡頓,首先需要在 Profiler 中錄制一個軌跡。

接下來我們可以切換到 Frames 視圖?,F(xiàn)在在 Android 11 和 12 中可以捕獲幀的生命周期,如下圖所示是捕獲到的幀。我將按照這些幀在應(yīng)用中的持續(xù)時間對它們進行排序。


深入了解Android Studio的最新功能


△ 在錄制的軌跡中,幀時長排序后的結(jié)果

本例中,幀 1748 看起來非常緩慢。我們選中它,就可以在窗格的左側(cè)看到該幀的生命周期。這部分的顯示使用了顏色編碼,當前幀對應(yīng)的顏色為紫色,在等待 GPU 和組合的位置顯示了相同的紫色條。我們只要將視圖縮小一些,就可以看到它何時出現(xiàn)在屏幕上??梢钥吹?,前一幀在屏幕上停留了很長時間,這就是我們說的卡頓。



深入了解Android Studio的最新功能   

△ 幀生命周期

下一步便是查看應(yīng)用和渲染線程。我們可以在界面中滑動選擇一個區(qū)域,就可以看到應(yīng)用在此期間做了什么,從而找出卡頓的來源。我認為在這段錄制中,應(yīng)用試圖同時加載一堆紋理,這就是導致卡頓的原因。

圖形編輯器

我們把關(guān)注的焦點從性能切換到圖形編輯器。假設(shè)我們有一個相機界面,上半部分是取景器,而下半部分則包含了一些圖片的標簽。我們想要實現(xiàn)的是,當設(shè)備在橫向和縱向之間移動時,相機界面可以適當?shù)匦D(zhuǎn)。


深入了解Android Studio的最新功能


△ 本例中的相機界面

MotionLayout 旋轉(zhuǎn)動畫

我們可以使用 MotionLayout 實現(xiàn)這一功能。相機有兩種狀態(tài): 正常的縱向狀態(tài)和橫屏狀態(tài)。我們只需要在 MotionLayout 的 XML 文件中設(shè)置對應(yīng)的 constraintRotate 屬性;然后在 AndroidManifest.xml 中,鎖定 Activity 的屏幕方向為縱向即可。

<ConstraintSet    android:id="@+id/portrait_L90"    motion:deriveConstraintsFrom="@id/landscape_left"    motion:constraintRotate="left">
ConstraintSet>

△ 配置 constraintRotate 屬性

您可以通過圖形編輯器播放轉(zhuǎn)換動畫,來驗證修改之后的效果:


深入了解Android Studio的最新功能


△ 在圖形編輯器中預(yù)覽控件的旋轉(zhuǎn)動畫效果

嵌入式模擬器 & Device Manager (設(shè)備管理器)

您可以通過模擬器檢查上面的代碼在真實設(shè)備中的運行情況。我們已經(jīng)將模擬器嵌入到 Android Studio 中,并花了一年時間增強其穩(wěn)定性并做了許多優(yōu)化。從 Bumblebee 開始,嵌入式的模擬器將成為默認配置。在示例項目啟動后,您也許會注意到,當相機處于活動狀態(tài)時,Android Studio 會給出如何在相機虛擬場景中進行導航的提示。我們只需按住 Shift 鍵,就可以在模擬器呈現(xiàn)給相機的虛擬場景中移動視角。

嵌入式模擬器也可以訪問所有擴展控件。例如,您可以設(shè)置導航路線、訪問虛擬傳感器等。在本例中,我們可以改變設(shè)備姿態(tài)來測試旋轉(zhuǎn)屏幕效果。在下圖中可以看到,隨著我向一側(cè)旋轉(zhuǎn)設(shè)備,模擬器的界面也在更新,從而與傳感器保持同步旋轉(zhuǎn)。


深入了解Android Studio的最新功能


△ 通過擴展控件改變設(shè)備姿態(tài)

模擬器進行這類操作還是稍顯繁瑣,若您想使用實體設(shè)備進行測試,便會用到另一個新功能——Device Manager。我們移除了 AVD 對話框,并將設(shè)備集成到了 Device Manager 中?,F(xiàn)在,模擬器中的虛擬設(shè)備和計算機連接的實體設(shè)備都會在這里集中顯示。

我們還在探索一項功能,以便您更輕松地在 Design 界面中測試動畫效果,而無需在實體設(shè)備上運行項目。在前文中,您已經(jīng)看到如何在 Design 界面中播放動畫。如下圖所示,您也可以在 Design 界面中旋轉(zhuǎn)屏幕。這樣就可以在編輯動畫的同時測試動畫。


深入了解Android Studio的最新功能


△ 在圖形編輯器中模擬旋轉(zhuǎn)屏幕

Android 12L 屏幕適配 & Visual Linting

讓我們來看另一個布局。下圖是一個歡迎界面,我們設(shè)置了將 "WELCOME" 消息從邊緣移動到屏幕中央的動畫效果。所以動畫是從屏幕之外開始的。

深入了解Android Studio的最新功能


△ 示例界面

Android 12L 新增了設(shè)備類的概念,其首要任務(wù)便是處理不同類型的大屏幕設(shè)備間的視圖兼容性問題。Android Studio 的圖形編輯器提供了許多參考設(shè)備。我將視圖切換到平板電腦模式,可以看到 "WELCOME" 消息并不在屏幕外,它在一開始就被顯示了出來。這樣我就可以知道,該動畫在大屏幕上的效果不佳。

本例中,我通過查看各種不同的屏幕尺寸發(fā)現(xiàn)了問題所在,但我們并不希望您每次都進行如此復雜的操作。因此我們在開發(fā)一項新功能,暫時命名為 "Visual Linting"。點擊警告按鈕打開問題視圖,可以看到這里提示布局中的一個按鈕被部分隱藏了。我們可以查看不同的預(yù)覽配置,如果一個視圖顯示在一個屏幕上,則最好也能顯示在另一個屏幕上。我們可以打開 Layout Validation 視圖,并在這里檢查各種屏幕尺寸上的布局;打開下方的問題視圖,則會顯示幾種布局之間存在的不一致問題。


深入了解Android Studio的最新功能


△ 檢查不同屏幕尺寸下的布局

我們再看一個更為實際的應(yīng)用。下圖是一個任務(wù)追蹤器。打開問題面板,可以看到其中列出了發(fā)現(xiàn)的一些問題。我們再次打開 Layout Validation 視圖,查看一下這里的消息??梢钥吹剑谝粭l提示我們剛才看到過的視圖不一致問題,它同時還指出,只需要在較窄的布局中顯示底部欄;另一個問題是,在非常寬的布局中,文本行中的字符數(shù)超過了 120 個,這會降低應(yīng)用的易用性。最為關(guān)鍵的一點是,我們不必親自審查所有這些配置,Android Studio 會幫助我們在后臺檢查。我們還計劃擴大檢查的范圍,而不僅限于屏幕尺寸問題。例如,可以檢查在特定的語言或地區(qū)區(qū)域是否存在意外的換行等等。


深入了解Android Studio的最新功能


△ Visual Linting 會檢查視圖中的問題并給我們提示

Jetpack Compose

最后,我們來談?wù)勍瑯雍苤匾?Compose。我們在 Arctic Fox 中提供了對 Compose 的全面支持,但在 Bumblebee 中,我們又為其添加了幾個新功能。

交互式預(yù)覽 & 動畫檢查

點擊預(yù)覽界面旁邊的觸摸圖標,便會啟動交互模式,啟動過程通常不超過兩秒鐘?,F(xiàn)在我們就可以在 Design 界面中運行應(yīng)用,并進行交互測試了。例如,我可以點擊打開購物車、打開菜單等等。我們可以使用此功能對應(yīng)用進行一些簡單的測試,而且此功能的啟動和退出都很迅速。

深入了解Android Studio的最新功能


△ 交互式預(yù)覽

與此相關(guān)的另一個功能是動畫檢查支持。與交互模式類似,點擊預(yù)覽界面旁邊的動畫檢查圖標,就可以看到動畫中所有動畫曲線的視圖。您可以拖動查看不同的動畫,也可以循環(huán)播放這些動畫。在需要調(diào)整某些曲線時,我們可以通過這個方法很方便地查看動畫是如何組合在一起的。順便一提,在 Canary 版本中,預(yù)覽注解旁會有一個配置圖標,您可以通過該圖標打開配置選取器,從而輕松地更改和配置預(yù)覽。


深入了解Android Studio的最新功能


△ 動畫檢查

字面量實時編輯

Compose 一個很重要的特性是能夠在迭代界面、更改代碼后可以立即看到效果。然而,構(gòu)建速度可能會對此造成很多負面影響,所以我們正在開發(fā)一些功能來幫助解決這個問題。其中一個功能便是字面量實時編輯,包括字符串、數(shù)字和布爾值。

以我們的 Rally 理財應(yīng)用為例。我可以直接更改應(yīng)用中提醒對話框的文本。在下圖中可以看到,在我進行輸入時,預(yù)覽幾乎是實時同步更新的。這對數(shù)字同樣有效,例如,如果有必要,我可以將內(nèi)邊距改成很大的值。


深入了解Android Studio的最新功能


△ 實時更新的文本修改

注意,此功能不僅適用于預(yù)覽,其在實體設(shè)備上也可以正常工作。我可以像剛才一樣更改文本,同理也可以更改數(shù)字和布爾值。

遠期規(guī)劃

剛才我向大家展示了 Arctic Fox 和 Bumblebee 中提供的功能,以及一些 Chipmunk 中處于開發(fā)階段的功能。接下來,我將介紹一些我們正在為這之后的版本開發(fā)的功能,讓大家先睹為快。

Compose 實時編輯

首先是 Compose 實時編輯。此功能是前文展示的 "字面量實時編輯" 功能的泛化,它支持更多場景下的編輯需求,而不僅僅是修改常量和字符串。例如,我們可以在預(yù)覽中添加一個復選框,幾秒鐘后,就可以看到這個復選框出現(xiàn)在界面中。

該功能同樣不僅適用于預(yù)覽。我們知道,對于 Compose 開發(fā),在測試應(yīng)用邏輯時,并排顯示一個嵌入式的模擬器將會非常有幫助。我們正在讓實時編輯功能在模擬器上也能工作。下圖是我們正在運行的 Compose 應(yīng)用,我們不僅可以像剛才那樣更改字符串,還可以注釋掉界面的某些部分、重新排序,也可以更改參數(shù)......可以看到,這些操作在編輯后的幾毫秒內(nèi)就能應(yīng)用到界面上。


深入了解Android Studio的最新功能


△ 實時更新的模糊狀態(tài)

上面的示例順帶試用了 Android 12 中的模糊處理。我們在布局預(yù)覽和設(shè)計預(yù)覽時均支持模糊效果。

這是一個很激動人心的功能。但我們從 Instant Run 中吸取的教訓是,在發(fā)布一項功能之前必須確保它非??煽?。因此我們要投入更多的時間,確保此功能在納入 Android Studio 時不會出錯。

Light Mode (輕量模式)

下一個功能和前文所展示的功能完全相反,這就是輕量模式。由于實時編輯功能的存在,在您輸入的過程中,Android Studio 會進行大量計算,以盡可能快速地實時顯示更新后的界面;而如果使用了 Visual Linting,Android Studio 會在后臺運行分析,以發(fā)現(xiàn)不同屏幕尺寸中的潛在問題,等等。通過輕量模式,您可以告訴 IDE,您希望它在您的使用期間減少資源的消耗。

輕量模式是建立在 IntelliJ 節(jié)能模式之上的。在進入輕量模式后,前文展示的 Compose 實時編輯功能將不會再工作;而在打開布局 XML 文件時,也不會像通常那樣默認顯示拆分視圖,而只是顯示源文件。

而在輕量模式下編輯 Kotlin 文件時,將不會像通常那樣執(zhí)行各種常見且開銷較大的編輯器驗證,但您仍然可以使用 "轉(zhuǎn)到聲明" 以及類似的基本編輯功能。如果我輸入毫無意義的內(nèi)容,通常情況下會產(chǎn)生紅色的警告,但它現(xiàn)在不會這么做。而如果我保存該文件,會暫時解除輕量模式的限制,這樣您就可以獲得所需的基本驗證。

我們正在優(yōu)化 Android Studio 中的各項功能,以便在您處于輕量模式時適當?shù)貛湍鷾p少工作量。例如,布局編輯器將執(zhí)行開銷較小的圖像縮放和抗鋸齒等任務(wù)。我們還在嘗試禁用某些編輯器功能,就像在節(jié)能模式下一樣。這些特性同樣是處于早期探索階段,但很有前景,希望我們會取得一些成果。

總結(jié)

以上便是本文所介紹的全部內(nèi)容,其中涵蓋了 Android Studio BumbleBee 版本所聚焦的三個方向的改進,包括 Jetpack Compose、開發(fā)效率優(yōu)化以及 Android 12L 大屏幕設(shè)備的適配。

我們還為您介紹了 Chipmunk 版本中即將發(fā)布的最新功能。除了前文介紹的內(nèi)容外,該版本還加入了 IntelliJ IDEA 2021.2 中所包含的新功能、為 Android 12L 所提供的可調(diào)整大小的模擬器等許多功能。受篇幅所限,不能一一為您介紹。如果您對這些新功能感興趣,可以下載試用 Chipmunk,并告訴我們您的感想。

期待您使用 Android Studio,并創(chuàng)造出體驗出色的應(yīng)用!

原文標題:Android Studio 新特性詳解

文章出處:【微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3936

    瀏覽量

    127397
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    875

    瀏覽量

    43220

原文標題:Android Studio 新特性詳解

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    深入了解示波器

    深入了解示波器
    發(fā)表于 11-14 22:32

    專家開講:深入了解電池技術(shù)──Part 3

    資深工程師 Ivan Cowie 的「深入了解電池技術(shù)」專欄Part 3來啰!這次要介紹的是鉛酸電池(lead-acidbatteries)技術(shù)。鉛酸電池是在1859年由法國物理學家Gaston
    發(fā)表于 08-18 09:37

    單片機的深入了解!

    項目名稱:單片機的深入了解!項目是否開源:否申請開發(fā)板數(shù)量:1 塊申請人團隊介紹:我們團隊由五個人組成,我們打算開始著手單片機的程序改編,設(shè)計一些比較特殊新穎的東西!希望給以支持!
    發(fā)表于 10-12 20:00

    深入了解LabVIEW FPGA資料分享

    深入了解LabVIEW FPGA
    發(fā)表于 05-27 08:35

    Android Studio與Gradle深入

    Android Studio 相關(guān)功能介紹  文件夾組織視圖  最常用的有 Project 和 Android 視圖,前者按照項目文件樹進行組織,后者是以 Gradle 構(gòu)建文件作為核
    發(fā)表于 08-31 17:58

    AndroidStudio3.0 下載使用新功能介紹

    ; Check for Update(或者,在 Mac 上,點擊 Android Studio > Check for Updates)來檢查更新。新功能ide的改變更新了基礎(chǔ)ide到idea
    發(fā)表于 04-24 14:42

    Android9有哪些新功能

    Android9.0 P 電源管理&android各版本電量優(yōu)化功能策略針對電量優(yōu)化android的改動在最近幾個android版本中已存在
    發(fā)表于 12-28 08:08

    示波器的深入了解

    示波器的深入了解 引言自然界運行著各種形式的正弦波,比如海浪、地震、聲波、爆破、空氣中傳播的聲音,或者身體運轉(zhuǎn)的自然節(jié)律。物理世界里,能
    發(fā)表于 11-04 11:53 ?52次下載
    示波器的<b class='flag-5'>深入了解</b>

    深入了解示波器入門手冊

    深入了解示波器入門手冊
    發(fā)表于 03-27 17:43 ?241次下載
    <b class='flag-5'>深入了解</b>示波器入門手冊

    深入了解電路噪聲的那些事

    模擬電子的相關(guān)知識學習教材資料——深入了解電路噪聲的那些事
    發(fā)表于 09-27 15:19 ?0次下載

    深入了解電感與磁珠的異同

    模擬電子的相關(guān)知識學習教材資料——深入了解電感與磁珠的異同
    發(fā)表于 09-27 15:19 ?0次下載

    帶你深入了解示波器

    帶你深入了解示波器
    發(fā)表于 02-07 14:26 ?19次下載

    詳解Android Studio Chipmunk新增功能

    我們非常激動地宣布推出 Android Studio Chipmunk 穩(wěn)定版: 構(gòu)建 Android 應(yīng)用的官方 IDE!雖然此版本并未對功能做過多改動,但里面包含了最新的 Inte
    的頭像 發(fā)表于 06-28 17:57 ?1599次閱讀

    深入了解安全光柵

    深入了解安全光柵
    的頭像 發(fā)表于 06-25 13:53 ?1218次閱讀
    <b class='flag-5'>深入了解</b>安全光柵

    深入了解 GaN 技術(shù)

    深入了解 GaN 技術(shù)
    的頭像 發(fā)表于 12-06 17:28 ?6159次閱讀
    <b class='flag-5'>深入了解</b> GaN 技術(shù)