移动应用图片低效显示问题静态检测方法及系统

    技术2025-08-03  14


    本发明涉及软件工程领域,具体涉及移动应用图片低效显示问题静态检测方法及系统。


    背景技术:

    1、媒体密集型移动应用软件需要仔细实现其对cpu和内存资源消耗较高的图片显示功能,低效的图片显示功能实现将造成显著的资源开销并严重影响移动软件的性能,进而极大地影响用户使用体验。例如公布号为cn103200251a的现有发明专利申请文献《图片传输方法、系统和装置》,该现有方法包括:服务器对图片进行编码以生成二进制图片文件;服务器根据客户端的请求消息将二进制图片文件通过响应消息发送至客户端,并在在响应消息中添加标识信息;客户端根据标识信息调用解码api接口对二进制图片文件进行解码;客户端调用图片显示api接口将解码之后的图片进行显示。前述现有技术中的低效显示的图片会导致移动应用出现运行崩溃、ui界面显示延迟、内存消耗膨胀或电池耗尽等诸多问题,并最终导致用户放弃和卸载该移动应用。已有研究表明,移动应用软件中的图片低效显示问题广泛存在,为了保障移动软件的图片显示功能的性能,保障用户的使用体验,需要对移动软件的图片显示功能进行系统的测试,避免存在图片低效显示问题。然而,现有研究工作缺乏针对移动应用图片低效显示问题的系统检测技术,继续进行相关的方法研究。现有技术在移动应用图片低效显示问题上的主要不足在于缺乏对该类问题的系统特征分析总结,进而无法在对移动应用进行测试的过程中对该类问题进行系统检测。

    2、综上,现有技术存在缺乏对移动应用图片低效显示问题的系统特征分析总结,在对移动应用测试过程中无法检测移动应用图片低效显示问题的技术问题。


    技术实现思路

    1、本发明所要解决的技术问题在于:如何解决现有技术中缺乏对移动应用图片低效显示问题的系统特征分析总结,在对移动应用测试过程中无法检测移动应用图片低效显示问题的技术问题。

    2、本发明是采用以下技术方案解决上述技术问题的:移动应用图片低效显示问题静态检测方法包括:

    3、s1、以移动应用的安装文件作为输入数据,遍历扫描安装文件的代码信息,识别获取非第三方库本地代码,以作为开发者代码;

    4、s2、对开发者代码中的图片解码api,进行定位操作,以得到并记录调用图片解码api语句;

    5、s3、对每一条调用图片解码api语句,进行数据流分析、控制流分析,获取与图片解码api相关的上下文信息;

    6、s4、将图片解码api、上下文信息,与图片低效显示问题模式规则进行规则匹配操作,以识别获取移动应用中的图片低效显示问题;

    7、s5、对每个图片低效显示问题,根据预置图片低效显示问题反模式,输出反模式类别信息,据以整理与问题相关的问题报告。

    8、本发明通过该类问题的常见代码模式进行分析总结,得到该类问题的代码特征,而后通过系统的代码特征分析,对移动应用中存在的图片低效显示问题进行系统的识别。

    9、在更具体的技术方案中,s1中,将移动应用的本地逻辑代码作为分析对象。

    10、在更具体的技术方案中,s2包括:

    11、s21、根据表1“图片低效显示问题的模式规则”中的api列中列举出的图片解码api,对移动app中的代码进行扫描,得到所有调用图片解码api的程序语句。

    12、在更具体的技术方案中,s21包括:

    13、s211、对开发者代码进行逐行遍历;

    14、s212、在程序语句调用预置api列中的图片解码api时,记录当前的调用图片解码api的语句及这些程序语句在移动app中的具体位置信息,作为上下文分析输入数据。

    15、在更具体的技术方案中,s3包括:

    16、s31、在获取与图片解码api相关的上下文信息过程中,首先对移动app进行控制流分析;

    17、具体地,前述控制流分析操作包括:

    18、构建控制流图:识别移动应用中所有的基本块和控制流转移点;其中,基本快可为连续执行的语句序列;控制流转移点包括但不限于:条件分支、循环;

    19、定位调用图片解码api的语句:在控制流图中定位调用图片解码api的节点;

    20、控制流路径:分析从程序入口到图片解码api调用节点的所有控制流路径;

    21、条件分析:对于控制流中的条件分支,分析哪些条件会影响图片解码api的调用。

    22、具体地,进行前述数据流分析的操作包括:

    23、变量跟踪:首先对于一条调用图片解码api的语句(如bitmap bitmap=bitmapfactory.decoderesource(getresources(),r.drawable.image));跟踪api调用中使用的所有变量(如getresources()的返回值和r.drawable.image);(

    24、数据依赖关系:分析数据流,确定哪些变量或数据是图片解码api的输入或影响解码结果;

    25、路径分析:跟踪数据流路径,确定哪些代码路径可能导致图片解码api的调用。路径分析过程中涉及的程序语句,即为与图片解码api相关的上下文信息;

    26、s32、在获取与图片解码api相关的上下文信息过程中,本发明将所有与对图片解码api程序语句构成依赖的语句称为与该图片解码api相关的代码切片。

    27、本发明针对移动软件中的图片低效显示问题,运用静态程序分析的方法,通过以调用图片解码api的程序语句为起点,运用程序切片技术,得到与图片显示功能相关的程序上下文信息,为后续图片低效显示问题检测提供基础。

    28、在更具体的技术方案中,s4包括:

    29、s41、从预置列表中,获取图片解码api-上下文对,以获取预定义问题信息中的上下文;

    30、s42、利用预定义问题信息,对图片解码api、与图片解码api相关联的上下文信息,根据预置检测规则进行规则匹配操作;

    31、s43、使用预置分析工具,对移动应用进行代码切片;

    32、s44、若在代码切片中,检测到图片解码api-上下文对中定义的上下文,则判定当前的移动应用存在图片低效显示问题。

    33、在更具体的技术方案中,s42中,预置检测规则包括:第一规则、第二规则、第三规则、第四规则、第五规则、第六规则以及第七规则。

    34、具体地,在对第二、三、四规则进行调用图可达性的检查过程中,以图片解码api被调用节点为起点,对方法调用图进行前向和后向遍历,如果在遍历的过程中,遍历到存在调用目标方法的节点,则表明图片解码api和目标方法是可达的。

    35、本发明针对移动软件中的图片低效显示问题,系统地总结出了其常见的问题模式,基于这些问题模式对获得的与图片显示功能相关的上下文信息进行特征分析,实现对该类问题的准确检测。

    36、在更具体的技术方案中,s43中,预置分析工具包括:soot程序分析框架。

    37、在更具体的技术方案中,s44包括:

    38、s441、对照预置列表中的图片解码api-上下文对,检查每个潜在问题对应的图片解码api的调用点;

    39、s442、对每个调用点,通过后向切片获得图片显示相关方法参数的调用图、数据流图;

    40、s443、对每个调用点,通过前向切片获得与解码图片对象使用相关的调用图、数据流图;

    41、s444、参照预置图片低效显示问题反模式,检测移动应用中的图片低效显示问题。

    42、在更具体的技术方案中,移动应用图片低效显示问题静态检测系统包括:

    43、开发者代码识别模块,用于以移动应用的安装文件作为输入数据,遍历扫描安装文件的代码信息,识别获取非第三方库本地代码,以作为开发者代码;

    44、图片解码api定位模块,用于对开发者代码中的图片解码api,进行定位操作,以得到并记录调用图片解码api语句,图片解码api定位模块与开发者代码识别模块连接;

    45、上下文信息获取模块,用以对每一条调用图片解码api语句,进行数据流分析、控制流分析,获取与图片解码api相关的上下文信息,上下文信息获取模块与图片解码api定位模块连接;

    46、图片低效显示问题检测模块,用以将图片解码api、上下文信息,与图片低效显示问题模式规则进行规则匹配操作,以识别获取移动应用中的图片低效显示问题,图片低效显示问题检测模块与上下文信息获取模块及图片解码api定位模块连接;

    47、图片低效显示问题报告模块,用以对每个图片低效显示问题,根据预置图片低效显示问题反模式,输出反模式类别信息,据以整理与问题相关的问题报告,图片低效显示问题报告模块与图片低效显示问题检测模块连接。

    48、本发明相比现有技术具有以下优点:

    49、本发明通过该类问题的常见代码模式进行分析总结,得到该类问题的代码特征,而后通过系统的代码特征分析,对移动应用中存在的图片低效显示问题进行系统的识别。

    50、本发明针对移动软件中的图片低效显示问题,运用静态程序分析的方法,通过以调用图片解码api的程序语句为起点,运用程序切片技术,得到与图片显示功能相关的程序上下文信息,为后续图片低效显示问题检测提供基础。

    51、本发明针对移动软件中的图片低效显示问题,系统地总结出了其常见的问题模式,基于这些问题模式对获得的与图片显示功能相关的上下文信息进行特征分析,实现对该类问题的准确检测。

    52、本发明解决了现有技术中存在的缺乏对移动应用图片低效显示问题的系统特征分析总结,在对移动应用测试过程中无法检测移动应用图片低效显示问题的技术问题。


    技术特征:

    1.移动应用图片低效显示问题静态检测方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s1中,将所述移动应用的本地逻辑代码作为分析对象。

    3.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s2包括:

    4.根据权利要求3所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s21包括:

    5.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s3包括:

    6.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s4包括:

    7.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s42中,所述预置检测规则包括:第一规则、第二规则、第三规则、第四规则、第五规则、第六规则以及第七规则。

    8.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s43中,所述预置分析工具包括:soot程序分析框架。

    9.根据权利要求1所述的移动应用图片低效显示问题静态检测方法,其特征在于,所述s44包括:

    10.移动应用图片低效显示问题静态检测系统,其特征在于,所述系统包括:


    技术总结
    本发明提供移动应用图片低效显示问题静态检测方法及系统,方法包括:通过代码扫描识别移动应用的本地代码并定位移动应用中图片解码API所在语句,对图片解码API所在的程序语句进行前向和后向切片,获得与图片解码API相关的上下文信息,这些上下文信息即为与图片显示功能实现相关的程序编码逻辑信息;将上下文信息与图片低效显示问题的常见开发模式进行规则匹配,检测移动应用中存在的图片低效显示问题;根据检测到的问题,整理出系统的问题报告,辅助开发者进行问题的诊断和修复。本发明解决了缺乏对移动应用图片低效显示问题的系统特征分析总结,在对移动应用测试过程中无法检测移动应用图片低效显示问题的技术问题。

    技术研发人员:李文杰,左开中,陈付龙,谌章义,胡鹏
    受保护的技术使用者:安徽师范大学
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-34976.html

    最新回复(0)