Android應用程序調(diào)試神器Stetho

Stetho簡介

Stetho是Facebook開發(fā)的一款幫助android開發(fā)人員快遞調(diào)試應用程序的插件。

它的主要功能分為以下五種:

1、網(wǎng)絡請求狀態(tài)及數(shù)據(jù)查看。

網(wǎng)絡請求

2、本地數(shù)據(jù)庫文件及pref文件的查看以及更改纺棺。

本地數(shù)據(jù)庫查看

3、視圖層級查看邪狞。

視圖層級查看

其主要功能可以通過兩個方面展示給開發(fā)者:

1祷蝌、基于Chrome Developer Tools 的界面查看形式。

2外恕、基于dumpapp 的命令行查看形式杆逗。

Stetho的接入方式

做android應用開發(fā)的小伙伴目前大多就采用android studio開發(fā),因此大多都應該對gradle文件相當了解鳞疲,而罪郊,stetho的接入方式就是在項目的gradle文件中,加上一句dependencies即可尚洽。內(nèi)容如下:


dependencies {

    compile 'com.facebook.stetho:stetho:1.5.0'

  }

引入之后悔橄,那么,再次安裝應用程序到手機上調(diào)試時腺毫,在chrome瀏覽器中輸入chrome://inspect癣疟,將會出現(xiàn)類似于下面這個頁面的結構。

安裝成功

此時表明這個插件已經(jīng)被安裝成功了潮酒。

Stetho引入之后的好處

stetho之所以稱之為應用程序調(diào)試神器睛挚,一定是有它解決了在應用程序開發(fā)過程中開發(fā)者遇到的一些痛點。比如:

1急黎、一個大的項目通常會有很多個開發(fā)者協(xié)作開發(fā)扎狱,因此侧到,有時候開發(fā)者需要知道當前app所在的頁面是哪個activity的時候,通常需要咨詢這個模塊的開發(fā)者淤击,而有了stetho匠抗,你會很方便的找到當前頁在哪個activity,這就是借助視圖層級查看特性了污抬。

2汞贸、應用程序通常設置一些開關,通常開發(fā)者會將這些數(shù)據(jù)寫到pref中印机,比如矢腻,用戶首次進入模塊A,需要彈出引導流程射赛,告知用戶如何使用模塊A功能踏堡。而如果,你想體驗這個流程多次的話咒劲,你不得不清除應用數(shù)據(jù),或者卸載重裝诫隅。而然腐魂,有了stetho,你就可以輕而易舉的更改pref中的數(shù)據(jù)逐纬,更改完畢之后蛔屹,立即生效,直接就可以重新體驗引導流程了豁生。

3兔毒、現(xiàn)在開發(fā)的應用程序絕大多數(shù)都是網(wǎng)絡請求需要的,哪怕是一些工具類應用都大多具備網(wǎng)絡請求模塊甸箱,因此開發(fā)者在開發(fā)過程中育叁,難免會對于服務端返回的數(shù)據(jù)持懷疑態(tài)度,因為芍殖,按照預期豪嗽,數(shù)據(jù)正確的話,ui的渲染不應該是這樣豌骏,那么到底是后端數(shù)據(jù)返回錯誤龟梦,還是程序bug,有了stetho的幫助窃躲,其原因?qū)⒁荒苛巳患品。@一切的一切都是stetho將數(shù)據(jù)模型發(fā)送給Chrome Developer Tools ,最終才已友好的方式展示給了開發(fā)者蒂窒,方便開發(fā)者迅速定位問題躁倒。

Stetho原理

Stetho官網(wǎng)并沒有介紹Stetho的原理荞怒,因此,了解Stetho原理最好的方式莫過于看Stetho的源碼樱溉。本文只是簡單的介紹挣输,因此大概的分析一下stetho的原理:

stetho源碼結構

從源碼中,我們可以大致的推斷出設備上的數(shù)據(jù)發(fā)送到Chrome Developer Tools上最終展示給開發(fā)者看到的流程大致是這樣的:

數(shù)據(jù)流圖

用語言來描述應該是這樣子:

1福贞、安裝了stetho插件的app啟動之后撩嚼,會啟動一個本地server1(LocalSocketServer),這個本地server1等待著app(client)的連接挖帘。

2完丽、同時,這個本地server1會與另外一個本地server2(ChromeDevtoolsServer)連接著拇舀。

3逻族、本地app一旦連接上,數(shù)據(jù)將會不停的被發(fā)送到本地server1骄崩,然后轉(zhuǎn)由server2.

4聘鳞、然后Chrome Developer Tools,想訪問網(wǎng)站一樣的要拂,訪問了ChromeDevtoolsServer抠璃,隨之將數(shù)據(jù)友好的展示給了開發(fā)者,這么一個過程就此完結脱惰。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搏嗡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拉一,更是在濱河造成了極大的恐慌采盒,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚润,死亡現(xiàn)場離奇詭異磅氨,居然都是意外死亡,警方通過查閱死者的電腦和手機抽碌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門悍赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人货徙,你說我怎么就攤上這事左权。” “怎么了痴颊?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵赏迟,是天一觀的道長。 經(jīng)常有香客問我蠢棱,道長锌杀,這世上最難降的妖魔是什么甩栈? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮糕再,結果婚禮上量没,老公的妹妹穿的比我還像新娘。我一直安慰自己突想,他們只是感情好殴蹄,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猾担,像睡著了一般袭灯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绑嘹,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天稽荧,我揣著相機與錄音,去河邊找鬼工腋。 笑死姨丈,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的擅腰。 我是一名探鬼主播构挤,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惕鼓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起唐础,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤箱歧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后一膨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呀邢,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年辨赐,在試婚紗的時候發(fā)現(xiàn)自己被綠了雁竞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片活玲。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蝉衣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情巷蚪,我是刑警寧澤病毡,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站屁柏,受9級特大地震影響啦膜,放射性物質(zhì)發(fā)生泄漏有送。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一僧家、第九天 我趴在偏房一處隱蔽的房頂上張望雀摘。 院中可真熱鬧,春花似錦八拱、人聲如沸阵赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豌注。三九已至,卻和暖如春灯萍,著一層夾襖步出監(jiān)牢的瞬間轧铁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工旦棉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留齿风,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓绑洛,卻偏偏與公主長得像救斑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子真屯,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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

  • What is Stetho ? Stetho 是一個功能強大的 Android 應用調(diào)試橋绑蔫,起到橋梁的作用运沦,連接...
    奧利奧龍卷風閱讀 1,774評論 0 5
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評論 25 707
  • 越來越覺得唯心主義是個好東西,但是要多往好處想配深。世界的打開方式有無數(shù)種携添,縱使你有七十二般武藝,都無法窮盡全部方式篓叶。...
    竹葉青zw閱讀 90評論 2 0
  • 1.NSInvalidArgumentException 異常 出現(xiàn)這種異常的原因一般是在不可以出現(xiàn)nil數(shù)據(jù)的時...
    SuperZico閱讀 1,014評論 1 0
  • 工作中烈掠,被同事為難,本來一個電話就能夠搞定的事情缸托,卻被推了回來左敌。很多東西,都是自己不懂的東西俐镐。心里特別沒數(shù)母谎,連去找...
    瘋狂向前豬豬閱讀 170評論 0 0