色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在 I/O 看未來 | Android 性能相關最新動態

谷歌開發者 ? 來源:未知 ? 2023-06-04 23:45 ? 次閱讀
作者 / Ben Weiss

過去幾年來,我們一直致力于讓性能提升工作變得更易上手、回報更高。我們將在本文中分享這一領域的最新發展動態。為您介紹基準配置文件Android Studio 中的工具改進,以及我們如何讓這項技術更好地在后臺為您服務。此外,我們非常高興地分享在基準配置文件上使用的全新實驗性技術,助您大幅提升啟動性能。歡迎您繼續閱讀以全面了解 2023 年 Google I/O 大會期間發布的 Android 性能的最新動態,我們也在本文結尾處與您分享了性能探索之旅中切實可行的舉措。

基準配置文件更新

基準配置文件可以通過避免即時 (JIT) 編譯,將應用啟動和運行時的代碼執行速度提升約 30%。為此,我們構建了多款工具來幫助您簡化基準配置文件的創建和維護工作,其中包括全新 Android Studio 模板基準配置文件 Gradle 插件。現在,您可以借助 Android Studio Hedgehog 和 Android Gradle 插件 8.0.0 或更新版本,即刻開始使用這兩款工具。

借助基準配置文件 Gradle 插件

簡化配置文件生成

基準配置文件 Gradle 插件可以在本地開發和 CI 過程中,進一步簡化基準配置文件的生成和維護過程。此插件可以執行生成基準配置文件和將其安裝到應用模塊所需的所有必要步驟。 如要使用此插件,您可以在項目中添加一個插樁測試模塊,并設定一組通過在您的應用中導航來模擬關鍵用戶歷程的測試。在運行插樁測試時,基準配置文件 Gradle 插件會跟蹤在這類用戶歷程中執行的所有類和方法,并基于這些類和方法生成基準配置文件。然后,此插件會將生成的基準配置文件復制到應用模塊的源集中。 應用此插件后,您可以使用構建腳本中的全新 baselineProfile 塊對其進行配置。generateBaselineProfile 任務會代您運行所有基準配置文件測試。由此生成的配置文件將存儲在生成的文件夾中,供您在此訪問。這些功能使得在本地和遠程 CI 服務器上自動生成基準配置文件的過程更順暢。此外,通過指定要在生成配置文件時使用的 Gradle 管理的設備,您甚至不再需要附加實體設備。此插件的 DSL 支持高度可配置的設置,讓您可以自動化并重現基準配置文件生成過程。 您可以查看代碼示例 (目前位于單獨分支) 和指導文檔,即刻開始使用。

  • 代碼示例

    https://github.com/android/performance-samples/tree/bpgp/MacrobenchmarkSample

  • 指導文檔

    https://developer.android.google.cn/topic/performance/baselineprofiles/create-baselineprofile

使用 AGP 8 及以上版本創建和管理多個基準配置文件源文件

AGP 8 及以上版本支持多源文件、多種特定配置文件和上方提及的新版 Gradle 插件,且支持更輕松地生成基準配置文件。現在,基準配置文件的默認位置是 src/main/baselineProfiles/。此插件可將儲存在此目錄中的基準配置文件源文件提取并合并到您的應用中。幫助您單獨存儲應用啟動和每個不同的用戶歷程所需的配置文件。

06499b3a-02ed-11ee-90ce-dac502259ad0.png

△ Macrobenchmark 示例中的多個基準配置文件源文件

使用 Android Studio 基準配置文件生成器模板更輕松上手

為了幫助您開始使用基準配置文件,Android Studio Hedgehog (2023.1.1) 添加了基準配置文件生成器模塊向導模板。使用此模板,您的應用可以通過視覺輔助方式設置基準配置文件。 首先前往 "文件">"新建">"新模塊",然后在模板列表中選擇 "基準配置文件生成器"。

066884c8-02ed-11ee-90ce-dac502259ad0.png

基準配置文件生成器向導

操作完成后,此模板將為您進行多項更改。它會創建包含基本生成器和基準測試的全新 :baselineprofile 測試模板。BaselineProfileGenerator 類會為您創建基本基準配置文件,而 StartupBenchmarks 可以驗證一切是否合乎預期。此外,系統將在相關模塊中應用基準配置文件 Gradle 插件。最后,此生成器將添加有關 androidx.profileinstaller 的依賴項,以協助進行本地驗證并確保向后兼容性。

在這里,您只需執行 "生成基準配置文件" 運行配置,此操作會運行所含的基準配置文件生成器,并將生成的配置文件復制到src/release/generated/baselineProfile

06873a08-02ed-11ee-90ce-dac502259ad0.png

△ "生成基準配置文件" 運行配置

運行配置會調用 generateBaselineProfile 任務,查找所有基準配置文件生成器并只運行這些生成器。

BaselineProfileGenerator 是一個非常基礎的生成器,它只會啟動您的應用并等待應用啟動完成。我們建議為您應用的每個關鍵用戶歷程創建一個基準配置文件。由于不同應用的用戶歷程各不相同,您需要自行決定優化哪些內容。可以先從與業務成果直接相關的任何內容開始,如注冊、登錄、結帳或您應用提供的其他主要操作。您可以從我們的代碼示例中尋找靈感。

  • 應用啟動

    https://developer.android.google.cn/topic/performance/vitals/launch-time

  • 代碼示例

    http://github.com/android/performance-samples/tree/main/MacrobenchmarkSample

歡迎您立即下載 Android Studio Hedgehog Canary,開始體驗:

https://developer.android.google.cn/studio/preview

如需了解整個新手入門過程導覽,您可以查看已更新的 Codelab: 通過基準配置文件提升應用性能:

https://developer.android.google.cn/codelabs/android-baseline-profiles-improve

引入啟動配置文件

和 Dex 布局優化

自版本 8.1 起,Android Gradle 插件 (AGP) 便可將應用啟動所需的代碼導入應用的主要 Dex 文件。這項優化被稱為 Dex 布局優化,有助于減少應用啟動期間發生的 Dex 頁面錯誤。由于自應用啟動至應用完成啟動的整個過程只需加載一個 Dex 文件,這使得應用啟動速度大幅提升。

06b4aa1a-02ed-11ee-90ce-dac502259ad0.png

Dex 布局優化前后

雖然 AGP 可以為您的應用創建單獨的 Dex 文件,但若沒有您的幫助,它無法知道是什么完全定義應用啟動。這時,啟動配置文件就可以派上用場了。您可以將啟動配置文件視作專為應用啟動定制的基準配置文件的一個子集。兩者擁有相同的格式,并且使用相同的底層技術。由于每個應用的啟動過程并不相同,庫對啟動配置文件毫無助益。

與需要解釋和 JIT 編譯的應用相比,基準配置文件使得性能提升了約 30 %,例如在推送更新后。我們對 Dex 布局優化進行的早期測試顯示,除了基準配置文件帶來的提升之外,這項優化使得應用啟動的性能額外提升了 30%。這些性能提升已經在冷啟動中十分常見,即使您的生產應用已經擁有運行良好的云配置文件,這項優化也會大有裨益。

如要充分利用 Dex 布局優化和啟動配置文件,您需要讓 Android 框架知道您的應用何時完成啟動。如果您什么都不做,此框架將在繪制第一幀時便認為應用已經完成啟動。為了確保啟動配置文件包含用戶接管之前的所有信息,請使用 reportFullyDrawn API。您可以通過 FullyDrawnReporter 或 Compose ReportDrawn API 實現這一點。此外,您需要定義啟動基準測試的終點,即您認為啟動完成的時間點。將 reportFullyDrawn 調用與您期望在應用可供使用時屏幕上顯示的內容相匹配。

  • FullyDrawnReporter

    https://developer.android.google.cn/reference/kotlin/androidx/activity/FullyDrawnReporter

  • ReportDrawn

    https://developer.android.google.cn/reference/kotlin/androidx/activity/compose/package-summary#ReportDrawn()

您可以在指導文檔中詳細了解 Dex 布局優化和啟動配置文件:

https://developer.android.google.cn/topic/performance/baselineprofiles/dex-layout-optimizations

Macrobenchmark 庫的

最新進展

Macrobenchmark 庫讓您可以衡量應用性能,創建基準配置文件并監控應用更改對應用性能有無影響。1.2.0 版將很快升級到 Beta 版。以下是一些功能亮點。

在基準測試中使用

全新 Android 平臺功能

在 Android 13 及更高版本中,您可以使用 BaselineProfileRule 在未取得 Root 權限的設備或模擬器上生成基準配置文件。

在 Android 14 及更高版本中,您不再需要每次運行基準測試時都重新安裝目標應用。這讓應用可以在運行之間保存狀態,如緩存、會話狀態或登錄令牌。此項更改讓您在檢測之前無需手動注入 (需要已取得 Root 權限的設備) 這些狀態。

新 API

基準配置文件生成已不再處于實驗階段

在使用 collectBaselineProfile 方法創建基準配置文件時,您可以選擇從代碼中刪除實驗性 API 注解。但如果您仍然使用實驗性 API,我們會提供一款新的 API 供您考慮。

新引入的 collectStableBaselineProfile 會運行并等待,直到系統認為配置文件對于給定迭代數量來說足夠穩定。這意味著您應用的基準配置文件將能更好地反映應用在執行代碼路徑時的具體操作。
@OptIn(ExperimentalStableBaselineProfilesApi::class)
@Test
fun profileGenerator() {
   rule.collectStableBaselineProfile(
       packageName = TARGET_PACKAGE,
       maxIterations = 10
   ) {
       profileBlock()
   }
}

自定義跟蹤記錄處理讓指標更有效

PerfettoTraceRule 可以在測試中啟用自定義跟蹤記錄收集,而不再需要基準測試 (需要 API 級別 23 及以上)。這是一項非常強大的功能,讓用戶可以收集與測試相關的性能和時間數據。

PerfettoTraceProcessor 支持查詢跟蹤記錄內容,并且是所有現有 Macrobenchmark Metric API 的幕后引擎。現在,您可以將它與 TraceMetric 搭配使用,來制定完全自定義的指標,就像 Macrobenchmark 對 Perfetto 系統跟蹤記錄的任何信息所執行的操作一樣。這是另外一項強大的功能,便于用戶進一步自定義基準。

從基準測試中歸因功耗

全新 PowerMetric API 可用于衡量耗電量和電源狀態。這項非常有用的功能讓用戶可以跟蹤基準測試的耗電量。

問題修復和其他改進

Macrobenchmark 的幕后團隊還在人體工程學方面進行了多項改進,修復了錯誤,并改善了整體行為。如需了解詳情,您可以參閱官方文檔。若要深入了解,您可以查看所有版本說明,其中包含附加代碼和問題跟蹤。

  • 官方文檔

    https://developer.android.google.cn/topic/performance/benchmarking/macrobenchmark-overview

  • 版本說明

    https://developer.android.google.cn/jetpack/androidx/releases/benchmark

Android Studio 電源性能分析器

Android Studio Hedgehog 采用全新性能分析器,可以展示按照子系統 (如相機、GPS 等) 細分的實體設備的功耗情況。這些數據會在記錄系統跟蹤記錄時提供,并且有助于直觀地將設備功耗與應用中正在發生的操作關聯起來。例如,您可以執行 A/B 測試,批處理 API 和單獨調用 API,以優化蜂窩網絡電源軌中的功耗。

06cfbc92-02ed-11ee-90ce-dac502259ad0.png

Android Studio Hedgehog 中的全新電源性能分析器 (Power Profiler) 首先,使用 Pixel 6 及以上版本的設備記錄系統跟蹤記錄并將其加載至 Android Studio,或者使用性能分析器直接從附加設備捕獲系統跟蹤記錄。
  • 記錄系統跟蹤記錄https://developer.android.google.cn/topic/performance/tracing

為什么需要重視性能

在處理應用性能時,找到正確的入手點并非易事。通過與 Android 開發者社區合作,我們發現工程師有時缺乏正確的信息來證明致力于提升應用性能的重要性。

提升性能對于用戶和企業來說有諸多優勢。對于用戶而言,能夠快速響應的應用可以帶來更出色的用戶體驗。您的用戶將能快速且輕松地獲得他們需要的信息,并且更有可能繼續使用您的應用。

對于企業而言,性能提升可以增加收入并降低成本。若用戶滿意您的應用,他們更有可能通過購買或其他操作,促進您的業務增長。此外,高性能應用有助于節省開發和維護成本。

后續步驟

  1. 借助全新 Gradle 插件設置您的應用,以開始使用基準配置文件
  2. 升級至 Android Gradle 插件 8 及以上版本
  3. 將現有基準配置文件移入新的默認目錄 src/main/baselineProfiles/
  4. 下載 Android Studio Hedgehog Canary,查看基準配置文件模板和電源性能分析器 (Power Profiler)
  5. 查看我們更新的 Codelab 獲取導覽
  6. 使用 Fully Drawn 和 collectStableBaselineProfile API,獲取更完善的基準配置文件
  7. 開始使用 Dex 布局優化,獲得更多性能提升
  8. 實施您的專屬 Macrobenchmark 測試,以衡量性能隨時間的變化情況
  9. 在 Pixel 6 及以上版本設備上記錄系統跟蹤,查看不同子系統 (相機、GPS、CPU 等) 的功耗
  10. 分享本文,幫助更多開發者提升應用性能

  • Gradle 插件

    https://developer.android.google.cn/topic/performance/baselineprofiles/create-baselineprofile#baseline-profile-gradle-plugin

  • 基準配置文件

    https://developer.android.google.cn/topic/performance/baselineprofiles/overview

  • Android Studio Hedgehog

    https://developer.android.google.cn/studio/preview

  • 查看我們更新的 Codelab

    https://developer.android.google.cn/codelabs/android-baseline-profiles-improve

  • Dex 布局優化

    https://developer.android.google.cn/topic/performance/baselineprofiles/dex-layout-optimizations

073ce5ce-02ed-11ee-90ce-dac502259ad0.gif?點擊屏末||即刻使用基準配置文件

075738a2-02ed-11ee-90ce-dac502259ad0.png

0764f35c-02ed-11ee-90ce-dac502259ad0.png

07911216-02ed-11ee-90ce-dac502259ad0.png


原文標題:在 I/O 看未來 | Android 性能相關最新動態

文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 谷歌
    +關注

    關注

    27

    文章

    6164

    瀏覽量

    105327

原文標題:在 I/O 看未來 | Android 性能相關最新動態

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    直接I/O

    電子發燒友網站提供《直接I/O庫.pdf》資料免費下載
    發表于 10-14 10:55 ?0次下載
    直接<b class='flag-5'>I</b>/<b class='flag-5'>O</b>庫

    E系列I/O模塊光伏制絨設備的應用

    光伏設備產線較長,各分布點若采用PLC+IO擴展的方式將會大大增加系統成本及開發難度,方案推薦采用E系列遠程I/O模塊,僅需和遠程PLC通過總線/工業以太網連接,就可輕松實現分布式I/O
    的頭像 發表于 09-26 08:07 ?354次閱讀
    E系列<b class='flag-5'>I</b>/<b class='flag-5'>O</b>模塊<b class='flag-5'>在</b>光伏制絨設備的應用

    物聯網中常見的I/O擴展電路設計方案_IIC I/O擴展芯片

    物聯網系統中為什么要使用 IIC I/O擴展芯片 ??物聯網系統中使用IIC(也稱為I2C)I/O
    的頭像 發表于 09-24 11:29 ?442次閱讀
    物聯網中常見的<b class='flag-5'>I</b>/<b class='flag-5'>O</b>擴展電路設計方案_IIC <b class='flag-5'>I</b>/<b class='flag-5'>O</b>擴展芯片

    低成本MSP430 MCU中集成I2C I/O擴展器

    電子發燒友網站提供《低成本MSP430 MCU中集成I2C I/O擴展器.pdf》資料免費下載
    發表于 09-24 10:56 ?0次下載
    <b class='flag-5'>在</b>低成本MSP430 MCU中集成<b class='flag-5'>I</b>2C <b class='flag-5'>I</b>/<b class='flag-5'>O</b>擴展器

    保護I/O模塊免受浪涌事件的影響

    電子發燒友網站提供《保護I/O模塊免受浪涌事件的影響.pdf》資料免費下載
    發表于 09-21 10:14 ?0次下載
    保護<b class='flag-5'>I</b>/<b class='flag-5'>O</b>模塊免受浪涌事件的影響

    遠程I/O模塊不同領域的應用

    在當今快速發展的工業自動化領域,遠程輸入/輸出(I/O)模塊正逐漸成為不可或缺的核心組件,本文將探討遠程I/O模塊不同領域的廣泛應用。 工
    的頭像 發表于 09-20 16:43 ?459次閱讀

    I/O模塊的主要作用有哪些

    遠程I/O模塊是一種使能遠程數據采集和控制的設備。通過使用網絡技術,如現場總線、以太網等,遠程I/O模塊能夠將輸入和輸出信號傳遞給控制系統。這就像控制系統的延伸手臂,能夠觸及并集中處理
    的頭像 發表于 09-20 16:41 ?504次閱讀

    區域架構和 MCU I/O 擴展

    電子發燒友網站提供《區域架構和 MCU I/O 擴展.pdf》資料免費下載
    發表于 09-09 10:51 ?0次下載
    區域架構和 MCU <b class='flag-5'>I</b>/<b class='flag-5'>O</b> 擴展

    淺談如何克服FPGA I/O引腳分配挑戰

    所有這些條件將引腳分配給I/O組。 這也是真正開始工作的地方。在當前的設計流程中,引腳分配時一項耗費時間的任務,解決任何性能和信號完整性問題的過程中可能會涉及許多嘗試和錯誤。傳統上,
    發表于 07-22 00:40

    PLC的I/O點數是什么意思

    工業自動化領域中,可編程邏輯控制器(PLC)扮演著至關重要的角色。PLC以其高可靠性、易編程性和強大的控制功能,廣泛應用于各種自動化系統中。而在PLC的性能參數中,I/O點數是一個不
    的頭像 發表于 06-27 11:15 ?4198次閱讀

    三菱plcfx3u系列遠程I/o設置

    三菱PLC FX3U系列是一款非常受歡迎的小型PLC,具有高性能、高可靠性、易用性等特點。實際應用中,遠程I/O設置是常見的需求之一。 遠程I
    的頭像 發表于 06-19 18:15 ?2986次閱讀
    三菱plcfx3u系列遠程<b class='flag-5'>I</b>/<b class='flag-5'>o</b>設置

    嵌入式32位高性能微處理器MCU雙網口I/O

    M120E以太網遠程I/O無線數據采集模塊是一款工業級、隔離設計、高可靠性、高穩定性和高精度數據采集模塊,嵌入式32位高性能微處理器MCU,集成2路工業10/100M自適應以太網模塊里面。提供多種
    的頭像 發表于 05-08 16:47 ?714次閱讀
    嵌入式32位高<b class='flag-5'>性能</b>微處理器MCU雙網口<b class='flag-5'>I</b>/<b class='flag-5'>O</b>

    軟件可配置模擬 I/O 的設計理念

    作者: Kenton Williston 曾幾何時,模擬 I/O 就是最專業、功能最固定的硬件。例如,電流驅動器和電壓傳感器是完全不同的零件,試圖顛倒其角色可謂是荒謬至極。 軟件可配置模擬 I/
    的頭像 發表于 05-05 11:10 ?862次閱讀
    軟件可配置模擬 <b class='flag-5'>I</b>/<b class='flag-5'>O</b> 的設計理念

    鴻蒙OS開發實例:【ArkTS類庫多線程I/O密集型任務開發】

    使用異步并發可以解決單次I/O任務阻塞的問題,但是如果遇到I/O密集型任務,同樣會阻塞線程中其它任務的執行,這時需要使用多線程并發能力來進行解決。
    的頭像 發表于 04-01 16:32 ?511次閱讀
    鴻蒙OS開發實例:【ArkTS類庫多線程<b class='flag-5'>I</b>/<b class='flag-5'>O</b>密集型任務開發】

    FANUC外部I/O點數不夠用了怎么辦?可以擴展I/O點數嗎?

    FANUC外部I/O點數不夠用了怎么辦?可以擴展I/O點數嗎? 擴展FANUC的外部I/O點數是
    的頭像 發表于 02-18 15:21 ?1869次閱讀
    主站蜘蛛池模板: 曰本xxⅹ孕妇性xxx| 午夜勾魂曲| 青青草原伊人网| 日本久久久久久久做爰片日本| 日本阿v片在线播放免费| 色妺妺免费影院| 武汉美女洗澡| 亚洲中文久久久久久国产精品| 伊人久久大香线蕉资源| 在线中文字幕网站| HEYZO精品无码一区二区三区| 成人午夜精品久久久久久久秋霞| 国产成人免费高清激情视频| 国产亚洲精品AV麻豆狂野| 久久极品视频| 女性私密五月天| 手机伊在人线香蕉2| 亚洲乱码日产精品BD在线下载| 中文字幕 日韩 无码 在线| vr亚洲成年网址在线观看| 国产精品7777人妻精品冫| 精品一区二区三区四区五区六区| 美女内射视频WWW网站午夜| 日本乱子伦一区二区三区| 亚洲AV中文字幕无码久久| 最美白虎逼| 成年人在线视频免费观看| 国产一区在线观看免费| 绿巨人www| 色人格影院第四色| 永久午夜福利视频一区在线观看| 阿娇和冠希13分钟在线观看| 国产亚洲精品久久久999无毒| 久久偷拍免费2017| 天津相声广播在线收听| 影音先锋男人资源813.| 打卡中国各地奋斗第一线| 激情丛林电影完整在线| 亲嘴扒胸摸屁股视频免费网站| 亚洲AV怡红院影院怡春院| 99热.com|