鴻蒙應(yīng)用穩(wěn)定性是影響用戶體驗(yàn)的重要因素之一,常見的穩(wěn)定性問題包括:崩潰、應(yīng)用Freeze、內(nèi)存泄漏、內(nèi)存越界等。這類問題的定界與定位往往需要豐富的經(jīng)驗(yàn)積累和技術(shù)沉淀,定位過程通常耗時(shí)耗力。
最近,在鴻蒙開發(fā)者官網(wǎng)的最佳實(shí)踐中上線了穩(wěn)定性專欄,將DevEco Studio問題定位工具與穩(wěn)定性實(shí)際場(chǎng)景相結(jié)合,幫助開發(fā)者用好工具的同時(shí),降低穩(wěn)定性問題定位的難度。
下面以CppCrash的問題為例,介紹一下如何根據(jù)新上線的“穩(wěn)定性”專欄分析和定位穩(wěn)定性問題。
當(dāng)我們?cè)陂_發(fā)中遇到了CppCrash問題,應(yīng)用會(huì)閃退,F(xiàn)aultLog會(huì)彈出對(duì)應(yīng)的錯(cuò)誤日志:紅色Reason部分為CppCrash觸發(fā)的原因,該Crash的原因是系統(tǒng)拋出的SIGSEGV信號(hào)Crash了運(yùn)行的應(yīng)用。通常情況下點(diǎn)擊藍(lán)色的鏈接部分,可以跳轉(zhuǎn)到對(duì)應(yīng)出錯(cuò)的代碼行。通過SIGSEGV信號(hào)量判斷出代碼中存在無效的內(nèi)存引用,一般為下面三種情況:訪問空指針、訪問已經(jīng)釋放的內(nèi)存和內(nèi)存訪問越界。但具體是哪種情況觸發(fā)的應(yīng)用閃退,還需要我們根據(jù)相應(yīng)代碼片段進(jìn)行具體分析,較為耗時(shí)。我們可以參考穩(wěn)定性專欄中的相關(guān)內(nèi)容,來降低定位難度并縮減定位時(shí)間。
對(duì)于由內(nèi)存錯(cuò)誤引起的運(yùn)行態(tài)問題,我們可以選擇穩(wěn)定性專欄目錄下的穩(wěn)定性檢測(cè)/運(yùn)行態(tài)檢測(cè)/內(nèi)存檢測(cè)中介紹的工具。
此處我們選擇使用HWAsan檢測(cè)內(nèi)存錯(cuò)誤的章節(jié),根據(jù)章節(jié)的內(nèi)容描述,我們勾選DevEco Studio中的HWAsan功能,開啟HWAsan檢測(cè)之后,點(diǎn)擊run重新運(yùn)行編譯推包,編譯工具會(huì)將HWAsan檢測(cè)開關(guān)打開,同時(shí)對(duì)Cpp代碼進(jìn)行插樁,增加調(diào)試信息。
重新運(yùn)行編譯推包之前產(chǎn)生CppCrash的程序,應(yīng)用發(fā)生閃退,彈出FaultLog。
通過勾選HWasan后產(chǎn)生的FaultLog我們可以看到,該日志在提供出錯(cuò)代碼片段跳轉(zhuǎn)鏈接的同時(shí),還通過Cause部分進(jìn)一步確定了該Crash是由heap-buffer-overflow導(dǎo)致的。根據(jù)Cause原因,在使用HWAsan檢測(cè)內(nèi)存錯(cuò)誤文章中找到HWasan異常檢測(cè)類型中對(duì)應(yīng)的類型,可明確該錯(cuò)誤是由運(yùn)行程序訪問堆內(nèi)存越界導(dǎo)致的。通過穩(wěn)定性中該章節(jié)的指導(dǎo),大大降低了我們對(duì)CppCrash日志的解讀難度與相關(guān)內(nèi)存問題定位的門檻,同時(shí)也節(jié)省了排查可疑問題類型的時(shí)間。
此外,專欄還提供了穩(wěn)定性分析的內(nèi)容,該部分列舉了常見場(chǎng)景中問題的排查方法與案例分析,如果我們開發(fā)過程中可以確定穩(wěn)定性問題的具體場(chǎng)景,就可以參考相應(yīng)場(chǎng)景的排查方法來對(duì)問題進(jìn)行定位,如上述CppCrash的例子就是地址越界的場(chǎng)景,可以看到地址越界問題排查方法部分也可以開啟HWAsan檢測(cè)。而關(guān)于案例分析部分,則是以實(shí)際案例,來幫助我們開發(fā)者更好的理解并應(yīng)用不同場(chǎng)景下的問題排查方法。
除了上述解決應(yīng)用致命穩(wěn)定性問題的穩(wěn)定性檢測(cè)與分析章節(jié),該專欄還包含了如何持續(xù)建設(shè)應(yīng)用穩(wěn)定性的內(nèi)容,即穩(wěn)定性優(yōu)化與穩(wěn)定性運(yùn)維兩個(gè)部分,穩(wěn)定性優(yōu)化主要從規(guī)范性的角度出發(fā),介紹了如何通過良好的編碼習(xí)慣和有效的日志維護(hù)方案來提升應(yīng)用的健壯性和定位效率;穩(wěn)定性運(yùn)維則是從應(yīng)用上線并長期使用/運(yùn)行的角度的出發(fā),概述如何構(gòu)建管理平臺(tái),幫助我們開發(fā)者監(jiān)控應(yīng)用的運(yùn)行狀態(tài),從而及時(shí)發(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)用。
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3071瀏覽量
74402 -
代碼
+關(guān)注
關(guān)注
30文章
4841瀏覽量
69166 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2398瀏覽量
43122
原文標(biāo)題:HarmonyOS官網(wǎng)上線“穩(wěn)定性”專欄 助力更穩(wěn)定流暢的鴻蒙原生應(yīng)用開發(fā)
文章出處:【微信號(hào):HarmonyOS_Dev,微信公眾號(hào):HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
華為原生鴻蒙操作系統(tǒng)正式發(fā)布,徹底擺脫內(nèi)核依賴
鴻蒙原生頁面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用
原生鴻蒙操作系統(tǒng)正式發(fā)布,誠邁科技與華為一起共建鴻蒙新世界
![<b class='flag-5'>原生</b><b class='flag-5'>鴻蒙</b>操作系統(tǒng)正式發(fā)布,誠邁科技與<b class='flag-5'>華為</b>一起共建<b class='flag-5'>鴻蒙</b>新世界](https://file1.elecfans.com//web2/M00/0A/53/wKgZomce6OeAc9mmAAFe2y-qO7k07.jpeg)
華為原生鴻蒙操作系統(tǒng)正式發(fā)布
慶科信息獲HarmonyOS高級(jí)應(yīng)用開發(fā)能力認(rèn)證!助力品牌快速打造鴻蒙原生應(yīng)用
![慶科信息獲HarmonyOS高級(jí)應(yīng)用<b class='flag-5'>開發(fā)</b>能力認(rèn)證!<b class='flag-5'>助力</b>品牌快速打造<b class='flag-5'>鴻蒙</b><b class='flag-5'>原生</b>應(yīng)用](https://file1.elecfans.com/web2/M00/FC/F9/wKgZomaXVOWAHJykAAwHKQaNAck465.png)
HDC2024華為發(fā)布鴻蒙原生智能:AI與OS深度融合,開啟全新的AI時(shí)代
![HDC2024<b class='flag-5'>華為</b>發(fā)布<b class='flag-5'>鴻蒙</b><b class='flag-5'>原生</b>智能:AI與OS深度融合,開啟全新的AI時(shí)代](https://file1.elecfans.com//web2/M00/F3/1D/wKgaomZ4y9mAJ3ziAEzrplVRPls193.png)
華為TOP 5000應(yīng)用已全部啟動(dòng)鴻蒙原生應(yīng)用開發(fā)
哪吒汽車APP啟動(dòng)鴻蒙原生應(yīng)用開發(fā)
最新開源代碼證實(shí)!“鴻蒙原生版”微信正在積極開發(fā)中
實(shí)錘!騰訊終于擁抱鴻蒙生態(tài),微信鴻蒙原生版本即將上線
人民日?qǐng)?bào)與華為達(dá)成合作發(fā)力鴻蒙原生
HarmonyOS攜手庫洛游戲推動(dòng)《戰(zhàn)雙帕彌什》鴻蒙原生應(yīng)用開發(fā)
深圳市24年,實(shí)現(xiàn)鴻蒙原生應(yīng)用數(shù)占全國總量10%以上
鴻蒙原生應(yīng)用開發(fā)的啟動(dòng),將帶來什么?
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>原生</b>應(yīng)用<b class='flag-5'>開發(fā)</b>的啟動(dòng),將帶來什么?](https://file1.elecfans.com/web2/M00/C2/0B/wKgaomXcg5eAOORNAALr62STVKw048.png)
評(píng)論