DevEco Studio新特性分享-跨語言除錯,讓除錯更便捷高效

語言: CN / TW / HK

HUAWEI DevEco Studio是開發HarmonyOS應用及服務的一站式整合開發環境。本次分享DevEco Studio 3.1 Canary1上線的新特性- ArkTS與C++跨語言除錯,讓除錯更便捷高效。

一、什麼是跨語言除錯

在日常開發活動中,開發者會靈活運用每種開發語言的長處來編寫程式,在一個工程中可能會包含多種語言。

一般情況下,會在HarmonyOS的工程中使用ArkTS來承載頁面和業務邏輯,用C++來實現效能要求較高的底層邏輯。這樣,在程式碼除錯時,就會面臨同時除錯兩種語言的問題。如果只能使用單語言除錯的方式,就需要頻繁的切換除錯會話、重啟應用,還需要在C++語言中手動新增斷點,且呼叫鏈斷層不連續。這樣在整個除錯過程中,需要大量的手工操作,每次切換過程還需要6s左右的無效等待時間,除錯效率較低。

針對這種多語言的開發場景, DevEco Studio提供了便捷高效的除錯定位能力,支援ArkTS與C++跨語言除錯,可同時除錯ArkTS、C++這兩種語言,整體操作體驗與單一語言除錯一致。在除錯執行到呼叫C++程式碼處,斷點能夠直接Step Into跳轉到C++程式碼,整個除錯過程連續,無需額外在對應語言去手動新增斷點,避免了在此過程過多的手工操作,並且無需等待,大幅提升了除錯效率。

二、跨語言除錯型別設定

當開發者選擇Dual(Js+Native)除錯型別時,可快速啟動ArkTS與C++的跨語言除錯能力。

除錯過程先通過單步除錯ArkTS程式碼,當程式執行到呼叫C++方法的程式碼行(通常會在這裡設定斷點),只需單擊Step Into功能按鈕,就能夠直接跳轉到C++對應程式碼行,便可以繼續在C++程式碼中進行除錯。當C++程式碼執行結束後,單擊resume program功能按鈕,可跳到有設定斷點的ArkTS程式碼行。

00.png

開發者選擇除錯型別

除錯過程中如果想終止,隨時通過單擊Stop按鈕來終止除錯模式的執行。 

開發者通過在執行除錯配置下拉框選擇Edit Configuration或單擊選單欄Run > Edit Configurations,選擇OpenHarmony APP下的模組名,選擇右側視窗中的Debugger,將Debug type設定為“Dual(Js + Native)”或“Detect Automatically”啟動ArkTS與C++的跨語言除錯能力。

%E8%B7%A8%E8%AF%AD%E8%A8%80%E6%B7%B7%E5%90%88%E8%B0%83%E8%AF%95-2.gif

ArkTS與C++的跨語言除錯展示效果

具體跨語言除錯的操作方法請複製連結至瀏覽器檢視:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/arkts-js-native-cross-language-debugging-0000001434296861-V3

此外,DevEco Studio還提供了多執行緒除錯,為我們開發者提供了更便捷的除錯方法。

當應用中有耗時操作時,一般我們開發者會使用worker執行緒來處理,避免與UI主執行緒爭搶資源,造成UI卡頓。但是在傳統除錯時,一次只能除錯一個執行緒,處理一個除錯堆疊。

針對多執行緒應用的除錯場景,DevEco Studio推出了多執行緒除錯能力,同時管理多個執行緒的除錯資源,我們開發者可以在除錯過程中隨意切換待除錯的程序,檢視該程序的除錯堆疊資訊,有效提升了開發效率。

%E5%A4%9A%E7%BA%BF%E7%A8%8B%E8%B0%83%E8%AF%95.gif

多執行緒除錯

開發者在多執行緒開發場景下,直接使用除錯功能即可。

DevEco Studio未來計劃推出以下兩個除錯能力,進一步提升開發效率。

1)C++時光除錯:開發者可以在C++程式碼中進行反向除錯,針對偶發性的問題,一旦重現後,可以反覆進行正向和反向的除錯,讓我們開發者有機會通過多遍的除錯進行問題分析。

2)熱過載能力:在除錯過程中發現了程式碼bug,修改程式碼儲存後,無需重啟除錯,就能立即在真機上看到修改後的效果,將大幅縮短除錯過程中的等待時間。

更多驚喜功能,敬請期待!