工具與調(diào)試

1.5 工具與調(diào)試

調(diào)試 Flutter 應(yīng)用

有很多工具和特性可以幫助調(diào)試 Flutter 應(yīng)用程序跃赚,如下列舉了一些:

  • 開發(fā)者工具僚楞,是一套運(yùn)行在瀏覽器的性能及分析工具别凤。

  • Android Studio/IntelliJVS Code(借助 Flutter 和 Dart 插件)支持內(nèi)置的源代碼調(diào)試器偎行,可以設(shè)置斷點(diǎn),單步調(diào)試,檢查數(shù)值蛤袒。

  • Flutter inspector熄云,是開發(fā)者工具提供的 widget 檢查器,也可直接在 Android Studio 和 IntelliJ 中使用(借助 Flutter 插件)妙真。檢查器可以可視化展現(xiàn) widget 樹缴允,查看單個(gè) widget 及其屬性值,開啟性能圖層珍德,等等练般。

開發(fā)者工具

DevTools

要調(diào)試及分析應(yīng)用,開發(fā)者工具可能是你的首選锈候。開發(fā)者工具運(yùn)行在瀏覽器薄料,支持以下特性:

  • 源代碼調(diào)試器

  • widget 檢查器,展示可視化的 widget 樹泵琳; “widget select” 模式摄职,在應(yīng)用中選擇一個(gè) widget,會(huì)在 widget 樹直接定位到它的位置获列。

  • 內(nèi)存分析

  • 時(shí)間線視圖谷市,支持跟蹤,導(dǎo)入及導(dǎo)出跟蹤信息

  • 日志視圖

    logging view

如果你在 debug 模式profile 模式 運(yùn)行击孩,那么可以在瀏覽器打開開發(fā)者工具連接到你的應(yīng)用迫悠。開發(fā)者工具不能用在以 release 模式 編譯的應(yīng)用,因?yàn)檎{(diào)試和分析信息都被刪除了巩梢。

如果你要用開發(fā)者工具分析應(yīng)用创泄,需確保使用 profile 模式。否則且改,分析的主要輸出將會(huì)是用于驗(yàn)證框架中各種不變式的調(diào)試斷言(查看 debug 模式斷言)验烧。

想獲取更多信息,請(qǐng)查看 開發(fā)者工具 文檔又跛。

設(shè)置斷點(diǎn)

要設(shè)置斷點(diǎn)碍拆,可以直接在 IDE 或編輯器(比如 Android Studio/IntelliJVS Code)、開發(fā)者工具調(diào)試器 設(shè)置慨蓝,或者 通過編碼的方式設(shè)置感混。

Dart 分析器

The Dart analyzer

如果你使用的是 Flutter 推薦的 IDE 或編輯器,則自帶的 Dart 分析器默認(rèn)會(huì)檢查代碼礼烈,并發(fā)現(xiàn)可能的錯(cuò)誤弧满。

如果你使用命令行,則可以使用 flutter analyze 檢查代碼此熬。

Dart 分析器非常依賴你在代碼中添加的類型注解庭呜,以幫助跟蹤問題滑进。建議您在各個(gè)地方都加上注解(避免 var,無類型參數(shù)募谎,無類型 list 字面量扶关,等等),因?yàn)檫@是跟蹤問題最快且最不痛苦的方式数冬。

日志

Logging

另一個(gè)有用的調(diào)試工具是日志节槐。通過 編碼 配置日志,然后在開發(fā)者工具中的 日志視圖 或控制臺(tái)查看輸出拐纱。

調(diào)試應(yīng)用層

Flutter 采用分層架構(gòu)铜异,包括 widget、渲染和繪制等層秸架。想獲取更多信息和視頻揍庄,請(qǐng)查看 GitHub wiki 上的 The Framework architecture,和社區(qū)文章 The Layer Cake咕宿。

Flutter widget 檢查器提供了 widget 樹的視覺展現(xiàn)币绩,如果你想要更多細(xì)節(jié),或關(guān)于 wiget府阀、層級(jí)或渲染樹的詳盡文本轉(zhuǎn)儲(chǔ)缆镣,請(qǐng)查看 添加輸出代碼的方式調(diào)試 Flutter 應(yīng)用 頁面的 調(diào)試標(biāo)志:應(yīng)用層 部分。

Debug 模式斷言

Debug mode assertions

在開發(fā)過程中试浙,強(qiáng)烈建議您使用 Flutter 的 debug 模式董瞻。如果你是用 Android Studio 的 bug 圖標(biāo)運(yùn)行,或者在命令行執(zhí)行 flutter run田巴,則默認(rèn)會(huì)使用 debug 模式钠糊。有些工具通過 --enable-assets 命令行標(biāo)志可以支持?jǐn)嘌哉Z句。

在此模式壹哺,Dart 斷言語句被開啟抄伍,F(xiàn)lutter 框架在執(zhí)行時(shí)會(huì)計(jì)算每一個(gè)遇到的斷言語句的參數(shù),當(dāng)結(jié)果是 false 時(shí)拋出異常管宵。如此一來截珍,開發(fā)者可以控制不變式檢查的開啟或關(guān)閉,相應(yīng)的性能損耗將只發(fā)生在調(diào)試期間箩朴。

有不變式被違反時(shí)岗喉,它會(huì)被報(bào)告給控制臺(tái),并攜帶一些幫助跟蹤問題源的上下文信息炸庞。

想獲取更多信息钱床,請(qǐng)查看 探索 Dart 語言 中的 [斷言][Assert] 部分。

For more information, see Assert in the Dart language tour.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末埠居,一起剝皮案震驚了整個(gè)濱河市查牌,隨后出現(xiàn)的幾起案子事期,更是在濱河造成了極大的恐慌,老刑警劉巖纸颜,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刑赶,死亡現(xiàn)場離奇詭異,居然都是意外死亡懂衩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門金踪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浊洞,“玉大人,你說我怎么就攤上這事胡岔》ㄏ#” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵靶瘸,是天一觀的道長苫亦。 經(jīng)常有香客問我,道長怨咪,這世上最難降的妖魔是什么屋剑? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮诗眨,結(jié)果婚禮上唉匾,老公的妹妹穿的比我還像新娘。我一直安慰自己匠楚,他們只是感情好巍膘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芋簿,像睡著了一般峡懈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上与斤,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天肪康,我揣著相機(jī)與錄音,去河邊找鬼幽告。 笑死梅鹦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冗锁。 我是一名探鬼主播齐唆,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冻河!你這毒婦竟也來了箍邮?” 一聲冷哼從身側(cè)響起茉帅,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锭弊,沒想到半個(gè)月后堪澎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡味滞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年樱蛤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剑鞍。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昨凡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚁署,到底是詐尸還是另有隱情便脊,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布光戈,位于F島的核電站哪痰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏久妆。R本人自食惡果不足惜晌杰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筷弦。 院中可真熱鬧乎莉,春花似錦、人聲如沸奸笤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽监右。三九已至边灭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健盒,已是汗流浹背绒瘦。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扣癣,地道東北人惰帽。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像父虑,于是被迫代替她去往敵國和親该酗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355