真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android分析工具,安卓apk分析工具

Android UI 布局分析三大工具

一:?HierarchyView?

新密網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

老牌分析工具,在早期的SDK中是有快捷方式的,新版的找不到快捷方式了,后來找了很久才找到入口

首先找到Android Device Monitor

可以進(jìn)入到sdk的安裝目錄下 從tools目錄下點(diǎn)擊monitor.bat 啟動(dòng) Android Device Monitor

然后找到下圖紅框位置 點(diǎn)擊?HierarchyView 按鈕就可以打開 如果沒有HierarchyView 按鈕就點(diǎn)擊DDMS按鈕左邊的更多按鈕,里面會(huì)列出來HierarchyView 按鈕

HierarchyView 最大的好處是以這種結(jié)構(gòu)樹圖的方式展示ViewTree 能夠一目了然的看清結(jié)構(gòu),并且可以評(píng)估繪制時(shí)間

但是在新的android版本里面?HierarchyView會(huì)提示找不到Service 遇到這種情況 參照如下文章解決

二:UI Automator

比較常見的工具,在很長(zhǎng)一段時(shí)間內(nèi),找不到HierarchyView用的就是他,但是這個(gè)工具不是很好用,有時(shí)候顯示的層級(jí)也不準(zhǔn),可能是我不太會(huì)用

入口如下圖

點(diǎn)擊紅框處進(jìn)入

三:Layout Inspector

入口

打開之后是這個(gè)樣子

三種工具各有各的特點(diǎn),大家可以根據(jù)自己的需求進(jìn)行選擇

Android-trace分析工具

1.TraceView

官方說明文檔:

android CPU profiler

CPU profiler可以實(shí)時(shí)檢查應(yīng)用的CPU使用率和線程activity,并記錄函數(shù)跟蹤,以便于您可以優(yōu)化和調(diào)試您的應(yīng)用程序.

Flame Chart如果出現(xiàn)問題 顏色也會(huì)加深

2.systrace

簡(jiǎn)介:

systrace是Android4.1版本之后推出的,對(duì)系統(tǒng)Performance分析的工具。systrace的功能包括跟蹤系統(tǒng)I/O操作,內(nèi)核工作隊(duì)列,CPU負(fù)載以及Android各個(gè)子系統(tǒng)的運(yùn)行狀況等。

主要由三部分構(gòu)成:

1.內(nèi)核部分

systrace采用了linux Kernel的ftrace功能,所以如果要使用systrace的話,必須開啟Kernel和ftrace相關(guān)的模塊.

2.數(shù)據(jù)采集部分

Android中定義了一個(gè)trace類,應(yīng)用程序可以使用該類把統(tǒng)計(jì)信息輸出給trace,同時(shí),android有一個(gè)atrace程序,它可以從ftrace中讀取統(tǒng)計(jì)信息然后交給數(shù)據(jù)分析工具來處理.

3.數(shù)據(jù)分析工具

Android提供一個(gè)systrace.py用來配置數(shù)據(jù)采集的方法(如采集數(shù)據(jù)的標(biāo)簽,輸出文件名等)和收集ftrace統(tǒng)計(jì)數(shù)據(jù)并生成一個(gè)結(jié)果網(wǎng)頁文件供用戶查看。

簡(jiǎn)單的說,當(dāng)機(jī)器以60幀/秒顯示,用戶會(huì)感知機(jī)器流暢。如果出現(xiàn)顯示時(shí)丟幀的情況,就需要知道系統(tǒng)在做什么?Systrace是用來收集系統(tǒng)和應(yīng)用的數(shù)據(jù)信息和一些中間生成數(shù)據(jù)的細(xì)節(jié),在Android4.1和4.2系統(tǒng)之后出現(xiàn)。Systrace在分析一些顯示問題上特別有用,如應(yīng)用畫圖慢,顯示動(dòng)作或者動(dòng)畫時(shí)變形。

抓取systrace

進(jìn)入本地Android/Sdk/platform-tools/systrace目錄下,執(zhí)行python systrace.py view --time = 10

python腳本的option

Android 布局分析工具(二)Layout Inspector使用

如果仍需使用以前的DDMS,可以雙擊文件夾下的? Android-SDK--tools--monitor.bat 即可 。

既然AS 不提供 DDMS面板了那肯定有替代的工具啊,經(jīng)過查找總結(jié)如下:

DDMS 和 Systrace、Hierarchy Viewer都不用了。使用Android Profiler替代DDMS 和 Systrace ,Layout Inspector 替代Hierarchy Viewer

下面進(jìn)入正題,簡(jiǎn)單說下? Layout Inspector 工具簡(jiǎn)單使用,

1、首先要打開 layout inspector 工具呀 直接上截圖吧

2、選擇要分析的應(yīng)用id,選中后點(diǎn)擊 “OK” 如圖?

3、通過下拉按鈕選擇要分析的界面后點(diǎn)擊“OK”(如:loginActivity、MainActivity等)

4、這樣就可以查看界面的 布局情況了最后的截圖就不貼了吧,太丑

Android 分析OOM工具介紹

如圖1所示, 步驟

** 1, 2, 3** 為打開Android Monitor并切換標(biāo)簽到monitor的過程

4, 5, 6 對(duì)應(yīng)的圖標(biāo)和文字含義分別是

MAT 工具識(shí)別,并解析hprof文件,

有兩種方式可以獲得hprof文件

MAT并不能直接打開這兩個(gè)hprof, 必須通過hprof-conv來轉(zhuǎn)換一次

如圖3所示,選中(過濾出MainActivity), 然后通過Objects可以看出它有8個(gè)實(shí)例

接著選中 com.example.wowo.MainActivity 然后右鍵選擇

Merge shortest paths to GC Roots - exclude week references

因?yàn)槿跻檬菚?huì)被回收的,所以排除掉更加容易發(fā)現(xiàn)OOM.

什么是OOM out-of-memory?

Android下的APP運(yùn)行在VM中(Dalvik or ART), 一個(gè)APP需要的內(nèi)存是有限,這個(gè)值在不同的平臺(tái), 不同的手機(jī)上是不同的,當(dāng)APP需要的內(nèi)存超過了內(nèi)存上限,就會(huì)引起OOM.

下面給出一個(gè)最基本的Android APP顯示HelloWorld的例子.

這時(shí)如果不停的旋轉(zhuǎn)屏幕, 這時(shí)通過觀察Android Monitor里的Free和allocated的memory會(huì)發(fā)現(xiàn) allocated 的memory會(huì)不斷增加,而Free的memory會(huì)不斷減小

這時(shí)通過圖1中步聚5 dump java heap, 然后filter到MainActivity, 會(huì)發(fā)現(xiàn)MainActivity有多個(gè)實(shí)例

接著再通過MAT來分析, 圖4所示

發(fā)現(xiàn)有很多FinalizerReference, 應(yīng)該是與GC有關(guān),由于旋轉(zhuǎn)屏幕會(huì)導(dǎo)致MainActivity銷毀并重新創(chuàng)建實(shí)例,而JVM在創(chuàng)建MainActivity實(shí)例時(shí)還有free的memory, 所以并沒有觸發(fā)GC,即原來的MainActivity的實(shí)例并沒有被回收,所以多次旋轉(zhuǎn)后,在free memory還有的情況下就會(huì)保存多個(gè)MainActivity的實(shí)例造成內(nèi)存泄露的假象。當(dāng)free memory 不夠時(shí),這時(shí)會(huì)觸發(fā)GC, 會(huì)回收之前銷毀的MainActivity的實(shí)例。

所以在查看OOM問題時(shí),當(dāng)allocated內(nèi)存不斷增大時(shí),應(yīng)該人為先觸發(fā)GC(點(diǎn)擊圖1的4)。

如果allocated的內(nèi)存沒有下降,說明當(dāng)前并沒有可回收的實(shí)例占據(jù)內(nèi)存了。

而在該例中,如果點(diǎn)擊了initiate GC后,allocated的內(nèi)存立即減少了。

Android Monitor看到MainActivity也就只有一個(gè)實(shí)例了。


網(wǎng)站題目:android分析工具,安卓apk分析工具
分享網(wǎng)址:http://weahome.cn/article/hogdci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部