[发明专利]应用程序的埋点注入方法和装置有效
申请号: | 201611105636.8 | 申请日: | 2016-12-05 |
公开(公告)号: | CN108536451B | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 徐安琪 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;邓云鹏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 注入 方法 装置 | ||
1.一种应用程序的埋点注入方法,其特征在于,包括:
获取应用程序的原安装包;
对所述原安装包进行解压缩,获得所述原安装包的代码文件;
对所述代码文件执行反编译操作,获得对所述代码文件进行反编译操作后转换而成的汇编文件;
在所述汇编文件中查找与预先配置的参照条件对应的方法,所述参照条件包括方法名和方法签名;
在所述汇编文件中与所述参照条件相同的方法的对应位置注入与所述方法对应的埋点代码;
当所述汇编文件查找完毕后,将注入了埋点代码的汇编文件打包成安装包;
所述在所述汇编文件中查找与预先配置的参照条件对应的方法的步骤之前,还包括:在所述汇编文件中查找预先声明的类;
所述在所述汇编文件中查找与预先配置的参照条件对应的方法的步骤包括:在所述汇编文件中查找到的类下查找与预先配置的参照条件对应的方法。
2.根据权利要求1所述的方法,其特征在于,所述预先声明的类包括应用程序的全局配置文件中声明的各交互组件的类;
所述对所述原安装包进行解压缩,获得所述原安装包的代码文件的步骤包括:对所述原安装包进行解压缩,获得所述原安装包的代码文件和全局配置文件;
所述方法还包括:解析所述全局配置文件得到各交互组件的类名;
在所述汇编文件中查找预先声明的类的步骤包括:在所述汇编文件中查找与所述交互组件的类名相同的类。
3.根据权利要求1所述的方法,其特征在于,所述预先声明的类包括具有预先定义的父类类型或继承的接口的类;
在所述汇编文件中查找预先声明的类的步骤包括:
在所述汇编文件中查找父类类型与预先定义的父类类型相同的类,
或
在所述汇编文件中查找继承的接口与预先定义的继承的接口相同的类。
4.根据权利要求1所述的方法,其特征在于,在所述汇编文件中查找与预先配置的参照条件对应的方法的步骤之前,还包括:
在所述汇编文件中查找与预先配置的修饰符对应的方法;
在所述汇编文件中查找与预先配置的参照条件对应的方法的步骤包括:对查找到的方法判断其方法名和方法签名是否与预先配置的参照条件相同。
5.根据权利要求1所述的方法,其特征在于:
在当前查找的所述汇编文件的包的包名与预先配置的指定包名相同时,执行在所述汇编文件的该包下查找与预先配置的参照条件对应的方法的步骤,否则,查找所述汇编文件的下一个包。
6.根据权利要求1所述的方法,其特征在于:
在当前查找的所述汇编文件的包的包名与预先配置的过滤包名相同时,跳过该包并查找所述汇编文件的下一个包,否则,执行在所述汇编文件的当前查找的包下查找与预先配置的参照条件对应的方法的步骤。
7.一种应用程序的埋点注入装置,其特征在于,包括:获取模块、解压缩模块、反编译操作模块、方法查找模块和注入模块;
所述获取模块,用于获取应用程序的原安装包;
所述解压缩模块,用于对所述原安装包进行解压缩,获得所述原安装包的代码文件;
反编译操作模块,用于对所述代码文件执行反编译操作,获得对所述代码文件进行反编译操作后转换而成的汇编文件;
所述方法查找模块,用于在所述汇编文件中查找与预先配置的参照条件对应的方法,所述参照条件包括方法名和方法签名;
所述注入模块,用于在所述汇编文件中与所述参照条件相同的方法的对应位置注入与所述方法对应的埋点代码;
所述反编译操作模块,还用于当所述汇编文件查找完毕后,将注入了埋点代码的汇编文件打包成安装包;
还包括类查找模块;
所述类查找模块,用于在所述汇编文件中查找预先声明的类;
所述方法查找模块,用于在所述汇编文件中查找到的类下查找与预先配置的参照条件对应的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611105636.8/1.html,转载请声明来源钻瓜专利网。