Android Studio 4.0 穩定版發佈了

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

重要提示:更新後,須要從新啓動 Android Studio 才能應用從早期版本的 IDE 遷移的全部內存設置。有關更多信息,請參見「已知問題」頁面。android

1、Android Gradle 插件 4.0.0

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

此外,Android Studio 的新功能可幫助您提升構建性能。bash

一、構建分析器

當將 Android Studio 4.0 與 Android Gradle 插件 4.0.0 及更高版本一塊兒使用時,Build Analyzer 窗口可幫助你瞭解和診斷構建過程當中的問題,例如禁用的優化和配置不正確的 task,要打開 Build Analyzer 窗口,請按照下列步驟操做:app

  • 一、若是還沒有執行此操做,請經過從菜單欄中選擇 Build> Make Project 來構建應用程序。
  • 二、從菜單欄中選擇 View > Tool Windows > Build
  • 三、在 Build 窗口中,如下列方式之一打開 Build Analyzer 窗口:
    • Android Studio完成構建項目後,單擊 Build Analyzer 選項卡。
    • Android Studio完成構建項目後,單擊 Build Output 窗口右側的連接。

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

當 Android Studio 分析構建時,它將計算肯定構建持續時間的一組任務,並提供可視化幫助你瞭解每一個任務的影響,你還能夠經過展開 Warnings 節點來獲取有關警告的詳細信息。編輯器

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

二、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'
}
複製代碼

三、功能上的依存關係

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

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

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

四、依賴元數據

使用 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
    }
}
複製代碼

2、支持 Kotlin DSL 腳本文件

Android Gradle 插件如今支持 Kotlin DSL 構建腳本文件(*.kts),配合 Android Studio 結合使用時,某些 IDE 功能(例如 Project Structure 對話框和構建腳本快速修復程序)如今還支持讀寫 Kotlin 構建腳本文件。

3、 CPU Profiler 升級

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

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

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

  • CPU記錄與主探查器時間軸分開了以便於分析,記錄的數據在 Profiler 窗口的左側按組分佈。用戶能夠經過單擊探查器中的選項圖標

    在窗口右上角的選項圖標圖標或經過拖放組中的單個項目來上下移動組以從新組織列表 。

  • 爲了更輕鬆地進行並排分析,用戶如今能夠在線程活動時間軸中查看全部線程活動(包括方法,函數和事件)。有幾種方法能夠瀏覽時間軸:

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

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

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

4、設計工具

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

一、新動做編輯器

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

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

在之前的版本中,建立和更改這些元素須要手動編輯XML資源文件中的約束。如今,運動編輯器能夠爲您生成此XML,並支持開始和結束狀態,關鍵幀,過渡和時間軸。

要了解有關如何使用運動編輯器的更多信息,請參見用戶指南

⚠️注意:在使用 Motion 編輯器以前,請確保將文件中的 ConstraintLayout 依賴項設置 build.gradle 爲 version 2.0.0-beta3 或更高版本。

二、Live Layout Inspector

使用 Live Layout Inspector 調試版式,在將應用程序部署到設備時可提供對應用程序UI完整地實時更新。

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

  • Dynamic layout hierarchy(動態佈局層次結構):隨着設備視圖的更改而更新。

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

  • 3D view(3D視圖):在運行時經過高級 3D 可視化查看應用程序的視圖層次結構,要使用此功能,只需在 Layout Inspector 窗口中單擊佈局並旋轉它。

僅當將應用程序部署到運行 API級別 29 或更高版本的設備或仿真器時,才能使用 Live Layout Inspector,要啓用實時佈局檢查器,請轉到File > Settings > Experimental,而後選中 Enable Live Layout Inspector 旁邊的框 ,而後,單擊 Live updates 上方 Layout Display 旁邊的複選框。

三、佈局驗證

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

用戶能夠經過單擊IDE窗口右上角的 Layout Validation 選項卡來訪問此功能:

在 Layout Validation 窗口中,能夠從四個不一樣的配置集中選擇:

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

要了解有關使用佈局驗證的更多信息,請參閱使用Layout Inspector調試佈局

5、用於代碼收縮規則的智能編輯器功能

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

6、Kotlin Android實時模板

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

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

7、Fragment wizard and new fragment templates

如今,當您導航到File > New > Fragment > Gallery或在「導航」編輯器中單擊Create new destination時,便可使用「New Android Fragment wizard」嚮導和新的片斷模板。

8、在 Android 模擬器中擴展了相機支持

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

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

要了解有關爲下一版Android開發的更多信息,請轉到 Android 11 Developer Preview用戶文檔

9、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的整潔功能。

10、已棄用 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)。

11、IntelliJ IDEA 2019.3.3

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

相關文章
相關標籤/搜索