首頁>技術>

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

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

此外,還對 CPU Profiler 使用者介面進行了修改,以提供更直觀的工作流程,更容易對執行緒活動進行並排分析。而改進後的佈局檢查器能獲得APP的UI的實時資料,可以更加輕鬆地除錯裝置上顯示的確切內容。

外觀設計

動作編輯器(Motion Editor)

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

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

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

升級佈局檢查器(Layout Inspector)

使用升級後的Layout Inspector,可以實時獲得正在執行的應用程式的最新狀態的資料,並提供解決資源載入的建議,來更直觀地除錯UI,直觀的顯示某一特定屬性的值來自何處,亦或者檢視巢狀檢視的實時3D顯示。

佈局檢查器

可以通過從主選單中選擇 View > Tool Windows > Layout Inspector 來使用佈局檢查器。如果是在能執行API 29或更高等級的裝置上,還可以訪問其他功能,例如:

動態佈局層次結構能夠隨著檢視的變化而實時更新;資源能夠有更詳細的屬性值;執行中的應用程式的使用者介面的實時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, optimizing 和dexing這些功能結合在一起,構建效能得到顯著提高。

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

該編輯器特性還可以和Android專案整合,為所有類、方法和欄位提供完整的符號補全,幷包括快速導航和重構。

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 中,要配置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級別如何),以及在動態特性模組之間建立功能依賴。

構建分析(Build Analyzer)

由於Android 開發人員依靠各種Gradle外掛和自定義構建邏輯來構建APP,不當的配置或錯誤的配置會導致構建時間變長,而Build Analyzer可以分析整個構建過程,高亮顯示整個構建中的外掛和任務,並提出對應的解決方案。

Java 8 在D8和R8中不再適用

之前的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,用於啟用或禁用構建功能
對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支援:Clangd和Clang-Tidy預設開啟,對C++開發者來說,是個福音;

應用打包

構建分析器:分析應用打包的全過程,並對其中的一些問題提供解決建議方案;Java 8 支援更新:無論APP的最低API級別如何,都可以使用Java 8 的API;功能上的依賴關係:定義動態特徵模組之間的依賴關係,自動下載依賴,APP模組化變得更加容易;buildFeatures DSL:啟用或禁用離散構建功能,如資料繫結等,見不必要的過程;Kotlin DSL:對Kotlin DSL指令碼檔案的基本支援;

最新評論
  • 1 #

    AndroidStudio 4.0釋出啦,構建資料實時分析,動作編輯器是亮點

  • 2 #

    這個佈局難用的一比 部分場景下用起來不是一般的難受

  • 3 #

    更新了,我的就打不開了

  • 4 #

    我安裝的執行太慢了

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 響應式程式設計實戰——RxJS 手動停止事件流的正確方式