欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

應(yīng)用程序性能測試方法及裝置的制造方法_3

文檔序號(hào):9787312閱讀:來源:國知局
再解析并測試第二類函數(shù),在第二類函數(shù)中也沒有發(fā)現(xiàn)拖慢應(yīng)用程序啟動(dòng)時(shí)間的函數(shù)的情況下,再解析并測試第三類函數(shù)。通過這種分級(jí)策略,提高了測試效率。當(dāng)然,本發(fā)明不僅限于此,也可以是同時(shí)測試三類函數(shù),或者在這三類函數(shù)中隨機(jī)選擇函數(shù)進(jìn)行測試。
[0052]對(duì)于第一類函數(shù),以Android系統(tǒng)為例,應(yīng)用程序中涉及操作系統(tǒng)框架的組件有Activity,Service服務(wù),Content Provider內(nèi)容提供者,BroadcastReceiver廣播接收器等組件,這些組件中涉及開發(fā)人員編寫的函數(shù)是需要測試的函數(shù),例如組件中重寫的函數(shù)。舉例來說,BroadcastReceiver廣播接收器是Android應(yīng)用中一個(gè)重要的組件。BroadcastReceiver非常類似于事件編程中的監(jiān)聽器。與普通事件監(jiān)聽器不同的是:普通事件監(jiān)聽器監(jiān)聽的事件源是程序中的對(duì)象;而BroadcastReceiver監(jiān)聽的事件源是Android應(yīng)用中的其他組件。當(dāng)需要使用BroadcastReceiver組件接收廣播消息時(shí),開發(fā)人員需要實(shí)現(xiàn)自己的BroadcastReceiver子類,并重寫onReceiveO函數(shù)。這里,onReceiveO函數(shù)就是需要測試的函數(shù)之一。
[0053]對(duì)于第二類函數(shù),由JAVA語言派生出來的類和方法,指的是繼承或重載JAVA已有類的類和方法。JAVA語言包含許多已實(shí)現(xiàn)的類和方法,繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力。重載用于創(chuàng)建完成一組任務(wù)相似但參數(shù)的類型或參數(shù)的個(gè)數(shù)不同的方法。
[0054]對(duì)于第三類函數(shù),開發(fā)人員自定義的類和方法。開發(fā)人員根據(jù)實(shí)際需求自定義的類和方法,用以實(shí)現(xiàn)特定功能,這些自定義的類和方法與JAVA已有類無繼承關(guān)系,但可能具有引用關(guān)系。
[0055]對(duì)于線程,解析模塊301解析得到應(yīng)用程序中繼承線程基類的線程,或者,解析得到應(yīng)用程序中實(shí)現(xiàn):runable接口的線程。
[0056]接管模塊302,適于在應(yīng)用程序啟動(dòng)過程中,接管函數(shù)和/或線程,記錄函數(shù)和/或線程的執(zhí)行時(shí)間和調(diào)用次數(shù)。接管模塊302進(jìn)一步適于:對(duì)于線程,接管線程的run方法,記錄線程的執(zhí)行時(shí)間和調(diào)用次數(shù)。
[0057]具體的,對(duì)于函數(shù),接管模塊302通過hook方法接管函數(shù)本身,記錄函數(shù)的執(zhí)行時(shí)間和調(diào)用次數(shù)。對(duì)于線程,接管模塊302通過hook方法接管線程的run()方法,記錄線程的執(zhí)行時(shí)間和調(diào)用次數(shù)。具體的,在需要測試的函數(shù)和/或線程run()方法中設(shè)置hook事件,該hook事件用于監(jiān)測函數(shù)和/或線程run()方法的執(zhí)行時(shí)間和調(diào)用次數(shù)。在應(yīng)用程序啟動(dòng)過程中,一旦某個(gè)需要測試的函數(shù)和/或線程run O方法執(zhí)行完成,觸發(fā)hook事件,接管模塊302就會(huì)得到通知,繼而得到被測試函數(shù)和/或線程run()方法的執(zhí)行時(shí)間和調(diào)用次數(shù)。
[0058]排序模塊303,適于根據(jù)函數(shù)和/或線程的執(zhí)行時(shí)間和調(diào)用次數(shù),對(duì)所有被測試的函數(shù)和/或線程進(jìn)行排序,以供按照排序結(jié)果進(jìn)行應(yīng)用程序的調(diào)試。
[0059]排序模塊303進(jìn)一步包括:第一計(jì)算單元304,第二計(jì)算單元305,排序單元306。
[0060]第一計(jì)算單元304,適于根據(jù)函數(shù)和/或線程的單次調(diào)用的執(zhí)行時(shí)間和調(diào)用次數(shù),計(jì)算函數(shù)和/或線程的總執(zhí)行時(shí)間。
[0061]第二計(jì)算單元305,適于根據(jù)函數(shù)和/或線程的總執(zhí)行時(shí)間計(jì)算單次調(diào)用的平均執(zhí)行時(shí)間。
[0062]排序單元306,適于根據(jù)函數(shù)和/或線程的總執(zhí)行時(shí)間和/或單次調(diào)用的平均執(zhí)行時(shí)間,對(duì)所有被測試的函數(shù)和/或線程進(jìn)行排序。
[0063]根據(jù)本實(shí)施例提供的應(yīng)用程序性能測試裝置,首先通過解析確定需要測試的函數(shù)和/或線程,然后啟動(dòng)應(yīng)用程序,通過hook方法接管函數(shù)和/或線程,記錄函數(shù)和/或線程的執(zhí)行時(shí)間和調(diào)用次數(shù),根據(jù)函數(shù)和/或線程的執(zhí)行時(shí)間和調(diào)用次數(shù),對(duì)所有被測試的函數(shù)和/或線程進(jìn)行排序,以供按照排序結(jié)果進(jìn)行應(yīng)用程序的調(diào)試。本裝置深入到應(yīng)用程序內(nèi)部,對(duì)應(yīng)用程序內(nèi)部的函數(shù)和/或線程進(jìn)行測試,測試出哪個(gè)函數(shù)和/或線程的執(zhí)行時(shí)間最長,調(diào)用次數(shù)最多。根據(jù)測試結(jié)果,開發(fā)人員可有針對(duì)性的對(duì)這些函數(shù)和/或線程進(jìn)行調(diào)試,以解決應(yīng)用程序啟動(dòng)時(shí)間過長的技術(shù)問題。在解析需要測試的函數(shù)時(shí),可按照分級(jí)策略進(jìn)行解析,提高了測試效率。
[0064]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
[0065]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
[0066]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
[0067]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
[0068]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0069]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的應(yīng)用程序性能測試裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
[0070]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。
當(dāng)前第3頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
南平市| 金山区| 卢龙县| 抚松县| 饶平县| 连城县| 乌拉特中旗| 灌阳县| 英超| 清丰县| 五家渠市| 怀远县| 芜湖县| 新竹县| 阿拉善盟| 宿州市| 石景山区| 北安市| 盘锦市| 牟定县| 安新县| 奉节县| 桐庐县| 上高县| 济南市| 资溪县| 上饶市| 土默特右旗| 江门市| 阳信县| 睢宁县| 伊通| 同仁县| 宁武县| 昌吉市| 乌兰察布市| 奉化市| 华宁县| 博爱县| 昌黎县| 临湘市|