騰訊bugly(騰訊BuglyCrash監(jiān)控)
收的監(jiān)控對(duì)象是否超過指定閥值。
利用PhantomReferences(虛引用)和ReferenceQueue(引用隊(duì)列),當(dāng)PhantomReferences被加入到相關(guān)聯(lián)的ReferenceQueue時(shí),則視該對(duì)象已經(jīng)或處于垃圾回收器回收階段了。
MLD監(jiān)控原理核心
目前手機(jī)管家已對(duì)大部分類完成內(nèi)存泄露的監(jiān)控,包括各種activity,service和view頁面等,務(wù)求在技術(shù)上能帶給用戶最順滑的產(chǎn)品體驗(yàn)。
接下來簡(jiǎn)單介紹下這個(gè)工具的判斷核心。根據(jù)虛引用監(jiān)控到的內(nèi)存狀態(tài),需要通過多種策略來判斷是否存在內(nèi)存泄露。
(1)最簡(jiǎn)單的方式就是直接在加入監(jiān)控時(shí)就為該類型設(shè)定最大存在個(gè)數(shù),舉個(gè)例子,各個(gè)DAO對(duì)象理論上只能存在最多一個(gè),因此一旦出現(xiàn)兩個(gè)相同的DAO,那一般都是泄露了;
(2)第二種情況是在頁面退出程序退出時(shí),檢索gc后無法釋放的對(duì)象列表,這些對(duì)象類型也會(huì)成為內(nèi)存泄露的懷疑對(duì)象;
(3)最后一種情況比較復(fù)雜,基本原理是根據(jù)歷史操作判斷對(duì)象數(shù)量的增長(zhǎng)幅度。根據(jù)對(duì)象的增長(zhǎng)通過最小二乘法擬合出該對(duì)象類型的增長(zhǎng)速度,如果超過經(jīng)驗(yàn)值則會(huì)列入疑似泄露的對(duì)象列表。
3.3 UIAutomator完成重復(fù)操作的自動(dòng)化
最后一步就很簡(jiǎn)單了。這么多反復(fù)的UI操作,讓人工來點(diǎn)就太浪費(fèi)人力了。我們使用UIAutomator來進(jìn)行自動(dòng)化操作測(cè)試。
目前手機(jī)管家的每日自動(dòng)化測(cè)試已覆蓋各個(gè)功能的主路徑,并通過配置文件的方式來靈活驅(qū)動(dòng)用例的增刪改查,最大限度保證了隨著版本推移用例的復(fù)用價(jià)值。
至此手機(jī)管家的內(nèi)存泄露測(cè)試方案介紹完畢,也歡迎各路牛人交流溝通更多更強(qiáng)的內(nèi)存泄露工具盒方案!
騰訊Bugly簡(jiǎn)介
Bugly是騰訊內(nèi)部產(chǎn)品質(zhì)量監(jiān)控平臺(tái)的外發(fā)版本,其主要功能是App發(fā)布以后,對(duì)用戶側(cè)發(fā)生的Crash以及卡頓現(xiàn)象進(jìn)行監(jiān)控并上報(bào),讓開發(fā)同學(xué)可以第一時(shí)間了解到App的質(zhì)量情況,及時(shí)機(jī)型修改。目前騰訊內(nèi)部所有的產(chǎn)品,均在使用其進(jìn)行線上產(chǎn)品的崩潰監(jiān)控。
騰訊bugly的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于騰訊bugly的信息別忘了在本站進(jìn)行查找喔。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。