天天看點

Android Studio 3,安卓開發不得不會

  • 資料總管現在支援大多數資源類型。
  • 搜尋資源時,資料總管現在将顯示所有項目子產品的結果(以前,搜尋僅從所選子產品傳回結果)。
  • 篩選器按鈕可以檢視來自本地依賴子產品,外部庫和 Android - 架構的資源也可以使用過濾器顯示主題屬性。
  • 可以在導入過程中通過在資源上方的文本框中單擊來重命名資源。

二、更新了Android Gradle插件

最新版本的 Android Gradle 插件包括許多更新,包括建構速度的優化,對Maven釋出插件的支援以及對視圖綁定的支援。

1. 檢視綁定

視圖綁定後可以通過為每個 XML 布局檔案生成綁定類來更輕松地編寫與視圖互動的代碼。這些類包含對在相應布局中具有ID的所有視圖的直接引用。

因為它替換了findViewById(),是以視圖綁定消除了因無效的視圖ID導緻空指針異常的風險。

要啟用視圖綁定,需要使用 Android Gradle 插件 3.6.0 或更高版本,并在每個子產品的build.gradle檔案中包含以下内容 :

android {
    viewBinding.enabled = true
} 
           

三、應用更改

現在在開發過程中可以添加一個類,然後單擊 “Apply Code Changes”

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-DgARbW66-1630322253224)(https://user-gold-cdn.xitu.io/2020/2/25/1707a93c822d425a?imageView2/0/w/1280/h/960/ignore-error/1)]

或 “Apply Changes and Restart Activity” ,将該代碼更改部署到正在運作的應用程式中

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-aIaS2Vsl-1630322253227)(https://user-gold-cdn.xitu.io/2020/2/25/1707a93ee64c34fb?imageView2/0/w/1280/h/960/ignore-error/1)]

四、重構菜單選項以啟用 Instant Apps 支援

在建立應用程式項目後立即啟用基礎子產品,如下所示:

    1. 通過 從菜單欄中選擇View > Tool Windows > Project來打開“ 項目”面闆。
    1. 右鍵單擊通常稱為“應用程式”的基本子產品,然後選擇Refactor > Enable Instant Apps Support.>“啟用即時應用程式支援”。
  • 3.在出現的對話框中,從下拉菜單中選擇基本子產品。
  • 4.單擊确定。
注意:從“Create New Project ”向導中即時啟用基本應用程式子產品的選項已删除。

五、在APK分析器中反混淆類和方法位元組碼

使用APK Analyzer檢查DEX檔案時,可以按以下步驟對類和方法位元組碼進行模糊處理:

  • 1.從菜單欄中選擇 Build > Analyze APK。
  • 2.在出現的對話框中,導航到要檢查的APK,然後選擇它。
  • 3.點選打開。
  • 4.在 APK 分析器中,選擇要檢查的 DEX 檔案。
  • 5.在DEX檔案檢視器中,為要分析的APK 加載 ProGuard 映射檔案。
  • 6.右鍵單擊要檢查的類或方法,然後選擇Show bytecode。

六、Native Tooling

以下更新支援 Android Studio 中的本機(C / C ++)開發。

1. Kotlin支援

以前由 Java 支援的 Android Studio 支援的 NDK 功能,現在 Kotlin 也能夠支援了:

  • 從JNI聲明導航到 C / C ++ 中的相應實作函數。将滑鼠懸停在托管源代碼檔案中行号附近的C或C ++項目标記上,可以檢視此映射。
  • 為JNI聲明自動建立存根實作功能。首先定義JNI聲明,然後在C / C ++檔案中鍵入“ jni”或方法名稱來激活。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-38VoN7tt-1630322253229)(https://user-gold-cdn.xitu.io/2020/2/25/1707a963ed735bd4?imageslim)]

  • 未使用的 native implementation functions 在源代碼中突出顯示為警告。缺少實作的JNI聲明也将突出顯示為錯誤。
  • 重命名(重構) native implementation functions 時,所有對應的JNI聲明都會更新。重命名 JNI 聲明以更新 native implementation functions 功能。
  • 對隐式綁定的 JNI 實作進行簽名檢查。

2. 其他JNI改進

Android Studio中 的代碼編輯器現在支援更無縫的 JNI 開發工作流程,包括改進的類型提示,自動完成,檢查和代碼重構。

3. 重新加載本機庫的APK

在 IDE 外部更新項目中的 APK 時不再需要建立新項目。Android Studio會檢測APK 中的更改,并提供重新導入 APK 的選項。

七、Attach Kotlin-only APK Sources

現在分析和調試預建的APK時,可以附加僅 Kotlin 的外部 APK 源:developer.android.com/studio/debu… 。

八、記憶體探查器中的洩漏檢測

現在,在 Memory Profiler 中分析堆轉儲時,可以過濾 Android Studio 認為可能表明應用程式中的記憶體洩漏

Activity

Fragment

執行個體的性能分析資料。

篩選器顯示的資料類型包括:

  • Activity

    執行個體已被銷毀,但仍在引用中。
  • Fragment

    執行個體無效

    FragmentManager

    但仍在引用中。

在某些情況下,例如以下情況,過濾器可能會産生誤報:

  • A

    Fragment

    已建立,但尚未使用。
  • 一個

    Fragment

    被緩存,但不作為的一部分

    FragmentTransaction

要使用此功能,請先捕獲堆轉儲或将堆轉儲檔案導入Android Studio。要顯示可能正在洩漏記憶體的碎片和活動,請在“記憶體探查器”的堆轉儲窗格中選中“活動/碎片洩漏”複選框。(篩選堆轉儲以防止記憶體洩漏。)

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-DGtA5i3J-1630322253230)(https://user-gold-cdn.xitu.io/2020/2/25/1707a9867b1d210a?imageView2/0/w/1280/h/960/ignore-error/1)]

九、模拟器

Android Studio 3.6 可以利用

Android Emulator 29.2.7

及更高版本中包含的多個更新,如下所述。

1. 改進的位置支援

Android Emulator 29.2.7 及更高版本為仿真GPS坐标和路線資訊提供了額外的支援。當打開 Emulators Extended controls, 控件時, Location 頁籤中的選項現在組織在兩個頁籤下:“Single points”和“Routes”。

Single points

在 Single points 标簽中,可以使用 Google Maps Webview 搜尋感興趣的點,就像在手機或浏覽器上使用Google Maps一樣。搜尋或單擊地圖中的位置時,可以通過選擇地圖底部附近的儲存點來儲存位置。所有儲存的位置都列在擴充控件視窗的右側 。

要将“模拟器”位置設定在地圖上選擇的位置,請單擊 Extended controls 視窗右下角附近的“ 設定位置”按鈕 。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-njbtK4wh-1630322253232)(https://user-gold-cdn.xitu.io/2020/2/25/1707a99384fd6c2b?imageView2/0/w/1280/h/960/ignore-error/1)]

Routes

與 Single points 标簽類似, Routes 标簽提供了Google Maps Web視圖,可用于在兩個或多個位置之間建立路線。要建立和儲存路線,請執行以下操作:

  • 1.在地圖視圖中,使用文本字段搜尋路線中的第一個目的地。
  • 2.從搜尋結果中選擇位置。
  • 3.選擇 Navigate 按鈕

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-JHjhjq9K-1630322253233)(https://user-gold-cdn.xitu.io/2020/2/25/1707a99680e30256?imageView2/0/w/1280/h/960/ignore-error/1)]

  • 4.從地圖上選擇路線的起點。
  • 5.(可選)點選添加目的地,将更多停靠點添加到路線中。
  • 7.為路線指定名稱,然後點選儲存。

要按照儲存的路線模拟模拟器,請從 Saved routes 清單中選擇路線,然後單擊 Extended controls 視窗右下角附近的 Play route 。要停止模拟,請點選停止路線。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-dR5wHEC1-1630322253233)(https://user-gold-cdn.xitu.io/2020/2/25/1707a9a886664041?imageView2/0/w/1280/h/960/ignore-error/1)]

要按照指定的路徑連續仿真模拟器,請啟用重複播放旁邊的開關。要更改仿真器遵循指定路線的速度,請從 Playback speed 下拉清單中選擇一個選項。

2. 多顯示器支援

- 3.6.1 新的更新中移除了多重預覽功能已删除,4.0 版本才正式開放。

Android模拟器現在允許将應用程式部署到支援可自定義尺寸的多個顯示器,并可以幫助測試支援多視窗和多顯示器的應用程式 。在虛拟裝置運作時,最多可以添加兩個以下顯示:

  • 1.打開擴充控件,然後導航到 Displays 頁籤。
  • 2.通過單擊添加 Add secondary display 來添加另一個顯示。
  • 3.在 Secondary displays 菜單中,執行以下一項操作:
    • a.選擇一種預設的寬高比
    • b.選擇自定義并為自定義顯示設定高度,寬度和dpi。
  • 4.(可選)單擊 Add secondary display 以添加第三顯示。
    1. 單擊 Apply changes,将指定的顯示添加到正在運作的虛拟裝置。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-TTduC7j0-1630322253234)(https://user-gold-cdn.xitu.io/2020/2/25/1707b1b9a6b95206?imageView2/0/w/1280/h/960/ignore-error/1)]

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-SsqGczTy-1630322253234)(https://user-gold-cdn.xitu.io/2020/2/25/1707b1a32f9203c3?imageView2/0/w/1280/h/960/ignore-error/1)]

3. 适用于Android Automotive OS的新虛拟裝置和項目模闆

使用 Android Studio 建立新項目時,現在可以從 Create New Project 向導的 Automotive 頁籤中的三個模闆中進行選擇:No Activity,Media service 和 Messaging service 。

對于現有項目,可以通過從菜單欄中選擇 File > New > New Module,然後選擇 Android Automotive 來添加對 裝置的支援。然後, Create New Module 向導将指導使用 Android Automotive 項目模闆之一建立新子產品。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-sVGYLdyd-1630322253235)(https://user-gold-cdn.xitu.io/2020/2/25/1707a9c2f4e6f199?imageView2/0/w/1280/h/960/ignore-error/1)]

此外,現在可以通過在 Virtual Device Configuration 向導的Automotive頁籤中選擇以下選項之一,為Android Automotive OS裝置 create an Android Virtual Device (AVD)。

  • 1.Polestar 2:建立一個模拟Polestar 2主機的AVD。
  • 2.Automotive (1024p landscape):為一般的1024 x 768 px Android車載主機建立一個AVD。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-UiVZwnlb-1630322253235)(https://user-gold-cdn.xitu.io/2020/2/25/1707a9dff23e2dbb?imageView2/0/w/1280/h/960/ignore-error/1)]

十、可恢複的SDK下載下傳

現在,當使用 SDK Manager 下載下傳 SDK 元件和工具時,Android Studio 現在允許恢複被中斷(例如由于網絡問題)的下載下傳,而無需從頭開始重新開始下載下傳。當網際網路連接配接不可靠時,此增強功能對于大型下載下傳(例如Android模拟器或系統映像)特别有用。

另外,如果在背景運作SDK下載下傳任務,則現在可以使用狀态欄中的控件暫停或繼續下載下傳。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-kTBAxcFf-1630322253236)(https://user-gold-cdn.xitu.io/2020/2/25/1707a9e3466d8201?imageView2/0/w/1280/h/960/ignore-error/1)]

狀态欄中的背景下載下傳任務,帶有新控件,可暫停或繼續下載下傳。

十一、Win32已棄用

Windows 32 位版本的Android Studio在 2019 年 12 月之後将不再獲得更新,并且在 2020 年 12 月之後将不再獲得支援。開發者可以繼續使用 Android Studio。但是,要接收其他更新,請将工作站更新到 Windows 的 64 位版本。

台下載下傳任務,帶有新控件,可暫停或繼續下載下傳。

十一、Win32已棄用

Windows 32 位版本的Android Studio在 2019 年 12 月之後将不再獲得更新,并且在 2020 年 12 月之後将不再獲得支援。開發者可以繼續使用 Android Studio。但是,要接收其他更新,請将工作站更新到 Windows 的 64 位版本。