基于Android的网络测速仪的设计
2018-03-11林子焱康梅娟
林子焱 康梅娟
摘 要:为了方便安卓手机用户测试手机上网速度,本文基于模块化思想设计并实现了基于Android的网络测速仪,并分析了网络测速仪的设计需求,详细介绍了此系统的功能模块设计、应用程序界面设计、网速测速功能的实现。本系统通过使用安卓手机下载一个特定文件,在下载的过程中进行实时的速度测试,并且能快速测出当前的网速和网速平均速度。
关键词:网络测速 Android Eclipse 系统设计与实现
中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2018)10(c)-00-02
随着互联网以及网络技术的快速发展,越來越多的用户加入到了移动互联网这个大家庭中。我们每天使用手机上网,有时感觉太卡,有时感觉很顺畅,我们该如何测试手机的网速。
网速是一种看不见摸不到的东西,很多用户不知道怎么查看自己的手机网速。为了满足用户测试手机上网速度的需求,本文设计并实现了基于Android的网络测速仪。
1 系统开发相关技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,该平台由操作系统、中间件、用户界面和应用软件组成。Android分为4个层,从低到高分别是linux核心层、系统运行库层、应用程序框架层和应用程序层。在最底层,Android使用了Linux内核,从而能够利用Linux已有的丰富的硬件支持。在Linux内核之上,Android选择使用Java进行各项API的开发,因此制作了适宜移动端使用的Dalvik虚拟机,从而向上提供系统运行库。再往上则是丰富的应用程序框架层,最上层则是丰富的应用程序;利用Java跨平台的性质,基于Android框架开发的应用程序可以不用编译运行于任何一台安装有Android系统的平台。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。通过安装不同的插件Eclipse可以支持不同的计算机语言。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
本系统是基于Android平台开发的手机软件,采用JDK和Eclipse作为开发环境,需要安装Android SDK工具包,并为Eclipse安装ADT插件。
2 系统设计与实现
2.1 系统功能模块设计
本系统功能主要分为五大模块:网速测速、当前速度、平均速度、单位转换、速度读取,系统基本功能具体设计如下。
2.1.1 网速测速模块
通过点击“开始测速”按钮开始测速,实现对于网速的实时检测与计算。
2.1.2 当前速度模块
开始测速后将实时网络速度用数值更加直观的显示出来。
2.1.3 平均速度模块
测速结束后,计算测速时间段的平均速度并显示出来,此为该时段的大体网络速度。
2.1.4 单位转换模块
通过给电脑设计一个参考的单位依据,使电脑能把测到的网速转换成普通用户能够理解的单位。
2.1.5 速度读取模块
从网上下载特定的文件,然后在下载的过程中进行速度的读取。开始测速后通过测速表盘和测速指针显示实时网络速度。
2.2 应用程序界面设计
应用程序界面内容包含“当前速度”展示、“平均速度”展示、速度表盘界面、测速指针视图以及“开始测速”按钮,如图1所示。
进入到应用程序界面后,此时发现“当前速度”视图和“平均速度”视图都是没有数据显示的,这是正常的,因为还没有进行速度的测试。
随后,点击“开始测速”按钮,这时便可以看到指针会根据当前的网速进行转动,转动的幅度越大说明当前网速越快,并且还能看到“当前速度”与“平均速度”的视图上显示的相应速度的具体值,随着网速的变化这些数据也是在不断变化的。
2.3 网速测速功能的实现
本系统的核心点就在于对于网速的实时检测与计算,除了展现当前速度以外,还需要在后台计算出平均速度进行展示,只有这样才能保证系统的整体运行。
2.3.1 网速测速功能的实现
网速测试功能的实现代码如下所示:
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 速度读取功能的实现
速度读取功能的实现,通过使用安卓手机从网上下载特定的文件,然后在下载的过程中进行速度的读取。速度读取功能的实现代码如下所示:
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 结语
网络测速仪是一款生活实用类软件,也是一款非常简单易用的手机测速软件,能够快速帮助手机用户测出手机上网速度。本文先介绍了系统开发过程中所用到的关键技术,然后介紹了系统的功能模块设计,最终完成了基于Android平台的网速测速仪APP的用户界面设计和重要功能设计。
参考文献
[1] 丁一钧.基于安卓操作系统的便携式人员考勤系统设计[J].电脑编程技巧与维护,2018(10):55-56,73.
[2] 韩瑞东.基于Android的垃圾短信过滤器的研究[J].电脑与信息技术,2018(5):51-53.
[3] 汪兰英.基于Android平台的高校课程管理系统设计[J].信息与电脑:理论版,2018(18):242-243.
[4] 廖春华.基于Android平台的智慧校园系统设计研究[J].信息技术与信息化,2018(8):145-147.
[5] 杨丰盛.Android技术内幕[M].北京:机械工业出版社,2011.