[发明专利]一种检测Android应用Service构件泄露的高效方法有效

专利信息
申请号: 201710790636.4 申请日: 2017-09-05
公开(公告)号: CN107590013B 公开(公告)日: 2020-12-04
发明(设计)人: 马骏;陶先平;吕建 申请(专利权)人: 南京大学
主分类号: G06F11/07 分类号: G06F11/07;G06F11/36
代理公司: 南京知识律师事务所 32207 代理人: 张苏沛
地址: 210046 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 检测 android 应用 service 构件 泄露 高效 方法
【权利要求书】:

1.一种安卓应用Service构件泄露的高效检测方法,其特征在于:分为主程序Master与客户端检测应用APKchecker两部分;主程序Master运行在PC端,客户端检测应用APKchecker运行在测试安卓设备上,其具体步骤包括:

步骤一、主程序Master借助Android-Debug-Bridge安装待检测应用APKtarget

步骤二、主程序Master借助Android-Debug-Bridge安装客户端检测应用APKchecker

步骤三、主程序Master以“Start模式”启动客户端检测应用APKchecker

步骤四、客户端检测应用APKchecker以“Start模式”尝试检测待测应用所发布的各项服务;

步骤五、主程序Master记录相应应用堆栈内存;

步骤六、主程序Master以“Bind模式”启动客户端检测应用APKchecker尝试检测待测应用所发布的各项服务;

步骤七、客户端检测应用APKchecker以“Bind模式”尝试检测待测应用所发布的各项服务;

步骤八、主程序Master记录相应应用堆栈内存;

步骤九、分析获取得到的应用堆栈内存,检测泄露的应用构件;

步骤九具体包括以下步骤:

步骤9.1、针对一个转储的应用堆栈.hprof文件,首先获取其中所包含的所有Service对象实例,用Ssrv表示;

步骤9.2、针对步骤9.1所获得的每一个Service对象实例s进行逐个鉴别,判定s是否已经被销毁,若s被判定为已销毁,则将其从Ssrv中删除;

所述步骤9.2判定一个Service实例s是否被销毁,则是依据该s是否被某个ActivityThread实例所管理,即判断是否存在如下的引用关系序列:at→mServices→array[]→s,其中at表示一个ActivityThread实例;若存在这样一个引用关系序列,则s被at表示的ActivityThread实例所管理;否则,s则被认为是被销毁的;

步骤9.3、针对步骤9.2处理后得到的Ssrv中的剩余对象实例s,进一步判定其是否是泄露的,若是则将其从Ssrv中删除;

所述步骤9.3判定一个Service实例s是否泄露,具体包括以下步骤:

步骤9.3.1、获取Service实例s到达所有GC root的路径,记为LP

步骤9.3.2、从LP中去除所有包含java.lang.ref.SoftReference、java.lang.ref.WeakReference、java.lang.ref.PhantomReference、java.lang.ref.FinalizerReference以及java.lang.ref.Finalizer类型对象的路径;从LP中去除所有以java.lang.Daemons$FinalizerDaemon类对象结尾的路径,同时从LP中去除包含FinalizerWatchdogDaemon线程的路径;

步骤9.3.3、若LP为空,则s不是泄露的;否则,s则是泄露的;

步骤9.4、返回Ssrv,即获得所有泄露的Service实例。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710790636.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top