一种针对AndroidApp无埋点的数据统计方法及装置与流程

文档序号:18703875发布日期:2019-09-17 23:21阅读:160来源:国知局
一种针对Android App无埋点的数据统计方法及装置与流程

本发明涉及网络技术领域,尤其涉及一种针对androidapp无埋点的数据统计方法及装置。



背景技术:

随着移动互联网技术的飞速发展,各类androidapp层出不穷。目前,androidapp的功能越来越丰富,为了对androidapp进行改善以不断地提升用户的体验,厂商需要需要统计用户对androidapp功能的使用情况,再根据这些使用情况绘制用户画像,方便有针对性地提供更加受用户喜爱的功能。

传统统计用户使用情况一般通过在androidapp需要统计的地方添加特定的运行代码来处理,这样会破坏androidapp原有代码的结构,并且版本间也会有无法兼容的问题,因此,有必要提出一种针对androidapp无埋点的数据统计方法及装置,以解决上述问题。



技术实现要素:

本发明提供一种针对androidapp无埋点的数据统计方法及装置,以解决传统统计用户使用情况在androidapp需要统计的地方添加特定的运行代码来处理,会破坏androidapp原有代码的结构,并且版本间也会有无法兼容的问题。

第一方面,本发明提供一种针对androidapp无埋点的数据统计方法,所述方法包括如下步骤:

响应于打开androidapp页面的操作,判断预设的第一统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第一统计开关,以在页面执行打开操作时开启所述预设的第一统计开关;

如果所述预设的第一统计开关没有开启,终止对数据的统计;

如果所述预设的第一统计开关已经开启,记录当前页面的标题、类名以及页面id;

将所述当前页面的标题、类名以及页面id存储至本地数据库。

结合第一方面,在第一方面的第一种可实现方式中,所述方法还包括:

响应于关闭androidapp页面的操作,判断预设的第二统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第二统计开关,以在页面执行关闭操作时开启所述预设的第二统计开关;

如果所述预设的第二统计开关没有开启,终止对数据的统计;

如果所述预设的第二统计开关已经开启,比较当前页面的页面id与前一个页面的页面id是否一致;

如果当前页面的页面id与前一个页面的页面id不一致,终止对数据的统计;

如果当前页面的页面id与前一个页面的页面id一致,将所述当前页面的数据存储至本地数据库。

结合第一方面的第一种可实现方式,在第一方面的第二种可实现方式中,所述方法还包括:

响应于点击androidapp系统控件的操作,判断预设的第三统计开关是否开启,其中,预先在androidapp中插入所述预设的第三统计开关,以在页面发生点击androidapp系统控件的操作时,开启所述预设的第三统计开关;

如果所述预设的第三统计开关没有开启,终止对数据的统计;

如果所述预设的第三统计开关已经开启,匹配所述系统控件所在的页面;

生成并记录所述系统控件的信息;

将所述系统控件所在的页面的数据,以及所述系统控件的信息存储至本地数据库。

结合第一方面的第二种可实现方式,在第一方面的第三种可实现方式中,所述方法还包括:

读取所述本地数据库中的数据;

将所述数据使用protobuf格式进行处理,再进行gzip压缩;

响应于启动androidapp的操作,将压缩后的数据进行第一次上报;

在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报;

在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报;

判断是否存在已经开启的配置开关,所述配置开关包括预设的第一统计开关、预设的第二统计开关,以及预设的第三统计开关;

如果存在已经开启的配置开关,识别是否存在待上报的新数据;

如果存在待上报的新数据,对所述待上报的新数据进行上报;

对所述待上报的新数据上报成功后,清除上报成功的数据;

记录上报次数并对所述上报次数累加1次。

结合第一方面的第三种可实现方式,在第一方面的第四种可实现方式中,所述方法还包括:

判断所述上报次数是否大于4次;

如果所述上报次数大于4次,检测定时器是否启动;

如果所述定时器没有启动,启动所述定时器;

如果所述定时器已经启动,在定时的2分钟内判断是否存在已经开启的配置开关;

如果在定时的2分钟内预设的配置开关为关闭,终止对数据的上报。

第二方面,本发明提供一种针对androidapp无埋点的数据统计装置,所述装置包括:

判断单元,用于响应于打开androidapp页面的操作,判断预设的第一统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第一统计开关,以在页面执行打开操作时开启所述预设的第一统计开关;

终止单元,用于在所述预设的第一统计开关没有开启时,终止对数据的统计;

记录单元,用于在所述预设的第一统计开关已经开启时,记录当前页面的标题、类名以及页面id;

存储单元,用于将所述当前页面的标题、类名以及页面id存储至本地数据库。

结合第二方面,在第二方面的第一种可实现方式中,所述装置中:

所述判断单元,还用于响应于关闭androidapp页面的操作,判断预设的第二统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第二统计开关,以在页面执行关闭操作时开启所述预设的第二统计开关;

所述终止单元,还用于在所述预设的第二统计开关没有开启时,终止对数据的统计;

还包括比较单元,用于在所述预设的第二统计开关已经开启时,比较当前页面的页面id与前一个页面的页面id是否一致;

所述终止单元,还用于在当前页面的页面id与前一个页面的页面id不一致时,终止对数据的统计;

所述存储单元,还用于在当前页面的页面id与前一个页面的页面id一致时,将所述当前页面的数据存储至本地数据库。

结合第二方面的第一种可实现方式,在第二方面的第二种可实现方式中,所述装置中:

所述判断单元,还用于响应于点击androidapp系统控件的操作,判断预设的第三统计开关是否开启,其中,预先在androidapp中插入所述预设的第三统计开关,以在页面发生点击androidapp系统控件的操作时,开启所述预设的第三统计开关;

所述终止单元,还用于在所述预设的第三统计开关没有开启时,终止对数据的统计;

还包括匹配单元,用于在所述预设的第三统计开关已经开启时,匹配所述系统控件所在的页面;

生成单元,用于生成并记录所述系统控件的信息;

所述存储单元,还用于将所述系统控件所在的页面的数据,以及所述系统控件的信息存储至本地数据库。

结合第二方面的第二种可实现方式,在第二方面的第三种可实现方式中,所述装置还包括:

读取单元,用于读取所述本地数据库中的数据;

处理单元,用于将所述数据使用protobuf格式进行处理,再进行gzip压缩;

上报单元,用于响应于启动androidapp的操作,将压缩后的数据进行第一次上报;

所述上报单元,还用于在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报;

所述上报单元,还用于在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报;

所述判断单元,还用于判断是否存在已经开启的配置开关,所述配置开关包括预设的第一统计开关、预设的第二统计开关,以及预设的第三统计开关;

识别单元,用于在存在已经开启的配置开关时,识别是否存在待上报的新数据;

所述上报单元,还用于在存在待上报的新数据时,对所述待上报的新数据进行上报;

清除单元,用于对所述待上报的新数据上报成功后,清除上报成功的数据;

所述记录单元,还用于记录上报次数并对所述上报次数累加1次。

结合第二方面的第三种可实现方式,在第二方面的第四种可实现方式中,所述装置中:

所述判断单元,还用于判断所述上报次数是否大于4次;

还包括检测单元,用于在所述上报次数大于4次时,检测定时器是否启动;

启动单元,用于在所述定时器没有启动时,启动所述定时器;

所述判断单元,还用于在所述定时器已经启动时,在定时的2分钟内判断是否存在已经开启的配置开关;

所述终止单元,还用于在定时的2分钟内预设的配置开关为关闭时,终止对数据的上报。

本发明的技术方案具有如下有益效果:本发明提供的一种针对androidapp无埋点的数据统计方法及装置,无侵入式数据统计,统计用户行为数据不用担心新老版本兼容问题,并且不会破坏程序完整性;并且,本发明的方案适合app中各种复杂场景,接入简单、成本低;此外,该方案统计数据准确性较高,更好满足对统计数据的需求。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种针对androidapp无埋点的数据统计方法一实施例的流程图。

图2为本发明提供的一种针对androidapp无埋点的数据统计方法一可选实施方式的流程图。

图3为本发明提供的一种针对androidapp无埋点的数据统计方法一可选实施方式的流程图。

图4为本发明提供的一种针对androidapp无埋点的数据统计方法一可选实施方式的流程图。

图5为本发明提供的一种针对androidapp无埋点的数据统计方法一可选实施方式的流程图。

图6为本发明提供的一种针对androidapp无埋点的数据统计装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以下结合附图,详细说明本发明各实施例提供的技术方案。

本发明的无埋点数据统计的基本原则在于充分利用android页面生命周期回调方法以及view点击事件回调方法的优势,将统计分为页面和控件两大类。全局监听页面的生命周期回调方法,其回调方法中的onactivityresumed方法是页面打开必须执行的回调方法,可以用于判断页面打开动作。onactivitypaused方法是页面关闭必须执行的回调方法,可以用于判断页面关闭动作。故本发明用这两个回调方法分别作为页面的打开和关闭的标记,并在对应方法中添加自己的数据统计方法。在页面打开或关闭的方法插入后,在用户点击或者关闭页面时,插入的方法就会收到页面中各种属性信息,这时可对数据进行一些策略处理,以上报高质量的数据。策略分两种情况,一种是页面打开的情况,一种是页面关闭的情况。

请参阅图1,为本发明提供的一种针对androidapp无埋点的数据统计方法,具体为页面打开的情况的方法,该方法执行主体可以是androidapp本身,所述方法包括如下步骤:

步骤s101,响应于打开androidapp页面的操作,判断预设的第一统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第一统计开关,以在页面执行打开操作时开启所述预设的第一统计开关。

如果所述预设的第一统计开关没有开启,则执行步骤s104,终止对数据的统计。

步骤s102,如果所述预设的第一统计开关已经开启,记录当前页面的标题、类名以及页面id。

步骤s103,将所述当前页面的标题、类名以及页面id存储至本地数据库。

请参阅图2,为本发明提供的一种针对androidapp无埋点的数据统计方法的另一可实施方式,在上述实施例的基础上,还可以包括页面关闭的情况,所述方法具体还包括以下步骤:

步骤s201,响应于关闭androidapp页面的操作,判断预设的第二统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第二统计开关,以在页面执行关闭操作时开启所述预设的第二统计开关。

如果所述预设的第二统计开关没有开启,则执行步骤s204,终止对数据的统计。

如果所述预设的第二统计开关已经开启,则执行步骤s202,比较当前页面的页面id与前一个页面的页面id是否一致。

具体地,所述页面id是指对当前activity页面的一种标识,androidapp每打开一个新页面,都会生成一个页面id,可用于判断统计事件是否为同一页面行为。在androidapp中,从一个activity页面打开一新的activity页面时,之前页面的onactivitypaused方法会在新页面的onactivityresumed方法后调用,故需要判断当前页面和之前页面的id是否一致,若不一致,则上一个页面统计的周期结束。

如果当前页面的页面id与前一个页面的页面id不一致,则执行步骤s204,终止对数据的统计。如果当前页面的页面id与前一个页面的页面id一致,则执行步骤s203,将所述当前页面的数据存储至本地数据库。

在androidapp中,系统控件都继承自view这个基类,故控件都可以视为一个view,如textview、button等等。系统控件的点击处理都需要设置一个点击事件的监听器,在其回调方法中进行逻辑处理。所以本发明通过运行时字节码插桩的方式,全局地在点击事件监听回调方法中加入统一方法,达到无埋点控件点击统计的目的。

请参阅图3,在本发明的一种可实现方式中,在前两个实施例的基础上,所述方法还可以包括以下步骤:

步骤s301,响应于点击androidapp系统控件的操作,判断预设的第三统计开关是否开启,其中,预先在androidapp中插入所述预设的第三统计开关,以在页面发生点击androidapp系统控件的操作时,开启所述预设的第三统计开关。

如果所述预设的第三统计开关没有开启,执行步骤s305,终止对数据的统计。

如果所述预设的第三统计开关已经开启,执行步骤s302,匹配所述系统控件所在的页面。

步骤s303,生成并记录所述系统控件的信息。

步骤s304,将所述系统控件所在的页面的数据,以及所述系统控件的信息存储至本地数据库。

请参阅图4,在本发明的另一可选实施方式中,所述方法还可以包括如下的数据统计上报策略相关步骤:

步骤s401,读取所述本地数据库中的数据。

步骤s402,将所述数据使用protobuf格式进行处理,再进行gzip压缩。

步骤s403,响应于启动androidapp的操作,将压缩后的数据进行第一次上报。

步骤s404,在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报。

步骤s405,在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报。

步骤s406,判断是否存在已经开启的配置开关,所述配置开关包括预设的第一统计开关、预设的第二统计开关,以及预设的第三统计开关。

步骤s407,如果存在已经开启的配置开关,识别是否存在待上报的新数据。

步骤s408,如果存在待上报的新数据,对所述待上报的新数据进行上报。

步骤s409,对所述待上报的新数据上报成功后,清除上报成功的数据。

步骤s410,记录上报次数并对所述上报次数累加1次。

请参阅图5,在图4的数据统计上报策略的基础上,所述方法还可以包括:

步骤s501,判断所述上报次数是否大于4次。

步骤s502,如果所述上报次数大于4次,检测定时器是否启动。

步骤s503,如果所述定时器没有启动,启动所述定时器。

步骤s504,如果所述定时器已经启动,在定时的2分钟内判断是否存在已经开启的配置开关。如果存在已经开启的配置开关,则可以执行步骤s407,以识别是否存在待上报的新数据。

步骤s505,如果在定时的2分钟内预设的配置开关为关闭,终止对数据的上报。

请参阅图6,为本发明提供的一种针对androidapp无埋点的数据统计装置的示意图,所述装置包括:

判断单元601,用于响应于打开androidapp页面的操作,判断预设的第一统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第一统计开关,以在页面执行打开操作时开启所述预设的第一统计开关。

终止单元604,用于在所述预设的第一统计开关没有开启时,终止对数据的统计。

记录单元602,用于在所述预设的第一统计开关已经开启时,记录当前页面的标题、类名以及页面id。

存储单元603,用于将所述当前页面的标题、类名以及页面id存储至本地数据库。

作为一种可选的实施方式,在本发明提供的一种针对androidapp无埋点的数据统计装置中:所述判断单元,还用于响应于关闭androidapp页面的操作,判断预设的第二统计开关是否已经开启,其中,预先在androidapp中插入所述预设的第二统计开关,以在页面执行关闭操作时开启所述预设的第二统计开关。所述终止单元,还用于在所述预设的第二统计开关没有开启时,终止对数据的统计。还包括比较单元,用于在所述预设的第二统计开关已经开启时,比较当前页面的页面id与前一个页面的页面id是否一致。所述终止单元,还用于在当前页面的页面id与前一个页面的页面id不一致时,终止对数据的统计。所述存储单元,还用于在当前页面的页面id与前一个页面的页面id一致时,将所述当前页面的数据存储至本地数据库。

作为一种可选的实施方式,在本发明提供的一种针对androidapp无埋点的数据统计装置中:所述判断单元,还用于响应于点击androidapp系统控件的操作,判断预设的第三统计开关是否开启,其中,预先在androidapp中插入所述预设的第三统计开关,以在页面发生点击androidapp系统控件的操作时,开启所述预设的第三统计开关。所述终止单元,还用于在所述预设的第三统计开关没有开启时,终止对数据的统计;还包括匹配单元,用于在所述预设的第三统计开关已经开启时,匹配所述系统控件所在的页面。生成单元,用于生成并记录所述系统控件的信息。所述存储单元,还用于将所述系统控件所在的页面的数据,以及所述系统控件的信息存储至本地数据库。

作为一种可选的实施方式,在本发明提供的一种针对androidapp无埋点的数据统计装置中:读取单元,用于读取所述本地数据库中的数据。处理单元,用于将所述数据使用protobuf格式进行处理,再进行gzip压缩。上报单元,用于响应于启动androidapp的操作,将压缩后的数据进行第一次上报。所述上报单元,还用于在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报。所述上报单元,还用于在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报。所述判断单元,还用于判断是否存在已经开启的配置开关,所述配置开关包括预设的第一统计开关、预设的第二统计开关,以及预设的第三统计开关。识别单元,用于在存在已经开启的配置开关时,识别是否存在待上报的新数据。所述上报单元,还用于在存在待上报的新数据时,对所述待上报的新数据进行上报。清除单元,用于对所述待上报的新数据上报成功后,清除上报成功的数据。所述记录单元,还用于记录上报次数并对所述上报次数累加1次。

作为一种可选的实施方式,在本发明提供的一种针对androidapp无埋点的数据统计装置中:所述判断单元,还用于判断所述上报次数是否大于4次。还包括检测单元,用于在所述上报次数大于4次时,检测定时器是否启动。启动单元,用于在所述定时器没有启动时,启动所述定时器。所述判断单元,还用于在所述定时器已经启动时,在定时的2分钟内判断是否存在已经开启的配置开关。所述终止单元,还用于在定时的2分钟内预设的配置开关为关闭时,终止对数据的上报。

本发明实施例还提供一种存储介质,本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现本发明提供的针对androidapp无埋点的数据统计方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于针对androidapp无埋点的数据统计装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

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