編輯:關於Android編程
從1月份Google發布的16個關於性能優化的系列視頻起,這段時間在各大社區都有看到很多優秀的關於優化系列的文章。有分析了性能產生的原因、有分享如何優化我們的應用、有介紹有哪些工具可以幫助我們檢測性能問題。
其中 在關於一些系統性能調優工具裡有介紹到工具之一:TraceView
TraceView 是 Android 平台配備一個很好的性能分析的工具。它可以通過圖形化的方式讓我們了解我們要跟蹤的程序的性能,並且能具體到某個函數方法method的執行耗時時間。因為小呂之前確實沒有使用過該工具、所以這兩天也自己試玩了一把、將該工具的簡單使用操作做個簡單的圖文介紹。也希望在以後的工作當中要重視該工具的使用、利用好該工具。
一、如何使用該工具 采集數據
1、第一種使用方式
① 在你需要調式的代碼片段首尾分別添加代碼
Debug.startMethodTracing(traceView); Debug.stopMethodTracing();如 我們想要對MainActivity的onCreate() 和 onDestory() 方法之間做跟蹤,代碼可如下:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 將在SD卡根目錄生成數據性能采集文件 traceView.trace * 注意: * 1、一定要在有SD卡的調試手機或模擬器上使用 * 2、添加SD卡訪問讀寫權限:②、當程序運行過上面的代碼之後 便會在你的手機或模擬器的SD卡根目錄生成文件 traceView.trace, 如下圖:*/ Debug.startMethodTracing(traceView); } @Override protected void onStart() { super.onStart(); Debug.stopMethodTracing(); } }
⑤、但是我們執行如下命令: traceview xxx.trace, 使用traceview去訪問執行.trace文件
一伙出現效果如下:
根據之前命令的提示:
這裡我們也可以使用執行Android Device Monitor
在該界面中 我們可以通過 file--> open file 打開之前導出的.trace文件,這時將會看到同樣的效果:
到此 我們便完成了數據的采集與使用traceview工具將數據做了圖形化展示
2、第二種使用方式
相對第一種方式 這種要簡單很多
通過選擇 Devices 中的應用後點擊按鈕 Start Method Profiling(開啟方法分析)和點擊 Stop Method Profiling(停止方法分析) 如圖:
當停止采集時,DDMS會自動觸發Traceview工具來浏覽采集數據
二、如何使用該工具 分析數據
當看到圖形化的trace數據後、我們要知道如何看懂上面的數據、以做出正確的分析、最後在分析中查找性能上的問題、最終從代碼上解決問題。
這部分主要包括:
1、TraceView工具面板的掌握,分析面板每列待辦的含義 如:Name、 Incl Cpu Time、 Excl Cpu Time、 Incl Real Time等。
2、如何去定位分析我們要監視的具體方法(通過TraceView底部的find來查找)。
3、如何去定位那些耗時(導致性能問題)的方法(篩選出方法耗時排行的時間 如:Incl Cpu Time列、Cpu Time/Call列)。
4、最後根據找出性能上有缺陷的具體方法、去做代碼上的優化。
這裡的內容遠遠超過上面關於 工具數據采集的使用介紹,小呂也剛好在網上有收集到兩篇優秀的關於TraceView工具的使用介紹:
1、Android系統性能調優工具介紹:http://blog.csdn.net/innost/article/details/9008691
2、Android編程下的TraceView簡介及其案例實戰:http://www.cnblogs.com/sunzn/p/3192231.html
三、其他
關於Android的調優工具除了TraceView外、還有Overdraw,Systrace,StrictMode,Hierarchy Viewer等。
android實現底部布局往往使用RelativeLayout的布局方式,並且設置android:layout_alignParentBottom=”true”,這樣很容
主界面的實現 前面已做好了核心布局文件,接下來要做的就是讓客戶端活起來,現在的任務就是實現一個側滑菜單的功能,實現這個功能也並不難,使用V4包下的DrawerLayout
首先,定義TabHost的布局文件:復制代碼 代碼如下:<?xml version=1.0 encoding=utf-8?><TabHost xmlns
效果圖知識點分析效果圖來看不復雜內容並沒多少,值得介紹一下的知識點也就下面幾個吧- 列表標題懸停- 左右列表滑動時聯動- 添加商品時的拋物線動畫- 底部彈出購物車清單-