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