[发明专利]基于Android终端的用户数据采集的方法及系统在审
申请号: | 201810306412.6 | 申请日: | 2018-04-08 |
公开(公告)号: | CN108549537A | 公开(公告)日: | 2018-09-18 |
发明(设计)人: | 杨永强;吴江林;谢荣生 | 申请(专利权)人: | 北京极数科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445 |
代理公司: | 北京万思博知识产权代理有限公司 11694 | 代理人: | 高镇 |
地址: | 100102 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用户数据 采集 编译 终端 动态代理 用户行为 干预 申请 | ||
本申请公开了一种基于Android终端的用户数据采集的方法及系统,其中,包括如下步骤:在Android系统对APP开始编译时,基于动态代理java agent进行干预,修改目标class文件,利用编译期中被修改的目标class文件,进行用户数据采集。本发明能够对用户行为的用户数据进行高效自动的采集。
技术领域
本申请涉及Android终端技术领域,特别是涉及一种基于Android终端的用户数据采集的方法及系统。
背景技术
近年来,移动终端的用户逐年增加,用户数已远远超过PC,并且人们已经习惯用移动终端的app来帮助完成生活和工作中的各种问题,比如聊天,购物,支付等等。对于特定的app,通过用户分析,可以深度挖掘用户在使用该app过程中的需求,从而给用户提供更好的体验。
目前,基于Android终端的关于用户行为的用户数据采集,一般是通过软件开发人员在需要采集数据的事件触发位置进行手动多次多点的添加事件代码来实现的。
这种方式存在的弊端是:由于用户的行为非常多,并且Android app实现的功能也越来越多,因此,软件开发人员需要添加的代码就会非常多,并且,大部分都是重复代码,比如一个点击事件的代码,app的每个页面都有点击事件,那么软件开发人员就需要在每个页面触发点击事件的位置添加上重复的数据采集代码。这使软件开发人员陷入繁杂重复的添加采集数据代码的工作中。
发明内容
本申请旨在提出一种基于Android终端的用户数据采集的方法及系统,基于本发明,能够对用户行为的用户数据进行高效自动的采集。
根据本申请的一个方面,提供了一种基于Android终端的用户数据采集的方法,包括如下步骤:在Android系统对APP编译阶段,采用动态代理java agent,与编译器进行交互,指示编译器通过修改目标class文件添加预定事件埋点并生成对应该事件的机器代码,完成对用户数据采集。
可选地,上述Android终端的用户数据采集的方法中,当编译开始时,通过插件启动所述动态代理java agent。
可选地,上述Android终端的用户数据采集的方法中,包括如下步骤:在所述Android系统开始编译APP时,通过gradle插件启动动态代理java agent;所述java agent修改目标class文件;判断是否修改成功,若是,则编译成功,无埋点成功;若否,则编译成功,无埋点失败;在埋点成功的情况下,基于被修改的目标class文件,进行用户数据采集。
可选地,上述Android终端的用户数据采集的方法中,所述java agent修改目标class文件包括如下步骤:创建InvocationHandler实例;将所述InvocationHandler实例赋值给SecurityManager.class的packageAccessLock变量;令ProcessBuilder类通过反射获取所述InvocationHandler的实例;ProcessBuilder类执行start方法,启动dx.bat的进程;使用ClassFileTransformer来实现对com.android.dx.command.dexer.Main类的processClass方法进行修改;将修改好的目标Class文件编译成dex文件。
可选地,上述Android终端的用户数据采集的方法中,通过ASM使ClassFileTransformer实现对com.android.dx.command.dexer.Main类的processClass方法进行修改。
第二方面,本发明还公开了一种基于Android终端的用户数据采集的系统,包括:用于在Android系统对APP编译阶段,采用动态代理java agent,与编译器进行交互,指示编译器通过修改目标class文件添加预定事件埋点并生成对应该事件的机器代码,完成对用户数据采集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京极数科技有限公司,未经北京极数科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810306412.6/2.html,转载请声明来源钻瓜专利网。