一、如何使用電腦連接夜神模擬器(手機(jī)????)
(1)adb devices? 連接設(shè)備?
? ? ? ? 語法: adb devices
(2)打開模擬器的關(guān)于手機(jī)→點(diǎn)擊多次版本號→處于開發(fā)模式→返回上一級→點(diǎn)擊開發(fā)者模式→點(diǎn)擊usb調(diào)試模式
(3)如果adb devices 沒有出現(xiàn) 127.0.0.1:62001的話 革答,默認(rèn)為是沒有連接設(shè)備叔营,請連接設(shè)備澡谭。
? ? ? ? ?語法: adb conect 127.0.0.1:62001
(4)連接完成后,再次輸入 adb? devices 糠雨,跟(1)一致,就表示連接成功了奖亚,然后可以操作了淳梦。
二、ADT昔字、SDK爆袍、ADB——概念補(bǔ)充
? ? (1)ADT(Android development tools) ——Android開發(fā)工具。在Eclipse上調(diào)用各種與Android有關(guān)的插件李滴,便于ADT
????(2)SDK(software development kit)——軟件開發(fā)部件螃宙。要用到各種Android平臺蛮瞄,好比Android2.3等所坯,便要有SDK
????(3)ADB(重點(diǎn))(Android debug bride)——是用來連接安卓手機(jī)和PC端的橋梁,通過adb服務(wù)挂捅,在pc端命令行界面對手機(jī)或模擬器進(jìn)行全面的操作
三芹助、ADB常用命令
? ? (1)adb --help? 查看幫助手冊
????(2)adb devices? 檢測連接到電腦的安卓設(shè)備,這個(gè)是會經(jīng)常用到的檢測命令
? ? (3)adb connect / disconnect? ? iP:端口號闲先,通過wifi進(jìn)行遠(yuǎn)程連接手機(jī)進(jìn)行調(diào)試状土,手機(jī)和電腦在連接同一個(gè)路由器
? ? (4)adb? shell ——登錄設(shè)備shell(命令行的人機(jī)界面),跟linux的命令行界面類似伺糠,相當(dāng)于遠(yuǎn)程操作命令
? ? (5)adb? pull(理解為下載) ——<手機(jī)文件路徑> <真機(jī)路徑> ——從Android手機(jī)拉取到本機(jī)電腦中
? ? (6)adb push(理解為上傳)——?<真機(jī)路徑>?<手機(jī)文件路徑> ——從本地電腦中推送(發(fā)送)到手機(jī)中
? ? (7)adb install 包名.apk——為了獲取apk的安裝包所在地址蒙谓,可以直接把a(bǔ)pk拖到cmd的窗口獲取,返回Success說明安裝成功了训桶。
? ? (8)adb uninstall 應(yīng)用包名 ——卸載應(yīng)用包名 (注意:安裝的包名和應(yīng)用包名不一致)
? ? ? ? ? ? 獲取應(yīng)用包名第一種方法:進(jìn)入 /data/data/目錄查看應(yīng)用包名? ??
?????????????獲取應(yīng)用包名第二種方法:就是(9)累驮,打開安裝的app,然后輸入(9)的命令舵揭。? ? ? ?
? ? (9)adb shell dumpsys activity | find "mFocusedActivity"??——查看前臺應(yīng)用包名
? ? (10)adb logcat ——打印log日志信息?
三谤专、logcat——日志文件? ??
(1)Android日志系統(tǒng)提供了記錄和查看系統(tǒng)調(diào)試信息的功能,日志都是從各種軟件和一些系統(tǒng)的緩沖區(qū)記錄下來的午绳,緩沖區(qū)可以通過logcat命令來查看和使用
(2)使用方法: adb? logcat? [ 選項(xiàng)參數(shù) ]? ?[ <fiter-spec> ]
(3)開發(fā)者選項(xiàng)置侍。有個(gè)選項(xiàng)叫做"日志記錄器緩沖區(qū)大小",默認(rèn)是256K拦焚,日志是循環(huán)寫入環(huán)形緩沖區(qū) 的蜡坊,在通常情況下,寫滿時(shí)最舊的日志會被刪除以新輸出的日志留內(nèi)存空間——真機(jī)設(shè)置赎败,模擬器一般沒有
四算色、logcat日志文件分析
? ? (1)由五部分組成: 1.寫下日志時(shí)的時(shí)間,如圖中12-12 01:00:57.857
? ? (2)2.優(yōu)先級螟够,在Android中灾梦,日志的優(yōu)先級從低到高分以下幾種
? ? ? ? ? ? ---V ——Verbose(啰嗦峡钓,最低級別,開發(fā)調(diào)試中的一些詳細(xì)信息若河,僅在開發(fā)中使用能岩,不可以發(fā)布產(chǎn)品輸出)
? ? ? ? ? ? ---D ——Debug(調(diào)試,用于調(diào)試的信息萧福,可以在發(fā)布產(chǎn)品關(guān)閉拉鹃,比較常見)
? ? ? ? ? ? ---I ——Info (信息,一般提示性的信息)
? ? ? ? ? ? ---W ——warning (警告)
? ? ? ? ? ? ---E ——error(錯(cuò)誤鲫忍,已經(jīng)出現(xiàn)可影響運(yùn)行的錯(cuò)誤膏燕,比如應(yīng)用crash時(shí)輸出的日志)
? ? (3)標(biāo)簽(tag),標(biāo)明日志發(fā)起者和方便日志的過濾篩選悟民,如上中ActivityManger坝辫。類和模塊
? ? (4)Pid(進(jìn)行PID)
? ? (5)正文,本日志的主體內(nèi)容
? ? 五射亏、演示如何日志定位近忙,抓取錯(cuò)誤
? ? (1)遇到crash發(fā)生的錯(cuò)誤,立馬輸入 adb logcat -v time > 保存的文件路徑
? ? (2)然后根據(jù)報(bào)錯(cuò)關(guān)鍵字(exception)和報(bào)錯(cuò)時(shí)間和來定位錯(cuò)誤所在的位置
? ? (3)搜索fatal /caused by 關(guān)鍵字
????(5)搜索 Force Finishing 關(guān)鍵字
六智润、何為ANR及舍?
????(1)ANR全名(APPlication Not Responding),也就是應(yīng)用無響應(yīng)當(dāng)操作一段時(shí)間內(nèi)系統(tǒng)無法處理時(shí)窟绷,系統(tǒng)層面會彈出以下圖的ANR對話窗口
????(2)為用戶在主線程長時(shí)間被阻塞時(shí)提供處理交互锯玛,提高用戶體驗(yàn)
? ? (3)Android系統(tǒng)一種自身檢測機(jī)制
? ? (4)遇到anr這種問題,不是要提交bug兼蜈,而是要建議開發(fā)人員優(yōu)化這個(gè)問題
七攘残、演示anr報(bào)錯(cuò)/日志定位
? ? (1)發(fā)現(xiàn)異常bug立馬保存日志
? ? (2)根據(jù)關(guān)鍵字(Anr)和日志時(shí)間 來定位日志錯(cuò)誤? ? ?(但是并不是想要的結(jié)果,不存在java饭尝,at的錯(cuò)誤)
????(3)系統(tǒng)在anr發(fā)生時(shí)肯腕,會通過三種方式保存記錄信息
? ? ? ? ? ? ? ① ---Logcat日志 ——以上都是logcat)
? ? ? ? ? ? ? ②---Trace文件 ——通過? /data / anr/ traces.txt 來分析
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ——Dump stack trace 信息
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ——Dump 的進(jìn)程包括:當(dāng)前應(yīng)用進(jìn)程,父進(jìn)程钥平,主進(jìn)程实撒,persistent進(jìn)程,以及cpu占用率排在前幾位的(最多五個(gè))進(jìn)程?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ——ps:(只能記錄最后一次發(fā)生的anr信息涉瘾,很容易被替換掉)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ——操作方法:(文件在 系統(tǒng)的 /data /anr / 目錄中)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——操作方法:進(jìn)入對應(yīng)目錄知态,并且吧traces.文件 下載到本地
? ? ? ? ? ? ? ③---DropBox服務(wù)?
? ? ? ? ? ? ? ? ? ? ——data/ anr / traces.txt 文件里面只能保存最后一次發(fā)生anr的traces信息? ?
? ? ? ? ? ? ? ? ? ? ——通過dropbox可以收集系統(tǒng)一段時(shí)間內(nèi)的異常信息(anr,crash)
? ? ? ? ? ? ? ? ? ? ——/data / system / dropbox 是dropbox 指定的文件存放位置