![android調(diào)試工具集_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff1.gif)
![android調(diào)試工具集_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff2.gif)
![android調(diào)試工具集_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff3.gif)
![android調(diào)試工具集_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff4.gif)
![android調(diào)試工具集_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff/e48b08d0-e996-4c4c-9fe5-eceaa1e91cff5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Android開發(fā)android調(diào)試工具集【轉(zhuǎn)】2010-08-11 09:54 by HalZhang, 285 visits, 網(wǎng)摘, 收藏, 編輯 1. 查看當(dāng)前堆棧1) 功能:在程序中加入代碼,使可以在logcat中看到打印出的當(dāng)前函數(shù)調(diào)用關(guān)系2) 方法: new Exception(“print trace”).printStackTrace();2. MethodTracing1) 功能:用于熱點分析和性能優(yōu)化,分析每個函數(shù)占用的CPU時間,調(diào)用次數(shù),函數(shù)調(diào)用關(guān)系等2) 方法:a) 在程序代碼中加入追蹤開關(guān) 1: 2: 3:/ 先建/data/tmp目錄 4: / 被追蹤的程序段
2、5:b) 編譯,運行后,設(shè)備端生成/data/tmp/test.trace文件c) 把trace文件復(fù)制到PC端 $ adb pull /data/tmp/test.trace ./d) 使用android自帶工具分析trace文件 $ $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace 此時可看到各個函數(shù)被調(diào)用的次數(shù)CPU占用率等信息e) 使用android自帶工具分析生成調(diào)用關(guān)系類圖 $ apt-get install graphviz # 安裝圖片相關(guān)軟件 $ANDROID_SRC/out/host/linux-x86/bin
3、/dmtracedump -g test.png test.trace 此時目錄下生成類圖test.png3) 注意 trace文件生成與libdvm模塊DEBUG版本相沖突,所以此方法只適用于對非DEBUG版本模擬器的調(diào)試,否則在分析trace文件時會報錯3. HProf (Heap Profile)1) 功能: 用于java層面的內(nèi)存分析,顯示詳細的內(nèi)存占用信息,指出可疑的內(nèi)存泄漏對象2) 方法:a) 在代碼中加入dump動作 1: 2: 3: 4: try 5:/ 先建/data/tmp目錄 6: catch (IOException ioe) 7: b) 把hprof文件復(fù)制到PC端
4、$ adb pull /data/tmp/input.hprof ./c) 使用命令hprof-conv把hprof轉(zhuǎn)成MAT識別的標準的hprof $ $ANDROID_SRC/out/host/linux-x86/bin/hprof-conv input.hprof output.hprofd) 使用工具看hprof信息 下載MAT工具: 用工具打開output.hprof3) 注意:此工具只能顯示java層面的,而不能顯示層的內(nèi)存占用信息4. SamplingProfile (android 2.0上版本使用)1) 功能 每隔毫秒對當(dāng)前正在運行的函數(shù)取樣,并輸出到log中2) 在代碼中加
5、入取樣設(shè)定 1: 2: 3: SamplingProfile sp = SamplingProfiler.getInstance(); 4: sp.start(n); / n為設(shè)定每秒采樣次數(shù) 5: sp.logSnapshot(sp.snapshot(); 6: 7: sp.shutDown();它會啟一個線程監(jiān)測,在logcat中打印信息5. 用發(fā)系統(tǒng)信號的方式取當(dāng)前堆棧情況和內(nèi)存信息1) 原理 dalvik虛擬機對SIGQUIT和SIGUSR1信號進行處理(dalvik/vm/SignalCatcher.c),分別完成取當(dāng)前堆棧和取當(dāng)前內(nèi)存情況的功能2) 用法a) $ chmod 777
6、 /data/anr -R # 把anr目錄權(quán)限設(shè)為可寫 $ rm /data/anr/traces.txt # 刪除之前的trace信息 $ ps # 找到進程號 $ kill -3 進程號 # 發(fā)送SIGQUIT信號給該進程,此時生成trace信息 $ cat /data/anr/traces.txt 功能實現(xiàn):遍歷thread list(dalvik/vm/Thread.c:dvmDumpAllThreadEx(),并打印當(dāng)前函數(shù)調(diào)用關(guān)系(dalvik/vm/interp/Stack.c:dumpFrames()b) $ chmod 777 /data/misc -R $ ps # 找到
7、進程號 $ kill -10 進程號 # 發(fā)送SIGQUIT信事信號給該進程,此時生成hprof信息 $ ls /data/misc/*.hprof 此時生成hprf文件,如何使用此文件,見第二部分(HProf) 注意:hprof文件都很大,注意用完馬上刪除,以免占滿存儲器6. logcat及原理2) dalvik利用管道加線程的方式,先利用dup2把stdout和stderr重定向到管理中(vm/StdioConverter.c:dvmstdioConverterStartup),然后再啟動一個線程從管道另一端讀出內(nèi)容(dalvik/vm/StdioConverter.c:stdioconv
8、erterThreadStart(),使用LOG公共工具(system/core/liblog/logd_write.c: _android_log_print())輸出到/dev/log/*中去3) logcat通過加不同參數(shù)看/dev/log/下的不同輸入信息 # logcat -b main 顯示主緩沖區(qū)中的信息 # logcat -b radio 顯示無線緩沖區(qū)中的信息 # logcat -b events 顯示事件緩沖區(qū)中的信息7. jdwp(java debug wire protocol)及原理1) 虛擬機(設(shè)備端)在啟動時加載了Agent JDWP 從而具備了調(diào)試功能。在調(diào)試器
9、端(PC端)通過JDWP協(xié)議與設(shè)備連接,通過發(fā)送命令來獲取的狀態(tài)和控制Java程序的執(zhí)行。JDWP 是通過命令(command)和回復(fù)(reply)進行通信的。2) JDK 中調(diào)試工具 jdb 就是一個調(diào)試器,DDMS也提供調(diào)試器與設(shè)備相連。3) dalvik為JDWP提供了兩種連接方式:tcp方式和adb方式,tcp方式可以手工指定端口,adb方式自動設(shè)定為8700端口,通常使用DDMS調(diào)試就是通過adb方式8. monkey1) monkey是一個android自帶的命令行工具。它向系統(tǒng)發(fā)送偽隨機的用戶事件流,實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試。2) 方法 在設(shè)備端打開setting界面 此時可以看到界面不斷被切換9. 其它小工具1) 取毫微秒級的時間,用于計算時間 threadCpuTimeNanos()2) 統(tǒng)計兩點間的內(nèi)存分配情況 startAllocCounting() stopAllocCounting() getGlobalAllocCount() get.3) 打印當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南華大學(xué)船山學(xué)院《英語經(jīng)典閱讀與背誦》2023-2024學(xué)年第二學(xué)期期末試卷
- 菏澤學(xué)院《硬筆書寫》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川城市職業(yè)學(xué)院《設(shè)計實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 六盤水職業(yè)技術(shù)學(xué)院《材料特性表征》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京印刷學(xué)院《基于財務(wù)共享平臺的財務(wù)決策沙盤模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西工商職業(yè)技術(shù)學(xué)院《自動控制原理B》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京中醫(yī)藥大學(xué)《教師教育基礎(chǔ)與教師專業(yè)發(fā)展》2023-2024學(xué)年第二學(xué)期期末試卷
- 畢節(jié)幼兒師范高等??茖W(xué)?!栋l(fā)電廠電氣工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北經(jīng)濟學(xué)院法商學(xué)院《護理基本技能(Ⅰ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年度智能門禁系統(tǒng)售后服務(wù)合同
- 中央2025年交通運輸部所屬事業(yè)單位招聘261人筆試歷年參考題庫附帶答案詳解
- 2025年上半年上半年重慶三峽融資擔(dān)保集團股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 特殊教育學(xué)校2024-2025學(xué)年度第二學(xué)期教學(xué)工作計劃
- 2025年技術(shù)員個人工作計劃例文(四篇)
- 勞保穿戴要求培訓(xùn)
- 2024年物聯(lián)網(wǎng)安裝調(diào)試員(初級工)職業(yè)資格鑒定考試題庫(含答案)
- 工業(yè)控制系統(tǒng)應(yīng)用與安全防護技術(shù)(微課版)課件 第1章 緒論
- 《設(shè)備科安全培訓(xùn)》課件
- 藍色插畫風(fēng)徽州印象旅游景點景區(qū)文化宣傳
- 2024年形勢與政策課件及講稿合集
- 無人機運營方案
評論
0/150
提交評論