[发明专利]一种对第三方SDK进行线程监控的方法在审
申请号: | 202110703442.2 | 申请日: | 2021-06-24 |
公开(公告)号: | CN113419919A | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 曹峥 | 申请(专利权)人: | 亿览在线网络技术(北京)有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F9/448;G06F8/20;G06F11/36 |
代理公司: | 北京国标律师事务所 11753 | 代理人: | 董琪;姚克枫 |
地址: | 100000 北京市海淀区农大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 第三 sdk 进行 线程 监控 方法 | ||
本发明涉及一种对第三方SDK进行线程监控的方法,包括如下步骤:对App的源代码进行编译,得到扩展为.class的Java字节码文件;所述App的源代码中接入了至少一个第三方SDK;通过预先部署的插件,遍历Java字节码文件,当发现第三方SDK创建线程的指令时,将该指令自动的替换为插件中预设的创建影子线程的指令;基于创建影子线程的指令实现对第三方SDK进行线程监控。本发明,通过在底层对字节码进行操作,在不侵入源代码的情况下,实现了对第三方SDK创建的线程的信息获取,进而达到线程监控的目的,为应用程序开发、调试提供便利。
技术领域
本发明涉及第三方线程监控技术领域,具体说是一种对第三方SDK进行线程监控的方法。SDK即“软件开发工具包”(外语全称:Software Development Kit),简单一点的说,就是把一些软件功能标准化地开发好,令到其它App(应用程序)可以马上即插即用并且拥有这个SDK所具备的标准化功能。
背景技术
在基于Java语言的App(应用程序)开发中,不可避免的需要使用到第三方SDK,例如:在Android中采用Java语言进行App(应用程序)开发时,调用第三方SDK的方式提供的api,在这样的应用场景中,我们发现现有技术不能对第三方SDK的线程进行监控,这给App(应用程序)的开发、调试带来了不便。
现有的App大多数属于业务复杂(指业务逻辑复杂)的应用,App自身会产生很多线程,App中接入的第三方SDK也会产生很多线程,例如:某电商及出行服务功能的App中,内部使用了33个第三方SDK,这些第三方SDK显然会产生很多线程,由于前述问题的存在(指不能对第三方SDK的线程进行监控),这给线程的管理、App的调试等带来了困难,导致排查问题效率低下,具体体现在以下几方面:
线程多会导致线程间竞争难以监控、管理,导致相当的资源被消耗在了线程调度上,影响App运行的稳定;
由于不能对第三方SDK的线程进行监控,存在野生匿名线程创建的风险,大量的、不受统一管理的野生匿名线程加剧了资源的消耗,也进一步增加了线程调度的难度;
在应用程序调试Bug时,通过对线上日志的分析,有时定位到了问题,但不能进一步定位到线程(不能追踪到具体的线程调用堆栈信息),导致不能依据线程进一步定位出问题的业务模块(指无法分辨出线程所属的业务模块),最终导致OOM(Out Of Memory,内存溢出)之类的崩溃;
由于不能对第三方SDK的线程进行监控,因此现有的场景下无法对第三方SDK中的线程进行有效的管理及干预。
公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种对第三方SDK进行线程监控的方法,通过在底层对字节码进行操作,在不侵入源代码的情况下,实现了对第三方SDK创建的线程的信息获取,进而达到线程监控的目的,为应用程序开发、调试提供便利。
为达到以上目的,本发明采取的技术方案是:
一种对第三方SDK进行线程监控的方法,其特征在于,包括如下步骤:
对App的源代码进行编译,得到扩展为.class的Java字节码文件;
所述App的源代码中接入了至少一个第三方SDK;
通过预先部署的插件,遍历Java字节码文件,当发现第三方SDK创建线程的指令时,将该指令自动的替换为插件中预设的创建影子线程的指令;
基于创建影子线程的指令实现对第三方SDK进行线程监控。
在上述技术方案的基础上,所述第三方SDK创建线程的指令被替换为创建影子线程的指令,是通过asm字节码操作实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亿览在线网络技术(北京)有限公司,未经亿览在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110703442.2/2.html,转载请声明来源钻瓜专利网。