【技术实现步骤摘要】
关键元素差异性分析方法及系统
本专利技术涉及计算机软件,尤其涉及一种关键元素差异性分析方法及系统。
技术介绍
在移动互联网时代,用户消费内容、获得线上服务的方式主要为移动应用。单个应用中积累了大量服务及用户的使用数据等内容。然而应用之间相互独立的现状,形成了移动应用生态的“信息孤岛”。APP间的“信息孤岛”成为场景割裂、应用智能化程度难以提升的重要原因。通过网构软件行为反射技术,能够在不需要第三方开发者支持的情况下,将安卓应用封装为微服务,为打破移动应用生态的“信息孤岛”现象提供了可能。在不需要第三方配合的情况下,利用网构软件行为反射技术能够将任意安卓应用的任意功能封装为微服务。网构软件行为反射技术,通过对安卓应用的执行进行完整监测,对运行时模型监测结果进行分析并生成应用微服务。应用行为运行时模型将在运行时环境中作用于内存空间的堆栈区和代码段,从而实现指令级别反射。由于对安卓应用的执行进行监测的结果取决于安卓应用字节码,因此此技术极大地依赖安卓应用字节码及应用微服务相匹配。如果移动应用的字节码发生了变化,那么其运行时环境也会发生变化,将导致之前分析得出的微服务无法与此时的运行时环境相匹配,即应用微服务失效,网构软件行为反射技术无法正常运行。以下情况会导致应用微服务失效:1、安卓应用多渠道发布。对于同样的安卓应用,如果在不同的下载渠道发布,可能会采取不同的打包方式。造成应用的源代码发生变化。2、安卓应用版本升级。安卓应用版本升级分为两种情况,一是网构软件行为反射技术生成的应用微服务对应的源代码逻辑发生了变化;二是逻辑未发生变化。然而,在应用版本升级时,会对应 ...
【技术保护点】
1.一种关键元素差异性分析方法,其特征在于,包括:关键元素筛选流程:对与旧版本安卓应用相匹配的微服务中的字节码进行分析,并据此筛选出影响所述微服务与新版本安卓应用之间的匹配的所有关键元素的集合;关键元素相似度分析流程:分析所述集合中的各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度;破坏性变化判断流程:判断所述安卓应用由旧版本变为新版本后,相对于所述微服务是否发生了破坏性变化;需修改的关键元素定位流程:当所述安卓应用由旧版本变为新版本后,相对于所述微服务发生了破坏性变化时,根据所述各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,判断所述集合中的各关键元素在所述安卓应用由旧版本变为新版本后相对于所述微服务是否发生了破坏性变化,并将发生了破坏性变化的关键元素作为所述微服务中需要修改的关键元素。
【技术特征摘要】
2018.06.22 CN 20181065140831.一种关键元素差异性分析方法,其特征在于,包括:关键元素筛选流程:对与旧版本安卓应用相匹配的微服务中的字节码进行分析,并据此筛选出影响所述微服务与新版本安卓应用之间的匹配的所有关键元素的集合;关键元素相似度分析流程:分析所述集合中的各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度;破坏性变化判断流程:判断所述安卓应用由旧版本变为新版本后,相对于所述微服务是否发生了破坏性变化;需修改的关键元素定位流程:当所述安卓应用由旧版本变为新版本后,相对于所述微服务发生了破坏性变化时,根据所述各关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,判断所述集合中的各关键元素在所述安卓应用由旧版本变为新版本后相对于所述微服务是否发生了破坏性变化,并将发生了破坏性变化的关键元素作为所述微服务中需要修改的关键元素。2.如权利要求1所述的关键元素差异性分析方法,其特征在于,所述关键元素筛选流程包括:步骤S1:使用访问者模式对所述微服务的dex字节码进行解析,同时,构造所述微服务的dex字节码的抽象语法树;步骤S2:遍历所述微服务的dex字节码的抽象语法树,将所述微服务的dex字节码的抽象语法树中所有Dex类节点、Dex域节点、Dex方法节点及Dex代码节点中域访问语句和函数调用语句中的类名、方法名和变量名均作为影响所述微服务与所述新版本安卓应用之间的匹配的关键元素加入所述集合。3.如权利要求2所述的关键元素差异性分析方法,其特征在于,所述关键元素相似度分析流程包括:关键元素相似度静态分析流程:根据所述旧版本安卓应用的dex字节码和所述新版本安卓应用的dex字节码,分析所述集合中的每一关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度;关键元素相似度动态分析流程:利用网构软件行为反射框架分别对所述新版本安卓应用和所述旧版本安卓应用的运行时栈模型中的应用活动的情况进行监测,得到所述新版本安卓应用和所述旧版本安卓应用运行时栈模型监测结果;根据所述新版本安卓应用和所述旧版本安卓应用运行时栈模型监测结果,分析所述集合中的每一关键元素在所述新版本安卓应用与所述旧版本安卓应用之间的相似度。4.如权利要求3所述的关键元素差异性分析方法,其特征在于,所述关键元素相似度静态分析流程中,对于所述集合中的任一关键元素X,分析其在所述新版本安卓应用与所述旧版本安卓应用之间的相似度的步骤包括:步骤S1:计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的一度相似度,计算方法为:提取关键元素X在所述新版本安卓应用和所述旧版本安卓应用中的元素内特征,根据关键元素X在所述新版本安卓应用和所述旧版本安卓应用中的元素内特征计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的一度相似度;步骤S2:判断关键元素X是复杂元素还是简单元素,如果关键元素X是复杂元素,则将所述一度相似度作为关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的相似度,如果关键元素X是简单元素,则进入步骤S3:步骤S3:计算关键元素X在所述新版本安卓应用与所述旧版本安卓应用之间的二度相似度,并将所...
【专利技术属性】
技术研发人员:黄罡,蔡华谦,张舒汇,张颖,
申请(专利权)人:北京大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。