目前,HarmonyOS NEXT星河預(yù)覽版已經(jīng)正式面向開發(fā)者開放申請,面向鴻蒙原生應(yīng)用及元服務(wù)開發(fā)者提供的集成開發(fā)環(huán)境——DevEco Studio也迎來功能更細(xì)化的4.1版本。3年來,HUAWEI DevEco Studio不斷挖掘、汲取開發(fā)者的需求和建議,經(jīng)過持續(xù)打磨和系列升級實(shí)現(xiàn)新突破,將全力支持鴻蒙原生應(yīng)用開發(fā)。
為助力高效開發(fā),快速定位問題,DevEco Studio 4.1帶來多種調(diào)試能力,適用于不同的開發(fā)場景,如跨語言調(diào)試、混合堆棧、反向調(diào)試、熱重載、ArkUI Inspector等,本文將介紹DevEco Studio新版本的各項(xiàng)功能場景。
ArkTS C++跨語言混合調(diào)試,操作體驗(yàn)如同單語言
通常,鴻蒙原生應(yīng)用開發(fā)場景中,會(huì)使用ArkTS語言開發(fā)前端頁面,使用C++語言來實(shí)現(xiàn)高性能、低內(nèi)存以及底層算法解碼接口的調(diào)用,此場景下調(diào)試就需要使用到ArkTS--C++跨語言混合調(diào)試能力,該能力支持調(diào)試執(zhí)行到調(diào)用C++方法的位置,支持點(diǎn)擊step into按鈕,以及直接跳轉(zhuǎn)到對應(yīng)的C++方法的代碼中。
開發(fā)者只需在調(diào)試設(shè)置界面將Debug type設(shè)置為“Dual(ArkTS/Js + Native)” ,開啟混合調(diào)試模式。
1.1 并行棧視圖,可視化查看堆棧調(diào)用關(guān)系
當(dāng)step into跳入到C++方法的代碼中繼續(xù)進(jìn)行調(diào)試時(shí),DevEco Studio提供了并行棧視圖功能,支持在程序停住時(shí),可同時(shí)展示多個(gè)線程的調(diào)用棧信息,并且自動(dòng)合并重復(fù)調(diào)用棧,方便開發(fā)者分析程序的并發(fā)執(zhí)行情況,以及發(fā)現(xiàn)潛在的多線程問題。而且支持雙擊視圖上的調(diào)用棧跳轉(zhuǎn)到對應(yīng)堆棧,來查看該堆棧的變量信息。
在C++調(diào)試中窗口中點(diǎn)擊右上角「Layout Settings」按鈕,選擇 Parallel Stacks頁簽,即可打開并行棧視圖。
1.2 內(nèi)存查看和修改
調(diào)試C++代碼時(shí),DevEco Studio還支持內(nèi)存查看和修改,開發(fā)者可以查看指定地址的內(nèi)存,進(jìn)行內(nèi)存轉(zhuǎn)換、查看變量的內(nèi)存,以及內(nèi)存修改等操作。
同樣在C++調(diào)試中窗口中點(diǎn)擊右上角Layout Settings按鈕,選擇 Memory View ,快速打開內(nèi)存查看窗口。
FaultLog異?;旌隙褩VС痔D(zhuǎn)到代碼,更快地定位問題
ArkTS--C++混合語言開發(fā)場景下,可能會(huì)遇到C++代碼出現(xiàn)崩潰,希望能夠定位到ArkTS調(diào)用的位置,以此判斷是代碼邏輯問題還是系統(tǒng)側(cè)問題。
此場景下,DevEco Studio提供混合堆棧定位能力,即在C++ Crash中縫合調(diào)用C++方法的ArkTS代碼堆棧信息,并將對應(yīng)代碼位置的堆棧進(jìn)行解碼分析,點(diǎn)擊鏈接能夠直接跳轉(zhuǎn)到對應(yīng)的代碼行位置,方便開發(fā)者查看實(shí)際代碼調(diào)用鏈,快速定位問題。
與此同時(shí),DevEco Studio集成了ASan(Address-Sanitizer),提供面向C/C++的地址越界檢測能力,并通過FaultLog展示錯(cuò)誤的堆棧詳情及豐富的寄存器、Memory Map等信息。
C++反向調(diào)試,支持回退到歷史行和歷史斷點(diǎn)查看變量信息
針對C/C++開發(fā)場景中的偶發(fā)性問題,DevEco Studio則提供反向調(diào)試能力。在調(diào)試過程中如果對已經(jīng)調(diào)試過的代碼有疑問,可以反向Step Over回退到歷史行,反向Resume執(zhí)行到歷史斷點(diǎn),同時(shí),還可以在程序執(zhí)行歷史的記錄點(diǎn)上查看全局、靜態(tài)、局部變量值,更有利于開發(fā)者分析代碼和定位問題。
打開File > Settings > Build,Execution,Deployment > Debugger > C++ Debugger設(shè)置界面,勾選Enable time travel debug開啟C++反向調(diào)試。
Hot Reload熱重載,保存已修改的代碼后,無需重啟應(yīng)用繼續(xù)調(diào)試
在調(diào)試過程中,開發(fā)者發(fā)現(xiàn)問題及時(shí)修改代碼后,如果需要重啟調(diào)試,再次經(jīng)歷編譯構(gòu)建,推包安裝,啟動(dòng)運(yùn)行,才能看到修改后的效果,這樣反復(fù)操作比較消耗時(shí)間,為解決該問題,DevEco Studio提供熱重載(Hot Reload)能力,支持文件增量編譯,應(yīng)用運(yùn)行時(shí)熱重載,這樣開發(fā)者在修改源代碼保存后,無需重啟調(diào)試,就能立即在真機(jī)上看到修改后的效果,優(yōu)化調(diào)試過程中重復(fù)的流程,提升調(diào)試效率。開發(fā)者可以在「菜單欄」點(diǎn)擊Hot Reload按鈕,或者設(shè)置快捷鍵來開啟。
ArkUI Inspector定位UI問題,提供更多分析功能
調(diào)試應(yīng)用在運(yùn)行狀態(tài)下的UI顯示效果,是常見的開發(fā)場景。為此,DevEco Studio提供ArkUI Inspector功能,開發(fā)者可以在窗口查看當(dāng)前運(yùn)行應(yīng)用運(yùn)行的UI信息,包括查看UI組件樹,查看組件屬性、組件的父子關(guān)系,檢查是否有冗余的組件,檢查UI和高保真是否一致等等;優(yōu)化UI組件后點(diǎn)擊源碼跳轉(zhuǎn)按鈕即可跳轉(zhuǎn)至源碼位置,這樣有助于分析在UI界面經(jīng)過復(fù)雜操作之后產(chǎn)生的邏輯錯(cuò)誤,方便問題定位,改進(jìn)優(yōu)化UI代碼。
初次使用打開View >Tool Windows > ArkUI Inspector觸發(fā),即可以在DevEco Studio界面下方展示ArkUI Inspector調(diào)試窗口。
DevEco Studio還有很多開發(fā)能力,等您解鎖,DevEco Studio還有很多開發(fā)能力,等您解鎖,歡迎上線HarmonyOS Developer官網(wǎng)以了解更多:https://developer.huawei.com/consumer/cn/deveco-studio/。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )