Android Studio Arctic Fox 大版本更新,快來了解下吧
Android Studio 的新大版本又來了,大家快來躺坑。原本鏈接:developer.android.com/studio/rele…[1]
Android Studio Arctic Fox 是屬于大版本更新,其中包含各種新功能和改進(jìn),其中主要有:版本號(hào)規(guī)則變更,支持新的測(cè)試模式,更高級(jí)的調(diào)試跟蹤,更方便的導(dǎo)出數(shù)據(jù)庫,支持 Compose 等等
新版本號(hào)
更新了 Android Studio 的版本號(hào)
本次更改了 Android Studio 的版本號(hào)規(guī)則,與 IntelliJ IDEA[2](Android Studio 所基于的 IDE)更加一致。
在之前的版本號(hào)中,版本的編號(hào)規(guī)則為 Android Studio 4.3 或版本 4.3.0.1 ,而有了新的版本編號(hào)規(guī)則后,以后會(huì)是 Android Studio - Arctic Fox | 2020.3.1 或 2020.3.1 版本。
以下是未來確定 Android Studio 版本號(hào)的方式:
<Year of IntelliJ Version>.<IntelliJ major version>.<Studio major version>.<Studio minor/patch version>
前兩個(gè)數(shù)字組代表特定 Android Studio 所基于的 IntellIj 平臺(tái)的版本,此次的版本為 2020.3。 第三個(gè)數(shù)字組代表 Studio 的主要版本,從 1 開始, 每個(gè)主要版本遞增 1。 第四組數(shù)字代表 Studio 次要/補(bǔ)丁版本,從 1 開始,每個(gè)次要版本遞增 1。 此次還為每個(gè)主要版本提供了一個(gè)版本名稱,根據(jù)動(dòng)物名稱從 A 到 Z 遞增,此版本名為 Arctic Fox 。 更新了 Android Gradle 插件的版本編號(hào)
此次更改 Android Gradle 插件 (AGP) 的版本號(hào),以更緊密地匹配底層 Gradle 構(gòu)建工具,因此 AGP 4.2 之后的下一個(gè)版本是 AGP 7.0 。
有關(guān)更多詳細(xì)信息,請(qǐng)參閱 AGP 中的 版本控制更改[3]
Android Gradle 插件 7.0.0
單元測(cè)試現(xiàn)在使用 Gradle 測(cè)試運(yùn)行器
為了提高測(cè)試執(zhí)行的整體一致性,Android Studio 現(xiàn)在默認(rèn)使用 Gradle 運(yùn)行所有單元測(cè)試,當(dāng)然在一般情況下,此更改不會(huì)影響在 IDE 中的測(cè)試工作流。
例如,當(dāng)單擊上下文菜單中的Run命令(在右鍵單擊某個(gè)測(cè)試類時(shí)可見)或其對(duì)應(yīng)的 gutter action 時(shí),Android Studio 將默認(rèn)使用 Gradle 運(yùn)行配置來運(yùn)行單元測(cè)試。
但是 Android Studio 不再識(shí)別現(xiàn)有的 Android JUnit 運(yùn)行配置,因此需要將項(xiàng)目文件的 Android JUnit 運(yùn)行配置遷移到 Gradle 運(yùn)行配置。
要?jiǎng)?chuàng)建 Gradle 測(cè)試配置,請(qǐng)按照創(chuàng)建新的運(yùn)行/調(diào)試配置中[4]的說明選擇 Gradle 模板,創(chuàng)建新配置后它將出現(xiàn)在 Gradle 部分的 Edit Configurations 對(duì)話框中:
如果要檢查不再被識(shí)別的 Android JUnit 配置,有以下兩種選擇:
在文本編輯器中打開手動(dòng)保存的配置,這些文件的位置由用戶指定,但文件通常出現(xiàn)在 <my-app>/.idea/runConfigurations/。在 <my-app>/.idea/workspace.xml臨時(shí)配置和在<component name="RunManager" ...>節(jié)點(diǎn)中查找, 例如:<component name="RunManager" selected="Gradle.PlantTest">
…
<configuration name="PlantTest" type="AndroidJUnit" factoryName="Android JUnit" nameIsGenerated="true">
<module name="Sunflower.app" />
<useClassPathOnly />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.google.samples.apps.sunflower.data.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="com.google.samples.apps.sunflower.data" />
<option name="MAIN_CLASS_NAME" value="com.google.samples.apps.sunflower.data.PlantTest" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="class" />
<option name="PARAMETERS" value="" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<method v="2">
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>新的后臺(tái)任務(wù)檢查器
可以使用新的 后臺(tái)任務(wù)檢查器 來可視化、監(jiān)控和調(diào)試應(yīng)用程序的后臺(tái)工作人員 。
首先將應(yīng)用程序部署到運(yùn)行 WorkManager Library[5] 2.5.0 或更高版本的設(shè)備,然后從菜單欄中選擇View > Tool Windows > App Inspection。
你可以通過單擊 worker 查看更多詳細(xì)信息,例如可以看到 worker 的描述,它是如何執(zhí)行的,它的 worker 鏈的細(xì)節(jié),以及執(zhí)行的結(jié)果。
你還可以通過從表中選擇一個(gè) worker 并單擊工具欄中的 Show Graph View 來 查看 worker 鏈的可視化,然后可以選擇鏈中的任何工作程序以查看其詳細(xì)信息,或者如果它當(dāng)前正在排隊(duì)或正在運(yùn)行,你也可以選擇停止它。
如果要返回表格,請(qǐng)單擊 Show List View 。
為了幫助調(diào)查執(zhí)行失敗的工作線程問題,開發(fā)者可以通過從表中選擇并單擊工具欄中的 Cancel Selected Worker 線程來停止當(dāng)前正在運(yùn)行或排隊(duì)的工作線程,還可以使用 All tags 下拉菜單,通過標(biāo)簽過濾來選擇表中的 workers。
從數(shù)據(jù)庫檢查器導(dǎo)出數(shù)據(jù)
現(xiàn)在開發(fā)者可以輕松地從 Database Inspector 導(dǎo)出數(shù)據(jù)庫、表和查詢結(jié)果,以在本地保存、共享或重新創(chuàng)建。
當(dāng)你在 Android Studio 中打開一個(gè)應(yīng)用程序項(xiàng)目并在 Database Inspector 中檢查 該項(xiàng)目的應(yīng)用程序時(shí),你可以通過以下方式之一開始導(dǎo)出數(shù)據(jù):
在 Databases 面板中選擇一個(gè)數(shù)據(jù)庫或表,然后單擊面板頂部附近的 Export to file 。 右鍵單擊 Databases 面板中的數(shù)據(jù)庫或表,然后從上下文菜單中選擇 Export to file。 在選項(xiàng)卡中檢查表或查詢結(jié)果時(shí),單擊表或查詢結(jié)果上方的 Export to file。 選擇導(dǎo)出操作后,可以使用 Export 對(duì)話框來幫助完成最后的步驟,如下所示,你可以選擇以下列一種或多種格式導(dǎo)出數(shù)據(jù):DB、SQL 或 CSV。
Updated UI for recording in Memory Profiler
我們?yōu)椴煌挠涗浕顒?dòng)整合了 Memory Profiler 用戶界面 (UI),例如捕獲堆轉(zhuǎn)儲(chǔ)和記錄 Java、Kotlin 和本機(jī)內(nèi)存分配。
該 Memory Profiler[6] 提供了以下選項(xiàng):
Capture heap dump:查看應(yīng)用程序中在特定時(shí)間點(diǎn)使用內(nèi)存的對(duì)象。 Record native allocations:查看每個(gè) C/C++ 對(duì)象在一段時(shí)間內(nèi)是如何分配的。 Record Java/Kotlin allocations:查看每個(gè) Java/Kotlin 對(duì)象在一段時(shí)間內(nèi)是如何分配的。 以下是如何使用這三個(gè)選項(xiàng):
要捕獲堆轉(zhuǎn)儲(chǔ),請(qǐng)選擇 Capture heap dump,然后選擇 Record ,在分析器完成對(duì)堆轉(zhuǎn)儲(chǔ)的捕獲后,內(nèi)存分析器 UI 將轉(zhuǎn)換到顯示堆轉(zhuǎn)儲(chǔ)的單獨(dú)頁面。
要在運(yùn)行 Android 10 及更高版本的設(shè)備上使用 Record native allocations,請(qǐng)選擇 Record native allocations ,然后選擇 Record ,而后記錄將保持到單擊 Stop 為止,之后 Memory Profiler UI 將轉(zhuǎn)換為顯示 native 記錄的單獨(dú)頁面。 在 Android 9 及更低版本上,Record native allocations 選項(xiàng)不可用。
要記錄 Java 和 Kotlin 分配,請(qǐng)選擇 Record Java / Kotlin allocations,然后選擇 Record。如果設(shè)備運(yùn)行的是 Android 8 或更高版本,Memory Profiler UI 將轉(zhuǎn)換為顯示正在進(jìn)行的記錄的單獨(dú)頁面,開發(fā)者可以與紀(jì)律上方的迷你時(shí)間線進(jìn)行交互(例如,更改選擇范圍),而如果要完成錄制,可以選擇 Stop 。 在 Android 7.1 及更低版本上,內(nèi)存分析器使用傳統(tǒng)分配記錄,它會(huì)在時(shí)間線上顯示記錄,直到單擊 Stop 。
更新鏈接的 C++ 項(xiàng)目
新版本已將與配置無關(guān)的
.cxx/文件從文件夾移動(dòng)到build/文件夾中。CMake C++ 構(gòu)建需要一個(gè)在配置階段用于執(zhí)行編譯和鏈接步驟的 Ninja 項(xiàng)目,通過 CMake 生成的項(xiàng)目成本比較高,所以有望在 gradle clean 中不被清理。
因此,它們存儲(chǔ)在文件夾
.cxx/旁邊的一個(gè)名為的build/文件夾中,通常 Android Gradle 插件會(huì)注意到配置更改并自動(dòng)重新生成 Ninja 項(xiàng)目。但是并非所有情況都可以檢測(cè)到,發(fā)生這種情況時(shí),可以使用 “Refresh Linked C++ Project” 選項(xiàng)手動(dòng)重新生成 Ninja 項(xiàng)目。用于多設(shè)備測(cè)試的新測(cè)試矩陣
Instrumentation tests 現(xiàn)在可以在多個(gè)設(shè)備上并行運(yùn)行,并且可以使用專門的 Instrumentation tests 結(jié)果面板進(jìn)行調(diào)查。使用此面板可以確定測(cè)試是否由于 API 級(jí)別或硬件屬性而失敗。
在各種 API 級(jí)別和形式因素上測(cè)試應(yīng)用程序,是確保所有用戶在使用您的應(yīng)用程序時(shí)獲得出色體驗(yàn)的最佳方法之一。
要利用此功能:
1、在 IDE 頂部中心的目標(biāo)設(shè)備下拉菜單中選擇 Select Multiple Devices 。
2、選擇目標(biāo)設(shè)備并單擊OK。
3、運(yùn)行測(cè)試。 要在 Run 面板中查看測(cè)試結(jié)果,請(qǐng)轉(zhuǎn)到 View > Tool Windows > Run 。
新的測(cè)試結(jié)果面板允許按狀態(tài)、設(shè)備和 API 級(jí)別過濾測(cè)試結(jié)果。此外可以通過單擊標(biāo)題對(duì)每列進(jìn)行排序,通過單擊單個(gè)測(cè)試單獨(dú)查看每個(gè)設(shè)備的日志和設(shè)備信息。
StateFlow支持?jǐn)?shù)據(jù)綁定對(duì)于使用協(xié)程的 Kotlin 應(yīng)用程序,現(xiàn)在可以使用 `StateFlow`[7] 對(duì)象作為數(shù)據(jù)綁定源來自動(dòng)通知 UI 數(shù)據(jù)的變化。數(shù)據(jù)綁定將具有生命周期感知能力,并且只會(huì)在 UI 在屏幕上可見時(shí)觸發(fā)。
要在
StateFlow綁定類中使用對(duì)象,需要指定生命周期所有者來定義StateFlow對(duì)象的范圍,并在布局中ViewModel使用綁定表達(dá)式將組件的屬性和方法分配給相應(yīng)的視圖,如下所示例子:class ViewModel() {
val username: StateFlow<String>
}<TextView
android:id="@+id/name"
android:text="@{viewmodel.username}" />如果在使用 AndroidX 的 Kotlin 應(yīng)用程序中
StateFlow,數(shù)據(jù)綁定的功能中會(huì)自動(dòng)包含支持,包括協(xié)程依賴項(xiàng)。要了解更多信息,請(qǐng)參閱使用可觀察數(shù)據(jù)對(duì)象[8]。
改進(jìn)了建議的導(dǎo)入
改進(jìn)了建議導(dǎo)入功能支持的庫數(shù)量,并更頻繁地更新索引。
建議導(dǎo)入可幫助開發(fā)者快速輕松地將某些 Google Maven 工件導(dǎo)入類和 Gradle 項(xiàng)目,當(dāng) Android Studio 從某些 Google 庫中檢測(cè)到未解析的符號(hào)時(shí),IDE 會(huì)建議將庫導(dǎo)入到類和項(xiàng)目中。
支持構(gòu)建分析器中的配置緩存
Build Analyzer[9]現(xiàn)在可識(shí)別項(xiàng)目何時(shí)未啟用配置緩存[10],并將其作為優(yōu)化提供。Build Analyzer 運(yùn)行兼容性評(píng)估,以在啟用之前通知項(xiàng)目中的配置緩存是否存在任何問題。
改進(jìn)的 AGP 升級(jí)助手
Android Gradle 插件[11]的 升級(jí)助手[12] 現(xiàn)在有一個(gè)持久的工具窗口,其中包含將要完成的步驟列表。
附加信息也顯示在工具窗口的右側(cè),如果需要還可以選擇不同版本的 AGP 進(jìn)行升級(jí),單擊Refresh 按鈕更新相應(yīng)的更新步驟。
非傳遞性 R 類的重構(gòu)
可以將非傳遞性 R 類與 Android Gradle 插件結(jié)合使用,為具有多個(gè)模塊的應(yīng)用程序?qū)崿F(xiàn)更快的構(gòu)建。
這樣做有助于防止資源重復(fù),確保每個(gè)模塊的 R 類只包含對(duì)其自身資源的引用,而不從其依賴項(xiàng)中提取引用。這會(huì)帶來更多最新的構(gòu)建以及避免編譯的相應(yīng)好處。
可以通過轉(zhuǎn)到 Refactor > Migrate to Non-transitive R Classes 來訪問此功能。
支持 Jetpack Compose 工具
我們現(xiàn)在為預(yù)覽和測(cè)試使用Jetpack Compose 的[13] 應(yīng)用程序提供額外支持。
為了獲得使用 Jetpack Compose 開發(fā)的最佳體驗(yàn),應(yīng)該使用最新版本的 Android Studio Arctic Fox 以開發(fā)者可以體驗(yàn) smart editor features[14],例如新項(xiàng)目模板和立即預(yù)覽 Compose UI 的能力。
Compose preview
@Preview 方法[15] 的以下參數(shù)現(xiàn)在可用:
showBackground:打開和關(guān)閉預(yù)覽的背景。 backgroundColor:設(shè)置僅在預(yù)覽表面中使用的顏色。 uiMode:這個(gè)新參數(shù)可以采用任何 Configuration.UI\_\*[16] 常量,并允許您更改預(yù)覽的行為,例如將其設(shè)置為夜間模式以查看主題的反應(yīng)。 Interactive preview
可以使用此功能與你的 UI 組件交互,單擊它們,然后查看狀態(tài)如何更改,這是獲取有關(guān) UI 反應(yīng)和預(yù)覽動(dòng)畫的反饋的快速方法。啟用它可單擊 Interactive 圖標(biāo)預(yù)覽將切換模式。
要停止時(shí)單擊頂部工具欄中的 Stop Interactive Preview。
Deploy to device
可以使用此功能將 UI 片段部署到設(shè)備,這有助于測(cè)試設(shè)備中代碼的一小部分而無需啟動(dòng)整個(gè)應(yīng)用程序。
單擊
@Preview注釋旁邊或預(yù)覽頂部的 Deploy to Device 圖標(biāo) ,Android Studio 會(huì)部署到連接的設(shè)備或模擬器。Live Edit of literals
我們添加了文字的實(shí)時(shí)編輯預(yù)覽,以幫助使用 Compose 的開發(fā)人員快速編輯其代碼中的文字(字符串、數(shù)字、布爾值)并立即查看結(jié)果而無需等待編譯。
此功能的目標(biāo)是通過在預(yù)覽、模擬器或物理設(shè)備中近乎即時(shí)地顯示代碼更改來幫助提高開發(fā)者的工作效率。
Compose support in the Layout Inspector
該 Layout Inspector 可以讓開發(fā)這看到連接設(shè)備應(yīng)用程序布局的豐富細(xì)節(jié),應(yīng)用程序交互并查看工具中的實(shí)時(shí)更新,以快速調(diào)試可能出現(xiàn)的問題。
開發(fā)者可以檢查使用新的 Android 聲明式 UI 框架 Jetpack Compose 編寫的布局,無論應(yīng)用程序使用完全由 Compose 編寫的布局,還是使用 Compose 和 Views 的混合布局,布局檢查器都 可以幫助開發(fā)者了解布局在運(yùn)行設(shè)備上的呈現(xiàn)方式。
開始
首先,將應(yīng)用程序部署到連接的設(shè)備,然后通過選擇 View > Tool Windows > Layout Inspector 打開 Layout Inspector 窗口。
如果 Layout Inspector 沒有自動(dòng)連接到應(yīng)用程序進(jìn)程,請(qǐng)從進(jìn)程下拉列表中選擇所需的應(yīng)用程序進(jìn)程,應(yīng)該很快就會(huì)在工具窗口中看到應(yīng)用程序布局。
要開始檢查 Compose 布局,請(qǐng)選擇渲染中可見的布局組件 Component Tree 中 選擇它。
Attributes 窗口將顯示目前所選擇的組合功能的詳細(xì)信息。在此窗口中可以檢查函數(shù)的參數(shù)及其值,包括修飾符和 lambda 表達(dá)式。
對(duì)于 lambda 表達(dá)式,檢查器提供了一個(gè)快捷方式來幫助導(dǎo)航到源代碼中的表達(dá)式。
Layout Inspector 顯示調(diào)用堆棧的所有功能,組件到應(yīng)用的布局。在許多情況下,這包括 Compose 庫在內(nèi)部調(diào)用的 Compose 函數(shù)。如果只想查看應(yīng)用程序直接調(diào)用的 Component Tre中的 Compose 函數(shù),可單擊過濾器操作,這可能有助于將樹中顯示的節(jié)點(diǎn)數(shù)量減少到可能想要檢查的數(shù)量。
改進(jìn)部署下拉菜單
設(shè)備下拉列表現(xiàn)在可以區(qū)分選擇的設(shè)備配置中的不同類型的錯(cuò)誤。
圖標(biāo)和樣式更改現(xiàn)在區(qū)分 錯(cuò)誤(導(dǎo)致配置損壞的設(shè)備選擇)和 警告(可能導(dǎo)致意外行為但仍可運(yùn)行的設(shè)備選擇)。
此外如果嘗試將項(xiàng)目啟動(dòng)到出現(xiàn)錯(cuò)誤或相關(guān)警告的設(shè)備,Android Studio 現(xiàn)在會(huì)發(fā)出警告。
新的 Wear OS 配對(duì)助手
新的 Wear OS 配對(duì)助手可指導(dǎo)開發(fā)人員直接在 Android Studio 中將 Wear OS 模擬器與物理或虛擬手機(jī)配對(duì)。
該助手可以幫助在手機(jī)上安裝正確的 Wear OS Companion 應(yīng)用,并在兩臺(tái)設(shè)備之間建立連接,你可以通過轉(zhuǎn)到設(shè)備下拉菜單 > Wear OS Emulator Pairing Assistant 。
響應(yīng)式布局模板
Android Studio Arctic Fox 現(xiàn)在包含一個(gè)新的布局模板,可適應(yīng)各種顯示尺寸和應(yīng)用調(diào)整大小,例如手機(jī)、可折疊設(shè)備、平板電腦和分屏模式。
創(chuàng)建新項(xiàng)目或模塊時(shí),選擇響應(yīng)式活動(dòng)模板以創(chuàng)建具有動(dòng)態(tài)調(diào)整大小的組件的布局。
通過 File > New,選擇 New Project 或 New Module,然后選擇 Responsive Activity 模板。
補(bǔ)丁不適用于 Windows for v3.6-v4.1
Windows 平臺(tái)上 v3.6-v4.1 到 Android Studio Arctic Fox 穩(wěn)定版的補(bǔ)丁可能不起作用。
參考資料
[1] https://developer.android.com/studio/releases
[2]https://www.jetbrains.com/idea/
[3]https://developer.android.com/studio/releases/gradle-plugin#versioning-update
[4]https://developer.android.com/studio/run/rundebugconfig#creating
[5]https://developer.android.com/jetpack/androidx/releases/work
[6]https://developer.android.com/studio/profile/memory-profiler
[7]https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/
[8]https://developer.android.com/topic/libraries/data-binding/observability#lifecycle-objects
[9]https://developer.android.com/studio/build/build-analyzer
[10]https://docs.gradle.org/current/userguide/configuration_cache.html
[11]https://developer.android.com/studio/releases#agp-upgrade-assistant
[12]https://developer.android.com/studio/releases#agp-upgrade-assistant
[13]https://developer.android.com/jetpack/compose/setup
[14]https://developer.android.com/jetpack/compose/tooling
[15]https://developer.android.com/jetpack/compose/tooling#preview-features
[16]https://developer.android.com/reference/android/content/res/Configuration#UI_MODE_NIGHT_MASK
轉(zhuǎn)自:戀貓de小郭
https://juejin.cn/post/6990174358228434951
1、滴滴、滿幫、Boss直聘都被調(diào)查,為啥知乎美國上市沒被查?
2、字節(jié)跳動(dòng)重大宣布:取消!員工炸了:直接降薪1

























