Android Studio 4.0 新功能與優化


1、前言

Android Studio又更新了,每次重大更新都給我們的生產力提升了一個台階,當然也會帶來神奇的bug,牆裂提醒各位小伙伴升級請慎重!!!

【真香警告】Android Studio下載鏈接:
for Windows(64-bit) / for Linux(64-bit) / for Mac(64-bit)

這次Android Studio 4.0版本的正式上線不容易呀,疫情如此嚴重還是如約而至,希望穩定性也不差。話不多說,我們進入正題,Android Studio 4.0 新功能與優化。

2、新功能

2.1 MotionLayout與Motion Editor

本次升級新增的MotionLayout令人眼前一亮,它擴展了功能豐富的ConstraintLayout ,來幫助開發者實現應用中復雜的動畫效果。

Android Studio特地增加了Motion Editor使MotionLayoutI的使用變得更加容易,Motion Editor可以用來創建、編輯和預覽MotionLayout 動畫。

此后實現動畫不再需要創建和修改復雜的xml文件,使用Motion Editor就可以生成,而且支持編輯約束集,過渡,關鍵幀和視圖屬性。而且對於已經使用過ConstraintLayout的開發人員來說,IDE可以輕松地將其轉換為MotionLayout。如果想要查看編輯器創建的代碼的話,只需要單擊一下即可。
MotionLayout簡單動畫效果
想要學習更多關於Motion Editor的內容,可以參考官方文檔

2.2 Layout Validation

在Android Studio的右邊欄可以找到新增的Layout Validation選項卡,這是一個可視化的布局驗證工具,可以同時預覽不同設備和配置上的布局,從而幫助檢測布局錯誤並創建更多可訪問的應用程序。

在 Layout Validation 窗口中,可以選擇四個不同的驗證屬性:

  • Pixel Devices :在多種像素設備上預覽應用。
  • Custom :使用自定義顯示選項(例如屏幕方向或語言)預覽應用。
  • Color Blind:使用常見色盲類型的模擬預覽應用。
  • Font Sizes:使用各種字體大小預覽應用。

想要學習更多關於Layout Validation的內容,可以參考官方文檔

2.3 Build Analyzer

Build Analyzer是Android Gradle Plugin 4.0.0新增的一個構建分析器,當將 Android Studio 4.0 與 Android Gradle 插件 4.0.0 及更高版本一起使用時,可以使用Build Analyzer工具來顯示整個項目構建過程中哪些部分耗時最高,以此可以來檢查一些過時的或錯誤的配置可能導致的構建耗時,來優化項目的構建時間。

要打開 Build Analyzer 窗口,請按照下列步驟操作:

  1. 如果尚未執行此操作,請通過從菜單欄中選擇 Build> Make Project 來構建應用程序。
  2. 從菜單欄中選擇 View > Tool Windows > Build。
  3. 在 Build 窗口中,以下列方式之一打開 Build Analyzer 窗口:
  • Android Studio完成構建項目后,單擊 Build Analyzer 選項卡。
  • Android Studio完成構建項目后,單擊 Build Output 窗口右側的鏈接。

Build Analyzer 窗口在左側的樹中組織可能的構建問題。你可以檢查並單擊每個問題,以在右側面板中調查其詳細信息。

當 Android Studio 分析構建時,它將計算確定構建持續時間的一組任務,並提供可視化幫助你了解每個任務的影響,你還可以通過展開 Warnings 節點來獲取有關警告的詳細信息。
Build Analyzer示例圖
想要學習更多關於Build Analyzer的內容,可以參考官方文檔

2.4 依賴元數據

使用 Android Gradle 插件 4.0.0 及更高版本構建應用時,該插件包含描述已編譯到應用中的依賴項的元數據,uploading 應用程序時,Play 控制台會檢查此元數據提供以下好處:

獲取有關你的應用使用的SDK和依賴項的已知問題的警報
收到可行的反饋來解決這些問題
數據經過壓縮,通過 Google Play 簽名密鑰加密,並存儲在發布應用的簽名欄中,你也可以自己在以下目錄中的本地中間構建文件中檢查元數據:

<project>/<module>/build/outputs/sdk-dependencies/release/sdkDependency.txt。

如果不想共享此信息,可以通過在模塊 build.gradle 文件中添加以下內容來退出:

android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

3、優化

3.1 Layout Inspector

要打開 Layout Inspector 窗口,請轉到 View > Tools Windows > Layout Inspector。除了現有布局檢查器的許多相同功能外,實時布局檢查器還包括:

  1. Dynamic layout hierarchy(動態布局層次結構):隨着設備視圖的更改而更新。
    動態布局層次結構
  2. Property values resolution stack:(屬性值解析堆棧):調查資源屬性值在源代碼中的起源,並通過遵循屬性窗格中的超鏈接導航到其位置。
    屬性值解析堆棧
  3. 3D view(3D視圖):在運行時通過高級 3D 可視化查看應用程序的視圖層次結構,要使用此功能,只需在 Layout Inspector 窗口中單擊布局並旋轉它。
    3D視圖想要學習更多關於Layout Inspector的內容,可以參考官方文檔

3.2 CPU Profiler

CPU Profiler升級

根據用戶的反饋,谷歌將集中精力通過兩種重要方式來改善 CPU Profiler 中的用戶體驗。

首先,與以前的 Android Studio 版本相比,CPU Profiler 中 CPU 記錄的錯誤率已大大降低。

其次,對 CPU Profiler UI 進行了全面改進,以提供更直觀的工作流程,其中 UI的一些顯着更改包括:

  • CPU記錄與主探查器時間軸分開了以便於分析,記錄的數據在 Profiler 窗口的左側按組分布。
  • 為了更輕松地進行並排分析,用戶現在可以在線程活動時間軸中查看所有線程活動(包括方法,函數和事件)。
  • Flame Chart,Top Down 和 Bottom Up 分析的選項卡現在位於右側列中,在 Threads 組中,對於系統跟蹤記錄線程會自動展開,對於其他記錄類型默認情況下會折疊起,在線程名稱上雙擊(或按Enter)以展開或折疊它們。

如屏幕截圖所示,系統跟蹤UI還包括以下改進:
系統跟蹤UI

  • 現在事件采用了獨特的顏色,以便於區分。
  • 線程按它們中的跟蹤事件數進行排序,以便 “busier” 的線程在列表中排名更高。
  • 可以選擇一個或多個線程以僅在那些選定的線程的右列中查看分析。
  • 同樣,可以在任何線程中選擇一個跟蹤事件以查看其分析數據。

想要學習更多關於CPU Profiler的內容,可以參考官方文檔

3.3 混淆代碼的智能編輯器

在之前編寫混淆代碼時,大概都復制粘貼的比較多,而在AS 4.0中提供了智能編輯器功能,不但在編寫混淆代碼會有自動補全所有類,方法和字段功能,而且還有語法突出顯示,錯誤檢查和提醒等功能。

當打開 R8 的代碼收縮規則文件時,Android Studio 現在提供智能編輯器功能,例如:語法突出顯示、代碼完成和錯誤檢查。該編輯器還與 Android Studio 項目集成在一起,為所有類、方法和字段提供完整的符號補全,並包括快速導航和重構。
混淆代碼的智能編輯器

3.4 Kotlin Android live templates

Android Studio 現在包括適用於 Kotlin 類的Android 實時模板。例如,現在可以鍵入 toast 並按 Tab 鍵快速插入 Toast。

有關可用實時模板的完整列表,請從菜單欄中單擊 File > Settings(或在macOS上為 Android Studio > Preferences ),然后導航 Editor > Live Templates。

PS:谷歌對Kotlin的投入越來越大,如果有還沒有學Kotlin的小伙伴,建議還是去學學,有Java基礎的話上手還是很快的,平時混合開發一下,實戰中完全掌握是最快的。

3.5 Clangd support for C++

對於編寫C++語言的開發者來說,現在已經把clangd做完主要的語言分析引擎了,用來代碼導航,自動完成,錯誤檢查和提示。而且還在Android Studio中包含了clang-tidy。要配置Clangd和clang-tidy的話,可以打開Setting(或Preferences),導航到Languages & Frameworks > C/C++ > Clangd or Clang-Tidy。

3.6 Feature-on-feature dependencies

在早期版本的 Android Gradle 插件中,所有動態功能模塊都只能依賴於應用程序的基本模塊。

現在,當使用 Android Gradle 插件 4.0.0 及更高版本時,可以包括一個依賴於另一個功能模塊的功能模塊,即 :video 功能可以取決於:camera 功能,而功能取決於基礎模塊,結果如下圖所示。
Feature-on-feature dependencies
動態功能 :video 取決於 :camera 的功能,后者取決於基本 :app 模塊。

這意味着,當應用程序請求下載動態功能模塊時,該應用程序還會下載其依賴的其他功能模塊,在之后創建動態功能模塊,你可以在模塊聲明一個功能上特征依賴 build.gradle 文件,例如 :video 模塊聲明對 :camera 以下項的依賴關系:

// In the build.gradle file of the ':video' module.
dependencies {
    // All dynamic feature modules must declare a dependency
    // on the base module.
    implementation project(':app')
    // Declares that this module also depends on the 'camera'
    // dynamic feature module.
    implementation project(':camera')
    ...
}

此外,你可以通過在菜單欄中單擊 Help > Edit Custom VM Options 並啟用以下功能,在 Android Studio 中啟用 feature-on-feature dependency 功能(例如,在編輯 Run configuration 時支持該功能):

-Drundebug.feature.on.feature=true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM