[发明专利]应用程序的埋点注入方法和装置有效
申请号: | 201611105636.8 | 申请日: | 2016-12-05 |
公开(公告)号: | CN108536451B | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 徐安琪 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;邓云鹏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 注入 方法 装置 | ||
本发明涉及互联网技术领域,提供一种对终端设备的应用程序的埋点注入方法和装置,该方法包括:对原安装包进行解压缩,获得原安装包的代码文件;对代码文件执行反编译操作,获得对代码文件进行反编译操作后转换而成的汇编文件;在汇编文件中查找与预先配置的参照条件对应的方法,参照条件包括方法名和方法签名;在汇编文件中与参照条件相同的方法的对应位置注入与方法对应的埋点代码;当汇编文件查找完毕后,将注入了埋点代码的汇编文件打包成安装包。该方法查找到需要埋点的位置后自动注入对应的埋点代码,无需人工埋点,效率高,并且基于对应用程序的原安装包进行解压和反编译实现,可用于任何一种应用程序的埋点注入,应用范围广。
技术领域
本发明涉及计算机技术领域,特别是涉及一种应用程序的埋点注入方法和装置。
背景技术
埋点是指在代码中的对应位置植入统计代码,以对系统性能和用户行为进行统计。一款应用软件无论是在测试阶段还是线上运行阶段,都需要埋点,以帮助产品开发和运维发现问题。
传统的埋点方式包括两种,一种是由开发人员手动埋点,成本高,花费时间长,并且无法保证埋点的质量和覆盖率,因此,这种埋点方式的效率低。另一种利用Java(计算机编程语言)字字节码埋点,通过修改Java的字节码(.class文件)而非Java源码(.java文件)达到修改Java运行逻辑的目的。但这种方法对开发环境有要求,一些厂商提供的工具只能支持部分开发环境,例如,Newrelic提供的工具只支持四种安卓的开发环境,这种埋点方式的适用性低。
发明内容
基于此,有必要提供一种效率高且适应性广的应用程序的埋点注入方法和装置。
为达到上述目的,本发明实施例采用以下技术方案:
一种应用程序的埋点注入方法,包括:
获取应用程序的原安装包;
对所述原安装包进行解压缩,获得所述原安装包的代码文件;
对所述代码文件执行反编译操作,获得对所述代码文件进行反编译操作后转换而成的汇编文件;
在所述汇编文件中查找与预先配置的参照条件对应的方法,所述参照条件包括方法名和方法签名;
在所述汇编文件中与所述参照条件相同的方法的对应位置注入与所述方法对应的埋点代码;
当所述汇编文件查找完毕后,将注入了埋点代码的汇编文件打包成安装包。
一种应用程序的埋点注入装置,包括:获取模块、解压缩模块、反编译操作模块、方法查找模块和注入模块;
所述获取模块,用于获取应用程序的原安装包;
所述解压缩模块,用于对所述原安装包进行解压缩,获得所述原安装包的代码文件;
反编译操作模块,用于对所述代码文件执行反编译操作,获得对所述代码文件进行反编译操作后转换而成的汇编文件;
所述方法查找模块,用于在所述汇编文件中查找与预先配置的参照条件对应的方法,所述参照条件包括方法名和方法签名;
所述注入模块,用于在所述汇编文件中与所述参照条件相同的方法的对应位置注入与所述方法对应的埋点代码;
所述反编译操作模块,还用于当所述汇编文件查找完毕后,将注入了埋点代码的汇编文件打包成安装包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611105636.8/2.html,转载请声明来源钻瓜专利网。