自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android性能分析工具的使用

移動(dòng)開(kāi)發(fā) Android
本文介紹幾種Android性能分析工具的使用方法。

一、Android Studio-Memory Monitor

使用方法

run起你的項(xiàng)目,找到Memory Monitor窗口,選擇Memory   

 

[轉(zhuǎn)]內(nèi)存變化波形圖

另外,還可選擇查看CPU和GPU還有NetWork的使用情況。  

 

網(wǎng)絡(luò)使用波形圖.png

其中NetWork的頻繁使用是造成應(yīng)用耗電的關(guān)鍵,70%左右的電量是被上報(bào)數(shù)據(jù),檢查位置信息,定時(shí)檢索后臺(tái)廣告信息所使用掉的。如何平衡這兩者的電量消耗,就顯得非常重要了。

二、Android Studio 1.5 Preview 新玩具-Heap Snapshot

使用方法

同樣run起項(xiàng)目,進(jìn)行一些操作之后點(diǎn)擊左下角‘Dump Java Heap’的按鈕

 

每次點(diǎn)擊之后會(huì)生成一個(gè).hprof的文件

 

點(diǎn)擊一個(gè).hprof文件,查看右側(cè)的analyzer test,能看到兩個(gè)選項(xiàng)

一個(gè)是‘Detect Leaeked Activites’,另一個(gè)是'Find Duplicate Strings',點(diǎn)擊右上角的綠色播放按鈕,會(huì)自動(dòng)分析heap dump去定位泄露的activity和重復(fù)的string,出現(xiàn)如下的Analysis Results。

 

該面板里的信息可以有三種類(lèi)型:app heap/image heap/zygote heap.

分別代表app 堆內(nèi)存信息,圖片堆內(nèi)存信息,zygote進(jìn)程的堆內(nèi)存信息。

各屬性中英文對(duì)照表

名稱(chēng) Total Count Heap Count Sizeof Shallow size Retained Size
意義 內(nèi)存中該類(lèi)的對(duì)象個(gè)數(shù) 堆內(nèi)存中該類(lèi)的對(duì)象個(gè)數(shù) 物理大小 對(duì)象本身占有內(nèi)存大小 釋放該對(duì)象后,節(jié)省的內(nèi)存大小
名稱(chēng) depth Shallow Size Dominating Size
意義 深度 對(duì)象本身內(nèi)存大小 管轄的內(nèi)存大小

三、Eclipse-Allocation Tracker(分配跟蹤器)

使用方法

點(diǎn)擊“Start Tracking”,在應(yīng)用中執(zhí)行某個(gè)操作,然后點(diǎn)擊“Get Allocations”。 

 

Allocation Tracker

特點(diǎn)

a.需要進(jìn)行間斷的操作

b.可定位到具體某一行代碼

四、hierarchyviewer

使用hierarchyviewer查看需要檢查的頁(yè)面的層次,檢查頁(yè)面最深層數(shù), 官方建議最好控制在10層以?xún)?nèi)

 

hierarchyviewer

布局層級(jí)優(yōu)化方案:

1). 自定義控件使用merge標(biāo)簽來(lái)減少不必要的根節(jié)點(diǎn);

2).使用drawbleleft,代替多添加一個(gè)imageview;

3).有時(shí)使用relativelayout會(huì)比linearlayout需要更少層次就能達(dá)到實(shí)現(xiàn)效果;

4).使用viewstub來(lái)隱藏控件,ViewStub中的布局只有在你需要的時(shí)候才會(huì)渲染到主界面中;

...

五、leakcanary(Android 和 Java 內(nèi)存泄露檢測(cè)框架)

AndroidStudio

https://github.com/square/leakcanary

Eclipse

https://github.com/SOFTPOWER1991/LeakcanarySample-Eclipse

六、手機(jī)設(shè)置->開(kāi)發(fā)者選項(xiàng)

1. Show GPU Overdraw

 

Show GPU Overdraw

藍(lán)色,淡綠,淡紅,深紅代表了4種不同程度的Overdraw情況,我們的目標(biāo)就是盡量減少紅色Overdraw,看到更多的藍(lán)色區(qū)域。

優(yōu)化方案:

Overdraw有時(shí)候是因?yàn)槟愕腢I布局存在大量重疊的部分,還有的時(shí)候是因?yàn)榉潜仨毜闹丿B背景。例如某個(gè)Activity有一個(gè)背景,然后里面 的Layout又有自己的背景,同時(shí)子View又分別有自己的背景。僅僅是通過(guò)移除非必須的背景圖片,這就能夠減少大量的紅色Overdraw區(qū)域,增加 藍(lán)色區(qū)域的占比。這一措施能夠顯著提升程序性能。

Profile GPU Rendering - 選中On screen as bars的選項(xiàng)

每一條柱狀線(xiàn)都包含三部分,藍(lán)色代表測(cè)量繪制Display List的時(shí)間,紅色代表OpenGL渲染Display List所需要的時(shí)間,黃色代表CPU等待GPU處理的時(shí)間。 

 

中間有一根綠色的橫線(xiàn),代表16ms,我們需要確保每一幀花費(fèi)的總時(shí)間都低于這條橫線(xiàn),這樣才能夠避免出現(xiàn)卡頓的問(wèn)題。 

責(zé)任編輯:龐桂玉 來(lái)源: Android技術(shù)之家
相關(guān)推薦

2013-03-06 10:24:12

ksar工具系統(tǒng)性能

2018-11-27 11:35:32

systemtapMySQL調(diào)試工具

2011-08-15 22:10:08

Oracle性能分析工

2022-09-28 14:13:03

Linux工具

2024-02-29 08:23:50

Lighthouse分析工具開(kāi)發(fā)者

2022-01-26 15:07:04

bytrace工具OpenHarmon

2024-02-02 15:21:08

工具頁(yè)面性能

2012-03-30 10:11:42

Java

2011-04-02 10:29:20

Linux工具

2015-05-25 14:13:18

Yahoo MySQL性能分析工開(kāi)源

2022-03-21 15:02:05

Harmonyhiperf鴻蒙

2021-12-09 08:56:15

微軟開(kāi)源分析工具

2024-02-26 00:02:00

開(kāi)發(fā)Go

2015-07-30 09:22:57

Android分析工具APKAnalyser

2011-08-18 11:31:06

MySQL性能分析explain

2017-05-17 15:09:46

Linux分析性能工具

2020-08-12 08:27:05

前端性能分析工具開(kāi)發(fā)

2022-07-29 14:36:17

工具性能代碼

2021-06-07 14:57:46

開(kāi)源開(kāi)源工具Linux

2019-06-18 10:24:23

開(kāi)源技術(shù) 趨勢(shì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)