作者 / Adarsh Fernando, Product Manager
即便在如今這個變幻莫測的時勢裡,我們依然看到來自世界各地開發者們的佳作——那就是 Android 上一個又一個精彩的應用。不論您是在廚房裡用一臺筆記本工作,還是在家中有更好的辦公環境,您都需要更好的、與時俱進的趁手工具: Android Studio 4.0。更高效的代碼編寫、更快捷的編譯速度,讓您盡情地為用戶們設計最棒的應用,即刻下載正式版開始使用吧!
Android Studio 4.0 的亮點眾多,這裡列出幾項: 全新的 Motion Editor,可助您輕鬆打造應用動效;Build Analyzer 可以幫您找到導致編譯速度緩慢的癥結;您還可以盡情使用 Java 8 API,無需考慮您應用的最低 API 級別。另外,我們還根據大家的反饋調整了 CPU Profiler 界面,使得工作流更加直觀,而且還提供了並排顯示功能幫助您更輕鬆地分析線程活動。Layout Inspector 現在會如實顯示應用 UI 中的真實數據,方便您更好地調試設備上顯示的內容。Android Studio 4.0 正式版的發布,離不開預覽版用戶們早期給出的寶貴反饋。請繼續閱讀本文,或者觀看下方視頻來詳細了解 4.0 正式版的亮點和新功能。如果您已經迫不及待想要上手一試,請移步我們的官方網站下載 Android Studio 4.0 正式版。MotionLayout API 進一步拓展了 ConstraintLayout 的豐富功能,使得 Android 開發者能在應用中管理複雜的動效和 widget 動畫。Android Studio 4.0 中新加入的 Motion Editor 讓開發者能在其界面中創建、編輯和預覽 MotionLayout 動畫,從而更輕鬆地駕馭這個 API。從創建文件,到編輯約束設置、轉場動畫、關鍵幀以及視圖屬性,Motion Editor 都會為您代勞,再也無需手動創建和編輯複雜的 XML 文件——當然如果您的確需要查看的話,也只需要輕點一下滑鼠即可。我們提供的便捷體驗還不止於此: 如果您已經在使用 ConstraintLayout,可以通過 IDE 輕鬆將其轉換成 MotionLayout。前往開發者官網了解更多。△ 在 Motion Editor 中創建、編輯和預覽動畫想要搞清楚某個屬性的取值從何而來?或者想通過實時的 3D 畫面輕鬆查看視圖的嵌套層級?全新的 Layout Inspector 就可以幫您輕鬆做到。它提供的數據會與正在運行的應用完全同步,更會讓您對各個資源在應用中如何排布和計算一覽無餘,使得 UI 調試變得更加簡單直觀。△ 通過 Layout Inspector 實時調試應用 UI在主菜單中依次選擇 View > Tool Windows > Layout Inspector 來使用 Layout Inspector。如果您的應用是部署到 API 等級 29 或以上的設備,則可以使用到更豐富的功能,比如隨著視圖變化動態更新的布局層次結構、幫助您更好了解資源取值解析的詳細視圖屬性信息、以及可以展示運行時 UI 結構的實時 3D 模型。您可以盡情在應用中導航、觸發動畫和視圖轉場,在這同時依然能精確調試 UI,讓每一個像素都盡如人意。前往《Android Studio 4.0+ 中新的 UI 層次結構調試工具》了解更多。
在為多種硬體配置、屏幕尺寸和解析度開發應用時,您需要確保在 UI 中做出的每一處修改都能在各個屏幕上完美展現。通過 Layout Validation 窗口,您可以同時預覽 UI 在不同屏幕、不同配置中的呈現結果,從而輕鬆讓應用適配好這些設備。只需點擊 IDE 右上角的 Layout Validation 標籤即可打開本窗口。
CPU Profiler 的設計目的是為您呈現應用中線程活動以及跟蹤數據的豐富信息。開發者們在反饋中希望我們讓這個工具的 UI 導航起來更為直觀,以及讓其中的數據更易於解讀,於是我們在這個版本中帶來了新的界面來回應大家的需求。在 Android Studio 4.0 中,CPU 活動記錄從分析器的主時間軸中分離出來,並成組展現,以便於分析。您可以上下移動分組,也可以通過拖放操作重新排列組內的項目,從而打造更定製化的呈現布局。
並排顯示使得分析更加輕鬆,您現在可以在 Thread Activity 時間軸中查看所有線程活動 (包括方法、函數和事件),以及使用新加入的導航快捷鍵在數據間移動——如使用 W/A/S/D 四鍵進行精細的縮放和平移。我們還重新設計了 System Trace 界面,用不同的顏色來區分顯示事件,從而在視覺上更加醒目。在線程排序方面,更繁忙的線程會優先展示,幫助您專注於所選線程中的數據。最後,在我們投入資源改善 CPU Profiler 的質量後,我們發現自 Android Studio 3.6 以來用戶報告的記錄錯誤率有了明顯下降。本次更新還帶來了更多值得嘗試的改進,前往開發者官網了解更多。
編寫代碼縮減規則時的智能編輯器功能
我們在 Android Gradle 插件 3.4.0 中引入了 R8,使得字節碼轉換 (desugaring)、縮減、混淆和 dex 處理能一步到位,這讓構建性能得到了顯著的提升。在創建 R8 的規則文件時,Android Studio 現在提供了智能編輯器功能,包括語法高亮、補全以及錯誤檢查等。編輯器還與您的 Android 項目集成,為所有的類、方法和欄位提供完整的符號補全,並提供快速導航和重構功能。
IntelliJ IDEA 2019.3 平臺更新Android Studio IDE 核心已經整合了 IntelliJ IDEA 2019.3 和 2019.3.3 版本的更新。這些更新主要用於提升 IDE 整體的質量和性能。
https://blog.jetbrains.com/idea/2019/11/intellij-idea-2019-3-better-performance-and-quality/https://blog.jetbrains.com/idea/2020/02/intellij-idea-2019-3-3-is-out/實時模板 (Live Template) 是 IntelliJ 中一個很方便的功能: 您只需輸入簡單的關鍵詞即可將常見的構造插入自己的代碼中。Android Studio 現在為您的 Kotlin 代碼提供了 Android 專用的實時模板。例如,您現在只需輸入 toast 並按下 Tab 鍵即可快速插入一個 Toast 消息框。如需查看可用實時模板的完整列表,請打開 Settings (或 Preferences) 對話框,並依次選擇 Editor > Live Templates。為 C++ 提供 Clangd 支持
對使用 C++ 語言的開發者,我們現在改用 clangd 作為主要的語言分析引擎,用於代碼導航、補全、檢查、以及顯示代碼錯誤和警告。我們現在還將 clang-tidy 綁定在 Android Studio 中。想要配置 clangd 或 Clang-Tidy 的行為邏輯,請打開 IDE 的 Settings (或 Preferences) 對話框,並依次選擇 Languages & Frameworks > C/C++ > Clangd (或 Clang-Tidy),然後設置相應的選項。Android Gradle 插件 4.0.0 通過使用 Java 8 API (無需考慮您應用的最低 API 級別) 為 Android Studio 帶來了 Build Analyzer 功能,並支持在動態功能模塊之間創造功能對功能的依賴性。完整的更新列表請查看 Android Gradle 插件 4.0.0 版本說明。
Build Analyzer
△ 使用 Build Analyzer 發現構建性能瓶頸
Android 開發者會使用多種 Gradle 插件以及自定義構建邏輯來為自己的應用定製構建系統。然而,過時或錯誤配置的任務會延長構建時間,從而拖累開發效率,並導致開發人員心情沮喪、效率下降。Build Analyzer 可以幫助開發者找到構建中的瓶頸,那些顯著拖累構建時間的插件和任務會被高亮顯示,並同時給出緩解速度回退的操作建議。前往開發者官網了解更多。http://developer.android.google.cn/studio/build/build-analyzerJava 8 語言庫在 D8 和 R8 中的字節碼轉換 (desugaring)上一個版本的 Android Gradle 插件通過字節碼轉換操作,在所有 API 等級中支持了大量 Java 8 的語言功能,比如 lambda 表達式和方法引用。在 Android Studio 4.0 中字節碼轉換引擎得到了擴展,現在不管您應用的 minSdkVersion 是多少,都可以使用 Java 8 API (比如 java.util.stream、java.util.function 和 java.time)。前往開發者官網了解更多。http://developer.android.google.cn/studio/write/java8-support△ 功能對功能的依賴性
在使用 Android Gradle 插件 4.0.0 及以上版本時,您可以指定一個動態功能模塊依賴於另一個功能模塊。這種依賴關係使得您的應用可以獲得所需的模塊來解鎖更豐富的功能,從而減少下載需求,也使得應用更易於模塊化。比如,一個 :video 功能可以依賴 :camera 功能。如果用戶需要使用錄製視頻的功能,您的應用會在請求 :video 時自動下載所需的 :camera 模塊。前往開發者官網了解更多。http://developer.android.google.cn/studio/releases#4-0-0-feature-plugin新的構建功能開關選項
Android Gradle 插件內置了對現代代碼庫 (如數據綁定和視圖綁定) 和構建功能 (如自動生成 BuildConfig 類) 的支持。但您可能不是每個項目都需要用到這些庫和功能。在插件的 4.0.0 版本中,您可以單獨關閉某個構建選項 (如下所示),從而優化大型項目的構建性能。關於 DSL 和您可以操作的完整功能列表,請參閱版本說明。
Android Gradle 插件 4.0.0 版本說明http://developer.android.google.cn/studio/releases/gradle-plugin#4-0-0android { buildFeatures { viewBinding = false dataBinding = false ... }}△ 用於啟用/禁用構建功能的 Android Gradle 插件 DSL
Android Studio 4.0 現在已經內置了對 Kotlin DSL 構建腳本文件 (*.kts) 的支持,這意味著 Kotlin 構建腳本有了完整的快速修復功能,並且能在 Project Structure 窗口中進行操作。雖然我們對使用 Kotlin 來配置構建有很高的期待,但接下來的一年中我們依然會繼續完善 Android Gradle 插件的 DSL API,這可能會給 Kotlin 腳本用戶帶來 API 的重大變更 (breaking change)。從長遠來看,這些改善終將使得 DSL 對 Kotlin 腳本用戶來說更簡單易用。依賴元數據
在使用 Android Gradle 插件 4.0.0 及以上版本構建應用時,插件中會包含描述編譯到您的應用中的庫依賴關係的元數據。在上傳應用時,Play Console 會檢查這些元數據,並告知您哪些 SDK 以及應用中的依賴存在問題,在某些時候還會給出如何解決的反饋。這些數據會被壓縮,通過 Google Play 的籤名密鑰進行加密,並存儲在發布的應用的籤名模塊中。如果您不願意分享這些信息,可以在模塊的 build.gradle 文件中加入以下內容:android { dependenciesInfo { includeInApk = false includeInBundle = false }}△ 禁用 APK 或 App Bundle 中的依賴元數據現在讓我們回顧一下 Android Studio 4.0 帶來的改進以及新功能:
設計:
Motion Editor: 輕鬆創建、編輯和預覽 MotionLayout 動畫
Layout Inspector 全新升級: 更加直觀的實時調試體驗
Layout Validation: 在多個屏幕上同時對比 UI
開發與分析:
CPU Profiler 更新: UI 更直觀、更易於瀏覽,數據更易解讀
R8 規則更新: 編寫代碼縮減規則的智能編輯器功能,如語法高亮、補全和錯誤檢查
IntelliJ IDEA 2019.3 平臺更新: 性能和質量得到提升
實時模板更新: 為 Kotlin 提供 Android 專用實時模板
Clangd 支持: 默認啟用 Clangd 和 Clang-Tidy
構建:
Build Analyzer: 了解和找到構建時的性能瓶頸
Java 8 語言支持更新: Java 8 API 現在均可使用,與應用最低 API 等級無關
功能對功能的依賴性: 定義兩個動態功能模塊之間的依賴
buildFeatures DSL: 逐個啟用/禁用構建功能,如數據綁定
Kotlin DSL: 對 Kotlin DSL 腳本文件的基礎支持
請參閱版本說明,了解本次發布的完整信息。
http://developer.android.google.cn/studio/releases#4-0-0請前往下載頁面獲取 Android Studio 4.0。如果您使用的是舊版 Android Studio,可以直接更新到最新版本。
我們一如既往地期待著大家的反饋,如果您喜歡某個功能,或者發現了問題,請隨時告訴我們。 點擊屏末 | 閱讀原文 | 即刻下載 Android Studio 4.0