Android手机流量监控系统毕业论文
2020-02-23 18:18:47
摘 要
本文主要研究了Android平台上的手机流量监控软件。从目前的形势来看,Android手机用户占有很大的市场份额,十分受欢迎,这就延伸出一个问题,用户在使用手机时,对自己手机中的软件的流量使用信息不明确,无法实时监控流量信息,用户经常会被一些软件恶意使用流量所困扰。根据这一情况,本文设计了一款软件,能够实时监控手机软件的流量使用信息,及时关闭异常软件,防止流量的过度使用。
本文通过调用Trafficstats流量统计类,可以实时刷新用户软件的流量数据,根据数据,用户可分析哪些软件的流量使用异常,然后限制软件流量的使用:一键开启或关闭网络;指定哪些软件能够使用流量。这样就可以达到流量监控及预警的目的,提高用户的体验。
关键词:流量监控;Android平台;Trafficstats类
Abstract
This article mainly studies mobile phone traffic monitoring software on Android platform. Judging from the current situation, Android mobile phone users occupy a large market share and are very popular. This extends a problem. When users use mobile phones, the flow usage information of the software in their mobile phones is not clear and cannot be monitored in real time. Traffic information is often plagued by the malicious use of traffic by some software. According to this situation, this article designed a software that can monitor mobile phone software's traffic usage information in real time, shut down abnormal software in time, and prevent overuse of traffic.
This article by calling Trafficstats traffic statistics class, you can real-time refresh the user software traffic data, according to the data, the user can analyze which software's traffic is abnormal, and then limit the use of software traffic: a key to turn on or off the network; specify which software can use the traffic . In this way, the purpose of traffic monitoring and warning can be achieved and the user experience can be improved.
Key Words:Traffic Monitoring; Android Platform; Trafficstats Class
目录
第1章 绪论 1
1.1 Android系统发展情况 1
1.2 Android系统架构 3
1.2.1 Linux Kernel(Linux内核) 4
1.2.2 Libraries(函数库) 4
1.2.3 Android Runtime(Android 运行环境) 5
1.2.4 Application Framework(应用程序框架) 5
1.2.5 Applications(应用软件) 5
1.3 Android应用组件 5
1.3.1 Activity(活动) 5
1.3.2 Service(服务) 5
1.3.3 Broadcast Receiver(广播接收者) 6
1.3.4 Content Provider(内容提供者) 6
1.3.5 Intent(意图) 6
1.4 本章小结 6
第2章 开发环境的部署 7
2.1 Eclipse开发环境部署 7
2.1.1 java环境部署 7
2.1.2 Eclipse安装配置 8
2.2 Android开发环境部署 8
2.3 导出应用程序 9
2.4 本章小结 10
第3章 需求分析和设计 11
3.1 需求分析 11
3.2 流量监控工具总体结构 12
3.3 本章小结 12
第4章 Android流量监测工具的系统详细设计 13
4.1 整体显示界面 13
4.2 流量获取模块 14
4.3 流量数据存储 16
4.4 流量数据刷新模块 16
4.5 流量统计图表显示模块 17
4.6 流量提醒功能 18
4.7 本章小结 19
第5章 Android流量监测工具的测试 20
5.1 测试环境 20
5.2 单元测试 20
5.3 功能测试 21
5.4 本章小结 23
第6章 总结与展望 24
6.1 总结 24
6.2 现状与展望 25
致谢 26
参考文献 27
绪论
本章主要讨论Android手机的发展,Android架构的知识,并向读者介绍Android系统的知识。
Android系统发展情况
Android是一种基于Linux的免费开源操作系统,主要用于智能手机和平板电脑等移动设备。2005年8月,谷歌收购了最初开发Android操作系统的公司Andy Rubin。2007年11月,Google与84家硬件制造商、软件开发商和电信营运商组成了一个开放手机联盟,共同开发改进Android系统(Open Handset Alliance,OHA)[9]。之后,Android的发展越来越好,至2011年第一季度,Android在全球的市场份额跃居全球第一,首次超过塞班系统。到2013年第四季度,Android平台手机的全球市场份额已达78.1%。至2017年,其全球市场份额高达85.9%,成为全球第一手机操作系统。
多年来,随着网络技术的不断发展,作为一个开放性平台,Android操作系统也在进行着不断地更新换代。谷歌将Android的历代版本以甜点来命名,这非常有趣。以下是Android历代版本的简要概述:
表 1-1 Android 版本发展历程
版本 | 相关信息 |
Android 1.5(Cupcake) | 2009年4月30日发布Cupcake(纸杯蛋糕) |
Android 1.6(Donut) | 2009年9月15日发布Donut(甜甜圈) |
Android 2.0/2.0.1/2.1(Eclair) | 2009 年 10 月 26 日Eclair(松饼) |
Android2.2/2.2.1(Froyo) | 2010 年 5 月 20 日Froyo(冻酸奶) |
Android2.3(Gingerbread) | 2010年12月7日发布Gingerbread(姜饼) |
Android3.0(Honeycomb) | 2011年2月2日发布Honeycomb(蜂巢) |
Android3.1(Honeycomb) | 2011年5月11日发布Honeycomb(蜂巢) |
Android3.2(Honeycomb) | 2011年7月13日发布Honeycomb(蜂巢) |
Android4.0(IcecreamSandwich) | 2011 年 10 月 19 日Ice Cream Sandwich(冰激凌三明治) |
Android 4.1(Jelly Bean) | 2012 年 6 月 28 日Jelly Bean(果冻豆) |
Android 4.4(KitKat) | 2013 年 9 月 3 日KitKat(奇巧巧克力) |
Android5.0(Lollipop) | 2014年10月15日Lollipop(棒棒糖) |
Android6.0(Marshmallow) | 2015年5月28日Marshmallow(棉花糖) |
Android7.0(Nougat) | 2016年8月22日Nougat(牛轧糖) |
Android8.0(Oreo) | 2017 年 8 月 21 日Oreo(奥利奥) |
由于Android的版本更新很快,至Android8.0版本发布,Android各版本市场份额也在不断变化,下表展示2018年5月份各安卓版本的市场占有份额及增幅变化:
表 1-2 各 Android 版本市场占比图
Android版本 | 先前数据(%) | 当前数据(%) | 更改(pp) |
2.3 | 0.3 | 0.3 | 0 |
4 | 0.4 | 0.4 | 0 |
4.1 | 1.7 | 1.5 | -0.2 |
4.2 | 2.2 | 2,2 | 0 |
4.3 | 0.6 | 0.6 | 0 |
4.4 | 10.5 | 10.3 | -0.2 |
5 | 4.9 | 4.8 | -0.1 |
5.1 | 18 | 17.6 | -0.4 |
6 | 26 | 25.5 | -0.5 |
7 | 23 | 22.9 | -0.1 |
8 | 4.1 | 4.9 | 0.8 |
8.1 | 0.5 | 0.8 | 0.3 |
由此表可以看出,Android版本市场份额最大的还是6.0Marshmallow(棉花糖),高达25.5%。在Android8.0面世后,不少用户也选择使用更高版本Android系统,其增长率高达0.8%,这意味着越来越多的用户倾向于从低版本向高版本更新,新版本也有了立足之地。
Android系统架构
Android系统架构和Linux操作系统都采用分层架构,可分为四层:从低层到高层分别为 Linux Kernel(Linux内核),Libraries(函数库),Android Runtime(Android 运行环境),Application Framework(应用程序框架),Applications(应用软件)构成。基本构成如下图所示:
图 1-1 Android 的系统架构
接下来分别对其进行简要介绍。
Linux Kernel(Linux内核)
Android的核心服务是基于Linux2.6内核的,目前,Android的Linux内核层包括安全管理,内存管理,进程管理,网络阶议栈,驱动程序模型和电源管理等,这些都依赖于Linux内核[16]。Linux内核层主要有以下功能:
- 硬件驱动:Linux内核层提供了几乎所有手机、平板相关设备的驱动程序,用以实现系统与各硬件间的通信,比如显示屏、键盘、摄像头、音频设备及电源管理等。
- 内存管理:实现对内存进行统一编码管理,提供低内存管理器(Low Memory Killer)策略、匿名共享内存(ashmem)机制和Android PMEM机制,来解决用户Android系统内存管理问题[17]。
- 系统进程管理:用于管理进程的创建与销毁,管理进程间的通信,解决和避免系统死锁问题等。
- 文件系统管理。
- 电源管理。
- USB管理。
Libraries(函数库)
Android内部有一个函数库,主要以C/C 编写而成,Android程序员可通过更上层的应用程序框架(Application Framework)来调用此函数库功能。以下是一些比较重要的函数库:
- Media Framework(媒体函数库):此函数库基于PacketVideo OpenCORE,支持多种音频、视频文件的播放与录制,并支持静态图像文件。
- SQLite 关系数据库:是一种小型的轻量级数据库,不需要安装配置,十分适合Android开发,命令类似于SQL,相比MySQL数据库,SQLite速度更快。在本次开发中选择使用此数据库。
- WebKit/LibWebCore:是支持Android浏览器和可嵌入式网页浏览的网页浏览器引擎。
- Surface Manager:用于管理图像界面的操作以及2D和3D图层的显示。
Android Runtime(Android 运行环境)
从 Android 4.4 开始,Google 开发者就引进了新的 Android Runtime(ART),相较于之前的Dalvik,ART在应用第一次安装时会进行预编译——将字节码预先编译成机械码,使得应用首次启动更加迅速,极大地改善了用户体验。
Application Framework(应用程序框架)
Framework层为我们开发提供了很多的API,通过调用各种API来实现APP的构建。可将该层理解为API的库房,开发者可利用接口调用自己想要的API,来完成APP的开发工作。常用的API有:活动管理器( Activity Manager) 、视图(Views)、内容提供器(Content Providers)、资源管理器(Resource Manager)、通知管理器 (Notification Manager)等。
Applications(应用软件)
Application是离用户最近的一层,用户可直接接触到手机上表现出各种应用软件APP,所有的应用程序都是通过java编写而成的,开发时可调用Application Framework层提供的各种API。
Android应用组件
Activity(活动)
Activity是应用表示层,即用户进行交互动作的可视化交互页面。在Android中,Activity是以栈的形式进行管理的,当前活动位于栈顶。使用Views构建UI来显示信息和响应用户行为,通过使用Activity.setContentView()方法可以设置当前Activity中的View 对象,以此来向用户展现不同的交互内容。程序的每个Activity都是相互独立的,用户可通过交互来启动或跳转到另一个Activity,这就是界面间的跳转。
Service(服务)
Service没有可视化用户界面,它是无限期的运行于后台的。Service运行于应用程序的主线程中,因此不会阻塞用户界面和其他组件。它并不能自身去启动,而是需要通过context对象调用startService或bindService方法来启动。用户在切换界面时不会中断service,只有结束程序service才会终止。
Broadcast Receiver(广播接收者)
Broadcast Receiver不需要做任何事,主要是用于接收系统或应用程序的广播通知。应用程序可通过注册不同的Broadcast Receiver来响应不同的系统通知,接到通知后,Broadcast Receiver并不会实现图形用户界面,而是通过启动activity来提醒用户,或通过 NotificationMananger达到对用户的提醒作用。
Content Provider(内容提供者)
Content Provider解决了应用程序间数据通信和共享问题,使得其他程序能够检索和存储数据,实现了应用程序间的数据共享问题。应用程序可通过ContentResolver对象来实现与Content Provider通信,有了ContentResolver对象后,用户就可以调用query()、insert()、 update()等方法来对数据进行操作了。
Intent(意图)
Intent专门负责在基本组件之间进行消息传递,Activity、Service和Broadcast Receiver都是通过Intent异步消息激活的,Intent包含的消息不同,则其激活的方式也不同。在开发时,所有组件都必须在AndroidManifest.xml文件中进行声明。
本章小结
本章是本文的绪论部分,这一部分首先介绍了Android操作系统的发展历史,通过对发展史的介绍,展现出Android系统的优势性。然后介绍了Android操作系统的系统架构,Android操作系统时基于Linux的,因此通Linux操作系统一样是分层结构,之后介绍了每一层的具体作用。最后对于Android的五大应用组件进行了简单的介绍,让读者对Android开发中的应用程序基本组件构造有了一定的理解。至此,对Android的全部介绍结束,下一章我将针对开发环境的部署进行简单介绍。
开发环境的部署
本章主要针对Android开发环境进行简单介绍,该项目所使用的开发环境如下:Windows 7, Eclipse4.5.0, Android SDK。
Eclipse开发环境部署
java环境部署
为了搭建java开发环境,首先就要进行java开发工具包JDK的下载,JDK主要应用于移动设备、嵌入式设备上的java应用程序,是整个java开发的核心[12]。
本次开发选择使用JDK1.7.0版本,下载好JDK1.7.0版本后根据指示进行安装操作,安装成功后,就进行配置环境变量操作:在环境变量中,对包括 JAVA_HOME、PATH 和 CLASSPATH 环境变量进行新建或修改操作。变量设置参数如表2-1所示:
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: