亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        移動終端OS性能自動化測試技術(shù)研究與實(shí)現(xiàn)

        2022-11-11 11:02:04向幫鑫杜貴鋒陸薪行
        電子技術(shù)與軟件工程 2022年15期

        向幫鑫 杜貴鋒 陸薪行

        (工業(yè)和信息化部電子第五研究所 廣東省廣州市 510000)

        1 課題背景與研究意義

        通信技術(shù)迅速發(fā)展,1G(第一代移動通信)、2G、3G、4G、5G技術(shù)持續(xù)快速迭代,并全面應(yīng)用于生活、政務(wù)、金融、國防等領(lǐng)域。這為移動通信提供了良好的技術(shù)基礎(chǔ),移動終端設(shè)備緊隨技術(shù)發(fā)展而推進(jìn),各類移動通信設(shè)備應(yīng)運(yùn)而生。無論對于促進(jìn)經(jīng)濟(jì)市場良性發(fā)展,還是加強(qiáng)移動終端技術(shù)的自主性、安全性,移動終端的自動化測試技術(shù)研究是十分必要的。

        終端產(chǎn)品性能的優(yōu)劣會直接影響產(chǎn)品中應(yīng)用的體驗(yàn)。通過測評可以直觀的體現(xiàn)移動終端的性能強(qiáng)弱,并可查看整體和單項(xiàng)硬件的性能,通過結(jié)果判斷各硬件的性能。對于終端內(nèi)存優(yōu)化、終端ROM鑒別都具有一定的參考價值。

        據(jù)此,我們研究了一款“移動終端OS性能自動化測試系統(tǒng)”(以下簡稱“性能測試系統(tǒng)”),通過對移動終端的CPU、GPU、內(nèi)存讀寫性能(ROM/RAM)、網(wǎng)絡(luò)的吞吐量和吞吐率、關(guān)鍵接口的性能等各方面進(jìn)行測試。通過測試結(jié)果,直觀體現(xiàn)測試產(chǎn)品整體性能的關(guān)鍵指標(biāo)。幫助消費(fèi)者更好的理解與選擇產(chǎn)品。此系統(tǒng)依托于本地化的數(shù)據(jù)存儲,沒有服務(wù)端參與數(shù)據(jù)交互,相比其他測試系統(tǒng),保證了手機(jī)數(shù)據(jù)以及個人數(shù)據(jù)的私密性,也打消了用戶關(guān)于本軟件是否竊取隱私信息的顧慮。

        2 移動終端測試技術(shù)研究

        隨著互聯(lián)網(wǎng)與智能移動終端的快速發(fā)展,移動終端已經(jīng)成為了最大的網(wǎng)絡(luò)終端[1]。2021年度智能手機(jī)市場分析報(bào)告顯示,2021年全球智能手機(jī)出貨量達(dá)到13.5億臺,相較于2020年的12.7億臺,同比增長7%[2]。隨著移動終端的使用量增加,其性能也成為了人們擔(dān)心的問題,而移動終端測試技術(shù)的研究自然成為了其中的重點(diǎn)。

        移動終端性能測試大多包含以下方面:CPU,將原有的原整數(shù)多線程運(yùn)算能力、浮點(diǎn)多線程運(yùn)算能力,整合優(yōu)化為多核運(yùn)算能力測試;原整數(shù)單線程運(yùn)算能力、浮點(diǎn)單線程運(yùn)算能力,整合優(yōu)化為單核運(yùn)算能力測試;CPU常用項(xiàng)目多維測試;硬件配置性能及ROM流暢性等等。

        本文主要在移動終端性能測試方面進(jìn)行研究,結(jié)合移動終端應(yīng)用場景,設(shè)計(jì)實(shí)現(xiàn)基于移動終端本地化性能自動測試的研究。

        3 測試模型設(shè)計(jì)實(shí)現(xiàn)

        此次研究基于Android 11.0版本,向下兼容到4.2版本。以AndroidStudio[3]為開發(fā)平臺,Android Fragment-Xpage[4]為頁面框架,采用Java[5]語言進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。

        實(shí)現(xiàn)移動終端自動化測試,需要對測試機(jī)進(jìn)行基本配置信息提取,自動化測評,測評結(jié)果提取以及其它相關(guān)測試設(shè)置。自動化測評包括移動終端CPU、GPU、網(wǎng)絡(luò)吞吐量和吞吐率、內(nèi)存讀寫性能(ROM/RAM)、關(guān)鍵接口性能等方面。測試系統(tǒng)架構(gòu)圖如圖1所示。

        圖1

        3.1 配置信息調(diào)用實(shí)現(xiàn)

        手機(jī)配置信息及基本信息的展示功能主要包括,手機(jī)品牌、手機(jī)型號、安卓版本、手機(jī)存儲、屏幕大小、指紋信息六個模塊。通過調(diào)用封裝好的deviceinfo-0.1.5-source.jar源碼庫的部分接口來實(shí)現(xiàn)。該庫根據(jù)繼承BaseDeviceInfoCollector類,配合DeviceInfoManager以獲取任意設(shè)備信息。通過DeviceInfoManager管理每個設(shè)備信息采集器。包含了device、battery、network、memery等信息。以上四個類可滿足當(dāng)前設(shè)計(jì)的需求。

        通過創(chuàng)建一個Device對象獲取設(shè)備信息。

        Device device=new Device();

        device.getManufacturer();

        device.getModel();

        device.getLanguage();

        通過創(chuàng)建一個Network對象獲取網(wǎng)絡(luò)信息。

        Network network=new Network();

        network.getNetworkType();//網(wǎng)絡(luò)類型

        network.getNetworkClass();//網(wǎng)絡(luò)狀態(tài)

        network.getOperator();//SIM卡

        通過創(chuàng)建一個Memmory對象獲取內(nèi)存信息。

        Memory memory = new Memory();

        memory.getTotalRAM();//總內(nèi)存

        memory.getTotalInternalMemorySize();//總存儲

        memory.getAvailableInternalMemorySize();//可用存儲

        3.2 自動化測試技術(shù)

        自動化測試模塊的實(shí)現(xiàn)部分,包括CPU、GPU、接口、內(nèi)存讀寫、吞吐率吞吐量。主要包含了系統(tǒng)的浮點(diǎn)運(yùn)算、整型運(yùn)算、能力和系統(tǒng)調(diào)用、編譯器性能、文件讀寫速度等性能參數(shù)進(jìn)行測試;系統(tǒng)進(jìn)程處理能力、進(jìn)程切換開銷、文件處理能力和內(nèi)存調(diào)度等方面進(jìn)行測試;針對3G/4G/5G/Wi-Fi網(wǎng)絡(luò)模式下網(wǎng)絡(luò)速率和吞吐率進(jìn)行測試;CPU占用率、內(nèi)存占用率、GPU占用率進(jìn)行測試,提供測試系統(tǒng)IO處 理能力;2D和3D圖形應(yīng)用程序接口API的測試;靜態(tài)的和動態(tài)的資源的性能進(jìn)行測試;用戶的操作行為模擬和實(shí)時性能監(jiān)測;不同壓力類型下的整體性能分析;關(guān)鍵接口的響應(yīng)時間測試。

        3.2.1 關(guān)鍵模塊算法設(shè)計(jì)

        3.2.1 .1 CPU的算法設(shè)計(jì)與實(shí)現(xiàn)

        CPU算法包括整型運(yùn)算和浮點(diǎn)運(yùn)算。二者在CPU運(yùn)算中都很重要。日常的絕大多數(shù)應(yīng)用都是整數(shù)計(jì)算為主的程序(會包含少量浮點(diǎn)指令),而只有科學(xué)計(jì)算程序會包含大量浮點(diǎn)代碼。這個結(jié)論和常識并不符,但是經(jīng)得起推敲。實(shí)際上可以用整數(shù)單元做的工作,編譯器一般不會特地動用浮點(diǎn)單元。有時,一些高度數(shù)據(jù)結(jié)構(gòu)要靠浮點(diǎn)單元來計(jì)算。整數(shù)運(yùn)算和浮點(diǎn)運(yùn)算往往體現(xiàn)在手機(jī)的流暢性。

        (1)浮點(diǎn)運(yùn)算算法設(shè)計(jì)。

        根據(jù)經(jīng)典的萊布尼茨級數(shù)[6]計(jì)算圓周率π的方式,模擬一個無線循環(huán)的小數(shù)點(diǎn)的計(jì)算,評估CPU浮點(diǎn)運(yùn)算的能力。萊布尼茨級計(jì)算公式如下:

        該公式也可記作:

        萊布尼茨級數(shù)計(jì)算π的方式是:

        π=S*4=3.141592654……

        在以上公式中,n值(計(jì)算次數(shù))如果足夠大,運(yùn)算次數(shù)越多,則計(jì)算的圓周率的值會越準(zhǔn)確。其運(yùn)算速度越快,則CPU的性能就越好。核心代碼如下:

        在測試系統(tǒng)中代碼算法實(shí)現(xiàn)過程中,我將萊布尼茨公式的計(jì)算次數(shù)n定義了50000000次,當(dāng)然這兒n值可隨意定義,n值越大,要求的算力就越大。CPU在計(jì)算過程中會消耗掉一定的時間。將程序的n固定,可通過定量分析,計(jì)算其消耗的時間,從而評估出CPU的性能。

        根據(jù)以上計(jì)算,如何直觀的用分?jǐn)?shù)體現(xiàn)CPU的性能,這兒主要還是依據(jù)時間的維度來評估。分?jǐn)?shù)計(jì)算的核心代碼如下:

        long Stime= System.currentTimeMillis();

        cpu2();//此處函數(shù)中調(diào)用了萊布尼茨計(jì)算的公式算法

        long Etime= System.currentTimeMillis();

        long time= Etime - Stime;

        double score=100000-time;

        zscore=(long) score;

        在以上代碼中,zscore為浮點(diǎn)運(yùn)算的最終得分。先開始獲取一個毫秒級別的時間Stime,在cpu2()函數(shù)中調(diào)用萊布尼茨計(jì)算公式算法的函數(shù)pi()。運(yùn)行完pi()函數(shù)后,再取當(dāng)前的毫秒時間Etime。兩個時間相減,得到整個算法的運(yùn)算時間time。用一個定量數(shù)100000減掉運(yùn)算的時間,在多次運(yùn)算后,可以使計(jì)算的分?jǐn)?shù)更加精確。zscore則為浮點(diǎn)運(yùn)算的分?jǐn)?shù)。

        (2)整數(shù)運(yùn)算算法設(shè)計(jì)。

        整數(shù)運(yùn)算采用了多次計(jì)算無窮大數(shù)的算法。通過循環(huán)指數(shù)運(yùn)算完成該算法。代碼如下:

        在以上代碼中,定義了一個for循環(huán)和while循環(huán)。整體解釋為:在循環(huán)計(jì)算1600000次2的999次方的基礎(chǔ)上,將該計(jì)算再循環(huán)100次。

        在for循環(huán)中套用一個while循環(huán),目的是為了直線拉升計(jì)算的次數(shù)和量級,此處主要調(diào)用了Math.pow()函數(shù)進(jìn)行計(jì)算。該龐大的計(jì)算過程為一個評估整數(shù)運(yùn)算的過程。其消耗的時間也將作為一個評估CPU整數(shù)運(yùn)算能力的一個單位。

        分?jǐn)?shù)計(jì)算代碼如下:

        long Stime1= System.currentTimeMillis();

        runcpu();

        long Etime1= System.currentTimeMillis();

        long time1= Etime1- Stime1;

        double c=100000- time1;

        xscore=(long)c;

        以上代碼同樣采用算法消耗的時間來評估分?jǐn)?shù),計(jì)算整數(shù)運(yùn)算分?jǐn)?shù)的原理和浮點(diǎn)運(yùn)算的分?jǐn)?shù)原理是一樣的。3.2.1.2 文件讀寫性能算法設(shè)計(jì)

        內(nèi)存卡的讀寫速度是指內(nèi)存卡的傳輸速率。不同的內(nèi)存卡有不同的速度等級,一般情況下速度等級越高傳輸速度越快。SD2.0規(guī)范中對于SD卡的性能上分為4個等級。分別是:

        0:包括低于Class2和未標(biāo)注SpeedClass的情況,

        2:傳輸速率至少2MB/s,最大約6MB/s,

        4:傳輸速率至少4MB/s,最大約10MB/s,

        6:傳輸速率至少6MB/s,最大約20MB/s。

        (1)寫文件算法設(shè)計(jì)。

        寫文件的算法首先定義了一個200兆固定值大小的文件。通過寫入200兆文件的時間。評估出手機(jī)寫入文件的性能。核心代碼如下:

        以上寫文件代碼定義了一個200兆大小的文件進(jìn)行寫入,通過循環(huán)寫入字節(jié)的方式完成。該文件的寫入需要用戶在運(yùn)行該測試程序前同意寫入的操作權(quán)限請求,文件寫入的位置為/storage/emulated/0/paofen/paofen。在測評完成后,會自動刪除。不會對系統(tǒng)造成任何影響。這兒的文件大小可以自由設(shè)置。文件越大,計(jì)算的時間就越精確。

        計(jì)算得分的代碼如下:

        double Stime= System.currentTimeMillis();createFile(filepa th+"testfile",200);

        double Etime= System.currentTimeMillis();

        double runningtime1=Endtime-Starttime; wtspeed=200/(runningtime1/200);

        String xrdot= Double(wtspeed)+"MB/s";long zspeed=(long) Math.pow(result,2.5);

        根據(jù)寫文件算法的執(zhí)行時間,計(jì)算出每秒可寫入文件的速率wtspeed。得出最后的分?jǐn)?shù)zspeed。

        (2)讀文件算法設(shè)計(jì)。

        讀取文件的位置與文件算法生成的文件位置是一樣的。通過創(chuàng)建輸入流和輸出流,按照字節(jié)大小的粒度進(jìn)行讀取。根據(jù)讀取消耗的時間評估結(jié)果。

        以上代碼在運(yùn)算完成讀取文件的算法后會消耗一定的時間,此處的讀取文件的大小和寫文件的大小一致,主要是為了保證讀寫文件時間的計(jì)算計(jì)算精確度,以及程序運(yùn)行完后垃圾文件的處理方便。

        (3)得分計(jì)算的代碼如下:

        long Stime= System.currentTimeMillis();

        saveImage(filepath+"testfile");

        long Etime= System.currentTimeMillis();

        longrunningtime2=endtime-starttime;

        dqspeed=200/(runningtime2/200);

        long hspeed=(long) Math.pow(result,

        2.5)

        根據(jù)讀取文件算法的執(zhí)行時間,計(jì)算出每秒讀取入文件的速率dqspeed。得出最后的分?jǐn)?shù)hspeed。

        (4)其他算法設(shè)計(jì)介紹。

        在GPU調(diào)用、接口讀寫、網(wǎng)絡(luò)吞吐率的測試中。同樣是在毫秒級別時間的維度進(jìn)行測試,根據(jù)定量分析的思路,計(jì)算出合理的分?jǐn)?shù)。例如關(guān)鍵接口的調(diào)用,調(diào)用一次的時間無法估算出性能,所以通過指數(shù)級別次數(shù)的調(diào)用過程中,產(chǎn)生的時間則能精確計(jì)算出性能的優(yōu)劣。網(wǎng)絡(luò)吞吐率主要是通過遠(yuǎn)程下載和上傳固定大小的文件,來評估手機(jī)網(wǎng)絡(luò)吞吐率的性能。

        3.3 其他功能-設(shè)置

        其他重要的功能在設(shè)置模塊,主要有測評記錄、清除測評記錄。

        測評記錄數(shù)據(jù)存儲在本地,主要是為了避免個人用戶擔(dān)心此類跑分軟件會不會竊取手機(jī)內(nèi)個人隱私數(shù)據(jù)到服務(wù)器的顧慮。數(shù)據(jù)存儲本地化的設(shè)計(jì)的原因有兩個。第一,簡化數(shù)據(jù)的處理,直接存儲在本地避免了與服務(wù)端進(jìn)行通信,簡化了數(shù)據(jù)處理流程,節(jié)約了服務(wù)器的成本。第二,打消用戶對個人隱私數(shù)據(jù)的顧慮。

        功能設(shè)計(jì)主要代碼如下:

        以上代碼中,在跑分完全結(jié)束后,會在/storage/emulated/0/paofen/paofen通過writeTxt函數(shù)創(chuàng)建一個文件,將數(shù)據(jù)作為txt,直接存儲在文件里。readFileContent讀取文件展示在頁面里。

        此外,為了提升系統(tǒng)運(yùn)行的體驗(yàn),設(shè)置了數(shù)據(jù)清除的功能。在設(shè)置中點(diǎn)擊清除跑分記錄,則全部清除歷史數(shù)據(jù)。

        代碼如下:

        3.4 測評結(jié)果

        點(diǎn)擊手機(jī)主頁“一鍵測評”,在該自動化程序運(yùn)行完成后,測評結(jié)果先會通過彈框的形式展示出來??梢郧逦恼故境鲈撌謾C(jī)的所有性能。

        在測試實(shí)驗(yàn)測試階段,經(jīng)過多款常用的手機(jī),多次的性能測試后。得出的結(jié)果如表1所示。

        表1:性能測試結(jié)果(注:此排名僅供參考)

        4 結(jié)論

        在移動終端OS性能自動化測試系統(tǒng)整個開發(fā)過程中,通過對Adnroid開發(fā)技術(shù)的學(xué)習(xí)以及手機(jī)系統(tǒng)功能的研究,確定了使用Android Fragment頁面框架-Xpage,以及非遠(yuǎn)程存儲數(shù)據(jù)的設(shè)計(jì)方案。嚴(yán)格按照前期的需求設(shè)計(jì)與需求說明,進(jìn)行架構(gòu)的搭建與開發(fā),然后進(jìn)行了整個系統(tǒng)的編碼開發(fā)工作,最后通過對系統(tǒng)的測試及調(diào)優(yōu),完成了整體的工作。

        通過對多款手機(jī)的測試,基本上實(shí)現(xiàn)了移動終端OS性能自動化測試系統(tǒng)預(yù)期的設(shè)計(jì)目標(biāo)與初衷,使用該測評系統(tǒng)能夠完整的對手機(jī)的性能進(jìn)行全面的測評,并得出測評結(jié)果,用戶在使用體驗(yàn)中,對系統(tǒng)有比較好的認(rèn)可和良好的反饋。

        伊人久久大香线蕉综合网站| 国产毛片av一区二区| 久久精品国产亚洲av四区| 无码一区二区三区在| 久久久婷婷综合五月天| 国产大全一区二区三区| 中文字幕专区一区二区| 日本刺激视频一区二区| 国产一区二区三区av天堂| 精品乱人伦一区二区三区| 天天躁夜夜躁天干天干2020| 亚洲av综合久久九九| 麻豆国产人妻欲求不满| 亚洲色AV性色在线观看| 色综合999| 你懂的视频在线看播放| 午夜少妇高潮在线观看| 人人人妻人人澡人人爽欧美一区| 男人激烈吮乳吃奶视频免费| 亚洲欧美日韩综合在线观看| 91精品日本久久久久久牛牛| 国产亚洲亚洲精品视频| 久久av一区二区三区黑人| 日韩一区av二区三区| 丰满人妻一区二区三区免费视频| 四虎影视免费永久在线观看| 大胆欧美熟妇xxbbwwbw高潮了| 亚洲成人欧美| 欧美xxxxx精品| 24小时在线免费av| 夜夜夜夜曰天天天天拍国产| 一本一本久久aa综合精品| 精品少妇ay一区二区三区| 亚洲自拍愉拍| 亚洲天堂av另类在线播放| 人妻经典中文字幕av| 国产精品高清一区二区三区不卡 | 日本50岁丰满熟妇xxxx| 久久免费视频国产| 国产成人一区二区三区视频免费蜜| 日本国主产一区二区三区在线观看|