張小波++龔?fù)?/p>
摘要:眾所周知,Android系統(tǒng)是Google公司在2008年推出的,它是以Linux為基礎(chǔ)的半開源操作系統(tǒng),主要運(yùn)用于便捷的移動(dòng)設(shè)備,如手機(jī)、平板以及GPS等通信設(shè)備上。目前已經(jīng)從 Android1.0版本更新推出到5.0 版本,操作的流暢度越來越高,各種硬件設(shè)備以及穩(wěn)定性能也在不斷提高。此外,Android平臺(tái)具有開放性的顯著特點(diǎn),開放性有利于積累更多的人氣,可以使其吸引更多的移動(dòng)終端廠商與開發(fā)商,隨著應(yīng)用軟件與消費(fèi)者的不斷增加,使得很多設(shè)備商都積極投入到Android手機(jī)軟件的開發(fā)中。該文主要研究基于 Android平臺(tái)的軟件自動(dòng)化監(jiān)控工具的設(shè)計(jì)與開發(fā),通過介紹 Android 開發(fā)平臺(tái),并探討軟件需求和軟件實(shí)現(xiàn)的方法,最終完成軟件的設(shè)計(jì)開發(fā),以滿足自動(dòng)化監(jiān)控工具的需求。
關(guān)鍵詞:Android平臺(tái);軟件自動(dòng)化;監(jiān)控工具
中圖分類號(hào):Tp311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)22-0083-02
1 概述
隨著信息技術(shù)與互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,近幾年,智能手機(jī)越來越受到人們的歡迎與喜愛,在眾多類型不同的智能手機(jī)系統(tǒng)中,Android系統(tǒng)憑借其開半源以及開放性的特殊優(yōu)勢,加上Android系統(tǒng)本身應(yīng)用軟件的不斷開發(fā)與優(yōu)化更新,使得其在短時(shí)間內(nèi)快速占領(lǐng)市場。隨著Android系統(tǒng)智能手機(jī)設(shè)備的不斷優(yōu)化、完善以及更新,使得越來越多的開發(fā)商不斷加入到 Android 系統(tǒng)手機(jī)游戲以及手機(jī)APP的開發(fā)當(dāng)中。
2 基于Android系統(tǒng)的自動(dòng)化監(jiān)控軟件的設(shè)計(jì)
2.1 對自動(dòng)化監(jiān)控軟件需求的分析
在Android平臺(tái)的軟件自動(dòng)化監(jiān)控工具的設(shè)計(jì)與開發(fā)過程中,需要對軟件需求進(jìn)行分析,為其提供監(jiān)控對象與監(jiān)控記錄的各種數(shù)據(jù),并在后臺(tái)做好記錄數(shù)據(jù)的工作。由于采集數(shù)據(jù)的準(zhǔn)確性,是需要待測的應(yīng)用軟件進(jìn)入前臺(tái)的顯示操作時(shí)才可以保證,因?yàn)锳ndroid 系統(tǒng)本身的原因,非前臺(tái)的顯示操作均處在掛起的階段,這樣就很有可能釋放出一些內(nèi)存,然而,后臺(tái)顯示被占用內(nèi)存是沒有運(yùn)行的,因此,需要記錄下運(yùn)行狀態(tài)中顯示的相關(guān)數(shù)據(jù),才可以準(zhǔn)確地反映出軟件的各種信息[1]。 在Android平臺(tái)的軟件自動(dòng)化監(jiān)控工具的設(shè)計(jì)與開發(fā)中,需要采集各種各樣的信息,才可以準(zhǔn)確判斷出待測軟件的主要性能,此外,而且還要兼顧到滿足當(dāng)下所有 Android 版本的手機(jī)系統(tǒng)。我們可以先來畫出這個(gè)自動(dòng)化監(jiān)控軟件的工作流程,如下圖1所示。
圖1 自動(dòng)化監(jiān)控軟件工作流程圖
2.2 需要采集的數(shù)據(jù)及方法
因?yàn)锳ndroid是以Linux為基礎(chǔ)的半開源操作系統(tǒng),所以采集數(shù)據(jù)的方式一般都是通過讀取系統(tǒng)的文件信息來進(jìn)行的。檢驗(yàn)應(yīng)用軟件在智能手機(jī)里的運(yùn)行狀況,一般可以從下面5個(gè)方面著手:
1)獲取內(nèi)存信息
在智能手機(jī)中,需要記錄的內(nèi)存信息主要包括:總內(nèi)存、剩余內(nèi)存、待測軟件占用內(nèi)存。其中手機(jī)總內(nèi)存可由讀取/proc/meminfol來得到;剩余內(nèi)存可由 Android 系統(tǒng)所提供的接口函數(shù)來獲取;由于在Android 系統(tǒng)里面的運(yùn)行的軟件都具有既獨(dú)立又共享的特點(diǎn),使得待測軟件占用內(nèi)存情況相對來說很復(fù)雜。一般情況下,Android 系統(tǒng)2.2以上的版本可以通過提供的接口函數(shù)來獲得內(nèi)存大小,而Android 系統(tǒng)2.2以下版本的內(nèi)存可通過讀取系統(tǒng)文件來獲取[2]。
2)CPU的使用情況
CPU的使用情況分為兩種:一是智能手機(jī)里面所有進(jìn)程的使用情況,二是待測軟件的使用情況。在智能手機(jī)Android系統(tǒng)的文件里面,CPU包含著大量的信息,需要通過采集不同時(shí)間段的系統(tǒng)文件信息來實(shí)現(xiàn)。
3)CPU的使用時(shí)間
一般情況下,CPU的使用率只能反映某一瞬間進(jìn)程對CPU資源的使用情況,需要在一定的時(shí)間段內(nèi),進(jìn)程中所占用CPU的總時(shí)間才可以反映待測軟件所占內(nèi)存的大小,在智能手機(jī)Android 系統(tǒng)文件里,有兩種進(jìn)程占用時(shí)間的情況,即utime(用戶態(tài)運(yùn)行時(shí)間)和stime(核心態(tài)運(yùn)行時(shí)間),utime與stime運(yùn)行時(shí)間的總和就是待測軟件所占用CPU總時(shí)間的大小。
4)智能手機(jī)流量的大小
使用過智能手機(jī)的人都知道,智能手機(jī)的流量的大小可以分為兩種,即Wi-Fi流量與GPRS流量,其中Wi-Fi流量一般都的免費(fèi)的,而GPRS流量是要扣費(fèi)的,因此,Android平臺(tái)的軟件自動(dòng)化監(jiān)控工具的設(shè)計(jì)需要獲取的數(shù)據(jù)就是 GPRS流量的使用情況。對待測軟件流量的獲取,既要了解上傳流量與下載流量,又要知道智能手機(jī)自身所有上傳與下載的總流量。通過對比這兩組流量的使用情況,不但可以判斷待測軟件是否出現(xiàn)惡意上傳的問題,還能分析手機(jī)自身是否存在沒有提醒用戶而產(chǎn)生流量的通信[3]。通常情況下,通過讀取/proc/net/dev系統(tǒng)文件就可以獲得當(dāng)前的全部流量信息。而待測流量信息的獲取,如果智能手機(jī)是在 Android2.2版本之后的,就可以通過接口函數(shù)來實(shí)現(xiàn)。然而,Android平臺(tái)的軟件自動(dòng)化監(jiān)控工具的設(shè)計(jì)開發(fā)目的是為了滿足市場上所有智能手機(jī)的Android版本,因此,還是通過采取讀取系統(tǒng)文件的方法來對信息進(jìn)行采集。在這種方式下,進(jìn)程需要分兩個(gè)文件,一個(gè)是上傳流量的使用大小,另一個(gè)是下載流量的使用大小。
5)智能手機(jī)的電量使用情況
對于獲取電量使用情況的信息,也需要通過讀取系統(tǒng)文件來實(shí)現(xiàn),通過采集/sys/class/powersupply/battary系統(tǒng)文件里的信息數(shù)據(jù),可以獲得當(dāng)下智能手機(jī)電池剩余電量的百分比情況,此外,還能讀到在智能手機(jī)充電狀態(tài)下,當(dāng)前電池的溫度等相關(guān)信息。
2.3 自動(dòng)化監(jiān)控軟件的實(shí)現(xiàn)及測試結(jié)果
把獲取的全部所需數(shù)據(jù)信息,通過寫成模塊化的類來進(jìn)行調(diào)用,如此一來,只需在用戶界面相應(yīng)地做一些設(shè)置,就可以使用自動(dòng)化監(jiān)控工具相關(guān)功能?;贏ndroid平臺(tái)的軟件自動(dòng)化監(jiān)控工具設(shè)計(jì)所使用的是Android系統(tǒng)的一般工具界面。自動(dòng)化監(jiān)控工具一共有“首頁”、“程序”、“設(shè)置”以及“關(guān)于”四個(gè)界面。其中,“首頁”界面具有自動(dòng)刷新基本信息的功能;“程序”界面可以顯示當(dāng)下所運(yùn)行的全部程序列表;在“程序”界面可以對待監(jiān)控的軟件進(jìn)行選擇;最后,在“設(shè)置”界面進(jìn)行一些相關(guān)設(shè)置即可開始對待測軟件進(jìn)行自動(dòng)化監(jiān)控[4]。
通過使用自動(dòng)化監(jiān)控工具來對某個(gè)智能手機(jī) Android 軟件進(jìn)行監(jiān)控,在對待測軟件進(jìn)行一段時(shí)間的運(yùn)用之后,后臺(tái)也同時(shí)記錄下了這段時(shí)間內(nèi)的相關(guān)數(shù)據(jù),然后用相關(guān)工具查看這些數(shù)據(jù),便可獲得這款自動(dòng)化監(jiān)控軟件在運(yùn)行過程中的數(shù)據(jù)。結(jié)果表明,Android平臺(tái)的軟件自動(dòng)化監(jiān)控軟件在運(yùn)行過程中沒有出現(xiàn)流量消耗的情況,雖然占用的內(nèi)存空間有點(diǎn)大,但是所占用的CPU資源比較較少。
3 總結(jié)
綜上所述,在基于Android系統(tǒng)的自動(dòng)化監(jiān)控軟件的設(shè)計(jì)過程中,需要分析自動(dòng)化監(jiān)控軟件的需求情況,此外,還分別對所需采集的五種信息及方法進(jìn)行分析,這五種信息為:獲取內(nèi)存信息、CPU的使用情況、CPU的使用時(shí)間、智能手機(jī)流量的大小以及智能手機(jī)的電量使用情況。最終軟件的實(shí)現(xiàn)及測試結(jié)果表明,Android平臺(tái)的自動(dòng)化監(jiān)控工具運(yùn)行過程中沒有出現(xiàn)流量消耗的情況,雖然占用的內(nèi)存空間有點(diǎn)大,但是所占用的CPU資源比較較少,在監(jiān)控分析 Android 軟件工作中可以起到很大的作用。
參考文獻(xiàn):
[1] 楊怡君, 黃大慶. Android手機(jī)自動(dòng)化性能測試工具的研究與開發(fā)[J]. 計(jì)算機(jī)應(yīng)用, 2013, 9(11): 57-59.
[2] 惠曉威, 王克. 移動(dòng)視頻監(jiān)控系統(tǒng)的實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2014, 7(1): 106-107.
[3] 林瑞杰, 曾晨曦, 傅蓉蓉. Android操作系統(tǒng)兼容性測試系統(tǒng)設(shè)計(jì)與開發(fā)[J]. 現(xiàn)代電信科技, 2014, 4(6): 96-97.
[4] 木春梅, 韓守梅. 一種基于不等式的快速碼字搜索算法[J]. 電子學(xué)報(bào), 2013, 11(9): 218-220.