Google在2018 I/O 大會上,釋出了 Android Studio 3.2 的最新預覽版,並在9月初發布了最新的正式版,在這個版本彙總Google為我們帶來了一系列的新功能,如支援 Android P 開發預覽版、新的 Android App Bundle,以及 Android Jetpack等20多項新功能。
這些功能主義包含開發、構建、測試和優化等4個方面。其中:
開發
- 導航編輯器
- AndroidX 重構
- 樣本資料
- 更新 Material Design
- Android Slices
- 編輯 CMakeList
- 新的 Lint 檢查
- Intellij 平臺更新
構建
- Android App Bundle
- D8 Desugaring
- R8 優化器
測試
- Android 模擬器快照
- Android模擬器中的螢幕記錄
- 虛擬場景 Android 模擬器相機
- ADB 連線助理
###優化
- 效能分析器
- 系統跟蹤
- 分析器會話
- 自動的 CPU 記錄
- JNI 引用跟蹤
每一位開發者都應該使用 Android Studio 3.2 來過渡到使用新應用釋出格式 Android App Bundle。只需極少的工作,就能用 Android Studio 生成一個 App Bundle。將 App Bundle 上傳到 Google Play 後即可向使用者分發更小的優化後應用。早期採用者已證實 App Bundle 比舊的 APK 應用尺寸減少了 11% - 64%。
另一個方面,Android Studio改進了Energy Profiler (電量分析器)。新分析器提供一套工具幫助診斷和改善應用的能耗。更長的裝置電池壽命一直是使用者最關心的一方面,而利用 Android Studio 3.2 中的電量監測器,您可以通過確保應用在正確的時間使用適當的電量,幫助改善裝置電池壽命。
當然,您還應該試試新的 Android 模擬器 Snapshots 快照功能。利用這個功能,您可以將模擬器的當前狀態快速生成一張快照,包括螢幕、應用和設定的當前狀態。您能夠在 2 秒內恢復或引導到您的模擬器快照。對於任何一位尋求超快引導時間或尋求在一個預期的 Android 環境中執行測試的應用開發者而言,Android 模擬器快照都是應用開發的一項革命性功能。
除了上面介紹的這些重磅功能外,Android Studio 3.2 中有 20 項新功能以及許多內部的質量改進。利用 Android Studio 3.2,您還可以通過 Android Slices 針對最新技術進行開發,從 Android Jetpack,到與 Google AI 無縫整合。下面我們來具體看一些這些功能。
開發
Slices 支援
Slices 是一種接入內建 Android AI 功能的新方式,能夠在 Google 搜尋和 Google 智慧助理中呈現應用內容。Android Studio 3.2 有一個內建模板可以幫您用新的 Slice Provider API 來擴充套件您的應用,以及新的 Lint 檢查來確保您在構建 Slice 時遵循最佳實踐。如需使用,在專案資料夾上右鍵,依次選擇 “New→ Other→ Slice Provider”。
- 樣本資料 - 這個特性允許您使用佔位符資料協助設計應用。這將幫助您根據執行時環境資料將佈局視覺化。通過 “佈局編輯器” 中的一個彈出視窗,您可以為各種檢視新增內建樣本資料,如 RecyclerView、ImageView 和 TextView。
-** Material Design 更新** - 當您從 Android Design 支援庫遷移到新的 MaterialComponents 應用主題和庫時,Android Studio 3.2 將為您提供新的和更新的小部件,如:BottomAppBar、按鈕、卡片、文字域、新字型樣式等。
-
CMakeList 編輯支援 - 對於在應用中使用 C/C++ 的開發者,Android Studio 優化了對 Cmake 的支援。在 Android Studio 3.2 裡,程式碼補全和語法高亮現在都對一般 CMakeList 構建指令碼命令有效。
-
更新助理 - Android Studio 3.2 有一個新的助理皮膚,每次更新後會自動開啟來通知您關於 IDE 的最新變化。您也可以通過依次選擇 “Help → What's New in Android Studio” 來開啟這個皮膚。
-
AndroidX 重構支援 - Android Jetpack 的元件之一是引入了 Android 擴充套件庫(AndroidX)替換了 Android 支援庫。如需新增 AndroidX 到一個新專案,需要新增 android.useAndroidX=true 到 gradle.properties 檔案。此外,Android Studio 3.2 有一個新的內建重構動作以幫助您將專案遷移到新的名稱空間和依賴。而且如果您有任何 Maven 依賴尚未遷移到 AndroidX 名稱空間,Android Studio 構建系統將自動轉換這些專案依賴。
-
IntelliJ 平臺更新 - Android Studio 3.2 包含了 IntelliJ 2018.1.6 平臺釋出。這個 IntelliJ 版本大幅改進了資料流分析、除錯、新檢測、行內外部註釋、Git 部分提交等等。
-
Kotlin 更新 - Android Studio 3.2 捆綁了 Kotlin 1.2.61,支援 Kotlin 友好的 Android 9 Pie SDK。
構建
Android App Bundle
Android App Bundle 是新的應用釋出格式,旨在幫您向使用者提供更小的 APK 並降低應用的下載大小。Google Play 名為 Dynamic Delivery “動態交付” 的新應用服務模式會處理您的 App Bundle,針對每個使用者的裝置配置生成並服務優化後的 APK,從而讓使用者只需下載其需要的程式碼和資源就能執行您的應用。利用 Android Studio 3.2 或通過 命令列可以輕鬆將您的程式碼構建為一個 App Bundle,並根據語言、螢幕密度和 ABI 縮減 APK 大小,且應用程式碼不會改變。
-
D8 Desugaring - 某些情況下,新的 Java 語言特性要求新的位元組碼和語言 API。但較舊的 Android 裝置可能不支援這些特性。Desugaring允許您通過在構建過程中將新位元組碼和語言 API 替換為舊版,從而在較舊的裝置上使用這些特性。D8 Desugaring 在 Android Studio 3.2 中預設啟用,現在您可以使用大多數最新的語言變更,同時針對較舊的目標裝置。
-
R8 優化器 - 從 Android Studio 3.2 開始,我們將逐漸使用 R8 替代 ProGuard 來優化和縮減 Java 語言位元組碼。R8 仍處於實驗階段,因此我們尚不推薦您使用 R8 釋出您的應用,但現在很適合向 Android Studio 團隊提交早期反饋,以便我們在 R8 正式取代 ProGuard 前進行調整。
測試
Snapshots
最新版的 Android 模擬器允許您將模擬器的當前狀態建立一份快照,並在 2 秒內引導和切換到任何快照。基於 Android 模擬器 Quickboot 特性構建的 Android 快照穩定版能夠更快儲存和載入,這主要得益於內部的速度改進優化。 在測試和開發應用時,Android 快照允許您預配置一個擁有您想要的預設、應用、資料和設定的 Android 虛擬裝置(AVD)快照,並反覆回到同樣的快照。
-
Microsoft® Hyper-V™ 支援 - 現在您可以在 Windows® 10 啟用了 Hyper-V 的電腦上執行 Android 模擬器。Intel HAXM 仍是預設的 hypervisor,能夠提供最快的 Android 模擬器體驗。但得益於微軟近年的開源貢獻,以及新 Windows Hypervisor Platform (WHPX) API 的加入,Android 模擬器能夠與其他使用 Hyper-V 的應用共存,如:使用新 Hyper-V 支援的本地虛擬機器。
-
AMD® 處理器支援 - 現在 Windows 10 上的 Android 模擬器支援 AMD 處理器。以前 AMD 處理器執行 Windows 時,Android 模擬器只能進行緩慢的軟體模擬,但現在使用 AMD 處理器的開發者擁有了硬體加速效能。
-
Android 模擬器中的錄屏 - 現在您可以使用 Android 模擬器中新增的錄屏功能在任何 Android API Level 錄製螢幕和音訊。過去,受 Android 模擬器支援的限制,物理 Android 裝置上的錄屏只能在 Android 4.4 KitKat (API 19) 及以上進行,且沒有音訊。利用最新的 Android 模擬器 (v28.0.+) 您將不再受此限制。此外,還內建了轉換器,支援輸出為 GIF 和 WebM。您可以通過 Android 模擬器擴充套件控制皮膚、命令列和從 Android Studio 中觸發新的錄屏特性。
-
Android 模擬器的虛擬場景攝像頭 - Android 模擬器的新虛擬場景攝像頭,能夠幫您為 Google 構建虛擬現實體驗的平臺 ARCore 進行開發。模擬器經校準,可使用 ARCore API 用於 AR 應用,還允許您注入虛擬場景點陣圖影象。該虛擬場景攝像頭還可以用作相容 HAL3 的攝像頭。
-
ADB 連線助手 - Android Studio 3.2 有一個新的助手系統,能幫助解決 Android ADB 裝置連線問題。ADB 連線助手會引導您進行一般的解決步驟,以將您的 Android 裝置連線到您的開發機。您可以通過 “執行” 對話方塊或依次選擇 “Tools → Connect Assistant” 來觸發助手。
優化
Energy
許多手機使用者都十分關心電池壽命,而您的應用對電池壽命的影響可能超出您的預期。Android Studio 效能監測器套件中的電量監測器能夠幫您瞭解您的應用對 Android 裝置電量的影響。現在您能夠以視覺化的方式估計系統元件的用電情況,還能檢查可能耗盡電池的後臺事件。要使用電量監測器,請確保您已經連線到一部執行 Android 8.0 Oreo (API 26)或更高階系統的 Android 裝置或模擬器。
-
System Trace 系統跟蹤 - CPU 監測器中的新 “系統跟蹤” 特性允許您檢視您的應用與系統資源互動的詳情。檢視您的執行緒狀態的精確時序和持續時間,以視覺化方式檢視您的 CPU 各核心的瓶頸,以及新增定製跟蹤事件以供分析。要使用系統跟蹤,開始監測您的應用,點選進入 CPU 監測器,然後選擇 “系統跟蹤” 記錄配置。
-
**Profiler Sessions **- 現在我們能夠自動將監測器資料儲存為 “會話” 以便之後開啟 Android Studio 時再次訪問和檢視。我們還新增了匯入和匯出 CPU 記錄和堆轉儲的功能,以便之後用其他工具分析或檢視。
-
自動 CPU 記錄 - 現在您可以使用除錯 API 自動記錄 CPU 活動。在您將您的應用部署到一部裝置之後,當您的應用呼叫 startMethodTracing(String tracePath) 時監測器會自動開始記錄 CPU 活動,而當您的應用呼叫 stopMethodTracing() 時會停止記錄。類似地,現在您還可以通過在您的執行配置裡啟用 “啟動時開始記錄方法跟蹤” 選項,在應用啟動時自動開始記錄 CPU 活動。
-
JNI 引用追蹤 - 如果您的 Android 應用中有 C/C++ 程式碼,現在 Android Studio 3.2 允許您在記憶體監測器中檢視您的 JNI 程式碼的記憶體分配。只要您將您的應用部署到一部執行 Android 8.0 Oreo(API 26)或更高階系統的裝置上,您就可以從您的 JNI 引用中下鑽查詢分配呼叫堆疊。要使用該功能,啟動一個記憶體監測器會話,並從 Live Allocation 下拉選單中選擇 JNI 堆。