Android Studio 4.0重磅發佈:全新的 Motion 編輯器及衆多更新都在這裏!

做者 | Adarsh Fernando
譯者 | 王強 
策劃 | 李俊辰
在當前這個充滿不肯定性的時期,來自世界各地的無數開發人員依舊在千方百計繼續作本身最擅長的工做——爲 Android 建立出色的應用,這讓咱們感動不已。不管你是已經復工回到辦公室,仍是依舊在家遠程辦公,都須要駕輕就熟的工具。爲此咱們發佈了 Android Studio 4.0,爲你們帶來全新的工具和現有工具的諸多改進,幫助開發人員更智能地編程,更快地構建,並設計出用戶信賴的應用。

Android Studio 4.0 的亮點包括:新的 Motion Editor(動做編輯器),讓你的應用栩栩如生;Build Analyzer(構建分析器),用來探索構建速度降低的緣由;以及一衆 Java 8 語言 API,不管你的應用的最小 API 級別是多少都能用。根據用戶反饋,咱們還大幅改動了 CPU Profiler(CPU 分析器)的用戶界面,以提供更直觀的工做流程和更易用的線程活動並排分析。改進的 Layout Inspector(佈局查看器)如今能夠提供應用 UI 的實時數據,所以你能夠輕鬆準確地調試設備上顯示的內容。html

每一個新版本的發佈都要感謝測試用戶的反饋信息。若是你已準備就緒,如今就能夠訪問官方網站下載 Android Studio 4.0:java

http://d.android.com/studioandroid

https://youtu.be/f1fHPqAYj5Iweb

    設計    
Motion Editor

MotionLayout API 擴展了 ConstraintLayout 的豐富功能,可幫助 Android 開發人員在應用中管理複雜的運動和小部件動畫。在 Android Studio 4.0 中,新的 Motion Editor 讓這個 API 用起來更方便。它提供了用於建立、編輯和預覽 MotionLayout 動畫的強大界面。你用不着再建立和修改複雜的 XML 文件,Motion Editor 會爲你生成它們,並支持約束集合、過渡、關鍵幀和視圖屬性的編輯。若是你想查看編輯器建立的代碼,只需點一下便可。對於正在使用 ConstraintLayout 的開發人員來講,這個 IDE 能夠輕鬆將其轉換爲 MotionLayout。更多信息參考:面試

http://d.android.com/studio/write/motion-editor編程

在 Motion 編輯器中建立、編輯和預覽動畫android-studio

升級的 Layout Inspector

想要調查特定屬性的值的源頭?或者想經過嵌套視圖的實時 3D 表示,更輕鬆地檢查視圖層次?藉助新的 Layout Inspector,你能夠得到正在運行的應用中的最新數據,並得到關於資源解析的深度信息,從而更直觀地調試 UI。性能優化

使用 Live Layout Inspector 實時調試應用 UI微信

從主菜單選擇 View > Tool Windows > Layout Inspector 就能夠啓用實時 Layout Inspector。部署到運行 API 29 或更高版本的設備還能得到其餘特性,例如動態佈局層次結構(隨視圖更改而更新)、詳細的視圖屬性(還能夠幫助你肯定資源值是如何解析的)以及正在運行的應用 UI 的 3D 模型。它能夠在當前運行應用上的視圖之間導航、動畫化和過渡,同時還能保持像素級調試 UI 的能力。更多信息參考:app

https://medium.com/androiddevelopers/layout-inspector-1f8d446d048

Layout Validation

使用 Layout Validation 在多個屏幕上對比 UI

當你爲多種屏幕規格、屏幕尺寸和分辨率開發應用時,須要驗證對 UI 所作的更改在所支持的每一個屏幕上都能正常顯示。使用 Layout Validation(佈局驗證)窗口,你能夠同時在多個不一樣的屏幕和配置上預覽佈局,輕鬆確保你的應用兼容各類屏幕尺寸。單擊 IDE 右上角的 Layout Validation 選項卡便可啓用。

開發和 Profile

CPU Profiler UI 升級

改進的 CPU Profiler UI

CPU Profiler 能夠提供關於應用的線程活動和跟蹤記錄的大量信息。在 Android Studio 4.0 中,CPU 記錄如今與 Profiler 主時間軸分開顯示,並按組分類以簡化分析過程。你能夠上下移動組,或者在組中拖放項目以定製界面。

線程活動的並排分析更輕鬆

爲了更輕鬆地進行並排分析,你如今能夠在 Thread Activity(線程活動)時間軸中查看全部線程活動(包括方法、函數和事件),並使用新的導航快捷方式輕鬆移動數據(例如使用 W,A,S 和 D 鍵精確縮放和平移)。咱們還從新設計了 System Trace(系統跟蹤)UI,爲事件添加了各自的顏色來方便區分,對線程進行排序,把較忙的線程放在前面,並且如今你能夠只查看所選線程的數據。最後,咱們改進了 CPU Profiler 的質量,顯著下降了錄製錯誤率。更多信息參考:

http://d.android.com/studio/releases#cpu-profiler-upgrades

用於縮減代碼的編輯器新功能

編寫 R8 規則時的智能編輯器功能

R8 是在 Android Gradle 插件 3.4.0 中引入的,可將 desugaring、縮減、混淆、優化和 dexing 合併爲一個步驟,從而顯著提升構建性能。在爲 R8 建立規則文件時,Android Studio 如今提供了智能編輯器功能,例如語法高亮顯示、自動完成和錯誤檢查。該編輯器還與你的 Android 項目集成,爲全部類、方法和字段提供完整的符號補全,還有快速導航和重構。

IntelliJ IDEA 2019.3 平臺更新

核心 Android Studio IDE 已更新,加入了 IntelliJ IDEA 2019.3 和 2019.3.3 版本以來的改進。這些改進主要是整個 IDE 的質量和性能改進。

Kotlin Android 實時模板

實時模板(Live Templates)是 IntelliJ 的一項便捷功能,容許你輸入簡單的關鍵字將常見的構造插入代碼中。Android Studio 如今爲你的 Kotlin 代碼提供了 Android 專屬的實時模板。例如,只需鍵入 Toast,而後按 Tab 鍵便可快速插入 Toast 的樣板代碼。有關可用實時模板的完整列表,請轉至 Settings(或 Preferences)中的 Editor > Live Templates

Clang 支持 C++

對於編寫 C++ 的開發人員,咱們已轉向 clangd(https://clangd.llvm.org/)做爲主要的語言分析引擎,用於代碼導航、完成、檢查以及顯示代碼錯誤和警告。如今 Android Studio 還打包了 clang-tidy。要配置 Clangd 或 Clang-Tidy 行爲,請轉到 Settings(或 Preferences),導航到 Languages & Frameworks > C/C++ > Clangd/Clang-Tidy,而後配置選項。

    構建    

Android Gradle 插件 4.0.0 使用 Java8 語言 API(不管你的應用的最低 API 級別如何)對 Android Studio 的 Bulid Analyzer 提供支持,並在動態功能(Dynamic Feature)模塊之間建立了功能對功能的依賴。有關完整的更新列表,請閱讀 Android Gradle 插件 4.0.0 發行說明:

http://d.android.com/studio/releases/gradle-plugin#4-0-0

Build Analyzer

使用 Build Analyzer 解決構建性能中的瓶頸

Android 開發人員依靠各類 Gradle 插件和自定義構建邏輯來爲應用量身定製構建系統。可是,過期或錯誤配置的任務可能會致使更長的構建時間,不只使人沮喪,還會拖累生產率。Build Analyzer 能夠高亮顯示最影響構建時間的插件和任務,並提供縮短期的步驟建議,從而幫助你瞭解和解決構建中的瓶頸。更多信息參考:

http://d.android.com/studio/build/build-analyzer

Java 8 語言庫在 D8 和 R8 中 desugaring

早期版本的 Android Gradle 插件經過稱爲 desugaring 的過程,在全部 API 級別上支持各類 Java8 語言功能,例如 lambda 表達式和方法引用。在 Android Studio 4.0 中,不管你的應用的 minSdkVersion 如何,均可以使用 desugaring 引擎來支持 Java 語言 API。這意味着你如今可使用標準語言 API 了,之前它們只在最新的 Android 版本中可用(例如 java.util.stream,java.util.function 和 java.time)。更多信息參考:

http://d.android.com/studio/write/java8-support

功能對功能依賴

功能上的依存關係

使用 Android Gradle 插件 4.0.0 及更高版本時,你如今能夠指定一個動態功能模塊依賴於另外一個功能模塊。這種關係可確保你的應用具備所需的模塊來提供新的功能,從而減小請求並更好地模塊化。例如,:video 功能能夠依賴:camera 功能。若是用戶想使用錄製視頻的功能,則你的應用在請求:video 時會自動下載所需的:camera 模塊。更多信息參考:

http://d.android.com/studio/releases#4-0-0-feature-plugin

啓用或禁用構建功能的新選項

Android Gradle 插件具備對不少現代庫(例如數據綁定和視圖綁定)及構建功能(例如自動生成的 BuildConfig 類)的內置支持。可是,你可能不是每一個項目都須要這些庫和功能。在該插件的 4.0.0 版本中,你如今能夠單獨禁用構建功能,以下所示,這能夠優化大型項目的構建性能。有關 DSL 和你能夠控制的功能的完整列表,請參見發行說明:

http://d.android.com/studio/releases/gradle-plugin#4-0-0
android {
    // The default value for each feature is shown below.
    // You can change the value to override the default behavior.
    buildFeatures {
        // Determines whether to support View Binding.
        // Note that the viewBinding.enabled property is now deprecated.
        viewBinding = false
        // Determines whether to support Data Binding.
        // Note that the dataBinding.enabled property is now deprecated.
        dataBinding = false
        ...
    }
}

Android Gradle 插件 DSL,用於啓用或禁用構建功能

對 Kotlin DSL 腳本文件的基本支持

Android Studio 4.0 如今已經內置了對 Kotlin DSL 構建腳本文件(*.kts)的支持,這意味着 Kotlin 構建腳本提供了一套完整的快速修復程序,並由 Project Structure(項目結構)對話框提供支持。咱們將在明年繼續完善 Android Gradle 插件的 DSL API,這可能會致使 Kotlin 腳本用戶的 API 更改中斷。從長遠來看,這些修補程序將爲 Kotlin 腳本用戶提供更加熟悉,易於使用的 DSL。

依賴項元數據

使用 Android Gradle 插件 4.0.0 及更高版本構建應用時,插件會包含描述已編譯到你應用中的庫依賴項的元數據。上傳應用時,Play 控制檯會檢查這些元數據,以提供有關應用使用的 SDK 和依賴項已知問題的警報,並在某些狀況下提供可解決這些問題的可行反饋。

數據通過壓縮,經過 Google Play 簽名密鑰加密,並存儲在發佈應用的簽名欄中。若是你不想共享此信息,則能夠在模塊的 build.gradle 文件中添加如下內容來輕鬆取消:
android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

禁用 APK 和 / 或應用包的依賴項元數據回顧一下,Android Studio 4.0 包括如下新的功能與改進:

設計
  • Motion Editor:用於建立、編輯和預覽 MotionLayout 動畫的簡單界面

  • Layout Inspector 升級:實時,更直觀的調試體驗

  • Layout Validation:跨多個屏幕尺寸比較你的 UI

開發和 Profile
  • CPU Profiler 更新:使 UI 導航起來更加直觀,而且讓數據更易於理解

  • R8 規則更新:用於代碼縮減規則的智能編輯器功能,例如語法高亮顯示、完成和錯誤檢查

  • IntelliJ IDEA 2019.3 平臺更新,以提升性能和質量

  • 實時模板更新:Kotlin 代碼的 Android 專用實時模板

  • Clangd 支持:默認啓用 Clangd 和 Clang-Tidy

構建
  • Bulid Analyzer:瞭解並解決構建中的瓶頸

  • Java 8 語言支持更新:不管你的應用的最低 API 級別如何,都可使用這些 API

  • 功能對功能的依賴:定義動態功能模塊之間的依賴關係

  • buildFeatures DSL:啓用或禁用單獨的構建功能,例如數據綁定

  • Kotlin DSL:對 Kotlin DSL 腳本文件的基本支持

  • 有關改動的完整列表,請閱讀官方發行說明

    • http://d.android.com/studio/releases#4-0-0

開始使用

若是你使用的是早期版本的 Android Studio,只需將其更新爲最新版本便可。或者從這個頁面下載 Android Studio 4.0。

http://d.android.com/studio/

與往常同樣,咱們感謝你們的任何反饋。若是發現錯誤或問題,請提交 issue。

原文連接

https://android-developers.googleblog.com/2020/05/android-studio-4.html

---END---



推薦閱讀:
TextView性能瓶頸,渲染優化,以及StaticLayout的一些用處
Java 泛型背後的原理是什麼?
Android Studio 3.6 Text/Design 消失不見問題
老闆:再用 float 存儲金額,損失從工資里扣!
MySQL性能優化實踐(很全面,值得收藏)
一招搞定測試妹紙,如何更優雅地切換測試、正式環境?
如何更優雅的使用 Java 8 函數式編程?
Android 摺疊屏官方適配方案-Jetpack WindowManager,專爲摺疊屏而生!
面試官都喜歡問的HashMap!
Jetpack Compose,不止是一個UI框架!
牛逼!用Java寫一個植物大戰殭屍簡易版!


更文不易,點個「在看」支持一下👇

本文分享自微信公衆號 - 技術最TOP(Tech-Android)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索