<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 新聞縱覽 > HarmonyOS官網(wǎng)上線“穩(wěn)定性”專欄 助力更穩(wěn)定流暢的鴻蒙原生應(yīng)用開發(fā)

          HarmonyOS官網(wǎng)上線“穩(wěn)定性”專欄 助力更穩(wěn)定流暢的鴻蒙原生應(yīng)用開發(fā)

          作者: 時間:2025-02-08 來源: 收藏

          鴻蒙應(yīng)用穩(wěn)定性是影響用戶體驗(yàn)的重要因素之一,常見的穩(wěn)定性問題包括:崩潰、應(yīng)用Freeze、內(nèi)存泄漏、內(nèi)存越界等。這類問題的定界與定位往往需要豐富的經(jīng)驗(yàn)積累和技術(shù)沉淀,定位過程通常耗時耗力。

          本文引用地址:http://www.ex-cimer.com/article/202502/466735.htm

          最近,在鴻蒙開發(fā)者官網(wǎng)的最佳實(shí)踐中上線了穩(wěn)定性專欄,將DevEco Studio問題定位工具與穩(wěn)定性實(shí)際場景相結(jié)合,幫助開發(fā)者用好工具的同時,降低穩(wěn)定性問題定位的難度。

          下面CppCrash的問題為例,介紹一下如何根據(jù)新上線的“穩(wěn)定性”專欄分析和定位穩(wěn)定性問題。

          圖片 1.png

          當(dāng)我們在開發(fā)中遇到了CppCrash問題,應(yīng)用會閃退,F(xiàn)aultLog會彈出對應(yīng)的錯誤日志:紅色Reason部分為CppCrash觸發(fā)的原因,該Crash的原因是系統(tǒng)拋出的SIGSEGV信號Crash了運(yùn)行的應(yīng)用。通常情況下點(diǎn)擊藍(lán)色的鏈接部分,可以跳轉(zhuǎn)到對應(yīng)出錯的代碼行。通過SIGSEGV信號量判斷出代碼中存在無效的內(nèi)存引用,一般為下面三種情況:訪問空指針、訪問已經(jīng)釋放的內(nèi)存和內(nèi)存訪問越界。但具體是哪種情況觸發(fā)的應(yīng)用閃退,還需要我們根據(jù)相應(yīng)代碼片段進(jìn)行具體分析,較為耗時。我們可以參考穩(wěn)定性專欄中的相關(guān)內(nèi)容,來降低定位難度并縮減定位時間。

          對于由內(nèi)存錯誤引起的運(yùn)行態(tài)問題,我們可以選擇穩(wěn)定性專欄目錄下的穩(wěn)定性檢測/運(yùn)行態(tài)檢測/內(nèi)存檢測中介紹的工具。

          圖片 2.png

          此處我們選擇使用HWAsan檢測內(nèi)存錯誤的章節(jié),根據(jù)章節(jié)的內(nèi)容描述,我們勾選DevEco Studio中的HWAsan功能,開啟HWAsan檢測之后,點(diǎn)擊run重新運(yùn)行編譯推包,編譯工具會將HWAsan檢測開關(guān)打開,同時對Cpp代碼進(jìn)行插樁,增加調(diào)試信息。

          圖片 3.png

          重新運(yùn)行編譯推包之前產(chǎn)生CppCrash的程序,應(yīng)用發(fā)生閃退,彈出FaultLog。

          圖片 4.png

          通過勾選HWasan后產(chǎn)生的FaultLog我們可以看到,該日志在提供出錯代碼片段跳轉(zhuǎn)鏈接的同時,還通過Cause部分進(jìn)一步確定了該Crash是由heap-buffer-overflow導(dǎo)致的。根據(jù)Cause原因,在使用HWAsan檢測內(nèi)存錯誤文章中找到HWasan異常檢測類型中對應(yīng)的類型,可明確該錯誤是由運(yùn)行程序訪問堆內(nèi)存越界導(dǎo)致的。通過穩(wěn)定性中該章節(jié)的指導(dǎo),大大降低了我們對CppCrash日志的解讀難度與相關(guān)內(nèi)存問題定位的門檻,同時也節(jié)省了排查可疑問題類型的時間。

          圖片 5.png

          此外,專欄還提供了穩(wěn)定性分析的內(nèi)容,該部分列舉了常見場景中問題的排查方法與案例分析,如果我們開發(fā)過程中可以確定穩(wěn)定性問題的具體場景,就可以參考相應(yīng)場景的排查方法來對問題進(jìn)行定位,如上述CppCrash的例子就是地址越界的場景,可以看到地址越界問題排查方法部分也可以開啟HWAsan檢測。而關(guān)于案例分析部分,則是以實(shí)際案例,來幫助我們開發(fā)者更好的理解并應(yīng)用不同場景下的問題排查方法。

          圖片 6.png

          除了上述解決應(yīng)用致命穩(wěn)定性問題的穩(wěn)定性檢測與分析章節(jié),該專欄還包含了如何持續(xù)建設(shè)應(yīng)用穩(wěn)定性的內(nèi)容,即穩(wěn)定性優(yōu)化與穩(wěn)定性運(yùn)維兩個部分,穩(wěn)定性優(yōu)化主要從規(guī)范性的角度出發(fā),介紹了如何通過良好的編碼習(xí)慣和有效的日志維護(hù)方案來提升應(yīng)用的健壯性和定位效率;穩(wěn)定性運(yùn)維則是從應(yīng)用上線并長期使用/運(yùn)行的角度的出發(fā),概述如何構(gòu)建管理平臺,幫助我們開發(fā)者監(jiān)控應(yīng)用的運(yùn)行狀態(tài),從而及時發(fā)現(xiàn)并解決應(yīng)用潛在問題。

          更多詳細(xì)內(nèi)容可在鴻蒙開發(fā)者官網(wǎng)->開發(fā)-> 開發(fā)文檔->最佳實(shí)踐下進(jìn)入“穩(wěn)定性”專欄,希望無論是初學(xué)者還是資深開發(fā)者,都能在這里有所收獲,開發(fā)出更穩(wěn)定流暢的鴻蒙原生應(yīng)用。




          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();