Flutter:混編模式下的調(diào)試方案

作為軟件開發(fā),調(diào)試過程必不可少,那么在混編模式下有什么調(diào)試方案和技巧呢蒲稳?我們本地既有原生工程代碼,又有 Flutter 工程代碼伍派,想要同時調(diào)試原生代碼和 Flutter 代碼弟塞,一般有兩種方案:

方案一:iOS 和 Flutter 同時調(diào)試,不支持?jǐn)帱c(diǎn)

① Xcode 打開 iOS 項(xiàng)目拙已,運(yùn)行項(xiàng)目并打開 Flutter 項(xiàng)目頁面。
② Android Studio 打開嵌在 iOS 項(xiàng)目中的 Flutter 項(xiàng)目摧冀,控制臺選擇 Terminal 選項(xiàng)卡倍踪。在終端輸入命令行:flutter devices,打印出已連接到計(jì)算機(jī)的設(shè)備索昂。

③ 在終端輸入如下命令行建车,后面的是 iPhone 的設(shè)備號,這里是模擬器椒惨。flutter attach 的作用是將當(dāng)前Flutter 項(xiàng)目連接到某個正在運(yùn)行的應(yīng)用程序上缤至。

flutter attach -d 60BB7784-43BA-4569-871A-3BA6D4E136D0

連接成功后,當(dāng)我們修改了 Flutter 項(xiàng)目的代碼后康谆,可以按照下面的快捷鍵在終端進(jìn)行相應(yīng)操作:

  • r是熱重載领斥,局部刷新,刷新所有改動的 Flutter 代碼文件沃暗,此時就可以看到代碼改動后的結(jié)果
  • R是熱重啟月洛,全部刷新,刷新所有的 Flutter 文件孽锥。如果 Hot reload 刷新無效嚼黔,可以嘗試使用 Hot restart
  • dq都是終止連接,結(jié)束調(diào)試

Hot reloadHot restart 區(qū)別:

  • Hot reload:將所有代碼更改加載到 VM 中惜辑,并重新構(gòu)建 Widget 樹唬涧,但是不會重新運(yùn)行 main()initState()
  • Hot restart:同樣將所有代碼更改加載到 VM 中盛撑,然后重新啟動 Flutter 應(yīng)用碎节,從而丟失應(yīng)用狀態(tài)。
Performing hot restart...                                               
Restarted application in 680ms.

Performing hot reload...                                                
Reloaded 0 libraries in 107ms (compile: 16 ms, reload: 0 ms, reassemble: 11 ms).

二撵彻、iOS 和 Flutter 同時調(diào)試钓株,支持?jǐn)帱c(diǎn)方案

① Android Studio 打開嵌在 iOS 項(xiàng)目中的 Flutter 項(xiàng)目实牡,工具欄點(diǎn)擊 Flutter Attach

此時控制臺 Debug 選項(xiàng)卡輸出日志信息:

在 Flutter 和 Native 混編的過程轴合,使用 flutter attach 同步代碼出現(xiàn)如上錯誤创坞。這是因?yàn)橛卸鄠€端口,選擇其中一個執(zhí)行就可以了受葛,一般選擇不帶數(shù)字的一個题涨。可以重新運(yùn)行 XCode 工程或者直接關(guān)掉模擬器总滩,重新連接纲堵。

Debug service listening on ws://127.0.0.1:61933/-4kIlDugw3g=/ws
Syncing files to device iPhone 14 Pro Max...

連接完成,可以進(jìn)行斷點(diǎn)調(diào)試闰渔。同樣在控制臺上邊可以通過點(diǎn)擊 Hot reloadHot restart 按鈕來實(shí)現(xiàn)代碼修改的更新操作席函。

當(dāng)我們想要在 Flutter 側(cè)調(diào)試代碼的時候,只需要在控制臺上打好斷點(diǎn)就可以了冈涧,等APP運(yùn)行到斷點(diǎn)處時就會自動停止下來茂附,進(jìn)入斷點(diǎn)流程。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載督弓,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者营曼。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市愚隧,隨后出現(xiàn)的幾起案子蒂阱,更是在濱河造成了極大的恐慌,老刑警劉巖狂塘,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件录煤,死亡現(xiàn)場離奇詭異,居然都是意外死亡荞胡,警方通過查閱死者的電腦和手機(jī)辐赞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硝训,“玉大人响委,你說我怎么就攤上這事〗蚜海” “怎么了赘风?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纵刘。 經(jīng)常有香客問我邀窃,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任瞬捕,我火速辦了婚禮鞍历,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肪虎。我一直安慰自己劣砍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布扇救。 她就那樣靜靜地躺著刑枝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迅腔。 梳的紋絲不亂的頭發(fā)上装畅,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機(jī)與錄音沧烈,去河邊找鬼掠兄。 笑死,一個胖子當(dāng)著我的面吹牛锌雀,可吹牛的內(nèi)容都是我干的徽千。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼汤锨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了百框?” 一聲冷哼從身側(cè)響起闲礼,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铐维,沒想到半個月后柬泽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嫁蛇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年锨并,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睬棚。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡第煮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抑党,到底是詐尸還是另有隱情包警,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布底靠,位于F島的核電站害晦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏暑中。R本人自食惡果不足惜壹瘟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一鲫剿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧稻轨,春花似錦灵莲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粱挡,卻和暖如春赠幕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背询筏。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工榕堰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嫌套。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓逆屡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親踱讨。 傳聞我的和親對象是個殘疾皇子魏蔗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

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