Android Studio 4.1 發(fā)布柠座,全方位提升開發(fā)體驗

我們很高興發(fā)布了 Android Studio 4.1 穩(wěn)定版,為大家?guī)硪幌盗嗅槍ΤR姷木庉嫛⒄{(diào)試和優(yōu)化工作的功能浩销。4.1 版本的重點訴求之一是幫助您在使用 Android Jetpack 庫 (即 Android 的開發(fā)庫套件) 時遵循最佳實踐和提升代碼編寫效率√蓿基于大家的反饋慢洋,我們直接在 IDE 中集成了諸多常用的 Android 庫,從而改善了編寫代碼的體驗陆盘。

Android Studio 4.1 的一些亮點如下: 引入全新的 Database Inspector普筹,用于查詢應用的數(shù)據(jù)庫;支持瀏覽使用 Dagger 或 Hilt 進行依賴項注入的項目隘马;支持在 Android 項目中使用 TensorFlow Lite 模型太防,進一步增強了對設(shè)備端機器學習的支持。我們還對 Apply Changes 進行了更新祟霍,以加快部署速度杏头。我們根據(jù)大家的反饋進行了一些更改,引入了新的原生內(nèi)存性能分析器和獨立分析工具來為游戲開發(fā)者提供助力沸呐。

產(chǎn)品質(zhì)量仍然是團隊的主要關(guān)注點醇王,我們一直在努力解決錯誤和性能問題。從大家的反饋來看崭添,許多開發(fā)者十分認同我們專注于提高性能和可靠性的舉措寓娩。很高興地告訴大家,在本次發(fā)布周期中呼渣,我們修復了 2,370 個錯誤棘伴,解決了 275 個公共問題。高品質(zhì)是我們一貫堅持的目標屁置,因為我們知道這是提高開發(fā)者工作效率的關(guān)鍵焊夸。

許多用戶在預覽版中提供了早期反饋,在此對大家表示感謝蓝角。正是有了各位的反饋阱穗,Android Studio 4.1 中的功能才得以迭代和改進。如果您已準備好使用這個全新的穩(wěn)定版本使鹅,通過一系列全新的功能提升工作效率揪阶,可以在這里 下載 并開始使用。

下面按關(guān)鍵開發(fā)流程列出了 Android Studio 4.1 中的所有 新功能患朱。

設(shè)計

Material Design 組件更新

現(xiàn)在鲁僚,創(chuàng)建新項目 (New Project) 對話框中的 Android Studio 模板使用 Material Design 組件 (MDC),并且默認支持最新版的主題和樣式設(shè)計指南。如此一來冰沙,開發(fā)者可以更輕松地使用推薦的 Material 樣式模式侨艾,以及支持現(xiàn)代界面功能 (如深色主題)。

△ 項目模板中的 Material Design 組件更新

更新包括:

  • MDC: 項目使用 build.gradle 中的 com.google.android.material:material拓挥〗螅基礎(chǔ)應用主題使用 Theme.MaterialComponents 父級,并覆蓋更新后的 MDC 顏色和 "on" 屬性撞叽。
  • 顏色資源: colors.xml 中的顏色資源使用字面名稱 (例如,使用 purple_500 而不是 colorPrimary)插龄。
  • 主題資源: 主題資源位于 themes.xml (而非 styles.xml) 中并使用 Theme.<ApplicationName> 名稱愿棋。
  • 深色主題: 基礎(chǔ)應用主題使用 DayNight 父級,并分為 res/values 和 res/values-night均牢。
  • 主題屬性: 在布局和樣式中將顏色資源稱為主題屬性 (例如 ?attr/colorPrimary)糠雨,以避免硬編碼顏色。

開發(fā)

Database Inspector

我們希望借助新的 Database Inspector 來簡化應用數(shù)據(jù)庫的檢查徘跪、查詢和修改操作甘邀。首先,將您的應用部署到運行 API 26 或更高級別的設(shè)備垮庐,然后從菜單中依次選擇 View > Tool Windows > Database Inspector松邪。無論您的應用是直接使用 Jetpack Room 開發(fā)庫還是 Android 平臺版本的 SQLite,您現(xiàn)在都可以輕松檢查正在運行的應用中的數(shù)據(jù)庫和表哨查,或運行自定義查詢逗抑。

由于 Android Studio 在您檢查應用時會保持實時連接,因此您也可以使用 Database Inspector 對數(shù)值進行修改寒亥,并在運行的應用中查看結(jié)果邮府。如果您使用 Room 持久庫,Android Studio 還會在代碼編輯器的每個查詢旁邊插入運行按鈕溉奕,以幫助您快速運行在 @Query 注解中定義的查詢褂傀。您可以閱讀 官方文檔 了解詳情。

△ 使用 Database Inspector 檢查加勤、查詢和修改應用數(shù)據(jù)庫

直接在 Android Studio 中運行 Android 模擬器

現(xiàn)在仙辟,您可以直接在 Android Studio 中運行 Android 模擬器。此功能有助于節(jié)省屏幕空間胸竞,您可以使用熱鍵在模擬器和編輯器窗口之間快速導航欺嗤,并在一個應用窗口中組織您的 IDE 和模擬器工作流。您可以在 Studio 中管理快照以及旋轉(zhuǎn)和截圖等常見的模擬器操作卫枝,但要使用全部功能選項煎饼,仍然需要使用穩(wěn)定的模擬器。您可以按照這個菜單路徑啟用此功能: File → Settings → Tools → EmulatorLaunch in Tool Window校赤。

△ 在 Android Studio 中運行 Android Emulator

Dagger 導航支持

Dagger 是 Android 上常用的依賴項注入庫吆玖。Android Studio 提供了新的 gutter 操作并擴展了 Find Usages 窗口中的支持筒溃,使得在 Dagger 相關(guān)代碼之間導航更加簡單。例如沾乘,點擊使用給定類型的方法旁邊的

image
gutter 操作怜奖,會將您導航到提供該類型的位置。相反翅阵,點擊
image
gutter 操作會將您導航到將類型用作依賴項的位置歪玲。Android Studio 還支持對使用 Jetpack Hilt 庫定義的依賴項執(zhí)行導航操作。您可以閱讀 官方文檔 了解詳情掷匠。

△ 使用 gutter 操作在 Dagger 相關(guān)代碼之間導航

使用 TensorFlow Lite 模型

目前滥崩,Android 開發(fā)者紛紛利用機器學習來打造新穎、實用的體驗讹语。TensorFlow Lite 是常見的用于編寫移動端機器學習模型的開發(fā)庫钙皮,我們希望簡化將這些模型導入 Android 應用的過程。與視圖綁定類似顽决,Android Studio 會生成易于使用的類短条,幫助您精簡運行模型所需的代碼并提升類型安全性。ML Model Binding (ML 模型綁定) 當前的實現(xiàn)支持圖像分類和風格轉(zhuǎn)換模型才菠,前提是它們通過元數(shù)據(jù)得到了增強茸时。

要查看導入模型的詳細信息以及如何在應用中使用,請雙擊項目中的 .tflite 模型文件以打開模型查看器頁面赋访。您可以閱讀 官方文檔 了解詳情屹蚊。

△ 在 Android Studio 4.1 中查看 TensorFlow Lite 模型元數(shù)據(jù)

構(gòu)建和測試

Android 模擬器 - 可折疊設(shè)備鉸鏈信息支持

Android Studio

除了最近新增的 5G 移動網(wǎng)絡(luò)測試 功能,我們還在 Android 模擬器中增加了對可折疊設(shè)備的支持进每。在 Android 模擬器 30.0.26 及更高版本中汹粤,您可以使用多種折疊設(shè)計和配置對可折疊設(shè)備進行設(shè)置。設(shè)置完畢后田晚,模擬器將提供鉸鏈角度傳感器和姿態(tài)變化信息嘱兼,方便您測試應用在這些機型上的響應情況。請參閱博文《使用 Android 模擬器在 Android 11 上進行開發(fā)》了解更多贤徒。

Apply Changes 更新

更快的構(gòu)建有助于開發(fā)者更輕松芹壕、快速地更改應用。為了幫助您提高應用迭代效率接奈,我們對 Android 11 或更高版本設(shè)備的 Apply Changes 進行了多項增強踢涌。

我們在優(yōu)化迭代速度上進行了大力投入,開發(fā)出一種無需安裝應用即可在設(shè)備上部署和保存更改的方法⌒蚧拢現(xiàn)在睁壁,在完成初始部署后,通過 Apply Code Changes 或 Apply Changes and Restart Activity 對 Android 11 設(shè)備進行后續(xù)部署的速度大幅提升。我們還在 Apply Changes 中 增加了對其他代碼更改的支持∨嗣鳎現(xiàn)在行剂,在您添加一個方法后,可點擊 Apply Code Changes 或 Apply Changes and Restart Activity 按鈕將這些更改部署到正在運行的應用中钳降。

從 AAR 中導出 C/C++ 依賴項

Android Gradle Plugin 4.0 增加了 在 AAR 依賴項中導入 Prefab 軟件包 的功能厚宰。我們希望擴展此功能以共享原生庫。AGP 4.1 支持在 Android 庫項目的 AAR 中從外部原生構(gòu)建中導出庫遂填。要導出原生庫铲觉,請將以下內(nèi)容添加到庫項目 build.gradle 文件的 android 塊中:

buildFeatures {
    prefabPublishing true
}

prefab {
    mylibrary {
        headers "src/main/cpp/mylibrary/include"
    }

    myotherlibrary {
        headers "src/main/cpp/myotherlibrary/include"
    }
}

原生代碼崩潰報告符號化解析

當原生代碼發(fā)生崩潰或 ANR 時,系統(tǒng)會生成堆棧軌跡吓坚,即程序崩潰前所調(diào)用的嵌套函數(shù)序列的快照备燃。這些快照可以幫助您識別和修復源代碼中的問題,但是必須首先將它們符號化凌唬,以將計算機地址轉(zhuǎn)換回人類可讀的函數(shù)名。

如果您的應用或游戲是使用 C++ 之類的原生代碼開發(fā)的漏麦,那么您現(xiàn)在可以將每個版本應用的調(diào)試符號文件上傳到 Play 管理中心客税。Play 管理中心使用這些調(diào)試符號文件來符號化您應用的堆棧軌跡,從而簡化崩潰和 ANR 分析撕贞。如果要將調(diào)試符號包含在 App Bundle 中更耻,請將下方內(nèi)容添加到項目的 build.gradle 文件中:

android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'

優(yōu)化

System Trace 界面改進

在 Android Studio 4.1 中,我們對 System Trace 進行了全面改進捏膨,該優(yōu)化工具可讓您實時了解應用對系統(tǒng)資源的使用情況秧均。通過框選模式還可以更輕松地選擇跟蹤記錄,此外号涯,我們還添加了新的分析標簽頁目胡,并添加了更多的幀渲染數(shù)據(jù),以幫助您調(diào)查應用界面中的渲染問題链快。您可以閱讀 官方文檔 了解詳情誉己。

框選 : 在 Threads 部分中,您現(xiàn)在可以拖動鼠標來框選一個矩形區(qū)域域蜗,并點擊右上角的 Zoom to Selection 按鈕 (或使用鍵盤快捷鍵 M) 來放大該區(qū)域巨双。當您將相似的線程拖放到一起后,可以跨多個線程進行框選以同時檢查所有線程霉祸。

△ 使用框選模式可以更輕松地選擇跟蹤記錄

Summary 選項卡: Analysis 面板中全新的 Summary 選項卡會顯示以下內(nèi)容:

  • 特定事件的所有實例的匯總統(tǒng)計信息筑累,例如實例計數(shù)和最小/最大持續(xù)時間。
  • 選定實例的跟蹤事件統(tǒng)計信息丝蹭。
  • 有關(guān)線程狀態(tài)分布的數(shù)據(jù)慢宗。
  • 所選跟蹤事件內(nèi)運行時間最長的實例。
△ 在 Summary 選項卡中查看匯總統(tǒng)計信息

△ 在 Summary 選項卡中查看匯總統(tǒng)計信息

顯示數(shù)據(jù): 在 Display 部分,SurfaceFlingerVSYNC 的新時間軸可幫助您調(diào)查應用界面中的渲染問題婆廊。

獨立分析器

現(xiàn)在可以在獨立于 Android Studio 主窗口的單獨窗口中訪問 Android Studio 分析器迅细。在優(yōu)化使用其他工具 (如 Unity 或 Visual Studio) 構(gòu)建的 Android 游戲時,此功能十分有用淘邻。

要運行獨立分析器茵典,請執(zhí)行以下操作:

  1. 確保您的系統(tǒng)現(xiàn)在沒有運行 Android Studio 中的分析器。

  2. 轉(zhuǎn)到安裝目錄并導航到 bin 目錄:

Windows/Linux:

<studio-installation-folder>\bin

macOS:

<studio-installation-folder>/Contents/bin

  1. 根據(jù)您的操作系統(tǒng)宾舅,運行 profiler.exeprofiler.sh

獨立分析器可連接到 Android Emulator 或其他已連接的設(shè)備上统阿。

△ 使用獨立 Android Studio 分析器優(yōu)化您的應用

原生內(nèi)存性能分析器

跟蹤原生內(nèi)存的使用情況對于游戲開發(fā)者和其他使用 C++ 的開發(fā)者十分重要,他們可以據(jù)此優(yōu)化其應用的內(nèi)存使用筹我。Android Studio 內(nèi)存性能分析器 (Memory Profiler) 現(xiàn)在包含一個原生內(nèi)存性能分析器 (Native Memory Profiler)扶平,專門用于運行在 Android 10 或更高版本的實體設(shè)備上的應用。原生內(nèi)存性能分析器可以跟蹤特定時間段內(nèi)原生代碼中對象的分配 / 銷毀情況蔬蕊,并提供內(nèi)存總體分配和系統(tǒng)堆剩余大小的信息结澄。

要啟動記錄,請點擊 Memory Profiler 窗口頂部的 Record native allocations:

△ 使用原生內(nèi)存性能剖析器查看原生內(nèi)存分配情況

總結(jié)

簡要回顧一下岸夯,Android Studio 4.1 包括以下新增及改進功能:

設(shè)計

  • Material Design 組件更新

開發(fā)

  • Database Inspector
  • 直接在 Android Studio 中運行 Android 模擬器
  • Dagger 導航支持
  • 使用 TensorFlow Lite 模型

構(gòu)建和測試

  • Android 模擬器 - 可折疊設(shè)備鉸鏈信息支持
  • Apply Changes 更新
  • 從 AAR 中導出 C/C++ 依賴項
  • 原生代碼崩潰報告符號化解析

優(yōu)化

  • System Trace 界面改進
  • 獨立分析器
  • 原生內(nèi)存性能分析器

本文作者 / Scott Swarthout, 產(chǎn)品經(jīng)理

文中資料并非由 Unity Technologies 或其附屬公司贊助或與其有關(guān)聯(lián)麻献。“Unity”是 Unity Technologies 或其附屬公司在美國和其他地區(qū)的商標或注冊商標猜扮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勉吻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旅赢,更是在濱河造成了極大的恐慌齿桃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件煮盼,死亡現(xiàn)場離奇詭異短纵,居然都是意外死亡,警方通過查閱死者的電腦和手機僵控,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門踩娘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喉祭,你說我怎么就攤上這事养渴。” “怎么了泛烙?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵理卑,是天一觀的道長。 經(jīng)常有香客問我蔽氨,道長藐唠,這世上最難降的妖魔是什么帆疟? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮宇立,結(jié)果婚禮上踪宠,老公的妹妹穿的比我還像新娘。我一直安慰自己妈嘹,他們只是感情好柳琢,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著润脸,像睡著了一般柬脸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毙驯,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天倒堕,我揣著相機與錄音,去河邊找鬼爆价。 笑死垦巴,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的铭段。 我是一名探鬼主播骤宣,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稠项!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鲜结,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤展运,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后精刷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拗胜,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年怒允,在試婚紗的時候發(fā)現(xiàn)自己被綠了埂软。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡纫事,死狀恐怖勘畔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丽惶,我是刑警寧澤炫七,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站钾唬,受9級特大地震影響万哪,放射性物質(zhì)發(fā)生泄漏侠驯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一奕巍、第九天 我趴在偏房一處隱蔽的房頂上張望吟策。 院中可真熱鬧,春花似錦的止、人聲如沸檩坚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽效床。三九已至,卻和暖如春权谁,著一層夾襖步出監(jiān)牢的瞬間剩檀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工旺芽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沪猴,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓采章,卻偏偏與公主長得像运嗜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子悯舟,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354