疑難Bug搜尋定位之路

真實(shí)的自己.jpg

前言

現(xiàn)在的安卓碎片化其實(shí)挺嚴(yán)重货邓,由于是開源的系統(tǒng)栏笆,每個(gè)手機(jī)廠商都有自己的Rom准验。每個(gè)廠商的適配對于我這種苦逼的初級菜鳥安卓開發(fā)程序員是一大難題扔水。但是今天講的并不是適配的話題饱狂,哈哈哈曹步,那么我今天要說的,到底是什么呢休讳?


sdf.jpg

前面講的可以當(dāng)做廢話讲婚,哈哈哈,今天我要講的俊柔,是當(dāng)遇到無法重現(xiàn)的Bug時(shí)筹麸,的其中一種定位方式。

問題來源

不知道大家有沒有遇到過雏婶,開發(fā)的App,在自己的手機(jī)上流暢到死竹捉,結(jié)果客戶一用就出現(xiàn)問題。我現(xiàn)在就是這樣尚骄。公司的App在我手機(jī)上面跑的時(shí)候块差,啟動(dòng)速度飛快,但是到了部分客戶手上倔丈,卻變成了打開費(fèi)勁憨闰。要等待十幾秒才把主界面顯示出來。
這是什么用戶體驗(yàn)P栉濉p亩!宏邮!


code奔潰.gif

解決思路

不是所有手機(jī)都有問題泽示,那首先排除了代碼邏輯Bug。極大可能是第三方東西的問題蜜氨。但是我們不能一味的盲目解決械筛。首先我們得找到問題到底出現(xiàn)在哪里,不管能不能解決飒炎,首先得定位出現(xiàn)這些問題的位置埋哟。(其實(shí)我剛開始也是無頭蒼蠅一樣,一直在百度如何提高啟動(dòng)速度。什么第三方初始化不要放在主線程啊等等)
后來實(shí)在沒有辦法毅人,請教了有經(jīng)驗(yàn)之人,了解了一個(gè)定位問題的辦法∩麒担現(xiàn)在就來講講抛计。

說實(shí)話哄孤,當(dāng)你自己的手機(jī),測試的手機(jī)都沒有出現(xiàn)問題的時(shí)候吹截,客戶再不斷說這個(gè)app不好用录豺,這種感覺真不好受,感覺整個(gè)人都要自閉了饭弓。所以双饥,定位方法就是:

定位方法

首先,你得想想為什么會出現(xiàn)這樣弟断,出現(xiàn)這樣無非就幾種原因:
1.第三方框架初始化的時(shí)候可能卡住了(網(wǎng)絡(luò)或者其他原因阻塞主線程)
2.網(wǎng)絡(luò)不好
3.獲取本地?cái)?shù)據(jù)出現(xiàn)問題
........

那么咏花,一打開就這樣,肯定是OnCreat方法里面有關(guān)系阀趴,我們了解里面的流程之后昏翰,就可以進(jìn)入本篇文章的重點(diǎn)了。

重點(diǎn)

你需要一個(gè)后臺服務(wù)器刘急,如果你懂后臺的話棚菊,寫一個(gè)小的Demo,主要就是用于將App上傳的數(shù)據(jù),顯示出來叔汁。那假如不會后臺统求,怎么辦?据块?自行百度了解實(shí)現(xiàn)這是一種方法码邻,能擴(kuò)展你的知識面。不過這個(gè)很費(fèi)時(shí)間哦另假。那怎么辦嘞像屋?這個(gè)好辦,找你們公司的后臺幫忙一下就好了边篮,實(shí)現(xiàn)這個(gè)很簡單己莺。

那么后臺服務(wù)器Demo準(zhǔn)備好了,我們就開始在App上動(dòng)刀子了。我們在每一個(gè)初始化第三方框架的結(jié)束的時(shí)候戈轿,就上傳當(dāng)前的手機(jī)型號凌受、網(wǎng)絡(luò)狀態(tài)、內(nèi)存剩余量凶杖、初始化的第三方信息以及最重要的完成時(shí)間(毫秒級)胁艰。什么?這些都不知道如何獲戎球稹腾么?這個(gè)我下一篇文章將詳細(xì)講解。這樣子杈湾,當(dāng)你Build一個(gè)測試App給用戶打開的時(shí)候解虱,通過時(shí)間的比對,你就會知道漆撞,到底哪一步是造成進(jìn)入慢的罪魁禍?zhǔn)着固6嗾f無益,舉個(gè)栗子:

/**
         * 初始化極光推送SDK
         */
        JPushInterface.setDebugMode(true);
        JPushInterface.init(context);
        //調(diào)用網(wǎng)絡(luò)訪問封裝類浮驳,上傳 Log 日志數(shù)據(jù)
        new MyLibraryLogAPI().uploadLog("initApp", "App", LogTestUtils.produceLogMsg(this, "極光推送初始化"), 1);

LogTestUtils.produceLogMsg(this, "極光推送初始化")這個(gè)是獲取到我需要的的值悍汛,具體如下:

 public static String produceLogMsg(Context context,String problemSite){
        String logMsg=null;
        logMsg="調(diào)試哪個(gè)步驟造成卡頓:" +
                "  當(dāng)前手機(jī):" + getDeviceBrand()+"   "+getSystemModel()+ 
                "  時(shí)間:"+getLogTimeString() +                                         
                "  本機(jī)總內(nèi)存大小:" +getTotalMemory(context)+         
                "  當(dāng)前可用內(nèi)存大兄粱帷:" +getAvailMemory(context)+            
                "  網(wǎng)絡(luò)狀態(tài):" + getAPNType(context)+                                
                "  停留的定位:"+problemSite;                                          
        return logMsg;
    }

到這里离咐,App的操作就講完了,是不是挺簡單奉件?主要就是后臺這塊有點(diǎn)難搞宵蛀。哈哈哈

當(dāng)我們編譯app,再手機(jī)上測試的時(shí)候,后臺服務(wù)器就會打印我們上傳的數(shù)據(jù)了县貌,附上后臺結(jié)果圖术陶。

后臺打印結(jié)果圖.png

這樣子,初始化一目了然煤痕,我們只需要打包給客戶梧宫,叫他打開App,咱們就能定位到問題到底出現(xiàn)在哪里啦!摆碉!
細(xì)心的朋友可能會發(fā)現(xiàn)祟敛,我給出的結(jié)果圖貌似挺正常的,每一個(gè)初始化都在毫秒級就完成了兆解。沒錯(cuò)馆铁,確實(shí)沒有任何問題,因?yàn)槲椰F(xiàn)在還沒有定位出來哪里出現(xiàn)了問題锅睛,哈哈哈哈埠巨,至少現(xiàn)在能知道,客戶出現(xiàn)的問題现拒,至少不是第三方初始化了辣垒,下一步將在網(wǎng)絡(luò)和本地?cái)?shù)據(jù)獲取中定位。

總結(jié)

這是一個(gè)問題定位的方法印蔬,肯定還有其他更好的方法勋桶,因?yàn)槲覉?jiān)信一句話:辦法總會比困難多,一切皆有可能!
碼字不易例驹,望點(diǎn)贊關(guān)注捐韩。也是自己的第一篇正式的文章,如有錯(cuò)誤鹃锈,望批評改正荤胁。????

最后,一張神圖壓底屎债。

神gif.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仅政,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盆驹,更是在濱河造成了極大的恐慌圆丹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躯喇,死亡現(xiàn)場離奇詭異辫封,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)玖瘸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門秸讹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雅倒,你說我怎么就攤上這事璃诀。” “怎么了蔑匣?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵劣欢,是天一觀的道長。 經(jīng)常有香客問我裁良,道長凿将,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任价脾,我火速辦了婚禮牧抵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侨把。我一直安慰自己犀变,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布秋柄。 她就那樣靜靜地躺著获枝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骇笔。 梳的紋絲不亂的頭發(fā)上省店,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天嚣崭,我揣著相機(jī)與錄音,去河邊找鬼懦傍。 笑死雹舀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谎脯。 我是一名探鬼主播葱跋,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼持寄,長吁一口氣:“原來是場噩夢啊……” “哼源梭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起稍味,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤废麻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后模庐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烛愧,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年掂碱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怜姿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疼燥,死狀恐怖沧卢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情醉者,我是刑警寧澤但狭,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站撬即,受9級特大地震影響立磁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剥槐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一唱歧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粒竖,春花似錦颅崩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至岁歉,卻和暖如春得运,著一層夾襖步出監(jiān)牢的瞬間膝蜈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工熔掺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饱搏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓置逻,卻偏偏與公主長得像推沸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子券坞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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