測(cè)試應(yīng)用程序性能的方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明提供一種測(cè)試應(yīng)用程序性能的方法和裝置,以解決傳統(tǒng)技術(shù)中使用traceView工具時(shí)需要修改源代碼的技術(shù)問(wèn)題。所述方法包括以下步驟:?jiǎn)?dòng)一個(gè)測(cè)試線程:由所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具:所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。本發(fā)明提供的測(cè)試應(yīng)用程序性能的方法和裝置通過(guò)開(kāi)啟一個(gè)測(cè)試線程而對(duì)整個(gè)應(yīng)用程序進(jìn)行測(cè)試,因此不需要尋找待測(cè)代碼段的起始和結(jié)束位置,也不必修改源代碼就可以執(zhí)行正確測(cè)試。
【專(zhuān)利說(shuō)明】測(cè)試應(yīng)用程序性能的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種測(cè)試安卓(Android)設(shè)備中應(yīng)用程序性能的方法和裝置。
【背景技術(shù)】
[0002]目前在對(duì)安卓設(shè)備(操作系統(tǒng)為安卓系統(tǒng)的手機(jī)、平板電腦、電視等電子設(shè)備)的性能進(jìn)行測(cè)試時(shí),需要能夠定位當(dāng)前應(yīng)用程序(application,簡(jiǎn)稱(chēng)app)調(diào)用了哪些函數(shù)并且這些函數(shù)調(diào)用CPU(中央處理器)的時(shí)間和占用CPU的執(zhí)行時(shí)間,幫助開(kāi)發(fā)人員和白盒測(cè)試人員能夠更快定位和查找到這些消耗CPU時(shí)間的函數(shù)位置。
[0003]傳統(tǒng)的測(cè)試技術(shù)請(qǐng)參閱圖1,包括以下步驟:S11:通過(guò)閱讀應(yīng)用程序的源代碼找到準(zhǔn)備跟蹤的代碼段的起始位置和結(jié)束位置,確定一個(gè)待測(cè)的代碼段,并在起始位置和結(jié)束位置分別插入traceView(—種基于安卓平臺(tái)的測(cè)試應(yīng)用程序性能的工具)代碼:S12:源代碼指示traceView執(zhí)行測(cè)試:S13:traceView在后臺(tái)運(yùn)行,實(shí)施測(cè)試。測(cè)試時(shí)主要查看所述代碼段占用內(nèi)存、所述代碼段的調(diào)用CPU的時(shí)間和占用CPU的執(zhí)行時(shí)間等各方面性能。
[0004]然而,傳統(tǒng)的測(cè)試方法要求用戶(hù)十分熟悉待測(cè)的app源代碼,對(duì)用戶(hù)的技能水平提出較高的要求或者需要大量的人力和精力投入到閱讀所述app源代碼的工作當(dāng)中,花費(fèi)很多時(shí)間:另外,每當(dāng)測(cè)試的代碼段和之前所測(cè)的代碼段不同時(shí),就需要重新修改源代碼,在需要測(cè)試的代碼位置插入新的代碼,上述操作重復(fù)進(jìn)行造成重復(fù)勞動(dòng),增加了測(cè)試難度。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于,解決傳統(tǒng)技術(shù)中使用traceView工具時(shí)需要修改源代碼的技術(shù)問(wèn)題。`
[0006]本發(fā)明的目的及解決其技術(shù)問(wèn)題是采用以下技術(shù)方案來(lái)實(shí)現(xiàn)的。
[0007]—種測(cè)試應(yīng)用程序性能的方法,包括以下步驟:啟動(dòng)一個(gè)測(cè)試線程:由所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具:所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。
[0008]一種測(cè)試應(yīng)用程序性能的裝置,包括:第一啟動(dòng)模塊,用于啟動(dòng)一個(gè)測(cè)試線程--第二啟動(dòng)模塊,用于使所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具:測(cè)試模塊,用于使所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。
[0009]本發(fā)明提供的測(cè)試應(yīng)用程序性能的方法和裝置通過(guò)開(kāi)啟一個(gè)測(cè)試線程而對(duì)整個(gè)應(yīng)用程序進(jìn)行測(cè)試,因此不需要尋找待測(cè)代碼段的起始和結(jié)束位置,不必修改源代碼就可以執(zhí)行正確測(cè)試。
[0010]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉較佳實(shí)施例,并配合附圖,詳細(xì)說(shuō)明如下。
【專(zhuān)利附圖】
【附圖說(shuō)明】[0011]圖1是現(xiàn)有技術(shù)提供的測(cè)試應(yīng)用程序性能的方法的流程圖。
[0012]圖2是本發(fā)明第一實(shí)施例提供的測(cè)試應(yīng)用程序性能的方法的流程圖。
[0013]圖3是本發(fā)明第二實(shí)施例提供的測(cè)試應(yīng)用程序性能的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0014]為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對(duì)依據(jù)本發(fā)明提出的測(cè)試應(yīng)用程序性能的方法和裝置的【具體實(shí)施方式】、方法、步驟、特征及其功效,詳細(xì)說(shuō)明如下。
[0015]有關(guān)本發(fā)明的前述及其他技術(shù)內(nèi)容、特點(diǎn)及功效,在以下配合參考圖式的較佳實(shí)施例的詳細(xì)說(shuō)明中將可清楚呈現(xiàn)。通過(guò)【具體實(shí)施方式】的說(shuō)明,當(dāng)可對(duì)本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖式僅是提供參考與說(shuō)明之用,并非用來(lái)對(duì)本發(fā)明加以限制。
[0016]第一實(shí)施例
[0017]請(qǐng)參考圖2,圖2是本發(fā)明第一實(shí)施例提供的測(cè)試應(yīng)用程序性能的方法的流程圖。
[0018]所述測(cè)試方法包括以下步驟:
[0019]S21:啟動(dòng)一個(gè)測(cè)試線程。
[0020]所述測(cè)試線程用于啟動(dòng)測(cè)試工具和所述應(yīng)用程序。所述測(cè)試線程是動(dòng)態(tài)運(yùn)行的程序。所述測(cè)試線程通過(guò)調(diào)用應(yīng)用程序編程接口(ApplicationProgramming Interface,簡(jiǎn)稱(chēng)API)方法(或稱(chēng)函數(shù))來(lái)啟動(dòng)所述測(cè)試工具。API包括一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開(kāi)發(fā)人員基于某軟件或硬件的以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。
[0021]本實(shí)施例中,所述應(yīng)用程序編程接口為android, os.Debug.startMethodTracing。
[0022]根據(jù)所要測(cè)試的性能選擇測(cè)試工具。例如,本實(shí)施例所用測(cè)試工具為traceView,用于要查看所述代碼段占用內(nèi)存、所述代碼段的調(diào)用CPU的時(shí)間和占用CPU的執(zhí)行時(shí)間等各方面性能。
[0023]S22:由所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具。所述測(cè)試線程啟動(dòng)所述應(yīng)用程序,然后就立即執(zhí)行調(diào)用測(cè)試工具,例如traceVi ew。
[0024]S23:所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。
[0025]所述測(cè)試工具在后臺(tái)運(yùn)行。測(cè)試的同時(shí)或者測(cè)試結(jié)束后向用戶(hù)發(fā)送測(cè)試報(bào)告。
[0026]由于所述測(cè)試線程啟動(dòng)的是整個(gè)應(yīng)用程序,而非所述應(yīng)用程序中的某一段,所以不必尋找起始位置和結(jié)束位置和插入測(cè)試工具,直接對(duì)整段應(yīng)用程序進(jìn)行監(jiān)測(cè)即可。再對(duì)其他應(yīng)用程序進(jìn)行監(jiān)測(cè)時(shí),直接啟動(dòng)所述測(cè)試工具和所述應(yīng)用程序即可,從而減少閱讀時(shí)間和重復(fù)操作,提高測(cè)試效率。
[0027]本實(shí)施例提供的測(cè)試應(yīng)用程序性能的方法通過(guò)開(kāi)啟一個(gè)測(cè)試線程而對(duì)整個(gè)應(yīng)用程序進(jìn)行測(cè)試,因此不需要尋找待測(cè)代碼段的起始和結(jié)束位置,不必在源代碼上增刪代碼就可以執(zhí)行正確測(cè)試。
[0028]第二實(shí)施例
[0029]請(qǐng)參閱圖3,圖3是本發(fā)明第二實(shí)施例提供的測(cè)試應(yīng)用程序性能的裝置的結(jié)構(gòu)示意圖。[0030]所述測(cè)試裝置30包括:第一啟動(dòng)模塊31,用于啟動(dòng)一個(gè)測(cè)試線程:第二啟動(dòng)模塊32,用于使所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具:測(cè)試模塊33,用于使所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。
[0031]所述測(cè)試線程用于啟動(dòng)測(cè)試工具和所述應(yīng)用程序。所述測(cè)試線程是動(dòng)態(tài)運(yùn)行的程序。所述測(cè)試線程通過(guò)調(diào)用應(yīng)用程序編程接口的方法(或稱(chēng)函數(shù))來(lái)啟動(dòng)所述測(cè)試工具。本實(shí)施例中,所述應(yīng)用程序編程接口為android, os.Debug.startMethodTracing。根據(jù)所要測(cè)試的性能選擇測(cè)試工具。本實(shí)施例所用測(cè)試工具為traceView,用于要查看所述代碼段占用內(nèi)存、所述代碼段的調(diào)用CPU的時(shí)間和占用CPU的執(zhí)行時(shí)間等各方面性能。
[0032]本實(shí)施例提供的測(cè)試應(yīng)用程序性能的裝置通過(guò)開(kāi)啟一個(gè)測(cè)試線程而對(duì)整個(gè)應(yīng)用程序進(jìn)行測(cè)試,因此不需要尋找待測(cè)代碼段的起始和結(jié)束位置,不必修改源代碼就可以執(zhí)行正確測(cè)試。
[0033]需要說(shuō)明的是,對(duì)于裝置類(lèi)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
[0034]需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者裝置中還存在另外的相同要素。
[0035]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
[0036]以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對(duì)本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專(zhuān)業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容做出些許更動(dòng)或修飾為等同變化的等效 實(shí)施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【權(quán)利要求】
1.一種測(cè)試應(yīng)用程序性能的方法,其特征在于:包括以下步驟: 啟動(dòng)一個(gè)測(cè)試線程: 由所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具: 所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。
2.如權(quán)利要求1所述的測(cè)試應(yīng)用程序性能的方法,其特征在于:所述測(cè)試線程通過(guò)調(diào)用應(yīng)用程序編程接口的方法啟動(dòng)所述測(cè)試工具。
3.如權(quán)利要求2所述的測(cè)試應(yīng)用程序性能的方法,其特征在于:所述應(yīng)用程序編程接口包括 android, os.Debug.startMethodTracing。
4.如權(quán)利要求1所述的測(cè)試應(yīng)用程序性能的方法,其特征在于:所述測(cè)試工具包括traceView。
5.一種測(cè)試應(yīng)用程序性能的裝置,其特征在于:包括: 第一啟動(dòng)模塊,用于啟動(dòng)一個(gè)測(cè)試線程: 第二啟動(dòng)模塊,用于使所述測(cè)試線程啟動(dòng)所述應(yīng)用程序并調(diào)用測(cè)試工具: 測(cè)試模塊,用于使所述測(cè)試工具對(duì)所述應(yīng)用程序的性能進(jìn)行測(cè)試。
6.如權(quán)利要求5所述的測(cè)試應(yīng)用程序性能的裝置,其特征在于:所述測(cè)試線程通過(guò)調(diào)用應(yīng)用程序編程接口方法啟動(dòng)所述測(cè)試工具。
7.如權(quán)利要求6所述的測(cè)試應(yīng)用程序性能的裝置,其特征在于:所述應(yīng)用程序編程接口包括 android, os.Debug.startMethodTracing。
8.如權(quán)利要求5所述的測(cè)試應(yīng)用程序性能的裝置,其特征在于:所述測(cè)試工具包括traceView。
【文檔編號(hào)】G06F11/36GK103810087SQ201210447336
【公開(kāi)日】2014年5月21日 申請(qǐng)日期:2012年11月9日 優(yōu)先權(quán)日:2012年11月9日
【發(fā)明者】武明敏, 萬(wàn)巍 申請(qǐng)人:騰訊科技(深圳)有限公司