<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手機(jī)功耗續(xù)航分析利器 ChkBugReport

          共 6221字,需瀏覽 13分鐘

           ·

          2023-03-11 12:04

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):

          一、ChkBugReport 概述
          二、ChkBugReport 獲取方法
          三、ChkBugReport 使用方法
          四、ChkBugReport 使用詳細(xì)說(shuō)明

          一、ChkBugReport 概述

          ChkBugReport 工具的目的是分析處理手機(jī)上生成的bugreport,并且為開(kāi)發(fā)者提取盡可能多的有用數(shù)據(jù)。

          ChkBugReport 解析 bugreport 后會(huì)生成一個(gè)bugreport_out文件。然后我們通過(guò)點(diǎn)擊Bugreport 生成的解析索引 index.html既可以查看解析的內(nèi)容。

          ChkBugReport 解析 bugreport 后會(huì)生成一個(gè)bugreport_out文件

          Bugreport 生成的解析索引

          二、ChkBugReport 獲取方法

          1. github上源代碼:

          git clone git://github.com/sonyxperiadev/ChkBugReport.git

          2. 預(yù)編譯的二進(jìn)制文件:

          • http://sonyxperiadev.github.com/ChkBugReport/download/chkbugreport(啟動(dòng)器shell腳本)

          • http://sonyxperiadev.github.com/ChkBugReport/download/chkbugreport-0.5-215.jar(應(yīng)用程序本身)

          注意:
          預(yù)編譯的二進(jìn)制文件可能比源代碼更舊,因此要獲取最新版本,請(qǐng)改用源代碼。

          3. 源代碼打包最新Jar 包方法

          源代碼打包最新 chkbugreport-0.5-216.jar 包方法如下:

          // 下載 ChkBugReport  源碼
          wangjie@wangjie:/wangjie/ChkBugReport$git clone git://github.com/sonyxperiadev/ChkBugReport.git
          ... ... //成功下載 ChkBugReport 源碼
          wangjie@wangjie:/wangjie/ChkBugReport/ChkBugReport/core$ ./createjar.sh
          // 如果 linux 服務(wù)器沒(méi)有安裝 ant ,請(qǐng)安裝 sudo apt install ant
          Command 'ant' not found, but can be installed with:

          sudo apt install ant

          wangjie@wangjie:/wangjie/ChkBugReport/ChkBugReport/core$ sudo apt install ant
          Reading package lists... Done
          Building dependency tree

          ... ...
          //成功安裝 ant
          Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
          Setting up ant-optional (1.10.5-3~18.04) ...
          wangjie@wangjie:/wangjie/ChkBugReport/ChkBugReport/core$ ./createjar.sh
          Buildfile: /wangjie/ChkBugReport/ChkBugReport/core/createjar.xml

          create_run_jar:
          [echo] Cleanup up the bin dir...
          [mkdir] Created dir: /wangjie/ChkBugReport/ChkBugReport/core/bin
          ... ...
          [echo] Done!
          //成功打包 最新版本的jar包
          BUILD SUCCESSFUL
          Total time: 3 seconds
          wangjie@wangjie:/wangjie/ChkBugReport/ChkBugReport/core$ ls
          bin chkbugreport chkbugreport-0.5-216.jar ... ...

          三、ChkBugReport 使用方法

          ChkBugReport 沒(méi)有安裝程序,要安裝它,您只需下載最新的chkbugreport-.jar(請(qǐng)參閱步驟二)或從源代碼中自行*構(gòu)建。注意:“ 代碼/下載”部分已由GitHub刪除。

          1.抓取Bugreport

          首先我們要有bugreport,抓取Bugreport的命令: adb bugreport bugreport.zip
          抓取bugreport 方法舉例如下:


          C:\Users\Administrator\ChkBugReport\1>adb bugreport bugreport.zip
          [ 22%] generating bugreport.zip
          data/user_de/0/com.android.shell/files/bugreports/bugreport-T5542-PKQ1.190601.001-2019-12-04-17-04-52.zip: 1 file pulled. 3.8 MB/s (1685410 bytes in 0.420s)
          C:\Users\Administrator\ChkBugReport\1>

          2.解析Bugreport

          解析 Bugreport,首先我們將抓取的 bugreport.zip,解壓抽取出 bugreport.txt,然后將chkbugreport.jar bugreport.txt 兩個(gè)文件放在同一個(gè)文件夾下,然后執(zhí)行java -jar chkbugreport.jar bugreport.txt

          解析bugreport 方法使用舉例如下:


          C:\Users\Administrator\ChkBugReport\1>dir
          ... ...

          2019/11/24 15:36 16,283,036 bugreport-T5542-PKQ1.190601.001-2019-11-24-15-34-17.txt
          2019/12/03 10:51 2,494,186 bugreport-T5542-PKQ1.190601.001-2019-11-24-15-34-17.zip
          2019/12/04 16:36 948,643 chkbugreport-0.5-216.jar
          ... ...

          C:\Users\Administrator\ChkBugReport\1>java -jar chkbugreport-0.5-216.jar bugreport-T5542-PKQ1.190601.001-2019-11-24-15-34-17.txt

          ... ...

          Writing chapter: eventlog_10137.html...
          Writing chapter: eventlog_10128.html...
          Writing frameset...
          DONE!

          C:\Users\Administrator\ChkBugReport\1>

          3.查看index.html

          解析完成后,我們點(diǎn)擊解析文件夾中的index文件,進(jìn)行查看分析。
          解析生成的主要包含:Errors 、Memory info、 System log、 kernel log、 Event log 、Battery info 、AlarmManager 、ActivityManager、 Process等

          通過(guò)瀏覽器查看 解析生成的index文件

          四、ChkBugReport 使用詳細(xì)說(shuō)明

          1.ChkBugReport 快速使用指南

          只需運(yùn)行將bugreport作為參數(shù)傳遞的工具即可。

          我使用包裝器腳本,將這兩個(gè)腳本(包裝器腳本“ chkbugreport ”和jar文件“ chkbugreport.jar”)復(fù)制到$ HOME / bin /,因此可以在計(jì)算機(jī)上的任何位置使用它:

          $ chkbugreport thebugreport.txt

          但是當(dāng)然您也可以使用jar文件:

          $ java -jar path/to/chkbugreport.jar thebugreport.txt

          Bugreport 可以壓縮(如.gz或zip文件形式)或純文本文件。該工具將創(chuàng)建一個(gè)文件夾(帶有輸入文件名和后綴“ _out”后綴),并在該文件夾下創(chuàng)建所有文件(以及一些子文件夾)。您應(yīng)該從該文件夾中打開(kāi)“ index.html”文件(強(qiáng)烈建議使用Chrome或Firefox)。

          如果沒(méi)有Bugreport ,請(qǐng)創(chuàng)建一個(gè):

          $ adb bugreport > bugreport.txt

          同樣,如果您只有一部分Bugreport (例如日志或堆棧跟蹤),則仍然可以使用此工具。假設(shè)您有一個(gè)系統(tǒng)日志和一個(gè)包含進(jìn)程堆棧跟蹤的文件(例如,取自/data/anr/traces.txt),則可以使用如下工具:

          $ chkbugreport -sl:the_system_log.txt -sa:traces.txt dummy

          這將在名為“ dummy_out”的文件夾中生成輸出(假定“ dummy”是不存在的Bugreport 的名稱(chēng))。

          請(qǐng)注意,chkbugreport具有附加功能:它可以處理為traceview創(chuàng)建的概要分析數(shù)據(jù)。結(jié)果將類(lèi)似:一個(gè)包含一堆html和圖像文件的文件夾。要將其與跟蹤文件一起使用,請(qǐng)?jiān)诿钚猩咸砑印?-t”選項(xiàng):

          $ chkbugreport -t something.prof

          您可以像下面這樣生成分析數(shù)據(jù):

          • 使用“ adb shell ps”列出所有進(jìn)程并找到要跟蹤的進(jìn)程的PID

          • 執(zhí)行“ adb shell am profile PID start /data/profile.dat”以開(kāi)始分析(將PID替換為進(jìn)程ID號(hào))

          • 做測(cè)試

          • 執(zhí)行“ adb shell am profile PID停止”以停止分析(將PID替換為進(jìn)程ID號(hào))

          • 使用“ adb pull /data/profile.dat”拉出文件并將其從手機(jī)中刪除(以節(jié)省寶貴的磁盤(pán)空間):“ adb shell rm /data/profile.dat”

          • 創(chuàng)建報(bào)告“ chkbugreport -t profile.dat”

          2. ChkBugReport 命令行參數(shù)說(shuō)明

          要獲取完整的參數(shù)列表,只需運(yùn)行不帶任何參數(shù)的工具即可。到目前為止,已處理以下參數(shù):

          -ds:file-將文件用作dumsys輸出(與-pb幾乎相同)
          -el:file-使用文件作為事件日志
          -ft:file-將文件用作ftrace轉(zhuǎn)儲(chǔ)
          -ml:file-使用文件作為主日志
          -mo:file-解析猴子輸出并從中提取堆棧跟蹤
          -pb:file-加載部分Bugreport (例如dumpsys的輸出)
          -pk:file-加載packages.xml文件
          -ps:file-將文件用作“進(jìn)程”部分
          -pt:file-將文件用作“進(jìn)程和線程”部分
          -sa:file-將文件用作“最后一個(gè)vm跟蹤”部分
          -sl:file-使用文件作為系統(tǒng)日志
          -sn:file-將文件用作“剛才的vm跟蹤”部分
          -sd:dir-從目錄中加載文件作為部分Bugreport
          -uh:file-加載Usage-history.xml文件
          附加選項(xiàng)(較少使用):

          --browser-完成后啟動(dòng)瀏覽器
          --gui-如果未提供文件名,則啟動(dòng)圖形用戶界面
          --silent-抑制除致命錯(cuò)誤以外的所有輸出
          --limit-限制輸入文件的大?。J(rèn))(例如),如果使用-sl選項(xiàng),則日志文件如果太長(zhǎng)會(huì)被截?cái)啵ㄒ驗(yàn)樯傻膆tml會(huì)更大)。此選項(xiàng)(以及--no-limit)必須在其他選項(xiàng)之前才能生效。
          --no-limit-不限制輸入文件的大小
          注意:圖形用戶界面仍處于試驗(yàn)階段,非常基礎(chǔ)。

          3.ChkBugReport 使用方法小tip

          通過(guò)簡(jiǎn)單地添加--browser參數(shù),chkbugreport將嘗試在默認(rèn)瀏覽器中打開(kāi)結(jié)果。您可以通過(guò)將openBrowser = true添加到?/ .chkbugreport(如果需要,創(chuàng)建文件)來(lái)將其設(shè)置為默認(rèn)行為。

          文件格式

          ChkBugReport嘗試在文件格式方面盡可能地靈活:

          • 它應(yīng)該支持任何行尾(甚至是瘋狂的行尾,例如0x0d 0x0d)

          • 它應(yīng)該處理壓縮的Bugreport

          • 它應(yīng)該處理壓縮的Bugreport (它將掃描zip以查找第一個(gè)看起來(lái)像Bugreport 的文件)

          Android版

          請(qǐng)注意,Bugreport 的格式隨每個(gè)Android版本而變化,因此某些版本可能不完全受支持。另外,內(nèi)容(即保存哪些數(shù)據(jù))因電話而異,因此可能會(huì)丟失某些信息。

          數(shù)據(jù)表格排序

          一些表支持排序:如果表前有這樣的提示,則可以單擊列以按字母順序?qū)?shù)據(jù)進(jìn)行排序。您可以按住Shift鍵對(duì)多列進(jìn)行排序。

          其他一些表可能支持重新排序(表之前會(huì)有提示/注釋?zhuān)?,在這種情況下,您可以拖動(dòng)行并將其上下移動(dòng)。

          某些表格的數(shù)據(jù)也將導(dǎo)出為CSV(逗號(hào)分隔值)文件,在這種情況下,您可以在excel或Open Office中打開(kāi)它們,并進(jìn)行自己的統(tǒng)計(jì)/過(guò)濾/排序/等操作。

          如果ChkBugReport可以在類(lèi)路徑中找到sqlite jdbc驅(qū)動(dòng)程序(例如sqlitejdbc-v056.jar),那么某些表的數(shù)據(jù)(以及一些其他數(shù)據(jù),例如stacktraces)也將被導(dǎo)入到新創(chuàng)建的SQLite數(shù)據(jù)庫(kù)中。

          分析日志

          您不需要完整的Bugreport 即可使用此工具。您可以從市場(chǎng)上下載記錄器應(yīng)用程序,該應(yīng)用程序?qū)⒊掷m(xù)將系統(tǒng)/主/事件日志保存在sdcard中。這樣,您可以獲取幾個(gè)小時(shí)的使用情況數(shù)據(jù)。

          當(dāng)您要處理日志時(shí),請(qǐng)從sdcard中提取日志并執(zhí)行:

          $ chkbugreport dummy --no-limit -sl:systemlog.txt -el:eventlog.txt

          • 所述參數(shù)只用于產(chǎn)生一個(gè)輸出文件名

          • --no極限告訴chkbugreport不trunkate日志文件。缺省情況下,chkbugreport會(huì)中繼大于1MB的日志文件,以避免生成過(guò)多的報(bào)告(或耗盡內(nèi)存)。如果崩潰/異常位于日志末尾,有時(shí)這也是您想要的。但是,在這種情況下,我們要處理整個(gè)日志文件。

          • -sl:文件參數(shù)將加載系統(tǒng)/主日志。如果主日志位于單獨(dú)的文件中,則可以使用-ml:file加載它

          • -el:文件參數(shù)將加載事件日志


          當(dāng)然,由于缺少許多信息(例如,進(jìn)程的名稱(chēng)),因此生成的報(bào)告將受到更大的限制,因此chkbugreport會(huì)嘗試猜測(cè)它可以做什么。但是,即使僅從日志中也可以提取許多信息,例如電池使用情況

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除。同時(shí)感謝您的閱讀,期待您的關(guān)注。

          點(diǎn)個(gè)在看,方便您使用時(shí)快速查找!

          瀏覽 157
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女猛干直接看 | 日日嗨AV一区二区三区 | 欧美日韩激情在线一区二区三区 | 激情婷婷| 水蜜桃成人A片视频网站 |