Android調(diào)試獲取Log

1 Android Log

最近遇到一些抓log 的事情弄痹,很多來自網(wǎng)上達(dá)人的分享骡男,加在一起總結(jié)一下:

log文件分為實(shí)時打印的,還有狀態(tài)信息的兩種

??? 實(shí)時打印的主要有:logcat main窗悯,logcat radio瓶逃,logcat events,tcpdump丽已, QXDM Log

??? 狀態(tài)信息的有:adb shell dmesg蚌堵,adb shell dumpstate,adb shell dumpsys沛婴,adb bugreport


實(shí)時log:

adb logcat -b?events?-v time? 打印系統(tǒng)事件的日志吼畏,比如觸屏事件

tcpdump?是很有用的,對于TCP/IP協(xié)議相關(guān)的都可以使用這個來抓嘁灯,

  adb shell tcpdump -s 10000 -w /sdcard/capture.pcap泻蚊,

  比如抓mms下載的時候的UA profile,browser上網(wǎng)的時候丑婿,使用proxy的APN下載性雄,streaming的相關(guān)內(nèi)容包括UA profile等没卸。


狀態(tài)log:

???????? 其實(shí)一個就夠了,那就是bugreport(命令adb bugreport>bugreport.log)秒旋。

???????? 里面包含有dmesg约计,dumpstate和dumpsys;


?dmesg(命令adb shell dmesg > ldmesg_kernel.log)是kernel的log滩褥,凡是跟kernel相關(guān)的病蛉,比如driver出了問題(相機(jī),藍(lán)牙瑰煎,usb铺然,啟動,等等)


?dumpstate是系統(tǒng)狀態(tài)信息酒甸,里面比較全魄健,包括手機(jī)當(dāng)前的內(nèi)存信息、cpu信息插勤、logcat緩存沽瘦,kernel緩存等等;


?dumpsys這個是關(guān)于系統(tǒng)所有進(jìn)程Process的內(nèi)容都在這個里面农尖,adb shell dumpsys 這個命令還有更詳盡的用法析恋,

???????? 比如adb shell dumpsys meminfo system是查看system這個process的內(nèi)存信息。

???????? dumpsys [options]

?????????????? meminfo ? 顯示內(nèi)存信息

?????????????? cpuinfo ???? 顯示CPU信息

?????????????? account ??? 顯示accounts信息

?????????????? activity 顯示所有的activities的信息

?????????????? window ??? 顯示鍵盤盛卡,窗口和它們的關(guān)系

?????????????? wifi ?? 顯示wifi信息


通過adb logcat/bugreport可以實(shí)時的查看系統(tǒng)的log助隧,以及系統(tǒng)的狀態(tài)信息;

  如何將Log存儲下來滑沧,保存當(dāng)時系統(tǒng)運(yùn)行的情況呢并村?

  可以通過一些腳本或者執(zhí)行可執(zhí)行程序來保存log信息,以便分析問題滓技;


2 抓取實(shí)時log?

intmain(intargc,char*argv[])

{

? ? ……

? ? //抓取main logcharpath[] ="/xxx/xxx/app_main.log";

? ? sprintf(cmd,"logcat -v time > %s",path);

? ? fd = open(path, O_WRONLY|O_TRUNC|O_CREAT,0777);system(cmd);//radio log? ? ……

? ? sprintf(cmd,"logcat -b radio -v time > %s",path);system(cmd);//kernel? ? ……

? ? sprintf(cmd,"cat /proc/kmsg > %s",path);system(cmd);//bluetoolth logsprintf(cmd,"hcidump -w %s","/data/bt.log");system(cmd);? ? ……}


3 抓取狀態(tài)log

intmain(intargc,char*argv[])

{

? ? //panic log 需要判斷/proc/apanic_console是否存在sprintf(cmd,"cp -R %s %s",from_dir,to_dir);system(cmd);//anr log /data/anr/sprintf(cmd,"cp -R %s %s",from_dir,to_dir);system(cmd);//tombstones log /data/tombstones/modem重啟復(fù)位等sprintf(cmd,"cp -R %s %s",from_dir,to_dir);system(cmd);//mdm log /data/tombstones/mdm/modem重啟復(fù)位sprintf(cmd,"cp -R %s %s",from_dir,to_dir);system(cmd);

……

}

panic log:

  它表示Linux kernel走到了一個不知道該怎么走下一步的狀況哩牍,

  http://wenku.baidu.com/view/519c8009844769eae009ed50

tombstone log:????

  當(dāng)系統(tǒng)發(fā)生tombstone的時候,kernel首先會上報一個嚴(yán)重的警告信號(signal),上層接收到之后令漂,

進(jìn)程的調(diào)試工具會把進(jìn)程中當(dāng)時的調(diào)用椣ダィ現(xiàn)場保存起來,并在系統(tǒng)創(chuàng)建了data/tombstones目錄后把異常時的進(jìn)程信息寫在此目錄里面叠必,

開發(fā)者需要通過調(diào)用棧來分析整個調(diào)用流程來找出出問題的點(diǎn)外潜。

  ?http://www.eoeandroid.com/thread-206358-1-1.html


4 Runtime 可執(zhí)行程序

編譯成可執(zhí)行程序,當(dāng)然在實(shí)際使用中需要一些控制參數(shù)挠唆。

代碼里如何執(zhí)行這些可執(zhí)行程序:

???????? 在底層可以通過system();

???????? 在Java層Runtime.getRuntime().exec();

例如:

???????? String BIN_PATH = "/system/bin/catch_log";

???????? Runtime.getRuntime().exec(BIN_PATH + " -x 1");


???????? Runtime.getRuntime().exec("/system/bin/cat? "+path);

???????? Runtime.getRuntime().exec("su -c chmod 777 /data/glad.txt");

???????? Runtime.getRuntime().exec("/system/bin/sh /data/test.sh");


Android Runtime使得直接調(diào)用底層Linux下的可執(zhí)行程序或腳本成為可能

比如Linux下寫個測試工具处窥,直接編譯后apk中通過Runtime來調(diào)用

或者寫個腳本,apk中直接調(diào)用玄组,省去中間層或者JNI滔驾;

?? 參考文檔:http://blog.csdn.net/zmyde2010/article/details/6123987


5 diag_mdlog

???????? 這是高通提供的抓取qxdm log的東東谒麦。

???????? 既包括AP端得,也包括BP端的哆致;或者跟選擇端口有關(guān)系,8064ap和modem端口獨(dú)立绕德;


???????? 代碼位置:\vendor\qcom\proprietary\diag\mdlog\


???????? 使用diag_mdlog這個可執(zhí)行程序來抓取log

?????????????????? 需要Diag.cfg文件來配置過濾項,選擇需要的Log信息摊阀。在使用前必須放置一個Diag.cfg文件耻蛇。

?????????????????? Diag.cfg文件可以用QXDM生成;可以通過F12胞此,F(xiàn)iltered View /Config 來生成Diag.cfg


???????? 這個程序一次只能執(zhí)行一個臣咖,可以用kill -9 PID 將其強(qiáng)制結(jié)束


6 抓取Ap 端 memory dump

???????? 高通qpst工具M(jìn)emory Dump App

???????? 要在downloader模式

???????? 需要修改的nv項:

?????????????????? 905 0

?????????????????? 4399 1

???????? 或者使用emmc進(jìn)入downloader模式。


???????? 打開連接手機(jī)漱牵, Get Regions夺蛇,選擇需要保存的Regin,SaveTo選擇一個文件夾酣胀,確定即可

???????? 注意:這個路徑下不能有中文刁赦,必須是英文的路徑

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市闻镶,隨后出現(xiàn)的幾起案子甚脉,更是在濱河造成了極大的恐慌,老刑警劉巖铆农,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宦焦,死亡現(xiàn)場離奇詭異,居然都是意外死亡顿涣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門酝豪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涛碑,“玉大人,你說我怎么就攤上這事孵淘∑颜希” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵瘫证,是天一觀的道長揉阎。 經(jīng)常有香客問我,道長背捌,這世上最難降的妖魔是什么毙籽? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮毡庆,結(jié)果婚禮上坑赡,老公的妹妹穿的比我還像新娘烙如。我一直安慰自己,他們只是感情好毅否,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布亚铁。 她就那樣靜靜地躺著,像睡著了一般螟加。 火紅的嫁衣襯著肌膚如雪徘溢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天捆探,我揣著相機(jī)與錄音然爆,去河邊找鬼。 笑死徐许,一個胖子當(dāng)著我的面吹牛施蜜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雌隅,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼翻默,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恰起?” 一聲冷哼從身側(cè)響起修械,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎检盼,沒想到半個月后肯污,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吨枉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年蹦渣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片貌亭。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡柬唯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出圃庭,到底是詐尸還是另有隱情锄奢,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布剧腻,位于F島的核電站拘央,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏书在。R本人自食惡果不足惜灰伟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望儒旬。 院中可真熱鬧袱箱,春花似錦遏乔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至了讨,卻和暖如春捻激,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背前计。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工胞谭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人男杈。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓丈屹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伶棒。 傳聞我的和親對象是個殘疾皇子旺垒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容