2020年5月28日
,Android Studio
發佈了4.0
,其中的一些亮點包括:java
Java 8
語言的API
,不管APP
的最低API
級別是什麼,均可以使用Java 8
的API
;此外,還對 CPU Profiler
用戶界面進行了修改,以提供更直觀的工做流程,更容易對線程活動進行並排分析。而改進後的佈局檢查器能得到APP
的UI的實時數據,能夠更加輕鬆地調試設備上顯示的確切內容。android
MotionLayout API
擴展了 ConstraintLayout
的豐富功能,可以幫助 Android
開發人員在APP
開發中管理複雜的運動和小部件動畫。編程
在Android Studio 4.0
中,新的Motion Editor
讓MotionLayout API
的使用變得更加簡單,它提供了一個用於建立、編輯和預覽MotionLayout
動畫的強大界面;當修改佈局的時候,再也不須要手動建立和修改複雜的XML
文件,Motion Editor
可以自動完成相應文件的修改,並支持編輯約束集、轉場、關鍵幀和視圖屬性。app
對於已經在使用 ConstraintLayout
的開發人員,IDE
也能夠輕鬆地將其轉換爲 MotionLayout
。編輯器
使用升級後的Layout Inspector,能夠實時得到正在運行的應用程序的最新狀態的數據,並提供解決資源加載的建議,來更直觀地調試UI,直觀的顯示某一特定屬性的值來自何處,亦或者查看嵌套視圖的實時3D顯示。ide
能夠經過從主菜單中選擇 View > Tool Windows > Layout Inspector
來使用佈局檢查器。若是是在能運行API 29
或更高等級的設備上,還能夠訪問其餘功能,例如:模塊化
3D
模型;所以,能夠在運行中的應用程序上完成導航、動畫化和視圖之間的轉換,而且還能夠隨時調試。函數
當要開發適配多種屏幕尺寸和分辨率的APP
時,須要同時驗證對UI
所作的更改可以在所支持的每一個屏幕尺寸上是否獲得很好的適配;如今,使用「Layout Validation
」窗口,能夠同時在不一樣的屏幕和分辨率上預覽佈局,所以能夠確保APP
在不一樣設備上的外觀都能正常顯示。佈局
使用也很簡單,只要打開IDE
右上角的「Layout Validation
」選項卡便可。性能
CPU 分析器
提供了運行中的APP
的線程活動和每條記錄的跟蹤信息;在Android Studio 4.0
中,CPU
記錄與主分析器的時間線分開了,並以組爲單位,以便於分析;
同時,能夠向上和向下移動組,或者在組內拖放單個項目進行自定義分析。
爲了便於並排分析,如今能夠在線程活動時間軸中查看全部線程活動(包括方法、函數和事件),並嘗試使用新的導航快捷鍵來輕鬆地移動數據,例如使用W、A、S和D
鍵進行精細化縮放和平移。
R8
是在Android Gradle plugin 3.4.0
中引入的,它將 desugaring
, shrinking
, obfuscating
, optimizing
和dexing
這些功能結合在一塊兒,構建性能獲得顯著提升。
在爲R8
建立規則時,Android Studio
提供了更加智能的編輯器特性,例如語法突出顯示、錯誤檢查等功能。
該編輯器特性還能夠和Android
項目集成,爲全部類、方法和字段提供完整的符號補全,幷包括快速導航和重構。
實時模板是一個IntelliJ
編輯器提供的功能,輸入簡單的關鍵字將常見的構造插入到代碼中;Android Studio 4.0
爲Kotlin
代碼提供了Android
特有的實時模板。
例如,只需鍵入Toast
,而後按Tab
鍵就能夠快速插入Toast
的模板代碼。完整的實時模板列表能夠在Editor > Live Templates
完成設置。
Android Studio 4.0
改用clangd
做爲主要的C++
語言分析引擎,用於代碼導航、完成、檢查、顯示代碼錯誤和警告等,這點須要C++
開發者注意。
此外,還將clang-tidy
集成到了Android Studio
中,要配置clangd
或Clang-Tidy
,可進入IDE
設置(或首選項)對話框,經過 Languages & Frameworks > C/C++ > Clangd or Clang-Tidy
完成配置。
Android Gradle
插件4.0.0.0
包含了對Android Studio
的Build Analyzer
的支持,經過使用Java 8
語言的API
(不管你的應用程序的最低API
級別如何),以及在動態特性模塊之間建立功能依賴。
因爲Android
開發人員依靠各類Gradle
插件和自定義構建邏輯來構建APP
,不當的配置或錯誤的配置會致使構建時間變長,而Build Analyzer
能夠分析整個構建過程,高亮顯示整個構建中的插件和任務,並提出對應的解決方案。
以前的Android Gradle
插件版本經過一個名爲desugaring
的過程,支持全部API
級別的各類Java 8
語言特性,例如lambda
表達式和方法引用。
在Android Studio 4.0
中,desugaring
引擎已經擴展到支持Java
語言的API
,所以,不管你的APP
的minSdk
版本是多少,都能支持Java
語言的API
。
這意味着即使某些API
只在最近的Android
版本中才有(如java.util.stream
、java.util.function
和java.time
),你的APP
都能使用。
當使用Android Gradle plugin 4.0.0
或者更高版本時,能夠指定動態功能模塊依賴於另外一個功能模塊;這種依賴關係的定義能夠確保你的APP
擁有所需的模塊來解鎖額外的功能,從而減小請求,並使APP
更容易模塊化。
例如如今:視頻功能依賴於:相機功能;若是APP
請求:視頻時,Android Studio
會自動下載所需的:相機模塊。
Android Gradle
插件內置了對最新庫的支持,如數據綁定和視圖綁定,以及構建功能,如自動生成的BuildConfig
類。
然而,可並非每一個項目都須要這些庫和功能。在Gradle
插件的4.0.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,用於啓用或禁用構建功能
Android Studio 4.0
內置了對Kotlin DSL
構建腳本文件(*.kts
)的支持,這意味着Kotlin
構建腳本提供的全套的快速修復功能都被項目所支持。
在將來一年內,Android
官方也承諾繼續完善Android Gradle
插件的DSL API
,從而帶來Kotlin
腳本API
的突破性的變化。
當使用 Android Gradle
插件 4.0.0.0
及以上版本的 Android Gradle
插件構建你的應用時,該插件包括了描述應用中的庫依賴關係的元數據。當上傳你的APP
時,Play Console
會檢查這些元數據,以便對你的應用所使用的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、app bundle或二者的依賴元數據
這次的Android Studio 4.0
新版本,主要功能就是這些了,功能雖然很少,但很實用,特別是佈局驗證和動做編輯器功能。最後,來作個小小的總結,梳理下這次更新帶來的主要功能:
Motion Editor
:雖然是一個簡單的界面,但卻使得MotionLayout
的建立、預覽變得更加容易。APP
調試變得更加容易;R8
規則更新:帶來了更加智能的代碼提示,提高了總體的編碼體驗; IntelliJ IDEA 2019.3
平臺更新,性能和質量獲得提高;Kotlin
代碼定製的Android
專用實時模板;Clangd
支持:Clangd
和Clang-Tidy
默認開啓,對C++
開發者來講,是個福音;Java 8
支持更新:不管APP
的最低API
級別如何,均可以使用Java 8
的API
;APP
模塊化變得更加容易; buildFeatures DSL
:啓用或禁用離散構建功能,如數據綁定等,見沒必要要的過程;Kotlin DSL
:對Kotlin DSL
腳本文件的基本支持;完結,老夫雖不正經,但老夫一身的才華!關注我,得到更多科技知識。