统计安卓应用页面浏览行为的方法、装置及系统与流程

文档序号:14072775阅读:329来源:国知局

本发明涉及计算机技术及软件领域,尤其涉及一种统计安卓应用页面浏览行为的方法、装置及系统。



背景技术:

目前安卓应用埋点较为流行的方式是基于sdk(softwaredevelopmentkit,即软件开发工具包)的分析统计,通过在应用中嵌入一段sdk代码实现。sdk提供上报页面浏览日志的程序接口,安卓应用需要在所有需埋点的页面中手动调用相应接口,实现该页面相关参数的上传:页面类名、页面参数、页面加载时长等。应用运行过程中,通过接口触发sdk采集客户端时间、会话、创建时间等用户启动和使用应用过程中产生的信息,通过sdk以日志的形式记录在应用中。当发送条件被触发后,这些日志被发送到服务器进行下一步处理和分析。

实现原理如下:

1)在应用工程中嵌入sdk程序包;

2)对需要统计埋点的页面逐一调用sdk代码内上报浏览埋点接口,上传相关参数;

3)测试人员逐页面进行埋点测试,确保无漏埋、误埋;

4)用户访问埋点页面时,触发sdk进行页面参数采集,组装形成日志;

5)用户访问未埋点页面时,未触发sdk,无相关数据采集;

6)日志数据暂存本地,待满足上报条件后上报至数据采集服务器;

7)数据采集服务器接收应用页面浏览数据进行分析处理。

具体流程可参阅图1。

如上描述,现有技术需要人工手动对页面进行埋点,因此存下以下缺陷:

1)一款应用往往包含众多页面,要想分析应用整体的使用时长等指标需要应用所有页面都埋点;要想统计单个页面的使用时长,也需要对该页面所有关联页面埋点,每个埋点页面都需要人工调用sdk接口实现埋点,过程繁琐,且人工重复性工作量较大;

2)人工手动进行页面埋点存在漏埋、误埋风险,后期测试需要逐页面验证,测试成本较高;

3)每个埋点页面需要人工上传参数标记页面,但这些上传的页面参数利用率较低,导致埋点效率较低。



技术实现要素:

有鉴于此,本发明提供一种统计安卓应用页面浏览行为的方法、装置及系统,能够实现在统计安卓应用的页面打开、关闭等事件的同时,无需在每个页面人工调用sdk接口进行页面监控;并且可以实现自动化埋点,只需要很少的部署工作就可实现对安卓应用所有页面的监控,投入少而产出高,从而提高埋点效率。

为实现上述目的,根据本发明的一个方面,提供了一种统计安卓应用页面浏览行为的方法。

本发明的一种统计安卓应用页面浏览行为的方法包括:创建基类baseactivity,在所述基类baseactivity中对activity生命周期方法进行重写,以实现对activity的生命周期状态信息的拦截;页面运行过程中,由于activity继承基类baseactivity,基类baseactivity实现对activity生命周期状态信息的拦截;对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存。

可选地,对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存还包括:将拦截到的activity的生命周期状态信息通过广播的方式发送至处理单元;处理单元根据统计需求,筛选需要记录的activity的生命周期状态信息,并获取与所述activity的生命周期状态信息相关的信息,所述信息包括采集页面activity名称、状态生效时间信息,生成埋点日志并保存。

可选地,对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存还包括:获取设备类型、网络环境、地理位置信息,与基类baseactivity拦截到的activity的生命周期状态信息一并生成json格式的埋点日志并保存。

可选地,所述方法还包括:预先根据统计需求制定埋点列表,所述埋点列表中包括需统计生命周期状态信息的activity的名称;以及将拦截到的activity的生命周期状态信息与所述埋点列表进行对比,若拦截到的activity生命周期状态信息对应的activity名称存在于所述埋点列表,则保存所述埋点日志,否则不予保存。

为实现上述目的,根据本发明的另一方面,提供了一种统计安卓应用页面浏览行为的装置。

本发明的一种统计安卓应用页面浏览行为的装置包括:重写模块,用于创建基类baseactivity,在所述基类baseactivity中对activity生命周期方法进行重写,以实现对activity的生命周期状态信息的拦截;继承模块,用于页面运行过程中,由于activity继承基类baseactivity,基类baseactivity实现对activity生命周期状态信息的拦截;处理模块,用于对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存。

可选地,所述处理模块还用于:将拦截到的activity的生命周期状态信息通过广播的方式发送至处理单元;处理单元根据统计需求,筛选需要记录的activity的生命周期状态信息,并获取与所述activity的生命周期状态信息相关的信息,所述信息包括采集页面activity名称、状态生效时间信息,生成埋点日志并保存。

可选地,所述处理模块还用于:获取设备类型、网络环境、地理位置信息,与基类baseactivity拦截到的activity的生命周期状态信息一并生成json格式的埋点日志并保存。

可选地,所述处理模块还用于:预先根据统计需求制定埋点列表,所述埋点列表中包括需统计生命周期状态信息的activity的名称;以及将拦截到的activity的生命周期状态信息与所述埋点列表进行对比,若拦截到的activity生命周期状态信息对应的activity名称存在于所述埋点列表,则保存所述埋点日志,否则不予保存。

为实现上述目的,根据本发明的再一方面,提供了一种统计安卓应用页面浏览行为的系统。

本发明的一种统计安卓应用页面浏览行为的系统包括存储器和处理器,其中:所述存储器存储指令;所述处理器被配置为根据所述指令执行下列步骤:创建基类baseactivity,在所述基类baseactivity中对activity生命周期方法进行重写,以实现对activity的生命周期状态信息的拦截;页面运行过程中,由于activity继承基类baseactivity,基类baseactivity实现对activity生命周期状态信息的拦截;对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存。

根据本发明的技术方案,通过基于监控所有页面的activity生命周期实现对安卓应用页面浏览行为的统计,从而可以实现无需逐页面调用sdk上报接口实现页面埋点数据采集,使得埋点难度及复杂性降低;此外,亦无需人工手动进行页面埋点代码部署,实现页面埋点自动化,使人工投入成本降低;通过制定埋点列表,从而可以实现页面埋点定制处理,从而有利于降低研发维护成本,提升埋点效率,且后期测试不用担心埋点出现漏传参数、误传参数现象,测试投入成本降低;通过获取与activity生命周期状态信息相关的信息以及设备、网络环境、地理位置等信息,一并生成埋点日志,从而方便统计分析人员对页面浏览行为进行高效的统计。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是现有技术统计安卓应用页面浏览行为的方法的原理的示意图;

图2是根据本发明实施例的统计安卓应用页面浏览行为的方法的主要步骤的示意图;

图3是根据本发明实施例的统计安卓应用页面浏览行为的方法的原理的示意图;

图4是跟本发明实施例的统计安卓应用页面浏览行为的装置的主要模块的示意图;

图5是跟本发明实施例的统计安卓应用页面浏览行为的系统的主要部分的示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本发明实施例的目的是实现统一处理安卓应用的页面打开、关闭等事件,从而不用在每个页面人工调用sdk接口进行页面监控;同时实现自动化埋点,只需要很少的部署工作就可实现对安卓应用所有页面的监控,投入少而产出高,提高埋点效率。

图2是根据本发明实施例的统计安卓应用页面浏览行为的方法的主要步骤的示意图。

如图2所示,本发明实施例的一种统计安卓应用页面浏览行为的方法包括:

步骤s21:创建基类baseactivity,在所述基类baseactivity中对activity生命周期方法进行重写,以实现对activity的生命周期状态信息的拦截。

activity是安卓应用的组件之一,用于展示页面窗口。安卓应用的页面以activity为载体实现。activity的生命周期分为oncreate、onstart、onresume、onpause、onstop和ondestroy,具体来说,当activity被第一次调用时,就会执行oncreate方法。当activity处于可见状态的时候会调用onstart方法,当activity可以得到用户焦点的时候会调用onresume方法,当activity没有被销毁且被重新调用时会调用onrestart方法,当activity被遮挡住的时候会调用onpause方法,当activity处于不可见状态的时候会调用onstop方法,当activity被销毁时会调用ondestory方法。一个页面的展示和消失都需要经过这几个阶段,通过监控activity的生命周期,就可以监控一个页面的打开、关闭以及用户在页面上停留的时间。

本发明实施例中,通过创建基类baseactivity,在基类baseactivity的方法中重写activity的所有的生命周期,实现对页面浏览行为的监控。

步骤s22:页面运行过程中,activity继承基类baseactivity,由于activity继承基类baseactivity中的重写方法,基类baseactivity就可实现对activity生命周期状态信息的拦截。

本发明实施例中,基类baseactivity和各页面的activity类是父类和子类的关系,子类通过继承父类,可以复用父类的数据成员和成员方法。在基类中可以对activity的状态函数进行重写。所谓重写,就是在函数里加一些需要的标记,使得activity在执行时,能够对各个状态进行打标和记录。

举例而言,可以在基类baseactivity中对onstart方法进行重写,activity继承基类baseactivity之后,在activity创建或者从后台重新回到前台时会调用基类baseactivity中重写后的onstart方法。在重写方法中,对activity的状态进行标记,比如'activity_start'。就可实现对activity生命周期状态信息的拦截。

拦截到activity的生命周期状态信息后,从步骤s23进行处理。

步骤s23:对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存。

将拦截到的activity的生命周期状态信息通过广播的方式发送至处理单元;处理单元根据统计需求,筛选需要记录的activity的生命周期状态信息,并获取与所述activity的生命周期状态信息相关的信息,所述信息包括采集页面activity名称、状态生效时间信息,生成埋点日志并保存。

具体而言,对获取到的activity的生命周期状态信息后,将需要的信息通过广播的形式发送出去。在注册监听广播后,需要有相关的函数方法来对监听到的信息做处理,比如筛选需要的activity的生命周期状态信息,以及进一步获取此次操作行为的相关信息,比如采集页面类名、当前时间等,或者进行更复杂的信息组装,生成包含其他全量信息的原始日志等。其他相关信息的获取同样可以通过基类baseactivity的重写方法进行,可以通过编写函数记录更多所需的acitvity的信息,比如activity的名称、生效时间等,在activity复用这一方法时,获取上述信息。

拦截到activity的生命周期状态信息后,可以按一定格式生成log记录并存储下来。log记录是后期生成页面浏览日志的基础,log的内容可以参考“页面名称|页面状态|状态生效时间|其他参数|…”的格式,最终形成的页面日志格式可以不局限于此。

此外,还可以将拦截到的activity生命周期状态信息及其他相关信息与基于sdk获取的其他信息,比如设备类型、网络环境、地理位置等信息一起组装,最终以json串的形式的埋点日志记录下来。sdk采集到的日志会保存在客户端本地的数据文件中,最后这些本地日志通过上报请求的方式发送至日志服务器进行后续统计等处理。

本发明实施例中,统计安卓应用页面浏览行为的方法还可以包括:预先根据统计需求制定埋点列表,埋点列表中包括需统计生命周期状态信息的activity的名称;以及将拦截到的activity的生命周期状态信息与埋点列表进行对比,若拦截到的activity生命周期状态信息对应的activity名称存在于埋点列表中,则保存所述埋点日志,否则不予保存。这样做的目的是判断要采集哪些页面的埋点信息。如果用户只想统计个别页面的埋点情况,比如某个特定流程的页面,则可以梳理出待埋点页面的埋点列表。例如可以是提供一个包含页面activity名称的列表,则在对拦截到的activity的生命周期状态信息作进一步处理时,判断拦截到的页面的activity名称是否在这个列表范围内,如果存在,则记录埋点日志信息,如果不存在,则不做处理。

此外,本发明实施例中,测试是否存在漏埋、错埋也十分方便。最终将采集到的日志通过sdk上报至指定域名的日志服务器下。即安卓应用在接入sdk完成后,可以使用封装了sdk的安卓应用进行操作,此时就可以有日志产生并上报,工作人员可以通过比对上报的埋点日志验证埋点是否成功,及上报的信息是否正确。若有漏埋或错埋则及时进行更新埋点列表等操作。

图3是根据本发明实施例的统计安卓应用页面浏览行为的方法的原理的示意图。

如图3所示,本发明实施例的统计安卓应用页面浏览行为的方法的实现原理如下:

1)activity是安卓应用的组件之一,用于展示页面窗口。安卓应用的页面以activity为载体实现,activity的生命周期分为oncreate、onstart、onresume、onpause、onstop和ondestroy,一个页面的展示和消失都需要经过这几个阶段,通过监控activity的生命周期,就可以监控一个页面的打开、关闭以及用户在页面上停留的时间;

2)创建基类baseactivity重写activity的所有的生命周期,实现页面监控。具体实施为:创建一个界面基类baseactivity,让所有页面activity都去继承它,然后在基类中重写所有activity的生命周期方法,从而监控所有activity的生命周期信息;

3)在基类baseactivity中的重写方法里对activity的生命周期状态信息做拦截。可以通过基类中的重写方法对页面activity的状态进行标记。页面在运行过程中,activity继承并调用基类baseactivity的重写方法,按照一定格式将页面状态信息进行记录并拦截。拦截到的页面信息内容可以包括各页面activity的名称、状态,及状态生效的时间等;

4)将拦截到的信息通过广播broadcast发送到处理单元进行处理,生成埋点日志。在安卓系统中,broadcast是一种广泛运用的在应用中传输信息的机制,可以根据安卓系统提供的方式注册广播并发送广播,将拦截到的消息发送至统一的处理模块进行处理,生成埋点日志;

5)实现页面埋点的可定制化。应用研发时可按照一定格式制定一个埋点列表,在处理广播发送过来的埋点信息时,与埋点列表进行比对,判断是否是需要的信息,如果是,就将其记录;如果不是,就不做处理;

6)分析这些日志信息,就可以统计出一个应用中各个页面的启动次数及访问时长等信息。

根据本发明实施例的统计安卓应用页面浏览行为的方法可以看出,通过基于监控所有页面的activity生命周期实现对安卓应用页面浏览行为的统计,从而可以实现无需逐页面调用sdk上报接口实现页面埋点数据采集,使得埋点难度及复杂性降低;此外,亦无需人工手动进行页面埋点代码部署,实现页面埋点自动化,使人工投入成本降低;通过制定埋点列表,从而可以实现页面埋点定制处理,从而有利于降低研发维护成本,提升埋点效率,且后期测试不用担心埋点出现漏传参数、误传参数现象,测试投入成本降低;通过获取与activity生命周期状态信息相关的信息以及设备、网络环境、地理位置等信息,一并生成埋点日志,从而方便统计分析人员对页面浏览行为进行高效的统计。

图4是跟本发明实施例的统计安卓应用页面浏览行为的装置的主要模块的示意图。

如图4所示,本发明的一种统计安卓应用页面浏览行为的装置40包括:重写模块401、继承模块402、处理模块403,其中,

重写模块401用于创建基类baseactivity,在所述基类baseactivity中对activity生命周期方法进行重写,以实现对activity的生命周期状态信息的拦截;继承模块402用于页面运行过程中,由于activity继承基类baseactivity,基类baseactivity实现对activity生命周期状态信息的拦截;处理模块403用于对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存。

其中,处理模块403还可用于:将拦截到的activity的生命周期状态信息通过广播的方式发送至处理单元;处理单元根据统计需求,筛选需要记录的activity的生命周期状态信息,并获取与所述activity的生命周期状态信息相关的信息,所述信息包括采集页面activity名称、状态生效时间信息,生成埋点日志并保存。

此外,处理模块403还可用于:获取设备类型、网络环境、地理位置信息,与基类baseactivity拦截到的activity的生命周期状态信息一并生成json格式的埋点日志并保存。

本发明实施例中,处理模块403还可用于:预先根据统计需求制定埋点列表,所述埋点列表中包括需统计生命周期状态信息的activity的名称;以及将拦截到的activity的生命周期状态信息与所述埋点列表进行对比,若拦截到的activity生命周期状态信息对应的activity名称存在于所述埋点列表,则保存所述埋点日志,否则不予保存。

图5是跟本发明实施例的统计安卓应用页面浏览行为的系统的主要部分的示意图。

如图5所示,本发明的一种统计安卓应用页面浏览行为的系统50包括存储器501和处理器502,其中:存储器501存储指令;处理器502被配置为根据所述指令执行下列步骤:创建基类baseactivity,在所述基类baseactivity中对activity生命周期方法进行重写,以实现对activity的生命周期状态信息的拦截;页面运行过程中,由于activity继承基类baseactivity,基类baseactivity实现对activity生命周期状态信息的拦截;对拦截到的activity的生命周期状态信息进行处理,生成埋点日志并保存。

从以上描述可以看出,通过基于监控所有页面的activity生命周期实现对安卓应用页面浏览行为的统计,从而可以实现无需逐页面调用sdk上报接口实现页面埋点数据采集,使得埋点难度及复杂性降低;此外,亦无需人工手动进行页面埋点代码部署,实现页面埋点自动化,使人工投入成本降低;通过制定埋点列表,从而可以实现页面埋点定制处理,从而有利于降低研发维护成本,提升埋点效率,且后期测试不用担心埋点出现漏传参数、误传参数现象,测试投入成本降低;通过获取与activity生命周期状态信息相关的信息以及设备、网络环境、地理位置等信息,一并生成埋点日志,从而方便统计分析人员对页面浏览行为进行高效的统计。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1