应用软件生命周期交叉检测的方法技术

技术编号:20389117 阅读:62 留言:0更新日期:2019-02-20 02:33
本发明专利技术公开了一种应用软件生命周期交叉检测的方法,包括如下步骤:a.安卓系统安装的全部应用软件清单获取;b.后台运行的待测应用软件service实例获取;c.Servicerecord链表生成;d.Servicerecord的信息比较,将不同点生成测试报告。采用本发明专利技术的技术方案,将智能电视系统可能发生的错误控制在了应用软件检测前期,对全部应用软件的启动和销毁进行了遍历监控,使应用软件交叉调用时,销毁和启动进程完全受控,并可反复重现,规避了可能的低级错误,提升了软件开发质量。

【技术实现步骤摘要】
应用软件生命周期交叉检测的方法
本专利技术涉及一种软件检测的方法,具体涉及一种高效检测安卓系统中应用软件交叉操作时,应用软件是否正确运行的应用软件生命周期交叉检测的方法,属于计算机软件检测

技术介绍
近年来,随着智能设备的普及,在智能电视上安装的应用软件越来越多。由于安卓系统应用生命周期管理机制的复杂性,极容易出现应用软件在后台不正常运行的情况。特别涉及到音视频应用软件时,常会出现前台切换应用软件时,应用软件当前声音仍不消失或是几个声音并存的现象。比如在消息中心用语音调起QQ音乐某首歌进行播放,再用语音打开消息中心;在消息中心界面,但QQ音乐的声音还在,再退到DTV后,同时有DTV和QQ音乐的声音,按HOME键进主页,当前仍有QQ音乐声音在播放;遇到这种情况,通常不能反复重现,日志也不能准确定位。这种现状,目前都是采用人工黑盒操作来检查的;当测试人员没有经验,或者新上的应用捆绑的service过多,很容易漏测;鉴于操作系统根据属性标签来管理应用,应用在后台处理一些逻辑,或者去执行某些需要在后台长期运行的任务,这个系统是无法管控的。一个完善的系统后续在添加应用时,即使遇到这类问题,它也按照最通用的协议来操作;这种应用程序是否退出、是否销毁、是否在后台保持运行,目前还没有专业的测试方法。当然当下对智能电视应用软件与系统、应用软件与应用软件之间相关性测试还需要投入大量人工操作,即使这样还经常不能重现,不能确认是否有遗漏的场景。导致在批量生产时,机器上经常存在类似问题。对高效检测应用软件间交叉操作时各类异常问题,对智能电视的产品质量提升有着极大的意义。为此,本专利技术应用软件性能交叉检测的方案旨在为智能电视搭载,多应用软件调起时为应用软件的进程是否正常调用提供一个快速全面检测方案,适用于对所有智能系统所搭载的应用软件之间交叉调用的性能检测。
技术实现思路
本专利技术的目的在于解决对因为应用软件进程的后台操作,或是应用软件间捆绑操作没有及时销毁或退出,导致应用后台的调用没有及时退出的系统错误测试问题。为了方便说明本专利技术的技术方案,下面对安卓系统中应用软件的情况作如下介绍。安卓系统凡是能在后台播放的应用软件都包含Service,这些Service中部分供应用软件内部使用,还有一部分可供本应用软件之外的其他应用软件的各种构件所使用;后者对应的Service是应用于后台播放的。通过后者,其他应用软件的构件可以通过startService()或bindService()两个API来访问、启动该应用;当停止该服务的时候,通过stopService()或unbindService()两个方法来停止服务或解除对服务的绑定并销毁。当一个Service实例被停止并且没有其他构件绑定该服务的时候,系统则会自动销毁该Service实例;系统为了管理应用软件的Service实例,在应用软件对应的ActivityThread实例中提供了专门用于记录处于运行态的服务的域mServices;当一个Service实例被创建,则会在mServices域中添加对该实例的间接引用。当一个Service实例被销毁,mServices域也会自动删除相应的引用关系;本技术方案正是通过实时读取mServices的数据,将其中运行中的service记录在一个新增的ServiceRecord。通过对ServiceRecord的检查和比较,输出一个应用软件启动时未销毁service的记录清单;通过记录,可以判断Service实例是否已被销毁;本专利技术具体是这样实现的:应用软件生命周期交叉检测的方法,包括如下步骤:a.安卓系统安装的全部应用软件清单获取:通过getpackage方法,获取安卓系统安装全部应用软件的清单;b.后台运行的待测应用软件service实例获取:通过安卓系统ActivityThread线程的mServices变量(包含了当前进程中所有的services),分别获取StartServiceData、BindServiceData,确定待测应用软件后台启动时的service列表;c.Servicerecord链表生成:通过staticfinalclassStartServiceData和staticfinalclassBindServiceData封装,将当前应用软件进程启动时,后台启动service实例生成Servicerecord链表;d.Servicerecord的信息比较:可自动将生成的Servicerecord和要求的Servicerecord进行比对,将不同点生成测试报告。更进一步的方案是:步骤a中的检查对象为全部安卓应用软件。更进一步的方案是:启动service时,在指定service组件的名字时,一个Servicerecord可以是由多个ServiceAttribute(即service实例属性)组成,也可以由单个ServiceAttribute组成。采用本专利技术的技术方案,将智能电视系统可能发生的错误控制在了应用软件检测前期,对全部应用软件的启动和销毁进行了遍历监控,使应用软件交叉调用时,销毁和启动进程完全受控,并可反复重现,规避了可能的低级错误,提升了软件开发质量。附图说明图1所示为本专利技术中系统端界面——获取当前智能电视搭载的全部应用软件图2所示为本专利技术中系统端界面——待测应用软件测试设置图3所示为本专利技术中测试报告输出文件;图4所示为本专利技术中Servicerecord链表;图5所示为本专利技术中应用软件后台调用检测的操作流程图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步的说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术的保护范围。应用软件生命周期交叉检测的方法,具体流程详见附图5。以下描述中,对待检测apk的源码文件默认有代码权限。1)通过待检测应用软件的AndroidManifest.xml文件,提取应用软件所包含的所有Service列表,记为ServiceRecord0.txt;2)在电视端安装待检测应用软件;然后,打开PC端应用软件性能检测的脚本;根据包名,在调入界面选取待测试应用软件apk,再在应用软件白名单界面获取当前整机安装的全部应用软件包名;然后依次单个在前台调用;完成测试后,工具自动kill当前应用软件,继续调起下一个应用软件见附图1和附图2;3)调用测试期间,待检测应用软件分别选择start模式和blind模式,进行后台“启动/停止”服务;串口读取待测试应用软件在每个应用软件前台运行时的service实例,将输出白名单应用软件启动时未销毁的service记录在ServiceRecord1.txt;见附图4;4)通过和ServiceRecord0的比对检查,以确定当前的Service实例是否应销毁;作为应用软件后台运行时是否正常的判据,测试完成输出包含应用软件实例未销毁的应用软件包名的测试报告;见附图3。作为本专利技术的一个更具体的实施例,本专利技术在具体实施时,详细的操作过程如下:采用了相互连接的主程序与客户端,主程序运行在PC端,客户端为运行待检测应用软件的安卓设备,其主要操作过程步本文档来自技高网
...

【技术保护点】
1.应用软件生命周期交叉检测的方法,其特征在于包括如下步骤:a.安卓系统安装的全部应用软件清单获取:通过getpackage方法,获取安卓系统安装全部应用软件的清单;b.后台运行的待测应用软件service实例获取:通过安卓系统ActivityThread线程的mServices变量,分别获取StartServiceData、BindServiceData,确定待测应用软件后台启动时的service列表;c.Servicerecord链表生成:通过static final class StartServiceData和static final class BindServiceData封装,将当前应用软件进程启动时,后台启动service实例生成Servicerecord链表;d.Servicerecord的信息比较:可自动将生成的Servicerecord和要求的Servicerecord进行比对,将不同点生成测试报告。

【技术特征摘要】
1.应用软件生命周期交叉检测的方法,其特征在于包括如下步骤:a.安卓系统安装的全部应用软件清单获取:通过getpackage方法,获取安卓系统安装全部应用软件的清单;b.后台运行的待测应用软件service实例获取:通过安卓系统ActivityThread线程的mServices变量,分别获取StartServiceData、BindServiceData,确定待测应用软件后台启动时的service列表;c.Servicerecord链表生成:通过staticfinalclassStartServiceData和staticfinalclassBindServiceData封装...

【专利技术属性】
技术研发人员:梁敏
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1