Android Studio3.3你瞭解多少?

朝陽楊大爺發表於2019-03-27

轉載請註明出處:www.jianshu.com/p/d5e7f262a…

Android Studio更新

Android Studio是我們Android開發的必備工具,所謂工欲善其事,必先利其器,所以我們自然要熟悉我們的開發工具。當前最新版本是19年更新的3.3版本,在工具欄Help > Check for updates更新之後我們一起來看看3.3更新了那些功能,可以提高我們的開發效率,在一月推出3.3版本之後,又分別在2月推出3.3.1、3月推出3.3.2兩個小版本。 更新之後我們會發現,當前版本相比於新的特性的更新,更加註重基礎質量的提升。在官網可以看到,3.3這個版本解決了200多個使用者提交的bug,同時對於導航編輯器的官方支援等功能。下面我們會通過今天的文章,對於3.3這個版本進行深度瞭解。

更新概述

這次更新主要從以下四個方面

開發

  • 導航編輯器
  • IntelliJ 2018.2.2 平臺更新
  • Kotlin 1.3.11 更新
  • Clang-Tidy 對 C++ 的支援
  • 新專案嚮導更新
  • 刪除未使用的 IDE 目錄
構建
  • 強化註釋處理器對 Java 增量編譯的支援
  • 延遲任務配置
  • 單變體專案同步
  • Android App Bundles 現已支援即時應用
測試
  • 啟動多個模擬器 AVD 例項
  • Android 9 Pie - 模擬器系統映象
  • 加快模擬器快照的儲存速度
優化
  • 分析器效能優化
  • 記憶體分析器: 分配跟蹤選項
  • 記憶體分析器: 分配跟蹤選項
  • CPU 分析器: 幀渲染資料

詳細介紹

Navigation Editor(導航編輯器)

這個主要是一款視覺化的編輯器,主要用於構建支援新的Jetpack導航元件的XML資源來使用的。開發者可以通過Navigation Editor和導航元件在應用螢幕和內容區域之間構建可預測的互動。結構如下圖

Android Studio3.3你瞭解多少?

(之後,我會完善Navigation Editor詳細介紹的文章,敬請關注簡書、公共號獲取最新文章)

IntelliJ 平臺更新

Android Studio 3.3 包含 IntelliJ 2018.2.2 版本。作為 JetBrains 的重要平臺更新,IntelliJ 2018.2.2 帶來了不少出色的新特性和功能優化,如: 新的程式碼編輯器預覽功能、圖示更新、MacBook 觸控條支援、控制整合優化等。

Kotlin 更新

Android Studio 3.3 捆綁了 Kotlin 1.3.11,包含對 Kotlin 協程 (Coroutines) 與合約 (Contracts) 的支援,並且 IDE 支援推薦的 Kotlin 編碼風格

Clang-Tidy 支援

開發者現在可以在 Android Studio 現中使用 Clang-Tidy 對 C++ 程式碼進行靜態分析。與 Studio 中用於檢查 Java 和 Kotlin 程式碼的 lint 工具相似,Clang-Tidy 可以檢測包含 C ++ 程式碼的 Android 應用中是否存在常見編碼問題和錯誤。請依次勾選 Settings → Editor → Inspections (MacOS 中為 Preference → Editor → Inspections) ,開啟該功能。

Android Studio3.3你瞭解多少?

新專案嚮導升級

Android Studio 改進新專案嚮導後,可以支援更多的裝置型別、編碼語言和新框架。與此同時,使用者體驗也有所改善,開發者可以通過更簡便的方式獲取相同的新專案模板。

Android Studio3.3你瞭解多少?

刪除未使用的 IDE 目錄

為了順利升級至最新版 Android Studio, 您可以使用我們新增的一項新功能來清除未使用的設定和快取目錄。歷史版本 Android Studio 會在硬碟中留下一些舊目錄,它們既不容易找到,也不方便清除。當您第一次執行 Android Studio 3.3 (或更高版本) 時,新對話方塊會顯示歷史安裝生成的目錄,並提醒您進行安全刪除操作。

Android Studio3.3你瞭解多少?

這個功能很好用,直接節約了很多的空間

IDE 使用者反饋

Android Studio 新新增了心情圖示,幫助快速收集使用者反饋,並用於改善產品質量。如果您已選擇分享使用情況統計資訊,請點選最能代表您當下使用體驗的圖示。如果您尚未啟用分享使用情況統計資訊,可以通過以下步驟予以啟用: Settings → Appearance & Behavior → System Settings → Data Sharing (MacOS 中為 Preferences → Appearance & Behavior → System Settings → Data Sharing) 。

Android Studio3.3你瞭解多少?

說實話,對於國內有牆的開發者來說,並沒有什麼卵用

加強註釋處理器對 Java 增量編譯的支援

在此項更新中,改進了註解編譯器對 Java 增量編譯的支援,從而有效縮短了構建時間。如果想要使用此功能,請確保已經下載 Android Grandle plugin 3.3.0 或更高版本。 todo

延遲任務 (lazy task) 配置

通過呼叫 Gradle 中的新任務建立 API,該外掛可以避免開啟或配置不需要在當前構建中完成的任務 (或者不在執行任務圖上的任務)。比如說,假設同時擁有多個構建變體,如 "release" 和 "debug" 構建配置,而當前您正在構建應用的 "debug" 版本,該外掛可避免啟動或配置任何 "release" 版本中的任務。

單變體專案同步

如果應用專案的規模較大,而且需要同時維護多個構建變體,那麼除構建速度以外,專案的同步速度也有可能成為開發瓶頸。該版本 IDE 允許開發者限定僅同步當前所選的變體。如需使用該優化,請確保專案已新增 Android Grandle plugin 3.3.0 或更高版本。該功能為實驗功能,您需要在 Android Studio 3.3 中的實驗偏好設定中手動開啟。

Android App Bundles 現已支援即時應用 (Instant Apps)

可在單個 Android Studio 專案中構建並部署 Google Play Instant 體驗,並將它們整合到一個 Android App Bundle 中。Android App Bundle 是去年新推出的 Android 應用標準釋出格式,開發者可以通過 Android Studio 構建 App Bundle 檔案。此項更新能夠精簡併統一上傳至 Google Play 的構建工件。

Android Studio3.3你瞭解多少?

對於國內眾多廠商沒有Google Play來說恐怕這個功能是無法體驗了

多個模擬器 AVD 例項

Android 模擬器 28.0 現已支援為同一臺 Android 虛擬裝置 (ADV) 同時啟動多個例項。每個例項均佔用最低限度的系統資源。如果已部署持續整合 (CI) 測試環境,該功能可以讓在一套 AVD 配置上並行執行多個測試。具體操作,請執行下列命令列:

$./emulator -avd <avdname> -read-only &
$./emulator -avd <avdname> -read-only &
複製程式碼
Android 9 Pie 模擬器系統映象和 Wi-Fi P2P

除了 Android 3.3 之外,還可以為模擬器下載 Android 9 系統映象檔案,以便在本地進行應用測試。Google Play 模擬器系統映象檔案不僅具備 Android CTS (相容測試套件) 認證,而且提供 Wi-Fi P2P 技術支援,允許兩臺模擬器以點對點形式直接互聯。如需使用該特性,請通過以下命令列啟動模擬器 (v28.0.22 或更高版本),並確保這兩個模擬器共用一個 Wi-Fi 伺服器和客戶埠命令列引數。

$./emulator @<server-avd-name> -wifi-server-port 9999
$./emulator @<client-avd-name> -wifi-client-port 9999
複製程式碼
模擬器快照儲存速度

開發者十分喜歡使用快照和 Quick Boot 功能,但是感覺模擬器的關閉速度以及 Quick Boot 儲存快照速度稍微慢了點。為了解決這個問題,優化了快照的儲存和管理方式,改用對映檔案來儲存客戶機 RAM。據統計結果顯示,優化之後,Quick Boot 儲存快照的平均用時從 27 秒降至 3 秒 - 速度提升了整整 8 倍。

隨著模擬器的功能逐漸完善和優化,更多功能可以採用模擬器來開發了

分析器效能優化

根據開發者的反饋,在這次版本更新中大幅改進了 Android Studio 中各個分析器的效能。本地測試結果顯示,平均幀率提高了 2 倍。

記憶體分析器的跟蹤記憶體分配選項

舊版 Android Studio 在預設設定下,偶爾會出現應用效能顯著下降的問題。為了解決這個問題,將記憶體分析器在 Android 8.0 或更高版本裝置上的預設捕捉模式更改為定期取樣記憶體分配資料。可以在分配跟蹤的下拉選單中調整具體設定。預設情況下,我們會在 CPU 記錄時暫時關閉記憶體分配跟蹤功能,以便儘可能減少對記錄結果的影響。

Android Studio3.3你瞭解多少?

(對於“如何通過分析過程提升應用效能表現”之後會有推出相關文章,敬請關注簡書、公共號獲取最新文章)

網路分析器的格式化文字支援

在預設設定下,Android Studio 3.3 中的網路分析器會對網路負載中的常見文字型別進行格式化操作,包括 HTML, XML 和 JSON。如果您需要在格式化文字和原始文字之間進行切換,請在標籤欄中選擇 Response 或 Request,然後點選 View Parsed / View Source 選項。

Android Studio3.3你瞭解多少?

(這個功能可以網路請求進行分析,之後會有推出詳細介紹該功能文章,敬請關注簡書、公共號獲取最新文章)

CPU 分析器支援幀渲染資料

當使用 Trace System Calls 進行記錄時,CPU 分析器會顯示UI 主執行緒和渲染執行緒每一幀的渲染時間。這些資料可以幫助如果診斷出應用中 UI 卡頓的瓶頸所在和具體原因,並且為指明優化方向。

Android Studio3.3你瞭解多少?

(這個功能的詳細介紹和使用方法,之後會有推出詳細介紹該功能文章,敬請關注簡書、公共號獲取最新文章)

總結

我們可以看到本次更新,最主要的有四點

  • Navigation editor 導航編輯器

    可以讓建立的目標,通過定義引數讓各個目標之間過度。並且通過使用導航架構,可以檢視整個應用程式的流程。並且可以拖拽來完成連結每一個目標。

  • Profiler tracking options 分析器配置更新

    當前分析器執行執行在API>=26版本的裝置。如果應用使用的API是過時的也不必擔心,Android Studio現在為我們提供了更詳細的除錯資訊。只需要我們在gradle.properties檔案當中新增

  android.debug.obsoleteApi = true
複製程式碼
  • Improvements on the build system 系統構建的改進

    可以看到,Android Studio的構造時間是被眾多開發者所吐槽的,自然Google工程師在這方面也在持續關注並且在坐著優化在這個版本當中,使用了註釋處理器時,提高了Java的編譯效率。同時還增加了一個新的程式碼縮放器命名為R8它比ProGuard更快。不需要程式碼更改,只需要在我們的gradle.properties檔案當中新增

android.enableR8 = true
複製程式碼
  • Lazy task configuration 懶任務配置

    增加這個功能是避免在Gradle配置階段建立未使用任務的成本。可以在同一個專案當中建立及時應用程式,對於每個裝置來說優化APK,即時執行app等提高使用者體驗。

最後

相信通過這片文章,讓大家對於Android Studio3.3 有個簡單的瞭解。工欲善其事,必先利其器只有詳細的瞭解了我們的開發工具之後,才能提高我們的開發效率!

預告

為接下來的文章立個Flag,盡請關注簡書、微信公共賬號已獲得最新的文章。

- Android Studio3.3 選單欄詳解 www.jianshu.com/p/f2ffdc47c…

  • Navigation Editor 詳細介紹以及使用
  • Android Jetpack 系列
  • Android 如何通過分析過程提升應用效能表現
  • Android Studio 網路分析器的詳細介紹以及使用
  • Android Studio CPU 分析器的詳細介紹以及使用

歡迎關注公共號

關注公共號即可獲得最新、最全Android面試題

Android Studio3.3你瞭解多少?

相關文章