cpu篇
關於android 的cpu佔用率需要注意以下三種情況:
1.空閒狀態下的應用cpu消耗情況 簡單說這種情況呢就是說被測應用在系統資源非常空閒的情況下的佔用率,比如只開乙個被測應用
2.中等規格狀態下的應用cpu消耗情況 簡單說這種情況就是後台已經有幾個應用在執行已經並且消耗了系統的一些資源的情況下進行測試。
3.滿規格狀態下的應用cpu消耗情況 這個就不要說了,你們懂得!
資料採集方案:
這裡可以看到所有程序的cpu佔用率:
大家看第乙個應用cpu佔用率68%,這個過程是在使用者(user)中花61%的時間,並在核心空間(kernel)花費7.1%的時間。
如果你想篩選出你自己的應用的話可以用下面這一段:
2.使用top命令:
進入adb shell
可檢視占用cpu最高的前10個程式(-t 顯示程序名稱,-s 按指定行排序,-n 在退出前重新整理幾次,-d 重新整理間隔,-m 顯示最大數量)
如果你想篩選出你自己的應用的話可以用下面這一段:
adb shell top -n 1| grep packagename拿到這些資料怎麼用
1,你可以從**裡面獲取:
(dumpsys)
adb shell dumpsys cpuinfo
public
static
string
getcpu
(string
packagename
)throws
ioexception
bufferedreaderin=
newbufferedreader
(new
inputstreamreader
(proc
.getinputstream
()));
stringbuffer
stringbuffer
=new
stringbuffer
();string
line
=null
;while
((line=in
.readline
())!=
null
)string
str1
=stringbuffer
.tostring
();string
str2
=str1
.substring
(str1
.indexof
(packagename
),str1
.indexof
(packagename
)+28
);str3
=str2
.substring(18
,23);}
catch
(interruptedexceptione)
finally
catch
(exceptione2)
}return
str3;}
}
(top)
public
static
double
cpu(
string
packagename
)throws
ioexception
bufferedreaderin=
newbufferedreader
(new
inputstreamreader
(proc
.getinputstream
()));
stringbuffer
stringbuffer
=new
stringbuffer
();string
line
=null
;while
((line=in
.readline
())!=
null
)string
str1
=stringbuffer
.tostring
();string
str3
=str1
.substring
(str1
.indexof
(packagename
)-43
,str1
.indexof
(packagename
));string
cpu=
str3
.substring(0
,4);cpu
=cpu
.trim
();cpu
=double
.parsedouble
(cpu);}
catch
(interruptedexceptione)
finally
catch
(exceptione2)
}}catch
(exception
stringindexoutofbound***ception
)return
cpu;
}
2,直接 adb shell cat進去proc/cpuinfo/下面:
public
string
getcpuinfo()
;string
arrayofstring
;try
str2
=localbufferedreader
.readline
();arrayofstring
=str2
.split
("\\s+"
);cpuinfo[1
]+=arrayofstring[2
];localbufferedreader
.close
();}
catch
(ioexceptione)
return
cpuinfo
;}
取完你可以這麼用》:
配合一些場景去採集資料:
這樣可以看到每個步驟消耗的資源情況
然後彙總資料分析(最好多取幾次求平均值):
android效能測試systrace
一 簡介 systrace 是 android4.1 引入的一套用於做效能分析的工具。基於 linux 核心的 ftrace 機制 用於跟蹤 linux 核心的函式呼叫 可以輸出各個執行緒當前的函式呼叫狀態。它可幫助開發者收集 android 關鍵子系統 如 su ceflinger windowm...
Android測試驅動開發實踐
在android應用開發中,相信很少有人在堅持先由設計人員做完整的概要設計 詳細設計,然後交給程式設計師進行編碼實現了。通常是在有乙個大體框架的情況下,就開始進行具體編碼開發了。在這種情形下,開發速度可以有很大的提高,但是最終 質量卻不可避免的降低了。如何能既保持開發速度,同時又能保證開發質量呢?相...
Android效能測試 記憶體篇
android效能測試 記憶體篇 目的 保證合理使用記憶體 使用範圍 新增頁面 老頁面中有新增內容 頁面中有展示 有非同步執行緒跳轉 有頁面跳轉 頁面中有列表展示 頁面中有輸入框 測試項及測試標準 maxmemoryheap allocation memory值小於maxmemoryheap的60 ...