林子焱 康梅娟
摘 要:為了方便安卓手機(jī)用戶測(cè)試手機(jī)上網(wǎng)速度,本文基于模塊化思想設(shè)計(jì)并實(shí)現(xiàn)了基于Android的網(wǎng)絡(luò)測(cè)速儀,并分析了網(wǎng)絡(luò)測(cè)速儀的設(shè)計(jì)需求,詳細(xì)介紹了此系統(tǒng)的功能模塊設(shè)計(jì)、應(yīng)用程序界面設(shè)計(jì)、網(wǎng)速測(cè)速功能的實(shí)現(xiàn)。本系統(tǒng)通過使用安卓手機(jī)下載一個(gè)特定文件,在下載的過程中進(jìn)行實(shí)時(shí)的速度測(cè)試,并且能快速測(cè)出當(dāng)前的網(wǎng)速和網(wǎng)速平均速度。
關(guān)鍵詞:網(wǎng)絡(luò)測(cè)速 Android Eclipse 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)10(c)-00-02
隨著互聯(lián)網(wǎng)以及網(wǎng)絡(luò)技術(shù)的快速發(fā)展,越來越多的用戶加入到了移動(dòng)互聯(lián)網(wǎng)這個(gè)大家庭中。我們每天使用手機(jī)上網(wǎng),有時(shí)感覺太卡,有時(shí)感覺很順暢,我們?cè)撊绾螠y(cè)試手機(jī)的網(wǎng)速。
網(wǎng)速是一種看不見摸不到的東西,很多用戶不知道怎么查看自己的手機(jī)網(wǎng)速。為了滿足用戶測(cè)試手機(jī)上網(wǎng)速度的需求,本文設(shè)計(jì)并實(shí)現(xiàn)了基于Android的網(wǎng)絡(luò)測(cè)速儀。
1 系統(tǒng)開發(fā)相關(guān)技術(shù)
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android分為4個(gè)層,從低到高分別是linux核心層、系統(tǒng)運(yùn)行庫層、應(yīng)用程序框架層和應(yīng)用程序?qū)?。在最底層,Android使用了Linux內(nèi)核,從而能夠利用Linux已有的豐富的硬件支持。在Linux內(nèi)核之上,Android選擇使用Java進(jìn)行各項(xiàng)API的開發(fā),因此制作了適宜移動(dòng)端使用的Dalvik虛擬機(jī),從而向上提供系統(tǒng)運(yùn)行庫。再往上則是豐富的應(yīng)用程序框架層,最上層則是豐富的應(yīng)用程序;利用Java跨平臺(tái)的性質(zhì),基于Android框架開發(fā)的應(yīng)用程序可以不用編譯運(yùn)行于任何一臺(tái)安裝有Android系統(tǒng)的平臺(tái)。
Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。通過安裝不同的插件Eclipse可以支持不同的計(jì)算機(jī)語言。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。
本系統(tǒng)是基于Android平臺(tái)開發(fā)的手機(jī)軟件,采用JDK和Eclipse作為開發(fā)環(huán)境,需要安裝Android SDK工具包,并為Eclipse安裝ADT插件。
2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2.1 系統(tǒng)功能模塊設(shè)計(jì)
本系統(tǒng)功能主要分為五大模塊:網(wǎng)速測(cè)速、當(dāng)前速度、平均速度、單位轉(zhuǎn)換、速度讀取,系統(tǒng)基本功能具體設(shè)計(jì)如下。
2.1.1 網(wǎng)速測(cè)速模塊
通過點(diǎn)擊“開始測(cè)速”按鈕開始測(cè)速,實(shí)現(xiàn)對(duì)于網(wǎng)速的實(shí)時(shí)檢測(cè)與計(jì)算。
2.1.2 當(dāng)前速度模塊
開始測(cè)速后將實(shí)時(shí)網(wǎng)絡(luò)速度用數(shù)值更加直觀的顯示出來。
2.1.3 平均速度模塊
測(cè)速結(jié)束后,計(jì)算測(cè)速時(shí)間段的平均速度并顯示出來,此為該時(shí)段的大體網(wǎng)絡(luò)速度。
2.1.4 單位轉(zhuǎn)換模塊
通過給電腦設(shè)計(jì)一個(gè)參考的單位依據(jù),使電腦能把測(cè)到的網(wǎng)速轉(zhuǎn)換成普通用戶能夠理解的單位。
2.1.5 速度讀取模塊
從網(wǎng)上下載特定的文件,然后在下載的過程中進(jìn)行速度的讀取。開始測(cè)速后通過測(cè)速表盤和測(cè)速指針顯示實(shí)時(shí)網(wǎng)絡(luò)速度。
2.2 應(yīng)用程序界面設(shè)計(jì)
應(yīng)用程序界面內(nèi)容包含“當(dāng)前速度”展示、“平均速度”展示、速度表盤界面、測(cè)速指針視圖以及“開始測(cè)速”按鈕,如圖1所示。
進(jìn)入到應(yīng)用程序界面后,此時(shí)發(fā)現(xiàn)“當(dāng)前速度”視圖和“平均速度”視圖都是沒有數(shù)據(jù)顯示的,這是正常的,因?yàn)檫€沒有進(jìn)行速度的測(cè)試。
隨后,點(diǎn)擊“開始測(cè)速”按鈕,這時(shí)便可以看到指針會(huì)根據(jù)當(dāng)前的網(wǎng)速進(jìn)行轉(zhuǎn)動(dòng),轉(zhuǎn)動(dòng)的幅度越大說明當(dāng)前網(wǎng)速越快,并且還能看到“當(dāng)前速度”與“平均速度”的視圖上顯示的相應(yīng)速度的具體值,隨著網(wǎng)速的變化這些數(shù)據(jù)也是在不斷變化的。
2.3 網(wǎng)速測(cè)速功能的實(shí)現(xiàn)
本系統(tǒng)的核心點(diǎn)就在于對(duì)于網(wǎng)速的實(shí)時(shí)檢測(cè)與計(jì)算,除了展現(xiàn)當(dāng)前速度以外,還需要在后臺(tái)計(jì)算出平均速度進(jìn)行展示,只有這樣才能保證系統(tǒng)的整體運(yùn)行。
2.3.1 網(wǎng)速測(cè)速功能的實(shí)現(xiàn)
網(wǎng)速測(cè)試功能的實(shí)現(xiàn)代碼如下所示:
public void handleMessage(Message msg) {
int value = msg.what;
switch (value) {
case UPDATE_SPEED:
tem = speedInfo.speed / 1024;
list.add(tem);
for (Long numberLong : list) {
numberTotal += numberLong;
}
falg = numberTotal / list.size();
numberTotal = 0;
speed.setText("當(dāng)前速度:"+tem + "kb/s"+" 平均速度:"+falg+"kb/s");
break;
case UPDATE_DNOE:
speed.setText("完成");
list.clear();
tem = 0;
falg = 0;
numberTotal = 0;
break;
}
}
2.3.2 速度讀取功能的實(shí)現(xiàn)
速度讀取功能的實(shí)現(xiàn),通過使用安卓手機(jī)從網(wǎng)上下載特定的文件,然后在下載的過程中進(jìn)行速度的讀取。速度讀取功能的實(shí)現(xiàn)代碼如下所示:
Log.d("URL:", UL);
con.setConnectTimeout(20000);
con.setReadTimeout(20000);
fileLength = con.getContentLength();
stream = con.getInputStream();
speedInfo.totalBytes = fileLength;
b = new byte[fileLength];
startTime = System.currentTimeMillis();
if((currentB = stream.read()) != -1) {
speedInfo.hadFinishedBytes++;
JiangeTime = System.currentTimeMillis() - startTime;
if (JiangeTime == 0) {
speedInfo.speed = 1000;
} else {
speedInfo.speed = (speedInfo.hadFinishedBytes / JiangeTime) * 1000;
}
}
3 結(jié)語
網(wǎng)絡(luò)測(cè)速儀是一款生活實(shí)用類軟件,也是一款非常簡單易用的手機(jī)測(cè)速軟件,能夠快速幫助手機(jī)用戶測(cè)出手機(jī)上網(wǎng)速度。本文先介紹了系統(tǒng)開發(fā)過程中所用到的關(guān)鍵技術(shù),然后介紹了系統(tǒng)的功能模塊設(shè)計(jì),最終完成了基于Android平臺(tái)的網(wǎng)速測(cè)速儀APP的用戶界面設(shè)計(jì)和重要功能設(shè)計(jì)。
參考文獻(xiàn)
[1] 丁一鈞.基于安卓操作系統(tǒng)的便攜式人員考勤系統(tǒng)設(shè)計(jì)[J].電腦編程技巧與維護(hù),2018(10):55-56,73.
[2] 韓瑞東.基于Android的垃圾短信過濾器的研究[J].電腦與信息技術(shù),2018(5):51-53.
[3] 汪蘭英.基于Android平臺(tái)的高校課程管理系統(tǒng)設(shè)計(jì)[J].信息與電腦:理論版,2018(18):242-243.
[4] 廖春華.基于Android平臺(tái)的智慧校園系統(tǒng)設(shè)計(jì)研究[J].信息技術(shù)與信息化,2018(8):145-147.
[5] 楊豐盛.Android技術(shù)內(nèi)幕[M].北京:機(jī)械工業(yè)出版社,2011.