APP下载

基于Android的网络测速仪的设计

2018-03-11林子焱康梅娟

科技资讯 2018年30期

林子焱 康梅娟

摘 要:为了方便安卓手机用户测试手机上网速度,本文基于模块化思想设计并实现了基于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.