软件公司监控软件
公司监控软件 时间:2021-05-07 阅读:(
)
第30卷第2期计算机应用与软件Vol30No.
22013年2月ComputerApplicationsandSoftwareFeb.
2013基于Android平台的软件自动化监控工具的设计开发郑云卿黄琦(安徽大学电气工程与自动化学院安徽合肥230601)收稿日期:2012-03-07.
郑云卿,硕士生,主研领域:电机多目标优化,测控技术与信号处理.
黄琦,硕士生.
摘要主要研究搭载Android操作系统的智能手机软件自动化监控工具的开发,介绍Android开发平台,分析软件需求以及实现方法.
针对软件监控所需数据的采集,介绍了实现方法和步骤,并针对不同数据的作用加以分析,完成软件设计,实现了提出的自动化监控的需求.
关键词AndroidJava智能手机自动化监控中图分类号TP311文献标识码ADOI:10.
3969/j.
issn.
1000386x.
2013.
02.
062DESIGNINGANDDEVELOPINGANDROIDBASEDSOFTWAREAUTOMATEDMONITORINGTOOLSZhengYunqingHuangQi(SchoolofElectricalEngineeringandAutomation,AnhuiUniversity,Hefei230601,Anhui,China)AbstractInthispaperourstudyfocusesonthedevelopmentofautomatedmonitoringtoolsforsoftwareofsmartphoneequippedwithAndroidoperatingsystem.
ThereforethearticleintroducestheAndroiddevelopmentplatform,theanalysesonsoftwarerequirementsanditsrealisationapproach.
Forcollectingthedatarequiredbythesoftwaremonitoring,inthispaperwealsointroducetheimplementationmethodsandsteps,analysethefunctionsofdifferentdata,andfinallycompletethesoftwaredesign.
Theautomatedmonitoringdemandpresentedinthepaperisthenachieved.
KeywordsAndroidJavaSmartphoneAutomatedmonitoring0引言随着信息化和互联网技术的发展,智能手机正在越来越多地被消费者接受和使用[1].
而在众多的智能手机系统中,Android以开源的优势以及系统本身不断的优化更新,迅速占领市场,据统计,2011年Android手机全球出货量增长近250%,市面上几乎近一半的智能手机都采用Android系统,第四季度Android手机全球出货量为2.
378亿部.
Android手机设备的迅速发展,带动着整个Android软件行业的发展,越来越多的开发者加入Android游戏和应用的开发行列,软件公司纷纷推出在Android平台上的经典软件.
Android系统的开放使得Android软件开发变得容易,任何开发者,无论是专业公司还是个人都可以开发出属于自己并给别人分享的应用软件,这也使得Android软件日益庞大,对于某一个功能需求,Android手机用户可能有太多的选择,而这些软件有的比较精致,有的却比较粗糙,用户在使用过程中,并不能完全掌握这款软件的行为,比如内存占用,CPU占用,是否存在上传流量等等.
本文的目的是针对Android平台开发一款可以提供自动化软件监控的工具,针对待测软件,记录待测软件的行为数据,并记录日志文件以分析待测软件所占用的资源是否合理,是否存在恶意上传流量等等.
1Android开发简介Android是由Google公司推出的,以Linux为核心的开放源码的操作系统[2],可以运行在手机、平板电脑、GPS、播放器等各种手持信息通信工具上.
直到本文为止已经从Android1.
0版本更新推出到Android4.
0版本.
无论是操作流畅度还是硬件设备的提升,都在不断地提高,也因为如此的发展,几乎所有设备商都投入到Android手机的开发中.
Android开发环境可以是Java,也可以是C++等经典语言,一般使用Java进行开发,开发平台使用Eclipse软件(开放源代码的、基于Java的可扩展开发平台),并下载Android提供的SDK(软件开发工具包)进行开发.
Android的SDK提供可视化的模拟器,以及DDMS工具(Dalvik虚拟机调试监控服务),用于实时查看软件运行情况以及文件管理、截屏等236计算机应用与软件2013年操作,即使没有真机也可以非常直观迅速地进行开发,并基本符合真实场景[3].
本文所开发的自动化监控工具正是在以上的基础上进行开发的,并在真机环境下顺利通过测试,投入使用.
2自动化监控软件编写2.
1软件需求分析对于本文设计的自动化监控软件[4],需要提供选择可以监控的对象和监控记录的数据,并需要在后台记录,因为只有待测软件进入前台显示操作时采集的数据才是最准确的,由于Android系统的特点,非前台显示的进程都处于挂起阶段,内存会释放掉一部分,而后台显示占用的那部分内存实际上是不运行的,所以必须记录运行状态下的数据才能正确反映此软件的信息.
我们可以先描绘出整个软件的工作流程,如图1所示.
图1自动监控工具运行流程本文设计的监控工具必须采集很多种信息才能最终判断待测软件的性能,并且尽量满足当前所有主流Android版本以及各个设备商自行二次开发的Android手机系统.
下面将分析具体需要采集的数据及其方法.
2.
2数据采集判断一个软件在手机上的运行情况,一般由以下几个方面着手:内存、CPU使用率、CPU占用时间、流量、消耗的电量等信息.
Android是基于Linux内核的系统,因此本文采集的数据很多方式都通过读取Android的系统文件信息来获取.
2.
2.
1内存信息获取对于手机来说需要记录的内存信息有手机的总内存、当前剩余可使用的内存、以及待测软件占用的内存.
手机的总内存可以通过读取/proc/meminfo取得,第一行即为手机总内存如图2所示.
图2手机总内存的获取而对于手机剩余内存,本文采用通过Android提供的接口函数来实现[5]:ActivityManageram=(ActivityManager)mContext.
getSystemService(Context.
ACTIVITY_SERVICE);ActivityManager.
MemoryInfomymem=newActivityManager.
MemoryInfo();am.
getMemoryInfo(mymem);returnmymem.
availMem/1024;这里返回的值即为当前剩余的内存.
待测软件使用的内存情况就比较复杂,对于Android系统来说,所有运行的软件既是独立的又是共享的,在使用过程中有很多调用方法和数据都是共享的,而这些共享的内存是不会被系统回收掉的,而软件本身占用的内存部分会被系统不断回收,又不断申请.
对于一个软件的内存有四个数据值得深入研究:虚拟耗用内存VSS(VirtualSetSize):这个值一般情况下比较大,因为它包括了所有共享库占用的大小,所有在程序运行过程中可能涉及到的内存都被归为VSS中,所以对于判断待测运行情况来说不够标准.
包含共享库的实际使用物理内存RSS(ResidentSetSize):RSS内存显示的也包括了共享库占用的内存,此内存值是实际运行时程序占用的以及运行时占用的共享库的大小的总和,即使只载入一次的共享库也被纳入此内存值.
只包括共享库实际使用的物理内存PSS(ProportionalSetSize):这个值的大小是在程序运行过程中,系统分配给进程需要的共享库大小的值,仅为共享库的值,在单独对比软件资源消耗时比较有用.
进程独自占用的物理内存USS(UniqueSetSize):这个值仅为系统分配给进程的物理内存,即进程在运行时需要的内存大小,而调用的共享库的值不计入此内存值,因此单独判断待测软件对于物理内存大小的需求比较有意义.
这些值的获取分为两部分,首先通过调用Linux的系统命令Top即可采集到当前运行程序的VSS和RSS数据.
同时,由图3可以看到,通过top命令也可以采集到进程的身份标识PID,对应程序包名Name以及程序占用CPU的大小.
图3Top命令能够获取的数据对于PSS和USS内存大小的获取,分两种情况,Android在2.
2以上的版本提供了接口函数,只要调用即可获取到数据,而第2期郑云卿等:基于Android平台的软件自动化监控工具的设计开发2372.
2版本以下的Android系统可以通过读取系统文件的形式获取内存大小.
2.
2.
2CPU使用率同样CPU使用率分为手机所有进程占用的使用率以及待测软件占用的使用率.
在系统文件/proc/stat中对于CPU的使用情况有很多信息,如图4所示.
图4CPU使用情况的信息CPU总使用率通过采集一定时间隔的/proc/stat文件的数据信息,并进行处理即可得到,在图4中,CPU因为是单核,所以只需要考虑第一行的数据,这一行的数据信息分别指的是:user(88772):处于用户态的运行时间,不包含没有良好状态的进程.
nice(2877):良好值为负的进程所占用的时间.
system(29328):系统内核运行的时间.
idle(666877):除接口等待时间以外的其它等待时间.
iowait(233):接口等待时间.
irq(4):硬中断时间.
softirq(123):软中断时间.
guest(0):其他用户占用时间.
因此采集到一定时间间隔的CPU使用数据进行处理即可得到当前CPU使用率.
Cpu_use_time=user+nice+system+idle+iowait+irq+softirq+guestCpu_free_time=idleCpuusage=(idle2idle1)/(cpu2cpu1)100对于进程占用的CPU使用率,通过上一节中的Top命令就能够获得,只需要记录存储数据即可.
2.
2.
3CPU使用时间进程占用CPU的使用率只能反映当前瞬间进程对CPU资源的消耗,而在一段时间内,进程占用CPU总使用时间才能反映出待测软件对于系统的消耗,在Android系统文件/proc/pid/stat中也有许多的数据,而需要的进程占用时间只有两种:utime:进程占用CPU用户态运行的时间.
stime:进程处于CPU核心态运行的时间.
而这两种进程占用CPU的运行态指的是申请占用的级别的高低,stime是最高级别的申请,而utime是一般级别的申请,两种时间的相加即为待测软件占用CPU的时间.
同样通过前面Cpu_use_time与Cpu_free_time之和就能得到CPU运行的总时间,那么进程占用CPU的时间与CPU总运行时间之比就可以间接得到待测软件消耗的资源大小.
2.
2.
4流量大小手机流量大小分为WiFi流量和GPRS流量,对于用户来说,WiFi一般都属于免费的,而GPRS是收费的,因此本工具在设计时采集的数据是GPRS的流量大小.
而对于待测软件流量来说,需要知道的有上传和下载的流量,同时还有手机本身全部的上传和下载的流量,这两组数据的对比既可以分析出待测软件是否存在恶意上传,也可以分析出手机本身有没有未通知用户的流量通信.
通过读取/proc/net/dev系统文件即可得到当前所有流量信息,如图5所示.
图5流量信息如图5,rmnet0一行所列出的数据就是流量信息,在椭圆框中的数据分别是手机下载和上传的流量数据,单位是byte.
待测流量信息在Android2.
2版本之后就有接口函数可以调用,但是因为本工具设计的目的是尽量满足市面上所有Android版本,所以仍然采用读取系统文件,写成完整的类进行调用.
进程的上传下载分为两个文件:/proc/uid_stat/uid/tcp_rcv为进程下载流量大小.
/proc/uid_stat/uid/tcp_snd为进程上传流量大小.
其中文件位置需要知道UID(用户标识符)才能采集到数据,UID是Android系统配置给用户的标识符,进程之间可以共享UID,通过ActivityManager.
RunningAppProcessInfo即可获得当前运行的进程的UID等信息.
2.
2.
5电量对于电量,同样通过读取系统文件夹/sys/class/power_supply/battary可以列出很多关于电池的信息,如图6所示.
图6电池信息通过此文件夹里的文件可以读到当前电池电量百分比、充电状态、当前电池温度等等信息,本文设计的工具只取了电量百分比作为参考数据.
2.
3软件实现以及测试结果所需要的数据获取写成模块化的类进行调用,用户界面需要进行一些相关设置即可实现工具的功能,本文设计的自动化监控工具是运行于Android手机上的,因此界面也都使用An238计算机应用与软件2013年droid一般工具界面.
本工具分为四个界面,通过选项卡的形式进行选择页面切换.
分成首页显示信息、程序、设置、关于四个界面,如图7所示.
图7工具界面首页自动刷新一些基本的信息,程序页面会显示出当前运行的所有程序列表,通过程序列表进行待监控软件选择,在设置页面完成基本设置后就可以开始自动监控待测软件了,所有信息被记录在存储卡上,并以一定的格式保存,在后期处理数据时既可通过本工具直接查看,也可将数据直接拷入到Excel等表格处理工具查看.
利用本工具对某Android软件进行监控,通过对待测软件一段时间的使用,后台记录了此段时间的数据,通过工具浏览这些数据如图8所示,可以看出此款软件运行时的状态数据,可以看到软件运行时占用CPU资源少,但占用的内存比较大,没有流量消耗.
这些数据既可提供作为专业测试人员进行分析,也可作为Android手机用户的参考数据,实际操作中非常方便.
图8测试数据结果3结语本文基于Android系统开发的自动化监控工具,可以运行于市面上大部分Android手机终端,可以自动化采集记录数据,数据经验证都真实可靠,可以作为专业的分析数据使用,对于专业的测试人员来说,减轻了他们的工作负担,提高了工作效率,同时得到的数据也更具有价值.
而对于普通用户来说,对于一款Android软件,通过本工具监控的数据,可以很清楚地知道这款软件在运行阶段是否一直处于资源占用高峰,程序进入后台后,是否仍然不断消耗系统资源、偷传流量等.
作为一款Android平台的监控,本工具非常具有应用市场,而随着工具的不断完善,将提供更多可靠的分析数据,因此,可以看到本文设计的Android软件自动化监控工具对于监控分析Android软件具有非常重要的作用.
参考文献[1]童承凤,胡庆.
基于Android平台的双网双待的研究与设计[J].
计算机应用与软件,2012,29(2):250253.
[2]左天军,左圆圆,陈平.
Linux操作系统的实时化分析[J],计算机科学,2004,31(5):110112.
[3]EdBurnette.
Hello,Android:IntroducingGoogle'sMobileDevelopmentPlatform[M].
American:PragmaticBookshelf,2009.
[4]付剑平,陆民燕.
软件测试性定义研究[J].
计算机应用与软件,2010,27(2):141143,153.
[5]李宁.
Android开发权威指南[M].
人民邮电出版社,2011.
(上接第215页)据分配给多个线程并行处理以生成和扩充码书.
实验结果表明:ACVQ算法的并行结构极大的加速了压缩进程,码书在初始化选取和优化时的自适应性和可扩充性提高了码书的质量,适用于较大型的体数据在GPU中的压缩.
若扩大Grid网格规模以提高GPU每次并行处理数据量,执行效率还会更高,较之传统VQ方法,ACVQ因其速度优势,更适合线上实时的数据压缩和解压绘制,后续的研究是将ACVQ方法用于图像数据、医学数据等其他数据上,检验其优势.
另一个研究重点是思考如何有机地融合其他方法的优点,例如文献[10]中很好地融合了生长型神经气以提高学习型矢量量化的训练速度.
再进一步减少压缩时间和保证码书质量之间谋求平衡点.
参考文献[1]LindeY,BuzoA,GrayRM.
Analgorithmforvectorquantizerdesign[J].
IEEETransactionsonCommunications,1980,28(1):8495.
[2]赵利平,肖德贵,李肯立,等.
一种高效体数据压缩算法及其在地震数据处理中的应用[J].
计算机辅助设计与图形学报2009,21(11):16061611.
[3]陈善学,徐皓淋.
基于子矢量技术的矢量量化码字快速搜索算法[J].
重庆邮电大学学报:自然科学版,2010,22(3):302306.
[4]木春梅,韩守梅.
一种基于不等式的快速码字搜索算法[J].
电子学报,2010,38(B02):218220.
[5]李碧,林土胜.
初始码字间距最大化的矢量量化码书设计算法[J].
小型微型计算机系统,2009,30(4):780783.
[6]姜来,许文焕.
模糊强化学习型的图像矢量量化算法[J].
电子学报,2006,34(9):17381741.
[7]厉旭杰.
GPU加速的图像匹配技术[J].
计算机工程与应用,2012,48(2):173176.
[8]孔勇平.
矢量量化LBG算法的研究[J].
硅谷,2008,6:3940.
[9]乔阳,潘志斌,乔瑞萍.
码书排序对快速码字搜索算法性能影响的分析[J].
中国图象图形学报,2010,15(8):11821188.
[10]王修君,沈鸿.
一种基于增量学习型矢量量化的有效文本分类算法[J].
计算机学报,2007,30(8):12771285.
EtherNetservers是一家成立于2013年的英国主机商,提供基于OpenVZ和KVM架构的VPS,数据中心包括美国洛杉矶、新泽西和杰克逊维尔,商家支持使用PayPal、支付宝等付款方式,提供 60 天退款保证,这在IDC行业来说很少见,也可见商家对自家产品很有信心。有需要便宜VPS、多IP VPS的朋友可以关注一下。优惠码SUMMER-VPS-15 (终身 15% 的折扣)SUMMER-...
昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...
RAKsmart 商家估摸着前段时间服务器囤货较多,这两个月的促销活动好像有点针对独立服务器。前面才整理到七月份的服务器活动在有一些配置上比上个月折扣力度是大很多,而且今天看到再来部分的服务器首月半价,一般这样的促销有可能是商家库存充裕。比如近期有一些服务商挖矿服务器销售不好,也都会采用这些策略,就好比电脑硬件最近也有下降。不管如何,我们选择服务器或者VPS主机要本着符合自己需求,如果业务不需要,...
公司监控软件为你推荐
现有新的ios更新可用请从ios14be苹果手机更新不了最新14系统是怎么回事?thinksnsthinksns 好用吗?靠谱吗accessdenied重装时系统都会提示access denied建企业网站建立一个企业网站要多少费用重庆网站制作请问一下重庆网站建设哪家公司做得好,价格又便宜哦?曲目ios期刊eset台北市cuteftp即时通请问有没有人知道即时通是什么?怎样先可以开??joomla安装巡更怎么安装
沈阳虚拟主机 动态域名解析 服务器租用托管 广东服务器租用 主机测评 mediafire下载 idc评测网 英文站群 ca4249 nerds 33456 空间租赁 河南移动梦网 lamp是什么意思 register.com cc加速器 中国域名根服务器 主机箱 web服务器安全配置 ftp服务器是什么 更多