編輯:關於Android編程
TraceView 是 Android 平台配備一個很好的性能分析的工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,並且能具體到 method。
TraceView 簡介
TraceView 是 Android 平台特有的數據采集和分析工具,它主要用於分析 Android 中應用程序的 hotspot。TraceView 本身只是一個數據分析工具,而數據的采集則需要使用 Android SDK 中的 Debug 類或者利用 DDMS 工具。二者的用法如下:
DDMS 中 TraceView 使用示意圖如下,調試人員可以通過選擇 Devices 中的應用後點擊按鈕 Start Method Profiling(開啟方法分析)和點擊StopMethod Profiling(停止方法分析)
開啟方法分析後對應用的目標頁面進行測試操作,測試完畢後停止方法分析,界面會跳轉到 DDMS 的 trace 分析界面,如下圖所示:
TraceView 界面比較復雜,其 UI 劃分為上下兩個面板,即 Timeline Panel(時間線面板)和 Profile Panel(分析面板)。上圖中的上半部分為Timeline Panel(時間線面板),Timeline Panel又可細分為左右兩個Pane:
上圖中的下半部分為ProfilePanel(分析面板),Profile Panel 是 TraceView 的核心界面,其內涵非常豐富。它主要展示了某個線程(先在 Timeline Panel 中選擇線程)中各個函數調用的情況,包括 CPU 使用時間、調用次數等信息。而這些信息正是查找 hotspot 的關鍵依據。所以,對開發者而言,一定要了解 Profile Panel 中各列的含義。下表列出了Profile Panel 中比較重要的列名及其描述。
實戰分析:
首先找到自己寫的類,這裡以我上圖中自己寫的AddGoodsMatchActivity為例,可以知道其onCreate方法公占用314.069ms,onCreate方法裡的各個方法占用時間也很清楚。重點分析其setContentView方法,因為它占用266.874ms 占整個onCreate方法的82.5%,點擊setContentView方法
再點擊SetContentView
再點擊inflate
由此我們可以看到我們自己的方法調用的時間,調用的次數,從而分析問題所在
dex2oat流程分析進入整個流程之前,我們先看一下地圖,大致熟悉一下我們下一步要去哪裡:主函數dex2oat的main函數,直接是dex2oat工廠函數的封裝。int
前言此博文記錄一下Android從系統源碼下載到刷機的全過程。(https://source.android.com/source/build-numbers.html
android設備運行在各種不同的屏幕中,這些屏幕有著不同的screen sizes(屏幕大小)和screen densities(屏幕密度)。screen sizes表
一、概述在自定義ViewGroup中,很多效果都包含用戶手指去拖動其內部的某個View(eg:側滑菜單等),針對具體的需要去寫好onInterceptTouchEvent