Android Studio 4.0 穩定版釋出了

戀貓de小郭發表於2020-05-29

Android Studio 4.0(2020年5月) 更新啦,此版本包含了各種新功能和改進,還有一些廢棄配置。

重要提示:更新後,需要重新啟動 Android Studio 才能應用從早期版本的 IDE 遷移的所有記憶體設定。有關更多資訊,請參見“已知問題”頁面。

一、Android Gradle 外掛 4.0.0

最新版本的 Android Gradle 外掛包含許多更新,例如 Java 8 對較舊版本的 Android 功能上的依賴項進行了更新。要了解更多資訊可閱讀【完整的Android Gradle外掛發行說明】(android.devsite.corp.google.com/studio/rele…)。

此外,Android Studio 的新功能可幫助您提高構建效能。

1、構建分析器

當將 Android Studio 4.0 與 Android Gradle 外掛 4.0.0 及更高版本一起使用時,Build Analyzer 視窗可幫助你瞭解和診斷構建過程中的問題,例如禁用的優化和配置不正確的 task,要開啟 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 節點來獲取有關警告的詳細資訊。

Android Studio 4.0 穩定版釋出了

檢查確定構建持續時間的任務。

2、Java 8庫在D8和R8中逐漸消失

Android Studio 現在支援使用多種 Java 8 語 言API,而無需給應用程式設定最低 API 級別。

通過一個稱為 desugaring 的過程,Android Studio 3.0 及更高版本中的 DEX 編譯器 D8 已經為Java 8 語言功能(例如lambda表示式,預設介面方法,嘗試資源等)提供了實質性支援。

在Android Studio 4.0中,已將 desugaring engine 擴充套件為能夠對 Java 語言 API 的語法糖。這意味著你現在可以在 java.util.streams 支援較舊版本的 Android 的應用程式中,包含僅在最新的Android版本中可用的標準語言API 。

此版本支援以下一組API:

  • Sequential streams (java.util.stream1)
  • A subset of java.time
  • java.util.function
  • Recent additions to java.util.{Map,Collection,Comparator}
  • Optionals(java.util.Optionaljava.util.OptionalInt and some other new classes useful with the above APIs
  • Some additions to java.util.concurrent.atomic (new methods on AtomicInteger, AtomicLong and AtomicReference)
  • ConcurrentHashMap (with bug fixes for Android 5.0)

為了支援這些語言API,D8 會編譯一個單獨的庫DEX檔案,該檔案包含了一些本身缺少API的實現,並將其包含在您的應用程式中,而 desugaring 的過程 將重寫您的應用程式程式碼,以在執行時使用此庫。

要啟用對這些語言API的支援,請在模組build.gradle檔案中包括以下內容:

android {
  defaultConfig {
    // Required when setting minSdkVersion to 20 or lower
    multiDexEnabled true
  }

  compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'
}
複製程式碼

3、功能上的依存關係

在早期版本的 Android Gradle 外掛中,所有動態功能模組都只能依賴於應用程式的基本模組。

現在,當使用 Android Gradle 外掛 4.0.0 及更高版本時,可以包括一個依賴於另一個功能模組的功能模組,即 :video 功能可以取決於:camera 功能,而功能取決於基礎模組,結果如下圖所示。

Android Studio 4.0 穩定版釋出了

動態功能 :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
複製程式碼

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
    }
}
複製程式碼

二、支援 Kotlin DSL 指令碼檔案

Android Gradle 外掛現在支援 Kotlin DSL 構建指令碼檔案(*.kts),配合 Android Studio 結合使用時,某些 IDE 功能(例如 Project Structure 對話方塊和構建指令碼快速修復程式)現在還支援讀寫 Kotlin 構建指令碼檔案。

三、 CPU Profiler 升級

Android Studio 4.0 穩定版釋出了

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

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

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

  • CPU記錄與主探查器時間軸分開了以便於分析,記錄的資料在 Profiler 視窗的左側按組分佈。使用者可以通過單擊探查器中的選項圖示

    Android Studio 4.0 穩定版釋出了
    在視窗右上角的選項圖示圖示或通過拖放組中的單個專案來上下移動組以重新組織列表 。

  • 為了更輕鬆地進行並排分析,使用者現在可以線上程活動時間軸中檢視所有執行緒活動(包括方法,函式和事件)。有幾種方法可以瀏覽時間軸:

    • 要關注特定的時間點,請在 CPU 使用率圖表的左上方拖動一個範圍。
    • 要放大或縮小,請在按住 Control(或MacOS上的Command)的同時使用滑鼠滾輪;要向左或向右平移,請在按住空格鍵的同時拖動。
    • 或者使用W和A鍵進行精細的放大和縮小,使用S和D鍵進行左右的精細平移。
  • Flame ChartTop DownBottom Up 分析的選項卡現在位於右側列中,在 Threads 組中,對於系統跟蹤記錄執行緒會自動展開,對於其他記錄型別預設情況下會摺疊起,線上程名稱上雙擊(或按Enter)以展開或摺疊它們。

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

Android Studio 4.0 穩定版釋出了

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

四、設計工具

此版本的 Android Studio 包括對設計工具的更新,例如 Layout Inspector (佈局檢查器)和全新的 Motion Editor

1、新動作編輯器

Android Studio 現在包括用於 MotionLayout 佈局型別的可視設計編輯器,使建立和預覽動畫更加容易。

動作編輯器提供了一個簡單的介面,用於處理 MotionLayout 庫中的元素,這些元素是 Android 應用中動畫的基礎。

在以前的版本中,建立和更改這些元素需要手動編輯XML資原始檔中的約束。現在,運動編輯器可以為您生成此XML,並支援開始和結束狀態,關鍵幀,過渡和時間軸。

要了解有關如何使用運動編輯器的更多資訊,請參見使用者指南

Android Studio 4.0 穩定版釋出了

⚠️注意:在使用 Motion 編輯器之前,請確保將檔案中的 ConstraintLayout 依賴項設定 build.gradle 為 version 2.0.0-beta3 或更高版本。

2、Live Layout Inspector

使用 Live Layout Inspector 除錯版式,在將應用程式部署到裝置時可提供對應用程式UI完整地實時更新。

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

  • Dynamic layout hierarchy(動態佈局層次結構):隨著裝置檢視的更改而更新。

Android Studio 4.0 穩定版釋出了

  • Property values resolution stack:(屬性值解析堆疊):調查資源屬性值在原始碼中的起源,並通過遵循屬性窗格中的超連結導航到其位置。

Android Studio 4.0 穩定版釋出了

  • 3D view(3D檢視):在執行時通過高階 3D 視覺化檢視應用程式的檢視層次結構,要使用此功能,只需在 Layout Inspector 視窗中單擊佈局並旋轉它。

Android Studio 4.0 穩定版釋出了

僅當將應用程式部署到執行 API級別 29 或更高版本的裝置或模擬器時,才能使用 Live Layout Inspector,要啟用實時佈局檢查器,請轉到File > Settings > Experimental,然後選中 Enable Live Layout Inspector 旁邊的框 ,然後,單擊 Live updates 上方 Layout Display 旁邊的核取方塊。

3、佈局驗證

Layout Validation (佈局驗證)是一種視覺化工具,可用於同時預覽不同裝置和配置上的佈局,從而幫助檢測佈局錯誤並建立更多可訪問的應用程式。

Android Studio 4.0 穩定版釋出了

使用者可以通過單擊IDE視窗右上角的 Layout Validation 選項卡來訪問此功能:

Android Studio 4.0 穩定版釋出了

在 Layout Validation 視窗中,可以從四個不同的配置集中選擇:

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

要了解有關使用佈局驗證的更多資訊,請參閱使用Layout Inspector除錯佈局

五、用於程式碼收縮規則的智慧編輯器功能

當開啟 R8 的程式碼收縮規則檔案時,Android Studio 現在提供智慧編輯器功能,例如:語法突出顯示、程式碼完成和錯誤檢查。該編輯器還與 Android Studio 專案整合在一起,為所有類、方法和欄位提供完整的符號補全,幷包括快速導航和重構。

Android Studio 4.0 穩定版釋出了

六、Kotlin Android實時模板

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

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

七、Fragment wizard and new fragment templates

現在,當您導航到File > New > Fragment > Gallery或在“導航”編輯器中單擊Create new destination時,即可使用“New Android Fragment wizard”嚮導和新的片段模板。

八、在 Android 模擬器中擴充套件了相機支援

使用Android 11影像時,Android Emulator相機包括以下新功能:

  • RAW拍攝
  • YUV後處理
  • Level 3 devices
  • 邏輯相機支援

要了解有關為下一版Android開發的更多資訊,請轉到 Android 11 Developer Preview使用者文件

九、clangd 現在可用於 C ++程式碼編輯器

Jetbrains CLion 是支援 Android Studio C ++ 語言支援的技術,現在使用基於 LLVM clangd 和 clang-tidy 的檢查引擎,加快了 C / C ++ 程式碼的完成速度,並提供了與 clang-tidy 的更無縫整合。

現在,在 Android Studio C++ 程式碼編輯器中可用,clangd 和 clang-tidy 都是開源LLVM額外工具的一部分:

  • clangd具有程式碼完成功能,在編輯器中編譯錯誤訊息以及定位導航。
  • clang-tidy是C ++ linter工具,具有可擴充套件的框架,用於診斷和修復典型的程式設計錯誤。

在以前的版本中,Android Studio 使用者可以通過 NDK 使用 clang-tidy;有了這一更改,Android Studio 不再依賴NDK的整潔功能。

十、已棄用 local.properties 檔案中的ndk.dir設定

ndk.dir 不應再在應用程式的 local.properties 檔案中 ndk.dir 設定,並且在以後的版本中將刪除對此設定的支援。Android Gradle 外掛預設設定NDK版本,但是如果您需要NDK的特定版本,則可以 android.ndkVersion 在中設定 build.gradle 。

有關設定NDK的更多資訊,請參閱[安裝和配置NDK和CMake](Install and configure the NDK and CMake)。

十一、IntelliJ IDEA 2019.3.3

核心 Android Studio IDE 已更新,並通過IntelliJ IDEA 進行了改進,直至 2019.3.3 版本。

Android Studio 4.0 穩定版釋出了

相關文章