分析启动耗时 android,Android app启动耗时分析
首先編譯你的程序,打開Android Studio里面的Android Monitor,找到下圖的按鈕
<img src="//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL3BpYzIuemhpbWcuY29tL3YyLTA4Zjk1ZmUxMjM5ODgwNTkzMDU5YjE3YzFlMGU5NjcxX2IucG5n.jpg" data-rawwidth="594" data-rawheight="330" class="origin_image zh-lightbox-thumb" width="594" data-original="https://pic2.zhimg.com/v2-08f95fe1239880593059b17c1e0e9671_r.png">
然后在app里面干你想trace的部分,開個頁面什么的
然后點同樣的按鈕完成tracing,接下來Android Studio會自動生成一個圖表,比DDMS里面的版本好用太多!!
這不失為一種性能分析的不錯方法;現在我們說到的是app啟動耗時,app啟動做了什么事情?
App啟動入口類 Application(AndroidManifest.xml中可自定義),然后從配置了
的Activity開始啟動;于是我們就可以簡單的依據此順序來進行如下操作;
在啟動開始時,Debug.startMethodTracing("/sdcard/dmtrace.trace");
在啟動完成時,Debug.stopMethodTracing();
在我的MyApplication下
在我的主Activity的OnResume方法中
那么隨著程序的運行,在/sdcard/文件夾下會自動創建一個dmtrace.trace的文件;這個文件可以幫助我們很好的分析,這個啟動的時間段內,做了什么事情.
把這個dmtrace.trace拖到Android Studio中,會看到這樣的一個界面
鼠標點擊到這個時間條上會出現更詳細的耗時信息
可以看到,該方法實際耗時1.5s;而我看到的都是mainThread,也就是主線程,UI線程里進行的操作;難怪這么卡...
到項目中去看CacheManager里這個isCache確實是個耗時的操作,我們就把它放到子線程中進行,一下節省不少時間...
在下面的表中也可以很明顯的看到這確實占據了啟動時間的一大部分
具體地,把.trace文件拖入到DDMS工具可以看到更加詳細清晰的效果
具體地,每一行的耗時不去細說,來源很多...
總結
TraceView是一個非常強大的性能分析工具,因為Android 官網對這個工具的使用介紹文檔很少,沒有講到底怎么使用。
最近我在做app啟動耗時方面的性能分析,就慢慢琢磨了這么工具的使用,發現非常強大,寫下來總結一下。
Android的性能分析工具還有很多,比如:
Eclipse Memory Analyzer Tool 來分析Android app的內存使用
Dump UI Hierarchy for UI Atomator,分析UI層級
systrace
其他
<img src="https://pic4.zhimg.com/e70ba3cdcd41037d42655627c4ab13ef_b.png" data-rawwidth="1435" data-rawheight="701" class="origin_image zh-lightbox-thumb" width="1435" data-original="https://pic4.zhimg.com/e70ba3cdcd41037d42655627c4ab13ef_r.png">
總結
以上是生活随笔為你收集整理的分析启动耗时 android,Android app启动耗时分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3环境运行python2代码
- 下一篇: android运行别人的项目_导入他人的