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

Android-Studio

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

  • 新的動作編輯器,可真正實現拖拽式編程;
  • 構建分析器,可分析出是什麼原因導致了應用構建變得緩慢;
  • Java 8語言的API,無論APP的最低API級別是什麼,都可以使用Java 8API

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

外觀設計


動作編輯器(Motion Editor)

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

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

對於已經在使用 ConstraintLayout 的開發人員,IDE也可以輕鬆地將其轉換爲 MotionLayout

 

升級佈局檢查器(Layout Inspector)

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

佈局檢查器

可以通過從主菜單中選擇 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中引入的,它將 desugaringshrinkingobfuscatingoptimizing 和dexing這些功能結合在一起,構建性能得到顯著提高。

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

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

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

Kotlin Android 實時模板

實時模板是一個IntelliJ編輯器提供的功能,輸入簡單的關鍵字將常見的構造插入到代碼中;Android Studio 4.0 爲Kotlin代碼提供了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 8 的API
  • 功能上的依賴關係:定義動態特徵模塊之間的依賴關係,自動下載依賴,APP模塊化變得更加容易;
  • buildFeatures DSL:啓用或禁用離散構建功能,如數據綁定等,見不必要的過程;
  • Kotlin DSL:對Kotlin DSL腳本文件的基本支持;

完結,老夫雖不正經,但老夫一身的才華!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章