https://juejin.im/post/5ed0677ee51d45788619c3a7
本文由作者授權發布。
4.0發布我就知道肯定會有比我勤快的朋友會提前發文的,哈哈,終於等到了。
另外這也算是個收集遇到問題的文章了,如果大家已經體驗了,遇到了一些問題,不妨留言周知下大家,感謝。
Android Studio 4.0(2020年5月) 更新啦,此版本包含了各種新功能和改進,還有一些廢棄配置。
重要提示:更新後,需要重新啟動 Android Studio 才能應用從早期版本的 IDE 遷移的所有內存設置。有關更多信息,請參見「已知問題」頁面。
https://developer.android.com/studio/known-issues#memory-settings最新版本的 Android Gradle 插件包含許多更新,例如 Java 8 對較舊版本的 Android 功能上的依賴項進行了更新。
要了解更多信息可閱讀【完整的Android Gradle插件發行說明】https://android.devsite.corp.google.com/studio/releases/gradle-plugin#4-0-0
此外,Android Studio 的新功能可幫助您提高構建性能。
當將 Android Studio 4.0 與 Android Gradle 插件 4.0.0 及更高版本一起使用時,Build Analyzer 窗口可幫助你了解和診斷構建過程中的問題,例如禁用的優化和配置不正確的 task,要打開 Build Analyzer 窗口,請按照下列步驟操作:
如果尚未執行此操作,請通過從菜單欄中選擇 Build> Make Project 來構建應用程式。
從菜單欄中選擇 View > Tool Windows > Build。
在 Build 窗口中,以下列方式之一打開 Build Analyzer 窗口:
Build Analyzer 窗口在左側的樹中組織可能的構建問題。你可以檢查並單擊每個問題,以在右側面板中調查其詳細信息。
當 Android Studio 分析構建時,它將計算確定構建持續時間的一組任務,並提供可視化幫助你了解每個任務的影響,你還可以通過展開 Warnings 節點來獲取有關警告的詳細信息。
檢查確定構建持續時間的任務。
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'
}
在早期版本的 Android Gradle 插件中,所有動態功能模塊都只能依賴於應用程式的基本模塊。
現在,當使用 Android Gradle 插件 4.0.0 及更高版本時,可以包括一個依賴於另一個功能模塊的功能模塊,即 :video 功能可以取決於:camera 功能,而功能取決於基礎模塊,結果如下圖所示。
動態功能 :video 取決於 :camera 的功能,後者取決於基本 :app 模塊。
這意味著,當應用程式請求下載動態功能模塊時,該應用程式還會下載其依賴的其他功能模塊,在之後創建動態功能模塊,你可以在模塊聲明一個功能上特徵依賴 build.gradle 文件,例如 :video 模塊聲明對 :camera 以下項的依賴關係:
// In the build.gradle file of the ':video' module.
dependencies {
// All dynamic feature modules must declare a dependency
// on the base module.
implementation project(':app')
// Declares that this module also depends on the 'camera'
// dynamic feature module.
implementation project(':camera')
...
}
此外,你可以通過在菜單欄中單擊 Help > Edit Custom VM Options 並啟用以下功能,在 Android Studio 中啟用 feature-on-feature dependency 功能(例如,在編輯 Run configuration 時支持該功能):
-Drundebug.feature.on.feature=true
使用 Android Gradle 插件 4.0.0 及更高版本構建應用時,該插件包含描述已編譯到應用中的依賴項的元數據,uploading 應用程式時,Play 控制臺會檢查此元數據提供以下好處:
數據經過壓縮,通過 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
}
}
Android Gradle 插件現在支持 Kotlin DSL 構建腳本文件(*.kts),配合 Android Studio 結合使用時,某些 IDE 功能(例如 Project Structure 對話框和構建腳本快速修復程序)現在還支持讀寫 Kotlin 構建腳本文件。
根據用戶的反饋,谷歌將集中精力通過兩種重要方式來改善 CPU Profiler 中的用戶體驗。
首先,與以前的 Android Studio 版本相比,CPU Profiler 中 CPU 記錄的錯誤率已大大降低。
其次,對 CPU Profiler UI 進行了全面改進,以提供更直觀的工作流程,其中 UI的一些顯著更改包括:
1. CPU記錄與主探查器時間軸分開了以便於分析,記錄的數據在 Profiler 窗口的左側按組分布。用戶可以通過單擊探查器中的選項圖標
在窗口右上角的選項圖標圖標或通過拖放組中的單個項目來上下移動組以重新組織列表 。
2. 為了更輕鬆地進行並排分析,用戶現在可以在線程活動時間軸中查看所有線程活動(包括方法,函數和事件)。
有幾種方法可以瀏覽時間軸:
要關注特定的時間點,請在 CPU 使用率圖表的左上方拖動一個範圍。
要放大或縮小,請在按住 Control(或MacOS上的Command)的同時使用滑鼠滾輪;要向左或向右平移,請在按住空格鍵的同時拖動。
或者使用W和A鍵進行精細的放大和縮小,使用S和D鍵進行左右的精細平移。
3. Flame Chart,Top Down 和 Bottom Up 分析的選項卡現在位於右側列中,在 Threads 組中,對於系統跟蹤記錄線程會自動展開,對於其他記錄類型默認情況下會摺疊起,在線程名稱上雙擊(或按Enter)以展開或摺疊它們。
4. 如屏幕截圖所示,系統跟蹤UI還包括以下改進:
現在事件採用了獨特的顏色,以便於區分。
線程按它們中的跟蹤事件數進行排序,以便 「busier」 的線程在列表中排名更高。
可以選擇一個或多個線程以僅在那些選定的線程的右列中查看分析。
同樣,可以在任何線程中選擇一個跟蹤事件以查看其分析數據。
此版本的 Android Studio 包括對設計工具的更新,例如 Layout Inspector (布局檢查器)和全新的 Motion Editor 。
1、新動作編輯器Android Studio 現在包括用於 MotionLayout 布局類型的可視設計編輯器,使創建和預覽動畫更加容易。
https://developer.android.com/training/constraint-layout/motionlayout
動作編輯器提供了一個簡單的界面,用於處理 MotionLayout 庫中的元素,這些元素是 Android 應用中動畫的基礎。
在以前的版本中,創建和更改這些元素需要手動編輯XML資源文件中的約束。現在,運動編輯器可以為您生成此XML,並支持開始和結束狀態,關鍵幀,過渡和時間軸。
要了解有關如何使用運動編輯器的更多信息,請參見用戶指南。
⚠️注意:在使用 Motion 編輯器之前,請確保將文件中的 ConstraintLayout 依賴項設置 build.gradle 為 version 2.0.0-beta3 或更高版本。
使用 Live Layout Inspector 調試版式,在將應用程式部署到設備時可提供對應用程式UI完整地實時更新。
要打開 Layout Inspector 窗口,請轉到 View > Tools Windows > Layout Inspector。除了現有布局檢查器的許多相同功能外,實時布局檢查器還包括:
Dynamic layout hierarchy(動態布局層次結構):隨著設備視圖的更改而更新。
Property values resolution stack:(屬性值解析堆棧):調查資源屬性值在原始碼中的起源,並通過遵循屬性窗格中的超連結導航到其位置。
3D view(3D視圖):在運行時通過高級 3D 可視化查看應用程式的視圖層次結構,要使用此功能,只需在 Layout Inspector 窗口中單擊布局並旋轉它。
僅當將應用程式部署到運行 API級別 29 或更高版本的設備或仿真器時,才能使用 Live Layout Inspector,要啟用實時布局檢查器,請轉到File > Settings > Experimental,然後選中 Enable Live Layout Inspector 旁邊的框 ,然後,單擊 Live updates 上方 Layout Display 旁邊的複選框。
3、布局驗證Layout Validation (布局驗證)是一種可視化工具,可用於同時預覽不同設備和配置上的布局,從而幫助檢測布局錯誤並創建更多可訪問的應用程式。
用戶可以通過單擊IDE窗口右上角的 Layout Validation 選項卡來訪問此功能:
在 Layout Validation 窗口中,可以從四個不同的配置集中選擇:
Pixel Devices :在多種像素設備上預覽應用。
Custom :使用自定義顯示選項(例如屏幕方向或語言)預覽應用。
Color Blind:使用常見色盲類型的模擬預覽應用。
Font Sizes:使用各種字體大小預覽應用。
要了解有關使用布局驗證的更多信息,請參閱使用Layout Inspector調試布局。
https://developer.android.com/studio/debug/layout-inspector#layout-validation
當打開 R8 的代碼收縮規則文件時,Android Studio 現在提供智能編輯器功能,例如:語法突出顯示、代碼完成和錯誤檢查。該編輯器還與 Android Studio 項目集成在一起,為所有類、方法和欄位提供完整的符號補全,並包括快速導航和重構。
Android Studio 現在包括適用於 Kotlin 類的Android 實時模板。例如,現在可以鍵入 toast 並按 Tab 鍵快速插入 Toast。
有關可用實時模板的完整列表,請從菜單欄中單擊 File > Settings(或在macOS上為 Android Studio > Preferences ),然後導航 Editor > Live Templates。
Fragment wizard and new fragment templates
現在,當您導航到File > New > Fragment > Gallery或在「導航」編輯器中單擊Create new destination時,即可使用「New Android Fragment wizard」嚮導和新的片段模板。
使用Android 11圖像時,Android Emulator相機包括以下新功能:
RAW拍攝
YUV後處理
Level 3 devices
邏輯相機支持
要了解有關為下一版Android開發的更多信息,請轉到 Android 11 Developer Preview用戶文檔。
https://developer.android.com/preview
Jetbrains CLion 是支持 Android Studio C ++ 語言支持的技術,現在使用基於 LLVM clangd 和 clang-tidy 的檢查引擎,加快了 C / C ++ 代碼的完成速度,並提供了與 clang-tidy 的更無縫集成。
現在,在 Android Studio C++ 代碼編輯器中可用,clangd 和 clang-tidy 都是開源LLVM額外工具的一部分:
在以前的版本中,Android Studio 用戶可以通過 NDK 使用 clang-tidy;有了這一更改,Android Studio 不再依賴NDK的整潔功能。
已棄用 local.properties 文件中的ndk.dir設置
ndk.dir 不應再在應用程式的 local.properties 文件中 ndk.dir 設置,並且在以後的版本中將刪除對此設置的支持。
Android Gradle 插件默認設置NDK版本,但是如果您需要NDK的特定版本,則可以 android.ndkVersion 在中設置 build.gradle 。
有關設置NDK的更多信息,請參閱安裝和配置NDK和CMake。
核心 Android Studio IDE 已更新,並通過IntelliJ IDEA 進行了改進,直至 2019.3.3 版本。
推薦閱讀:
掃一掃 關注我的公眾號
如果你想要跟大家分享你的文章,歡迎投稿~
┏(^0^)┛明天見!