Android Studio 4.0(2020年5月) 更新啦,此版本包含了各類新功能和改進,還有一些廢棄配置。java
重要提示:更新後,須要從新啓動 Android Studio 才能應用從早期版本的 IDE 遷移的全部內存設置。有關更多信息,請參見「已知問題」頁面。android
最新版本的 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 Analyzer 窗口在左側的樹中組織可能的構建問題。你能夠檢查並單擊每一個問題,以在右側面板中調查其詳細信息。框架
當 Android Studio 分析構建時,它將計算肯定構建持續時間的一組任務,並提供可視化幫助你瞭解每一個任務的影響,你還能夠經過展開 Warnings 節點來獲取有關警告的詳細信息。編輯器
檢查肯定構建持續時間的任務。ide
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:
java.util.stream1
)java.time
java.util.function
java.util.{Map,Collection,Comparator}
java.util.Optional
,java.util.OptionalInt
and some other new classes useful with the above APIsjava.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 控制檯會檢查此元數據提供如下好處:
數據通過壓縮,經過 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
}
}
複製代碼
Android Gradle 插件如今支持 Kotlin DSL 構建腳本文件(*.kts
),配合 Android Studio 結合使用時,某些 IDE 功能(例如 Project Structure
對話框和構建腳本快速修復程序)如今還支持讀寫 Kotlin 構建腳本文件。
根據用戶的反饋,谷歌將集中精力經過兩種重要方式來改善 CPU Profiler 中的用戶體驗。
首先,與之前的 Android Studio 版本相比,CPU Profiler 中 CPU 記錄的錯誤率已大大下降。
其次,對 CPU Profiler UI 進行了全面改進,以提供更直觀的工做流程,其中 UI的一些顯着更改包括:
CPU記錄與主探查器時間軸分開了以便於分析,記錄的數據在 Profiler 窗口的左側按組分佈。用戶能夠經過單擊探查器中的選項圖標
爲了更輕鬆地進行並排分析,用戶如今能夠在線程活動時間軸中查看全部線程活動(包括方法,函數和事件)。有幾種方法能夠瀏覽時間軸:
Flame Chart,Top Down 和 Bottom Up 分析的選項卡如今位於右側列中,在 Threads 組中,對於系統跟蹤記錄線程會自動展開,對於其餘記錄類型默認狀況下會摺疊起,在線程名稱上雙擊(或按Enter)以展開或摺疊它們。
如屏幕截圖所示,系統跟蹤UI還包括如下改進:
此版本的 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 調試版式,在將應用程序部署到設備時可提供對應用程序UI完整地實時更新。
要打開 Layout Inspector 窗口,請轉到 View > Tools Windows > 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 窗口中,能夠從四個不一樣的配置集中選擇:
要了解有關使用佈局驗證的更多信息,請參閱使用Layout Inspector調試佈局。
當打開 R8 的代碼收縮規則文件時,Android Studio 如今提供智能編輯器功能,例如:語法突出顯示、代碼完成和錯誤檢查。該編輯器還與 Android Studio 項目集成在一塊兒,爲全部類、方法和字段提供完整的符號補全,幷包括快速導航和重構。
Android Studio 如今包括適用於 Kotlin 類的Android 實時模板。例如,如今能夠鍵入 toast 並按 Tab 鍵快速插入 Toast。
有關可用實時模板的完整列表,請從菜單欄中單擊 File > Settings(或在macOS上爲 Android Studio > Preferences ),而後導航 Editor > Live Templates。
如今,當您導航到File > New > Fragment > Gallery或在「導航」編輯器中單擊Create new destination時,便可使用「New Android Fragment wizard」嚮導和新的片斷模板。
使用Android 11圖像時,Android Emulator相機包括如下新功能:
要了解有關爲下一版Android開發的更多信息,請轉到 Android 11 Developer Preview用戶文檔。
Jetbrains CLion 是支持 Android Studio C ++ 語言支持的技術,如今使用基於 LLVM clangd 和 clang-tidy 的檢查引擎,加快了 C / C ++ 代碼的完成速度,並提供了與 clang-tidy 的更無縫集成。
如今,在 Android Studio C++ 代碼編輯器中可用,clangd 和 clang-tidy 都是開源LLVM額外工具的一部分:
在之前的版本中,Android Studio 用戶能夠經過 NDK 使用 clang-tidy;有了這一更改,Android Studio 再也不依賴NDK的整潔功能。
ndk.dir 不該再在應用程序的 local.properties 文件中 ndk.dir 設置,而且在之後的版本中將刪除對此設置的支持。Android Gradle 插件默認設置NDK版本,可是若是您須要NDK的特定版本,則能夠 android.ndkVersion 在中設置 build.gradle 。
有關設置NDK的更多信息,請參閱[安裝和配置NDK和CMake](Install and configure the NDK and CMake)。
核心 Android Studio IDE 已更新,並經過IntelliJ IDEA 進行了改進,直至 2019.3.3 版本。