大学论文

您当前的位置:学术堂 > 毕业论文 > 大学论文 >

安卓系统网络优化及测试的资源数据采集

来源:软件导刊, 作者:汪发宝
发布于:2021-01-06 共6026字

  摘要:随着智能手机的普及和用户对大数据流量需求的增长,运营商基站及光缆线路资源亦在不断增多。为了对这些网络资源进行管理与优化,基于手机安卓操作系统,使用JAVA语言,将运营商基础网络数据库物理基站信息、基站小区信息、光纤光缆资源信息和光交信息等存储于数据库中,通过手机终端对移动蜂窝网实时数据参数及用户当前位置信息进行采集与分析,将这些信息与后端数据库通过相关算法进行关联并实时显示在手机终端,对网络资源优化调整、规划设计、抢修维护、数据查询与分析提供支持,结合后端网络大数据及相关算法使软件工作效益提升60%.虽然手机终端参数各异,但由于进行了兼容性判断,软件数据准确率在95%以上。

  关键词:网络优化; 网络测试; 资源数据采集; 数据地图呈现;

  Abstract:With the popularity of smart phones and the growth of users' demand for big data traffic,the base station and optical cable line resources of operators are also increasing. In order to manage and optimize these huge network resources,based on Android platform,we use Java language to store the network data in the basic network database of operators,such as physical base station information,base station cell information,optical fiber resource information and optical communication information,and the mobile cell is monitored through the mobile phone terminal. The network real-time data parameters and the users' current location information are collected and analyzed. The collected information is associated with the data in the back-end database through relevant algorithms,and these network resources are displayed on the mobile terminal in real time. Because of the intuitive perception of network data,the software provides a good tool support for the optimization and adjustment,planning and design,repair and maintenance,data query and analysis of network resources of operators. The software combines the back-end network big data and related algorithms,which improves the work efficiency by 60%. Although there are some differences in the parameter data of each mobile phone terminal,the accuracy rate of the software data is more than 95% thanks to the compatibility judgment.

  Keyword:network optimization; network testing; resource data collection; data map presentation;

安卓

  0 引言

  随着网络建设快速发展,智能手机使用范围越来越广。安卓操作系统凭借灵活性、开放性优势成为目前最流行的智能手机系统,基于安卓系统的手机应用软件越来越多[1].安卓系统可通过软件编程获取相关网络参数,这些参数包括信号强度、信号干扰噪声比、信号接收质量、小区码和TAC码等。为了获取底层手机数据,需要将安卓系统进行ROOT授权。但测试软件只能对移动蜂窝信号进行测试分析,获取的数据无法关联到运营商庞大的网络资源,且无法实时呈现地图数据。因此,一般将庞大的运营商基础网络数据如物理基站数据、基站小区数据、光缆光纤资源数据和光交业务数据等存储于数据库中,结合MYSQL数据库及QLite数据库[2]优点,运用数据信息化手段通过相关算法对这些网络资源进行管理、优化和呈现,使其实时显示在手机终端。在地图上看到的网络实时参数有距离基站位置、信号强度值、信号干扰噪声比值、信号接收质量值以及用户当前所在地理位置等,方便网优人员直观了解移动网络情况,亦可把这些测试数据保存在手机上转储和解析。本文借助安卓的手机位置读取功能,利用百度地图插件开发地图测距功能,通过在地图上进行位置打点显示运动点轨迹和距离,方便野外工作人员进行运动轨迹距离测量。软件还提供基础数据模板和数据导入功能,只要将基础数据如基站、光交、光缆、基站小区等信息按照数据模板格式制作后导入手机根目录,即可自行导入手机或远程数据库。

  1 软件系统模块结构

  系统共设计12个子模块,每个模块相对独立运行,同时部分子模块下挂若干个子模块,分别为网络实测、网络路测、测试呈现、基站信息、地图测距、光交信息、光缆线路、网速测试(Speedtest软件快捷入口)、数据导入、数据模板、系统设置和关于我们,模块结构如图1所示。

  图1 软件系统模块结构   

  2 软件系统关键技术

  2.1 手机网络监听器

  网络实测模块要实时动态监测网络参数变化,需要实时监听手机的网络信息。通过新建内部类继承Phone StateListener类,通过get System Service(Context.TELEPHONY_SERVICE)获取当前手机服务对象,使用Tel.listen(My Listener,Phone State Listener.LISTEN_SIGNAL_STRENGTHS)方法将系统监听与内部类进行绑定即可实现监听[3].

  采用安卓的反射机制获取信号强度,对于2G、3G、4G网络采用不同的反射方法获取。2G、3G网络采用signalStrength.get Class()。get Method("get Gsm Dbm")。invoke(signal Strength),4G网络采用signal Strength.get Class()。getMethod("get Lte Rsrp")。invoke(signal Strength)[4].

  2.2 手机位置监听器

  为获取手机当前的实时位置,以便实时在地图上显示当前用户所在位置及显示用户当前与基站的距离,必须在Activity中实现Location Listener类接口,同时复写on Location Changed(Location location)方法,获取用户当前的经纬度信息。将获取到的经纬度信息与用户当前小区位置的经纬度信息进行计算,得到用户当前位置离基站的距离,用以判断信号阻隔与衰减数据[5].

  2.3 百度地图API模块

  百度地图Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口[6].采用该套SDK开发适用于Android系统移动设备地图应用,通过调用地图SDK接口,可轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。

  应用百度地图位置实时更新、打点、连线和显示文字等功能,实现方式参照百度地图SDK,在此不再阐述。使用和帮助文档可参照百度地图官方网站:http://lbsyun.bai-du.com/index.php?title=androidsdk.

  2.4 安卓数据持久化

  Android提供5种持久化数据存储方式:Shared Prefer-ences、External Storage、SQLite Databases、Network Connec-tion和Internal Storage,本文软件采用前面4种存储方式[7].

  2.4.1 Shared Preferences

  Shared Preferences是一个轻量级存储类,特别适合保存软件配置参数(采用xml文件存放数据,文件存放在/data/data//shared_prefs目录下)。Shared Preferences使用键值对方式存储数据,支持多种不同类型数据存储。本系统采用Shared Preferences存储数据。

  2.4.2 External Storage

  External Storage即外部存储,通常存储公共数据,存储位置为扩展卡或SD卡。使用外部存储需要添加相应的设备使用权限,即READ_EXTERNAL_STORAGE和WRITE_EXTERANL_STORAGE.本系统将本地数据导入源表bscellinfo.xls(基站小区信息表)、baseinfo.xls(物理基站信息表)、atreryline.xls(光缆信息表)、gjinfo.xls(光缆交接箱信息表)、fiberinfo.xls(光纤业务信息表),放在外部存储的SD卡根目录下。

  2.4.3 SQLite

  SQLite是一种超轻量级嵌入式数据库,大小只有几百k B,但是支持标准SQL语法,同时还遵循数据库的ACID事务。SQLite具有轻量级、独立性、隔离性、跨平台、多语言接口、安全性等优点,本软件系统所有网络数据采用SQLite数据库存储。

  2.4.4 Network Connection

  网络存储通过连接远程数据库进行数据存储与读取,本系统远程数据存储使用开源数据库My SQL.My SQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言即结构化查询语言(SQL)进行数据库管理。任何人都可在General Public License许可下下载并根据个性化需要对其进行修改。My SQL速度快,可靠性和适应性很好。因此,在大多数不需要事务化处理情况下,My SQL是管理数据的最好选择[8].

  本系统采用JDBC(Java Data Base Connectivity)[9]连接My SQL数据库,它是一种用于执行SQL语句的Java API,可为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,数据库开发人员可编写数据库应用程序。JDBC的URL连接地址格式如下:

  jdbc:mysql://[host:port],[host:port]…/[database][?参数名1][=参数值1][&参数名2][=参数值2]…

  其中host为主机IP地址,port为主机数据库端口号,database为My SQL数据库名。对应中文环境,通常mysql连接URL可以设置为:

  jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false

  将上述参数列为表1.

  表1 软件参数内容

  2.5 启用第三方应用

  在程序开发过程中常遇到需要启动另一个应用程序的情况,这需要查到相关应用的包名,再通过它获得主类名。如本软件需要调用Speedtest软件,则可用以下语句建立Intent对象[10]:intent=package Manager.get Launch IntentFor Package("org.zwanoo.android.speedtest")。

  使用百度地图进行基站导航则需要调用Uri入口。因此需要先创建Uri对象,程序代码如下:

  Uri uri=Uri.parse("baidumap://map/direction?destination=latlng:"+naviLatitude+","+naviLongitude+"|name:"+baseName+"基站"+"&mode=driving")

  然后将Uri对象作为参数传入对象Intent实现调用,Intent=new Intent(Intent.ACTION_VIEW,uri)。

  3 软件系统相关算法

  3.1 指定经纬度两点距离计算公式

  设两点为A(A1,A2)与B(B1,B2),则两点经纬度计算公式D[11]为:

  说明:A1为A点纬度坐标,A2为A点经度坐标;B1为B点纬度坐标,B2为B点经度坐标;R为地球半径,值为6 378 137,单位为m[4].

  3.2 半径范围计算公式

  对指定经纬度的目标点,求规定半径范围内最大和最小经纬度。设指定目标点为A(A1,A2),半径为r,则计算公式[12]为:

  说明:A1表示点A的纬度坐标,A2表示点A的经度坐标;r为范围半径,R为地球半径,值为6 378.137 km.min A1为最小纬度,max A1为最大纬度,min A2为最小经度,max A2为最大经度。

  结论:假设B点经纬度设为B(B1,B2),若B1和B2同时满足min A1≤B1≤max A1,min A2≤B2≤max A2,则说明B点在距离A点r半径范围之内,否则B点即在此半径覆盖之外[5].

  4 安卓系统权限

  安卓APP在系统中所有预定义权限根据作用不同分属不同级别,其权限级别分为普通级别(Normal)、危险级别(Dangerous)、签名级别(Signature)及系统/签名级别(Signatureor System)4类。根据手机终端系统版本和APP的目标SDK不同其表现方式也不同[13].

  4.1 普通级别

  普通级别权限通常不会对用户隐私或设备操作造成风险,APP只要申请了就可使用(在Android Manifest.xml中添加标签),安装时不需要用户确认,系统会自动授予。用户可在APP安装文件中看到这些权限,但无法进行管理,例如设置时区权限就是普通级别权限。

  4.2 危险级别

  危险级别权限也称为敏感权限,该类权限涉及用户隐私信息或相关资源,可能对用户存储的数据或其它操作产生影响。危险权限不仅需要在Android Manifest.xml配置文件中申请,还需要在代码中动态获取,比如读取通讯录(READ_CONTACTS)权限就属于敏感权限。基于系统版本和应用目标SDK不同,声明带来的影响也有所不同,如运行APP的安卓手机操作系统版本大于等于Android6.0,并且APP的目标SDK(target Sdk Version值)大于等于23,则在Android Manifest.xml文件中声明的每个危险权限都必须在APP运行时以弹窗等形式进行动态申请,用户可以选择同意或者拒绝。

  4.3 签名级别

  该类权限只对拥有相同签名的应用开放,一旦某个APP的Android Manifest.xml文件权限被定义为Signature级别,只有和该APP使用相同私钥签名的应用才可申请权限。如果签名一致,系统自动赋予权限,而不会通知用户或征求用户同意。

  4.4 系统/签名级别

  系统/签名级别权限为Android系统级权限。与签名级别权限类似,它不仅要求签名相同,还要求是同类系统级应用,一般只有手机厂商开发的预置应用(在/system/APP目录下的应用)才会用到该类权限。

  本软件主要用到以下系统权限:存储权限、电话访问权限、位置信息权限、安装其它应用权限。对应常量英文代码为:GET_ACCOUNTS、USE_CREDENTIALS、MAN-AGE_ACCOUNTS、READ_SETTINGS、AUTHENTICATE_ACCOUNTS、ACCESS_NETWORK_STATE、INTERNET、CHANGE_WIFI_STATE、ACCESS_WIFI_STATE、READ_PHONE_STATE、WAKE_LOCK、WRITE_EXTERNAL_STORAGE、BROADCAST_STICKY、MOUNT_UNMOUNT_FILESYSTEMS、READ_PHONE_STATE、ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION、ACCESS_COARSE_UPDATES、ACCESS_WIFI_STATE、CHANGE_NETWORK_STATE、WRITE_SETTINGS、REQUEST_INSTALL_PACK-AGES.GET_TASKS、REQUEST_INSTALL_PACKAGES.

  5 结语

  本软件系统基于安卓5.0及以上系统版本开发。在华为、中兴、VIVO、OPPO、酷派、小米等安卓手机上测试通过。本软件APP可实时获取运营商移动网络参数如信号强度、信号干扰噪声比、基站小区码及小区号等信息,可显示当前网络周边的基站信息及与基站的距离。通过百度地图直观地将光交、基站、光缆等显示在地图上,并可对这些信息进行导航,方便网络优化人员及工程规划建设人员根据现网情况对网络进行优化调整及网络资源勘察,是运营商工作人员在网络规划、网络测试和网络查询方面非常方便快捷的一款终端工具软件。后期将根据运营商网络数据引入话务量、铁塔及电费成本、基站登录用户数等,智能综合分析每个基站成本与效益,为运营商精准建设网络提供工具支撑。

  参考文献

  [1]毕春华,李红军,刘艳。 Android的智能手机应用开发分析[J].软件开发与应用,2017,16(10):128-130.

  [2]卢涛,薄文杰。基于MySQL和安卓SQLite双数据库的公交地图查询系统的设计[J].电子科学技术,2016,1(3):62-64.

  [3]衷文。基于安卓系统的APP开发技术研究[J].中国新通信,2017,19(14):49-53.

  [4]陈裕雄。安卓系统的手机定位软件开发与设计[J].无线互联科技,2015,17(13):52-54.

  [5]李佐彬。 Android开发入门与实战体验[M].北京:机械工业出版社,2012.

  [6] 百度。百度地图开放平台[EB/OL]. http://lbsyun.baidu.com/index.php?title=androidsdk.

  [7] 李刚。疯狂Android讲义[M].北京:机械工业出版社,2011.

  [8]张振超,吴杰,陈序蓬。浅谈Java中Mysql数据库的连接与操作[J].信息记录材料,2020,2(21):144-148.

  [9]王诚。研究JDBC连接MySQL数据库技术[J].基础设施与数据管理,2018,17(12):68-69.

  [10]张旭辉。基于安卓系统的APP开发技术探析[J].软件开发,2016,15(14):34-41.

  [11]刘佳。基于网优大数据平台的LTE站间距算法研究[J].移动通信,2017,41(15):24-28.

  [12]黎珍惜,黎家勋。基于经纬度快速计算两点间距离及测量误差[J].测绘与空间地理信息,2013,36(11):235-237.

  [13]林捷妤。基于安卓系统的APP开发技术研究[J].科技创新与应用,2018,17(16):149-151.

作者单位:中国联合网络通信有限公司六安市分公司
原文出处:汪发宝.安卓系统通信网络优化与资源呈现软件研究[J].软件导刊,2020,19(09):136-139.
相关内容推荐
相关标签:安卓毕业论文
返回:大学论文