動做編輯器實時佈局,佈局實時驗證,Kotlin 實時模板,構建數據實時分析,AndroidStudio 4值得更新

Android-Studio

2020年5月28日Android Studio 發佈了4.0,其中的一些亮點包括:java

  • 新的動做編輯器,可真正實現拖拽式編程;
  • 構建分析器,可分析出是什麼緣由致使了應用構建變得緩慢;
  • Java 8語言的API,不管APP的最低API級別是什麼,均可以使用Java 8API

此外,還對 CPU Profiler 用戶界面進行了修改,以提供更直觀的工做流程,更容易對線程活動進行並排分析。而改進後的佈局檢查器能得到APP的UI的實時數據,能夠更加輕鬆地調試設備上顯示的確切內容。android

外觀設計

動做編輯器(Motion Editor)

MotionLayout API 擴展了 ConstraintLayout 的豐富功能,可以幫助 Android 開發人員在APP開發中管理複雜的運動和小部件動畫。編程

Android Studio 4.0中,新的Motion EditorMotionLayout API的使用變得更加簡單,它提供了一個用於建立、編輯和預覽MotionLayout動畫的強大界面;當修改佈局的時候,再也不須要手動建立和修改複雜的XML文件,Motion Editor可以自動完成相應文件的修改,並支持編輯約束集、轉場、關鍵幀和視圖屬性。app

對於已經在使用 ConstraintLayout 的開發人員,IDE也能夠輕鬆地將其轉換爲 MotionLayout編輯器

在Motion Editor中建立、編輯和預覽動畫

升級佈局檢查器(Layout Inspector)

使用升級後的Layout Inspector,能夠實時得到正在運行的應用程序的最新狀態的數據,並提供解決資源加載的建議,來更直觀地調試UI,直觀的顯示某一特定屬性的值來自何處,亦或者查看嵌套視圖的實時3D顯示。ide

佈局檢查器

能夠經過從主菜單中選擇 View > Tool Windows > Layout Inspector 來使用佈局檢查器。若是是在能運行API 29或更高等級的設備上,還能夠訪問其餘功能,例如:模塊化

  1. 動態佈局層次結構可以隨着視圖的變化而實時更新;
  2. 資源可以有更詳細的屬性值;
  3. 運行中的應用程序的用戶界面的實時3D模型;

所以,能夠在運行中的應用程序上完成導航、動畫化和視圖之間的轉換,而且還能夠隨時調試。函數

佈局驗證(Layout Validation)

當要開發適配多種屏幕尺寸和分辨率的APP時,須要同時驗證對UI所作的更改可以在所支持的每一個屏幕尺寸上是否獲得很好的適配;如今,使用「Layout Validation」窗口,能夠同時在不一樣的屏幕和分辨率上預覽佈局,所以能夠確保APP在不一樣設備上的外觀都能正常顯示。佈局

使用也很簡單,只要打開IDE右上角的「Layout Validation」選項卡便可。性能

將多個屏幕上的UI經過佈局驗證進行比較

開發配置

升級CPU Profiler 界面

CPU 分析器提供了運行中的APP的線程活動和每條記錄的跟蹤信息;在Android Studio 4.0中,CPU記錄與主分析器的時間線分開了,並以組爲單位,以便於分析;

同時,能夠向上和向下移動組,或者在組內拖放單個項目進行自定義分析。

升級後的CPU Profiler 界面

爲了便於並排分析,如今能夠在線程活動時間軸中查看全部線程活動(包括方法、函數和事件),並嘗試使用新的導航快捷鍵來輕鬆地移動數據,例如使用W、A、S和D鍵進行精細化縮放和平移。

  • 從新設計了系統追蹤界面,使得事件以不一樣的顏色顯示,以便於得到更好的視覺區分;
  • 優先顯示了運行中的線程,而且能夠只顯示選擇了的線程的數據。

更容易對線程活動進行並行分析

編輯器更加智能的代碼提示

R8是在Android Gradle plugin 3.4.0中引入的,它將 desugaring, shrinking, obfuscating, optimizingdexing這些功能結合在一塊兒,構建性能獲得顯著提升。

在爲R8建立規則時,Android Studio提供了更加智能的編輯器特性,例如語法突出顯示、錯誤檢查等功能。

該編輯器特性還能夠和Android項目集成,爲全部類、方法和字段提供完整的符號補全,幷包括快速導航和重構。

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

Kotlin Android 實時模板

實時模板是一個IntelliJ編輯器提供的功能,輸入簡單的關鍵字將常見的構造插入到代碼中;Android Studio 4.0Kotlin代碼提供了Android特有的實時模板。

例如,只需鍵入Toast,而後按Tab鍵就能夠快速插入Toast的模板代碼。完整的實時模板列表能夠在Editor > Live Templates 完成設置。

Clangd支持C++

Android Studio 4.0 改用clangd做爲主要的C++語言分析引擎,用於代碼導航、完成、檢查、顯示代碼錯誤和警告等,這點須要C++開發者注意。

此外,還將clang-tidy集成到了Android Studio 中,要配置clangdClang-Tidy,可進入IDE設置(或首選項)對話框,經過 Languages & Frameworks > C/C++ > Clangd or Clang-Tidy 完成配置。

應用打包

Android Gradle 插件4.0.0.0 包含了對Android StudioBuild Analyzer的支持,經過使用Java 8語言的API(不管你的應用程序的最低API級別如何),以及在動態特性模塊之間建立功能依賴。

構建分析(Build Analyzer)

因爲Android 開發人員依靠各類Gradle插件和自定義構建邏輯來構建APP,不當的配置或錯誤的配置會致使構建時間變長,而Build Analyzer能夠分析整個構建過程,高亮顯示整個構建中的插件和任務,並提出對應的解決方案。

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

Java 8 在D8和R8中再也不適用

以前的Android Gradle插件版本經過一個名爲desugaring的過程,支持全部API級別的各類Java 8語言特性,例如lambda表達式和方法引用。

Android Studio 4.0中,desugaring引擎已經擴展到支持Java語言的API,所以,不管你的APPminSdk版本是多少,都能支持Java語言的API

這意味着即使某些API只在最近的Android版本中才有(如java.util.streamjava.util.functionjava.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,用於啓用或禁用構建功能

對Kotlin 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支持:ClangdClang-Tidy默認開啓,對C++開發者來講,是個福音;

應用打包

  • 構建分析器:分析應用打包的全過程,並對其中的一些問題提供解決建議方案;
  • Java 8 支持更新:不管APP的最低API級別如何,均可以使用Java 8API
  • 功能上的依賴關係:定義動態特徵模塊之間的依賴關係,自動下載依賴,APP模塊化變得更加容易;
  • buildFeatures DSL:啓用或禁用離散構建功能,如數據綁定等,見沒必要要的過程;
  • Kotlin DSL:對Kotlin DSL腳本文件的基本支持;

完結,老夫雖不正經,但老夫一身的才華!關注我,得到更多科技知識。

相關文章
相關標籤/搜索