Android Studio 4.0更新大匯總!

2021-02-14 Carson帶你學習Android
前言

Android Studio 4.0終於更新了,今天為大家帶來Android Studio 4.0的全面更新內容!

更新匯總

1. 布局相關

主要包括:

1、新動作編輯器2、動態布局查看3、布局驗證

1.1 新動作編輯器

- 作用:動作編輯器提供了一個簡單的界面,用於處理 MotionLayout 庫中的元素,這些元素是 Android 應用中動畫的基礎。

- 之前版本:創建和更改這些元素需要手動編輯XML資源文件中的約束

- 更新後:運動編輯器可以為您生成此XML,並支持開始和結束狀態,關鍵幀,過渡和時間軸。

註:在使用 Motion 編輯器之前,請確保將文件中的 ConstraintLayout 依賴項設置 build.gradle 為 version 2.0.0-beta3 或更高版本。

1.2 動態布局查看

使用 動態布局查看模式(Live Layout Inspector ),可對應用程式UI完整地實時更新。新增功能包括:

功能1:Dynamic layout hierarchy(動態布局層次結構)隨著設備視圖的更改而更新。

功能2:Property values resolution stack:(屬性值解析堆棧)調查資源屬性值在原始碼中的起源,並通過遵循屬性窗格中的超連結導航到其位置。

功能3:3D view(3D視圖)在運行時通過高級 3D 可視化查看應用程式的視圖層次結構,要使用此功能,只需在 Layout Inspector 窗口中單擊布局並旋轉它。

打開方式:

step1:View > Tools Windows > Layout Inspectorstep2:File > Settings > Experimentalstep3:選中 Enable Live Layout Inspector 旁邊的框 - 單擊 Live updates 上方 Layout Display 旁邊的複選框

註:僅當將應用程式部署到運行 API級別 29 或更高版本的設備或仿真器時,才能使用 Live Layout Inspector

1.3 布局驗證

布局驗證(Layout Validation )是一種可視化工具,可用於同時預覽不同設備和配置上的布局

打開方式:單擊IDE窗口右上角的 Layout Validation 選項卡

更多使用布局驗證的信息,請查看:https://developer.android.com/studio/debug/layout-inspector#layout-validation

2. 編輯相關

主要包括:

1、 智能編輯器功能2、Kotlin Android實時模板3、clangd 現在可用於 C ++代碼編輯器

2.1 智能編輯器功能

- 對於打開 R8 的代碼收縮規則文件時,Android Studio 現在提供智能編輯器功能,如:語法突出顯示、代碼完成和錯誤檢查等

- 該編輯器與 Android Studio 項目集成在一起,為所有類、方法和欄位提供完整的符號補全,並包括快速導航和重構

2.2 Kotlin Android實時模板

本次更新中,Android Studio加入了適用於 Kotlin 類的Android 實時模板。如,現在可以鍵入 toast 並按 Tab 鍵快速插入 Toast。

關於模板的完整列表,可查看:File > Setting -> Editor > Live Templates。

2.3 clangd 可用於 C ++代碼編輯器

clangd 和 clang-tidy 都是開源LLVM額外工具的一部分:

- clangd具有代碼完成功能,在編輯器中編譯錯誤消息以及定位導航。

- clang-tidy是C ++ linter工具,具有可擴展的框架,用於診斷和修復典型的編程錯誤。

現在,在 Android Studio C++ 代碼編輯器中可用,使用基於 LLVM clangd 和 clang-tidy 的檢查引擎,加快了 C / C ++ 代碼的完成速度,並提供了與 clang-tidy 的更無縫集成。

在以前的版本中,Android Studio 用戶可以通過 NDK 使用 clang-tidy;有了這一更改,Android Studio 不再依賴NDK的整潔功能。

3. Gradle 插件更新

此次是更新為Android Gradle 插件 4.0.0,主要包括:

3.1 構建分析器

使用構建分析器Build Analyzer 窗口可幫助你了解和診斷構建過程中的問題,如禁用的優化和配置不正確的 task

使用方式:

1、菜單欄中選擇 Build> Make Project 來構建應用程式

2、從菜單欄中選擇 View > Tool Windows > Build

3、在 Build 窗口中,以下列方式之一打開 Build Analyzer 窗口:

- Android Studio完成構建項目後,單擊 Build Analyzer 選項卡。

- Android Studio完成構建項目後,單擊 Build Output 窗口右側的連結。

當 Android Studio 分析構建時,它將計算確定構建持續時間的一組任務,並提供可視化幫助你了解每個任務的影響,你還可以通過展開 Warnings 節點來獲取有關警告的詳細信息。

3.2 功能上的依存關係

- 之前版本:所有動態功能模塊都只能依賴於應用程式的基本模塊。

- 更新:可包括一個依賴於另一個功能模塊的功能模塊 

- 示例::a 功能模塊可取決於 :b 功能,而:b功能取決於:basic基礎模塊,如下圖:

註:當應用程式請求下載動態功能模塊時,該應用程式還會下載其依賴的其他功能模塊,在之後創建動態功能模塊,你可以在模塊聲明一個功能上特徵依賴 build.gradle 文件,例如 :a 模塊聲明對 :b 以下項的依賴關係:

// In the build.gradle file of the ':video' module.

dependencies {

// All dynamic feature modules must declare a dependency

// on the base module.

implementation project(':basic')

// Declares that this module also depends on the 'camera'

// dynamic feature module.

implementation project(':b')

...

}

使用方式:菜單欄中Help > Edit Custom VM Options -> 編輯Run configuration輸入feature-on-feature dependency

-Drundebug.feature.on.feature=true

3.3 依賴元數據

更新點:包含描述已編譯到應用中的依賴項的元數據,uploading 應用程式時,Play 控制臺會檢查此元數據提供以下好處:

- 獲取有關你的應用使用的SDK和依賴項的已知問題的警報

- 收到可行的反饋來解決這些問題 數據經過壓縮,通過 Google Play 籤名密鑰加密,並存儲在發布應用的籤名欄中,你也可以自己在以下目錄中的本地中間構建文件中檢查元數據:

<project>/<module>/build/outputs/sdk-dependencies/release/sdkDependency.txt。

如果不想共享此信息,可以通過在模塊 build.gradle 文件中添加以下內容來退出:

android {

dependenciesInfo {

// Disables dependency metadata when building APKs.

includeInApk = false

// Disables dependency metadata when building Android App Bundles.

includeInBundle = false

}

}

3.4 Java 8庫在D8和R8中逐漸消失

Android Studio 現在支持使用多種 Java 8 語 言API,而無需給應用程式設置最低 API 級別。通過一個稱為 desugaring 的過程,Android Studio 3.0 及更高版本中的 DEX 編譯器 D8 已經為Java 8 語言功能(例如lambda表達式,默認接口方法,嘗試資源等)提供了實質性支持。在Android Studio 4.0中,已將 desugaring engine 擴展為能夠對 Java 語言 API 的語法糖。這意味著你現在可以在 java.util.streams 支持較舊版本的 Android 的應用程式中,包含僅在最新的Android版本中可用的標準語言API 。此版本支持以下一組API:

Sequential streams ( java.util.stream1)

A subset of java.time

java.util.function

Recent additions to java.util.{Map,Collection,Comparator}

Optionals( java.util.Optional, java.util.OptionalInt and some other new classes useful with the above APIs

Some additions to java.util.concurrent.atomic (new methods on AtomicInteger, AtomicLong and AtomicReference)

ConcurrentHashMap (with bug fixes for Android 5.0)

為了支持這些語言API,D8 會編譯一個單獨的庫DEX文件,該文件包含了一些本身缺少API的實現,並將其包含在您的應用程式中,而 desugaring 的過程 將重寫您的應用程式代碼,以在運行時使用此庫。

要啟用對這些語言API的支持,請在模塊build.gradle文件中包括以下內容:

android {

defaultConfig {

// Required when setting minSdkVersion to 20 or lower

multiDexEnabled true

}

compileOptions {

// Flag to enable support for the new language APIs

coreLibraryDesugaringEnabled true

// Sets Java compatibility to Java 8

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

}

dependencies {

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4'

}

3.5 支持 Kotlin DSL 腳本文件

更新後,支持 Kotlin DSL 構建腳本文件( *.kts)。配合 Android Studio 結合使用時,某些 IDE 功能(例如 ProjectStructure 對話框、構建腳本快速修復程序等)可支持讀寫 Kotlin 構建腳本文件

4. 其餘4.1 CPU Profiler 升級

更改1:CPU Profiler 中 CPU 記錄的錯誤率已大大降低。

更改2:全面改進 CPU Profiler UI ,以提供更直觀的工作流程,包括:

1、事件採用了獨特的顏色,以便於區分。

2、線程按它們中的跟蹤事件數進行排序,以便 「busier」 的線程在列表中排名更高。

3、可選擇一個或多個線程以僅在那些選定的線程的右列中查看分析。

4、可在任何線程中選擇一個跟蹤事件以查看其分析數據。

4.2 IntelliJ IDEA 更新

核心 Android Studio IDE 已更新,並通過IntelliJ IDEA 進行了改進,直至 2019.3.3 版本。

5. 總結

本文主要總結Android Studio 4.0大家常用的更新點,如下:

本文參考自:

https://juejin.im/post/5ed0677ee51d45788619c3a7

學習資料贈送

福利:由本人親自撰寫 & 整理的Android學習方法資料

數量:10名

參與方式:點擊文章右下角」在看「 -> 回復截圖到公眾號 即可,我將從中隨機抽取!

相關焦點

  • Android Studio 4.1終於發布了!
    Project Templates 中的 MDC 更新更新包括:MDC:項目依賴於 build.gradle 中的 com.google.android.material更多信息見:https://developer.android.com/studio/releases#dagger-navigation使用邊線操作瀏覽與 Dagger
  • Android Studio 4.1重磅發布:支持內嵌安卓模擬器!
    Project Templates 中的 MDC 更新更新包括:MDC:項目依賴於 build.gradle 中的 com.google.android.material更多信息見:https://developer.android.com/studio/releases#dagger-navigation使用邊線操作瀏覽與 Dagger
  • 谷歌:Android Studio 和 Gradle 插件使用全新版本編號
    為便於更新,我們對版本進行了更改,將 Android Studio 與 Android Gradle 插件版本進行了明確的分離。需要記住的一個重要細節是,更新 IDE 時,構建系統執行編譯和打包應用的方式不受影響。相反,應用構建流程變更和 APK/Bundle 則會受到您的項目 AGP 版本影響。
  • 谷歌Android Studio 和 Gradle 插件使用全新版本編號
    為便於更新,我們對版本進行了更改,將 Android Studio 與 Android Gradle 插件版本進行了明確的分離。需要記住的一個重要細節是,更新 IDE 時,構建系統執行編譯和打包應用的方式不受影響。相反,應用構建流程變更和 APK/Bundle 則會受到您的項目 AGP 版本影響。
  • 開源之系統:非終端命令,Ubuntu中去官網下載安裝Android Studio
    而這次我們開始安裝Android studio用以開發Android應用APP。我們打開官網,找到下載的頁面。就能找到down Android Studio的綠色按鈕,下面是版本的字樣,機智客這裡下載的是4.1.1 for Linux 64-bit (883 MB)。然後點擊下載,彈窗一個頁面,需要閱讀並同意相關協議。同樣有一個下載按鈕,上面有:適用平臺:Linux 的字樣。
  • Android Studio的一些小技巧
    這對於一些維護很久的老項目比較有用APK瘦身在Android Studio中我們可以開啟混淆,和自動刪除沒有Resources文件,來達到給APP瘦身的目的,這對於一些維護很久的老項目比較有用,裡面有很多無效的Resource, 刪除後生成的APK會小很多我們只需要在項目的build.gradle中加入android
  • WSL2 編譯 Android 版本 emu-ex-plus-alpha 的 Snes9x EX+
    /studio?/EmuFramework/ && make -f android-release.mk config -j4 && make -f android-release.mk install -j4編譯 Snes9xcd $IMAGINE_PATH && cd ..
  • 把你的程序放到桌面——Android桌面部件Widget
    通常我們會加一個 Service 來控制 Widget 的更新時間,後面再講為什麼。做完這些,如果不出錯,就完成了桌面部件。其實挺簡單的,下面就讓我們來看看具體的實現吧。實現一個桌面計數器先上效果圖:1.
  • ...新款Fitbit可以通過藍牙4.0同iPhone和Android手機直接同步
    其中一款新Fitbit One不僅加入了一些新的樂活功能,還具備通過藍牙4.0直接同電腦和行動裝置同步數據的功能。 Fitbit One集成了前代Fitbit的大多數功能:它可以充當計步器記下你一天裡走路的步數,測量你爬了多少級樓梯,甚至可以記錄你的睡眠周期(這一點對那些睡眠狀況不太好的人來說是很有需求的)。新款Fitbit加入了一項名為「靜默鬧鐘」的功能,可以通過震動慢慢將你喚醒。
  • android 相對布局 絕對 - CSDN
    絕對布局,例子:<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent
  • Android 動畫
    通過不斷得更新 View 的屬性,讓它表現出動畫效果,只要滿足兩個條件:1、object 必須要提供 setXxx 方法,如果動畫的時候沒有傳遞初始值,那麼還要提供 getXxx 方法,因為系統要去拿 xxx 屬性的初始值(就是通過反射技術來獲取和執行屬性的 get 和 set 方法。如果這條不滿足,程序直接 Crash)。
  • Android Design Support Library之TabLayout
    app/build.gradle 中添加下面依賴: compile 'com.android.support:design:25.3.1'<android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width
  • Android 樣式系統 | 主題背景屬性
    <View …  android:background="@color/primary_20"/>https://developer.android.google.cn/reference/android/content/res/ColorStateList如果 primary_20 是一個 ColorStateList,它本身引用主題背景屬性來獲取色值也可能是合理的
  • xmake-gradle 插件 v1.0.7 發布,集成 xmake 快速構建 Android JNI...
    目前在 gradle 中做 android jni 相關集成開發,有兩種方式,通過 ndkBuild 或者 CMake 來支持,gradle 也內置了這兩工具的集成但是維護 Android.mk 還是非常繁瑣的,尤其是對於大型項目會比較痛苦,而 cmake 的 dsl 語法不夠簡潔直觀,我個人也不是很喜歡,因此我先前整了 xmake 來實現跨平臺開發,優勢就是: 簡單,快速
  • 《黑荊棘角鬥場》1.07更新了什麼 更新內容匯總
    導 讀 黑荊棘角鬥場1.07更新內容匯總 bug修復 收起 bug修復 新增要素 武器調整 流派調整
  • Android 沉浸式狀態欄攻略 讓你的狀態欄變色吧
    (二)布局文件activity_main.xml<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto
  • 谷歌推出Android 11 DP Ver1.1版本 更新內容有哪些
    打開APP 谷歌推出Android 11 DP Ver1.1版本 更新內容有哪些 小淳 發表於 2020-03-05 11:37:31
  • 不會查看系統源碼,還搞什麼Android?
    idegen模塊編譯成功後,會在 out/host/linux-x86/framework目錄下生成idegen.jar,執行如下命令:sudo development/tools/idegen/idegen.sh這時會在源碼根目錄生成android.iml 和 android.ipr 兩個文件,這兩個文件一般是只讀模式,這裡建議改成可讀可寫
  • android設置背景透明
    工程就使用以前的吧,新增一個按鈕「變透明」Code:AndroidManifest.xml:<LinearLayout   android:layout_width="fill_parent"   android:layout_height="wrap_content"   android:gravity="center"   android:orientation="horizontal"&