一种应用Activity渲染时间获取方法和装置的制造方法

文档序号:9810285阅读:492来源:国知局
一种应用Activity渲染时间获取方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种应用Activity清染时间获取方法和一种应用Activity渲染时间获取装置。
【背景技术】
[0002]随着智能手机的发展,出现了多种支持智能手机的系统。比如Android(安卓)系统。Android是一种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端。
[0003]随着Android系统的市场占有率的增加,越来越多的开发者基于Android系统开发APP(applicat1n,应用),使用户使用Android手机更方便。对于开发者而言,为了保证所开发的APP的性能,会对各APP的性能进行测试,以便后期进一步的优化。例如,获取Android系统中各APP包含的每个Activity (Activity是Android的一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务)的渲染时间,从而可以对每个Activity的性能瓶颈有个时间上的量化。
[0004]在先技术中,是利用Android的命令行工具Logcat,输入命令获取系统各对象等的创建时间、结束时间等记录日志,然后从这些记录日志中找到目标的Activity的记录去计算渲染时间,但是这种方法的可操作性比较差,尤其是对于不同Activity之间频繁切换的情况,此方法的可操作性差等弊端会更明显。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用Acti vity清染时间获取方法和相应的一种应用Acti vity清染时间获取
目.ο
[0006]依据本发明的一个方面,提供了一种应用Activity渲染时间获取方法,包括:
[0007]在一目标应用的各个Activity启动时,通过钩取系统的Activity启动函数,获取系统时间的第一时间点;
[0008]在所述Activity渲染完成时,通过钩取系统Activity渲染完成函数,获取系统时间的第二时间点;
[0009]将所述第二时间点减去第一时间点,得到所述Activity的渲染时间。
[0010]优选地,在将所述第二时间点减去第一时间点,得到所述Activity的清染时间的步骤之后,还包括:
[0011 ]将所述Activity的清染时间进行展示。
[0012]优选地,将所述Activity的清染时间进行展示的步骤包括:
[0013]将所述Activity的清染时间以广播的形式发送给第一进程;
[0014]所述第一进程接收到所述Activity清染时间后,将所述Activity的清染时间进行展示。
[0015]优选地,在所述将所述第二时间点减去第一时间点,得到所述Activity的清染时间的步骤之后,还包括:
[0016 ]将所述Ac t i V i ty的清染时间与预定的时间阈值进行比较;
[0017]当所述清染时间小于等于预定的时间阈值,则确定所述Activity的性能符合要求;
[0018]当所述清染时间大于预定的时间阈值,则确定所述Act i V i ty的性能不符合要求。
[0019]优选地,在确定所述Activity的性能不符合要求的步骤之后,还包括:
[0020]针对所述Activity生成报警信息。
[0021 ] 优选地,在一目标应用的各个Activity启动时,通过钩取系统的Activity启动函数,获取系统时间的第一时间点的步骤,包括:
[0022]监控所述目标应用针对一个Acti vity,是否调用OnCreate函数,如果是,则通过第一钩子函数钩取所述OnCreate函数;
[0023]通过第一钩子函数获取系统时间的第一时间点。
[0024]优选地,所述在所述Activity清染成功时,通过钩取Activity清染完成函数,通过第二钩子函数获取系统时间的第二时间点的步骤,包括:
[0025]监控所述目标应用针对所述Activity,是否调用OnWindowFocused函数,如果是,则通过第二钩子函数钩取所述OnWindowFocused函数;
[0026]通过第二钩子函数获取系统时间的第二时间点。
[0027]优选地,在监控所述目标应用针对一个Activity,是否调用OnCreate函数,如果通过第一钩子函数钩取所述OnCreate函数的步骤之前,还包括:
[0028]将所述第一钩子函数和第二钩子函数注入目标应用的应用进程中。
[0029]优选地,所述将所述第一钩子函数和第二钩子函数注入目标应用的应用进程中的步骤包括:
[0030]在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
[0031 ] 通过所述第一孵化进程将所述第一钩子函数和第二钩子函数注入目标应用的应用进程中。
[0032]优选地,所述通过所述第一孵化进程将所述第一钩子函数和第二钩子函数注入目标应用的应用进程中的步骤,包括:
[0033]通过所述第一孵化进程监控目标应用的应用进程是否开始启动;
[0034]如果应用进程开始启动,则将第一钩子函数和/或第二钩子函数注入所述应用进程,完成应用进程的启动。
[0035]依据本发明的另一个方面,提供了一种应用Activity渲染时间获取装置,包括:
[0036]第一时间点获取模块,适于在一目标应用的各个Activity启动时,通过钩取系统的Activity启动函数,获取系统时间的第一时间点;
[0037]第二时间点获取模块,适于在所述Activity清染完成时,通过钩取系统Activity渲染完成函数,获取系统时间的第二时间点;
[0038]渲染时间获取模块,适于将所述第二时间点减去第一时间点,得到所述Activity的渲染时间。
[0039]优选地,在渲染时间获取模块之后,还包括:
[0040]展示模块,适于将所述Activity的渲染时间进行展示。[0041 ]优选地,所述展示模块包括:
[0042]渲染时间发送子模块,适于将所述Activity的渲染时间以广播的形式发送给第一进程;
[0043]渲染时间展示子模块,适于所述第一进程接收到所述Activity渲染时间后,将所述Activity的清染时间进行展示。
[0044]优选地,在所述渲染时间获取模块之后,还包括:
[0045]比较模块,适于将所述Act i vi ty的清染时间与预定的时间阈值进行比较;当所述渲染时间小于等于预定的时间阈值,则进入第一确认模块;当所述渲染时间大于预定的时间阈值,则进入第二确认模块;
[0046]第一确认模块,适于确定所述Activity的性能符合要求;
[0047]第二确认模块,适于确定所述Activity的性能不符合要求。
[0048]优选地,在第二确认模块之后,还包括:
[0049]报警信息生成模块,适于针对所述Activity生成报警信息。
[0050]优选地,所述第一时间点获取模块,包括:
[°°511 第一监控子模块,适于监控所述目标应用针对一个Activity,是否调用OnCreate函数,如果是,则进入第一钩取子模块;
[0052]第一钩取子模块,适于通过第一钩子函数钩取所述OnCreate函数;
[0053]第一时间点获取子模块,适于通过第一钩子函数获取系统时间的第一时间点。
[0054]优选地,所述第二时间点获取模块,包括:
[0055]第二监控子模块,适于监控所述目标应用针对所述Activity,是否调用OnWindowFocused函数,如果是,则进入第二钩取子模块;
[0056]第二钩取子模块,适于通过第二钩子函数钩取所述OnWindowFocused函数;
[0057]第二时间点获取子模块,适于通过第二钩子函数获取系统时间的第二时间点。
[0058]优选地,在第一时间点获取模块之前,还包括:
[0059]函数注入模块,适于将所述第一钩子函数和第二钩子函数注入目标应用的应用进程中。
[0060]优选地,所述函数注入模块,包括:
[0061]孵化进程替换子模块,适于在系统启动时,将系统自带的初始孵化进程替换为预定的第一孵化进程;
[0062]函数注入子模块,适于通过所述第一孵化进程将所述第一钩子函数和第二钩子函数注入目标应用的应用进程中。
[0063]优选地,所述函数注入子模块,包括:
[0064]启动监控子模块,适于通过所述第一孵化进程监控目标应用的应用进程是否开始启动;如果应用进程开始启动,则进入钩子函数注入子模块;
[0065]钩子函数注入子模块,适于将第一钩子函数和/或第二钩子函数注入所述应用进程,完成应用进程的启动。
[0066]依据本发明的另一个方面,提供了一种应用Activity渲染时间获取设备,包括:
[0067]存储器,加载有多条可执行指令;
[0068]处理器,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:
[0069]在一目标应用的各个Activity启动时,通过钩取系统的Activity启动函数,获取系统时间的第一时间点;
[0070]在所述Activity渲染完成时,通过钩取系统Activity渲染完成函数,获取系统时间的第二时间点;
[0071 ]将所述第二时间点减去第一时间点,得到所述Activity的渲染时间。
[0072]根据本发明的一种应用Activity渲染时间获取方法可以一目标应用的各个Activity启动时,通过钩取系统的Activity启动函数,获取系统时间的第一时间点,在各Activity渲染完成时,通过钩取系统Activity渲染完成函数,获取系统时间的第二时间点,然后将第二时间点减去第一时间点,即可得到各Activity的渲染时间,由此解决了利用An droid的命令行工具Logcat获取记录日志,再从记录日志中查找相应Activity记录从而计算其清染时间,使Activity清染时间计算复杂,需要多次人工介入,尤其是对于不同Activity之间频繁切换的情况下,对渲染时间的计算可操作性比较差等问题,取得了可以更方便、快捷的、自动的计算Activity的清染时间,可操作性强的有益效果。
[0073]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0074]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0075]图1示出了根据本发明一个实施例的一种应用Activity渲染时间获取方法实施例的步骤流程图;
[0076]图2示出了根据本发明一个实施例的一种应用Activity渲染时间获取方法实施例的步骤流程图;
[0077]图3示出了根据本发明一个实施例的一种应用Activity渲染时间获取装置实施例的结构框图;
[0078]图4示出了根据本发明一个实施例的一种应用Activity渲染时间获取装置实施例的结构框图;
[0079]图5示出了根据本发明一个实施例的一种应用Activity渲染时间获取设备实施例的结构框图。
【具体实施方式】
[0080]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1