vb.net中滚动条一直显示没有数据时也显示_Android Studio 中 System Trace 的新增功能...
Android Studio 中 System Trace 的新增功能
在 Android Studio 4.0 中,我們已經對 CPU Profiler 的 UI 做了大量調整來提供更加直觀的工作流記錄,而在 Android Studio 4.1 中,我們基于開發者們的反饋對此功能進行了持續改進,并且新增了更多特性。
我們將會在本文重點介紹 Android Studio 中 System Trace 的新增功能,System Trace 也就是 "系統跟蹤" 的意思,用來記錄短時間內的設備活動,它會生成一個 .trace 跟蹤文件,該文件可用于生成系統報告,此報告可幫助您了解如何最有效地提升應用或游戲的性能。
System Trace 雖然使用率不高,但它是一款功能強大的 CPU 記錄配置。不同于函數跟蹤,如 Java Method 或 C/C++ Func Trace,System Trace 跟蹤的是系統級的內容,如設備活動 (例如 CPU 核心調度) 和 Android 系統進程 (例如 SurfaceFlinger)。
此外,您還可以通過在應用中調用 Trace API,使用 自定義事件 檢測您的代碼,這樣您的自定義事件便會與系統事件一起被收集。當您在排查性能問題時 (例如 UI 卡頓或功耗過高),這些組合數據就會顯得十分有用。
一次搞定所有線程
為了便于進行分析,我們將 CPU 的記錄從主分析器的時間線中分離了出來。在這個專用視圖中,跟蹤數據被整理到了 Profiler 窗口的左側區域中。
Android Studio 4.1 Beta 1 中的 System Trace 界面
您可以通過簡單拖拽將某一區域或者區域內的某個元素進行向上或向下移動來重新組織列表。
我們從開發者們的反饋得知,選擇每個線程來查看它的調用圖 (或 System Trace 的跟蹤事件) 是一件很麻煩的事,所以我們將所有線程活動整合到了同一個視圖中,從而可以在顯示線程狀態的同時顯示調用圖。默認情況下,我們根據線程的繁忙程度對其進行排序,但是您也可以拖放任意一個線程以對其重新排序。
拖放線程來改變列表順序
您也可以通過單擊三角形圖標或雙擊線程名稱來折疊或展開每個線程。注意,對于 Java Method Trace 和 C/C++ Function Trace,由于調用棧很深,我們默認情況下會折疊所有線程視圖,以便您可以一目了然地查看所有線程數據。
C/C++ Function Trace 默認以折疊狀態展示線程數據
為了便于區分,現在每個 System Trace 的跟蹤事件都有一個獨立的顏色。
更加直觀的導航
新的 Trace UI 使用了改進的時間軸導航方案,我們用主要 - 細節視圖替換了以前的水平滾動條。
在頂部,您可以看到一個時間軸,它僅僅映射了跟蹤過程而不是整個分析過程。您可以使用范圍選擇器快速縮小范圍到特定的時間段,而下面的部分則會顯示對應的詳細數據。
使用范圍選擇器來專注于時間軸的一小部分
在這里您可以進行更加精細的導航操作:
- 使用 Ctrl (在 Mac 上為 Cmd) + 鼠標滾輪進行縮放;
- 按住空格鍵的同時左右拖動鼠標可平移視圖;
- 使用 "WASD" 鍵縮放和平移視圖,就像 Chrome 中的舊版 SysTrace UI 一樣 (chrome://tracing)。
從 Android Studio 4.1 Canary 9 開始,您可以通過拖動鼠標在 Thread 部分進行框選。這一操作使您可以精確地選擇一個矩形區域,并且只要點擊右上角的 Zoom to Selection (或 "M" 鍵) 便可以放大該區域。您甚至可以跨越多個線程執行選擇操作,這個特性在您把相似線程拖放到一起進行檢視時十分有用。舉例來說,您也許會想對多個輔助線程進行分析,而這種場景在游戲開發中很常見。
框選、拖放與縮放
分析面板
說到分析,我們想著重聊一聊 Android Studio 4.0 中引入的新 Analysis Panel ,它位于 Profiler 窗口的右邊一列。
基于您所選擇的跟蹤記錄,在這里可以找到相應的分析數據。當您在左邊欄中選擇一個線程、堆棧幀或者跟蹤事件時,Analysis Panel 將會顯示對應的特定信息。舉例來說,當您選擇了一個線程時,該線程的狀態與其他一些有用的信息就會被顯示出來。
我們希望 Analysis Panel 能對您有所幫助,所以我們一直在探索使用各種形式來展示這些有用的分析數據。在 CPU Profiler 中,我們已經有了 Top Down、Flame Chart 和 Bottom Up。作為補充,我們在 Android Studio 4.1 Canary 10 中添加了 Summary 選項卡,用于展示線程狀態分布、跟蹤事件統計等信息。舉例來說,我們經常需要深入了解一個反復出現的跟蹤事件。
Summary 選項卡會顯示基本的統計信息 (如計數,最小值,最大值等) 以及所選跟蹤事件中運行時間最長的一次事件。您也可以通過從表中選擇一行來導航到另一個事件。
統計信息以及跟蹤事件中運行時間最長的事件
穩定性與性能改進
最后但也同樣重要的是,我們還改進了 CPU 記錄的性能和穩定性:
- 我們修復了一些可能導致記錄失敗的 Bug;
- 我們從 Android API level 28 開始使用 Perfetto 作為 System Trace 的后臺,從而可以從 Android 平臺的最新檢測技術中獲益;
- 我們還優化了 profiler 的代碼,從而顯著減少了解析跟蹤記錄時的內存消耗 (最多達 80%)。這樣您便可以開啟和解析更長的跟蹤信息。請記住,您可以增加 Android Studio 的 最大堆容量來支持更長時間的追蹤。
文章每周持續更新,可以微信搜索「 程序猿養成中心 」第一時間閱讀和催更(比博客早一到兩篇喲),另外“點擊公眾號下方面試/更多資料”,直接免費獲取我收集的一二線互聯網企業Android開發崗面試題匯總(答案解析)以及Android架構知識點匯總pdf+超清Android進階思維腦圖。
總結
以上是生活随笔為你收集整理的vb.net中滚动条一直显示没有数据时也显示_Android Studio 中 System Trace 的新增功能...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring系列(二):Bean注解用法
- 下一篇: GIS开发人员看过来—Esri的web开