掌桥专利:专业的专利平台
掌桥专利
首页

资源管理方法、装置、设备、可读存储介质及程序产品

文献发布时间:2024-04-18 19:59:31


资源管理方法、装置、设备、可读存储介质及程序产品

技术领域

本申请涉及计算机技术领域,具体而言,本申请涉及一种资源管理方法、装置、设备、可读存储介质及程序产品。

背景技术

APP(Application,应用程序)可以是客户端软件,例如APP是移动应用程序,又例如APP是智能终端的第三方应用程序。随着App业务的发展,例如智能终端上的APP业务的发展,App的功能越来越多,App越来越大,相应的App的安装包体积也越来越大,从而影响了用户对App的安装包的下载;例如安装包体积超过200M,则该安装包不允许在蜂窝移动网络下进行下载;如此,导致下载App的安装包的效率低下,即下载App的效率低下。

发明内容

本申请针对现有的方式的缺点,提出一种资源管理方法、装置、设备、计算机可读存储介质及计算机程序产品,用于解决如何提升下载应用程序的效率的问题。

第一方面,本申请提供了一种资源管理方法,包括:

获取目标应用程序中的多个资源文件;

将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;

确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;

响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载。

在一个实施例中,获取目标应用程序中的多个资源文件,包括:

获取目标应用程序中的多种资源文件;

基于预设资源文件参数,对多种资源文件进行筛选,得到筛选后的多种资源文件;

从筛选后的多种资源文件中再次筛选出多个资源文件,多个资源文件的类型都为图片。

在一个实施例中,基于预设资源文件参数,对多种资源文件进行筛选,得到筛选后的多种资源文件,包括:

在应用程序运行前,基于预设资源文件参数,通过预设脚本对所述多种资源文件进行筛选,得到筛选后的多种资源文件。

在一个实施例中,在通过预设脚本对多种资源文件进行筛选,得到筛选后的多种资源文件之后,还包括:

在应用程序运行中,获取目标应用程序中原始资源文件调用函数的函数地址;

将原始资源文件调用函数的函数地址和预设资源文件调用函数的函数地址进行交换,以用于在调用原始资源文件调用函数的过程中执行预设资源文件调用函数。

在一个实施例中,将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件,包括:

将多个资源文件中任一资源文件和资源文件集合中第N个资源文件进行尺寸深度处理,得到处理后的任一资源文件和处理后的第N个资源文件,处理后的任一资源文件和处理后的第N个资源文件之间的尺寸以及深度均相同;

确定处理后的任一资源文件对应的第一字符串和处理后的第N个资源文件对应的第二字符串之间的平均值;

并将第一字符串和第二字符串之间进行异或处理,得到异或值;

若异或值小于或等于平均值,则确定多个资源文件中任一资源文件与资源文件集合中第N个资源文件之间相似,N为正整数。

在一个实施例中,在确定处理后的任一资源文件对应的第一字符串和处理后的第N个资源文件对应的第二字符串之间的平均值之前,还包括:

将处理后的任一资源文件对应的初始字符串进行向右移位操作,得到第一字符串。

在一个实施例中,确定至少一个相似资源文件的转换规则,包括:

基于多个资源文件中任一资源文件对应的字符串和至少一个相似资源文件中任一相似资源文件对应的字符串,确定任一相似资源文件的转换规则。

在一个实施例中,基于多个资源文件中任一资源文件对应的字符串和至少一个相似资源文件中任一相似资源文件对应的字符串,确定任一相似资源文件的转换规则,包括以下至少一项:

若任一相似资源文件对应的字符串大于多个资源文件中任一资源文件对应的字符串,则确定任一相似资源文件通过任一资源文件的平移变换或旋转变换得到;

若任一相似资源文件对应的字符串小于或等于任一资源文件对应的字符串,则确定任一相似资源文件通过任一资源文件的缩放变换得到。

在一个实施例中,确定任一相似资源文件通过任一资源文件的平移变换或旋转变换得到,包括:

确定任一相似资源文件和任一资源文件之间的平移距离;

基于平移距离,将任一相似资源文件进行平移,得到任一相似资源文件平移后的坐标值;

若任一相似资源文件平移后的坐标值小于任一资源文件的坐标值,则确定任一相似资源文件通过任一资源文件的平移变换得到;

若任一相似资源文件平移后的坐标值大于或等于任一资源文件的坐标值,则确定任一相似资源文件通过任一资源文件的旋转变换得到。

在一个实施例中,基于转换规则,将任一资源文件转换成至少一个相似资源文件,包括:

基于转换规则,通过执行预设资源文件调用函数,将任一资源文件转换成至少一个相似资源文件。

第二方面,本申请提供了一种资源管理装置,包括:

第一处理模块,用于获取目标应用程序中的多个资源文件;

第二处理模块,用于将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;

第三处理模块,用于确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;

第四处理模块,用于响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载。

第三方面,本申请提供了一种电子设备,包括:处理器、存储器和总线;

总线,用于连接处理器和存储器;

存储器,用于存储操作指令;

处理器,用于通过调用操作指令,执行本申请第一方面的资源管理方法。

第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被用于执行本申请第一方面的资源管理方法。

第五方面,本申请提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本申请第一方面中资源管理方法的步骤。

本申请实施例提供的技术方案,至少具有如下有益效果:

获取目标应用程序中的多个资源文件;将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;如此,从目标应用程序中删除了至少一个相似资源文件,减少了目标应用程序大小,即减少了目标应用程序的安装包大小,从而避免了由于目标应用程序(目标应用程序的安装包)过大而影响用户下载该目标应用程序(目标应用程序的安装包)的问题。当用户需要从目标应用程序中调用至少一个相似资源文件,响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载;如此,在减少了目标应用程序大小的前提下,提升了用户下载目标应用程序的效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的资源管理系统的架构示意图;

图2为本申请实施例提供的一种资源管理方法的流程示意图;

图3为本申请实施例提供的一种资源管理方法的流程示意图;

图4为本申请实施例提供的一种资源管理的示意图;

图5为本申请实施例提供的一种资源管理方法的流程示意图;

图6为本申请实施例提供的一种资源管理装置的结构示意图;

图7为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“B”,或者实现为“A和B”。

可以理解的是,在本申请的具体实施方式中,涉及到资源管理相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请实施例是资源管理系统提供的一种资源管理方法,该资源管理方法涉及云计算、地图等领域。

人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。

智能交通系统(Intelligent Traffic System,ITS)又称智能运输系统(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。

为了更好的理解及说明本申请实施例的方案,下面对本申请实施例中所涉及到的一些技术用语进行简单说明。

Runtime:Objective-C是一门动态语言,函数调用变成了消息发送,在编译期不能知道要调用哪个函数,所以Runtime用于解决如何在运行时期找到调用方法的问题;实现Objective-C运行时机制的一切基础是RunTime,RunTime实际上是一个动态库,这个动态库使用户可以在程序运行时动态地创建对象、检查对象、修改类和对象的方法。

感知哈希算法:感知哈希算法的原理是每个图片生成一个fingerprint字符串(指纹字符串),然后比较不同两个图片的指纹,两个图片的指纹越接近,就说明两个图片越相似。

OpenCV:OpenCV(Open Source Computer Vision Library,开源计算机视觉库)是一个跨平台的计算机视觉库,OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。

反射:反射是一种技术,通过反射创建的类对象不需要导入对应的依赖,例如在播放器中初始化弹幕对象,通过反射的方式即可在不导入弹幕模块的情况下创建每条弹幕,实现播放器和弹幕的解耦。

python:python是编程语言,属于高级语言;Python提供了丰富的API和工具。

右移位操作:右移运算符是移位运算符的一种,即程序设计中位操作运算符的一种;移位运算符组成的表达式也属于算术表达式,其值为算术值;右移运算(右移位操作)是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定;在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。

本申请实施例提供的方案涉及云计算技术,下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

为了更好的理解本申请实施例提供的方案,下面结合具体的一个应用场景对该方案进行说明。

在一个实施例中,图1中示出了本申请实施例所适用的一种资源管理系统的架构示意图,可以理解的是,本申请实施例所提供的资源管理方法可以适用于但不限于应用于如图1所示的应用场景中。

本示例中,如图1所示,该示例中的资源管理系统的架构可以包括但不限于服务器10、终端20和数据库30。服务器10、终端20和数据库30之间可以通过网络40进行交互。

服务器10通过网络40将目标应用程序发送给终端20。终端20获取目标应用程序中的多个资源文件;终端20将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;终端20确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;终端20响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载。终端20通过网络40将至少一个相似资源文件的转换规则发送给服务器10,服务器10将至少一个相似资源文件的转换规则存储到数据库30。

可理解,上述仅为一种示例,本实施例在此不作限定。

其中,终端包括但不限于智能手机(如Android手机、iOS手机等)、手机模拟器、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile Internet Devices,移动互联网设备)、PDA(个人数字助理)、智能语音交互设备、智能家电、车载终端等。

服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。

云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。

作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。

按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。

所谓人工智能云服务,一般也被称作是AIaaS(AIas a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。

上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、Wi-Fi及其他实现无线通信的网络。具体也可基于实际应用场景需求确定,在此不作限定。

参见图2,图2示出了本申请实施例提供的一种资源管理方法的流程示意图,其中,该方法可以由任一电子设备执行,如可以是终端、服务器等;作为一可选实施方式,该方法可以由终端执行,为了描述方便,在下文的一些可选实施例的描述中,将以终端作为该方法执行主体为例进行说明。如图2所示,本申请实施例提供的资源管理方法包括如下步骤:

S201,获取目标应用程序中的多个资源文件。

具体地,多个资源文件的类型可以为图片,即多个资源文件的类型可以为图片文件,例如图片文件的后缀可以是Png、jpg、gif、jpeg、webp等;多个资源文件的集合为集合B1。

S202,将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合。

具体地,多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串都可以为fingerprint字符串,即指纹字符串。例如,多个资源文件对应的集合B1包括资源文件集合C和任一资源文件;又例如,集合B1包括图片A、图片B和图片C,任一资源文件为图片A,资源文件集合C包括图片B和图片C,图片B和图片C为与图片A相似的两个相似资源文件。

S203,确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除。

具体地,转换规则包括针对相似资源文件的缩放变换、平移变换或旋转变换的计算方式。从目标应用程序中删除了至少一个相似资源文件,减少了目标应用程序大小,即减少了目标应用程序的安装包大小。

S204,响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载。

具体地,例如,任一资源文件为图片A,至少一个相似资源文件为图片B、图片C和图片D,图片B、图片C和图片D已经从目标程序中删除;响应于调用图片B、图片C和图片D,将图片A通过缩放变换转换成图片B,将图片A通过平移变换转换成图片C,将图片A通过旋转变换转换成图片D,并将转换得到的图片B、图片C和图片D进行加载。

本申请实施例中,获取目标应用程序中的多个资源文件;将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;如此,从目标应用程序中删除了至少一个相似资源文件,减少了目标应用程序大小,即减少了目标应用程序的安装包大小,从而避免了由于目标应用程序(目标应用程序的安装包)过大而影响用户下载该目标应用程序(目标应用程序的安装包)的问题。当用户需要从目标应用程序中调用至少一个相似资源文件,响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载;如此,在减少了目标应用程序大小的前提下,提升了用户下载目标应用程序的效率。

在一个实施例中,获取目标应用程序中的多个资源文件,包括步骤A1-A3:

步骤A1,获取目标应用程序中的多种资源文件。

具体地,多种资源文件包括图片、文本、音视频等。可以通过python建立脚本(预设脚本),通过预设脚本对目标应用程序进行静态扫描,即通过预设脚本对目标应用程序对应的安装包进行静态扫描,获取目标应用程序中的多种资源文件。

通过脚本,将目标应用程序对应的工程根路径传入脚本作为根路径开始静态扫描,并将API(Application Program Interface,应用程序接口)的接口名称作为关键字,当静态扫描到关键字时,通过工程中的文件名获取类名,将类名保存在全局集合A中;静态扫描完成,将全局集合A写入classes_name.txt文件。通过集合A中的类名,得到相应的多种资源文件。

API(原始资源文件调用函数)可以为pathForResource:ofType、NSSearchPathForDirectoriesInDomains、dataWithContentsOfURL、imageWithData、imageName:name等。其中:

(1)pathForResource:ofType,用于获取静态资源,参数type表示类型;

(2)NSSearchPathForDirectoriesInDomains,用于获取Documents目录路径;

(3)dataWithContentsOfURL,用于获取二进制文件路径;

(4)imageWithData,用于获取二进制数据初始化图片;

(5)imageName:name,用于获取静态图片资源。

步骤A2,基于预设资源文件参数,对多种资源文件进行筛选,得到筛选后的多种资源文件。

具体地,基于预设资源文件参数,对多种资源文件进行筛选,将筛选后的多种资源文件写入集合B中;将集合B中多种资源文件的资源名称写入sources_name.txt文件;如此,过滤掉实际未使用的资源文件,得到集合B,从而减少了ipa包大小,可以防止出现ipa包过大影响用户下载App的情况;其中,本地ipa包是指应用程序编译后的二进制包。

预设资源文件参数可以为资源文件的路径、资源文件的大小限制、资源文件的存储限制等。

在一个实施例中,可以通过资源文件后缀对多种资源文件进行筛选,资源文件的后缀例如:

(1)数据类型文件的后缀:json、xml、plist;

(2)图片文件的后缀:Png、jpg、gif、jpeg、webp;

(3)音视频文件的后缀:mp3、wma、avi、rm、rmvb、mp4。

步骤A3,从筛选后的多种资源文件中再次筛选出多个资源文件,多个资源文件的类型都为图片。

具体地,从筛选后的多种资源文件中筛选出全部图片(多个资源文件),可以通过UIImage对象去加载全部图片,得到全部图片的集合,即集合B1;其中,UIImage对象能够将图片进行面向对象的操作,从而方便获取图片的属性。

在一个实施例中,基于预设资源文件参数,对多种资源文件进行筛选,得到筛选后的多种资源文件,包括:

在应用程序运行前,基于预设资源文件参数,通过预设脚本对多种资源文件进行筛选,得到筛选后的多种资源文件。

具体地,可以通过python建立脚本(预设脚本),预设资源文件参数可以为资源文件的路径、资源文件的大小限制、资源文件的存储限制等。例如,资源文件的大小限制为50M,将大于50M的资源文件过滤掉,筛选后的多种资源文件的大小都是小于或等于50M;并标记出小于或等于50M资源文件的名称和路径。

应用程序每次启动,都可以预先设置一次资源文件参数,根据本次预设的资源文件参数,通过预设脚本对多种资源文件进行筛选,得到筛选后的多种资源文件。

在一个实施例中,在通过预设脚本对多种资源文件进行筛选,得到筛选后的多种资源文件之后,还包括:

在应用程序运行中,获取目标应用程序中原始资源文件调用函数的函数地址;

将原始资源文件调用函数的函数地址和预设资源文件调用函数的函数地址进行交换,以用于在调用原始资源文件调用函数的过程中执行预设资源文件调用函数。

具体地,在得到筛选后的多种资源文件(集合B)后,分别通过classes_name.txt文件和sources_name.txt文件,获取到类名称和API(原始资源文件调用函数),将当前网络设置为unknown。将API的接口名称前增加“_”,生成新接口(预设资源文件调用函数);当开始调用API时,通过class_getClassMethod方法得到API的函数指针(原始资源文件调用函数的函数地址);将得到的API的函数地址与新接口的函数地址,进行method_exchangeImplementations方法调用,即进行函数交换。其中,函数交换为:将API的函数地址与新接口的函数地址进行交换。

新接口(预设资源文件调用函数)可以为_pathForResource:ofType、_NSSearchPathForDirectoriesInDomains、_dataWithContentsOfURL、_imageWithData、_imageName:name等。

在一个实施例中,将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件,包括步骤B1-B4:

步骤B1,将多个资源文件中任一资源文件和资源文件集合中第N个资源文件进行尺寸深度处理,得到处理后的任一资源文件和处理后的第N个资源文件,处理后的任一资源文件和处理后的第N个资源文件之间的尺寸以及深度均相同。

具体地,例如,任一资源文件为图片A,第N个资源文件为图片B,图片A的尺寸为1*1,图片B的尺寸为10*10,将图片A的尺寸放大为8*8,将图片B的尺寸缩小为8*8,如此,处理后的图片A的尺寸和处理后的图片B的尺寸都为8*8,去除了图片A和图片B的细节,只保存结构、明暗等基本信息,规避不同尺寸的图片(图片A和图片B)带来的差异;将图片A和图片B的位深度都调整为6位,因此像素点共有2

步骤B2,确定处理后的任一资源文件对应的第一字符串和处理后的第N个资源文件对应的第二字符串之间的平均值。

具体地,例如,第一字符串和第二字符串都为64位二进制字符串。

步骤B3,并将第一字符串和第二字符串之间进行异或处理,得到异或值。

具体地,例如,第一字符串和第二字符串之间二进制位相同,则异或值为0;第一字符串和第二字符串之间二进制位相异,则异或值为1。

步骤B4,若异或值小于或等于平均值,则确定多个资源文件中任一资源文件与资源文件集合中第N个资源文件之间相似,N为正整数。

具体地,若异或值大于平均值,则确定多个资源文件中任一资源文件与资源文件集合中第N个资源文件之间不相似。

在一个实施例中,在确定处理后的任一资源文件对应的第一字符串和处理后的第N个资源文件对应的第二字符串之间的平均值之前,还包括:

将处理后的任一资源文件对应的初始字符串进行向右移位操作,得到第一字符串。

具体地,右移位操作的位数例如1位、2位、3位、4位等。例如,将处理后的任一资源文件对应的字符串string1和处理后的第N-1个资源文件对应的字符串string2进行哈希处理,确定任一资源文件与第N-1个资源文件相似。将字符串string1进行向右移位操作,得到字符串string3,其中,右移位操作的位数为1位;将处理后的任一资源文件对应的字符串string3和处理后的第N个资源文件对应的字符串string4进行哈希处理,确定任一资源文件与第N个资源文件相似。将字符串string3进行向右移位操作,得到字符串string5,其中,右移位操作的位数为3位;将处理后的任一资源文件对应的字符串string5和处理后的第N+1个资源文件对应的字符串string6进行哈希处理,确定任一资源文件与第N个资源文件不相似。

在一个实施例中,确定至少一个相似资源文件的转换规则,包括:

基于多个资源文件中任一资源文件对应的字符串和至少一个相似资源文件中任一相似资源文件对应的字符串,确定任一相似资源文件的转换规则。

具体地,例如,任一资源文件为图片A,相似资源文件为图片B,图片A对应的字符串为string7,图片B对应的字符串为string8,字符串string7和字符串string8都为64位二进制字符串;基于图片A对应的字符串string7和图片B对应的字符串string8,确定图片B的转换规则。

在一个实施例中,基于多个资源文件中任一资源文件对应的字符串和至少一个相似资源文件中任一相似资源文件对应的字符串,确定任一相似资源文件的转换规则,包括以下至少一项:

若任一相似资源文件对应的字符串大于多个资源文件中任一资源文件对应的字符串,则确定任一相似资源文件通过任一资源文件的平移变换或旋转变换得到;

若任一相似资源文件对应的字符串小于或等于任一资源文件对应的字符串,则确定任一相似资源文件通过任一资源文件的缩放变换得到。

具体地,例如,任一资源文件为图片A,任一相似资源文件为图片B,若图片B对应的字符串string9大于图片A对应的字符串string10,则确定图片B通过图片A的平移变换或旋转变换得到。

又例如,任一资源文件为图片A,任一相似资源文件为图片C,若图片C对应的字符串string11小于或等于图片A对应的字符串string9,则确定图片C通过图片A的缩放变换得到。

在一个实施例中,确定任一相似资源文件通过任一资源文件的平移变换或旋转变换得到,包括:

确定任一相似资源文件和任一资源文件之间的平移距离;

基于平移距离,将任一相似资源文件进行平移,得到任一相似资源文件平移后的坐标值;

若任一相似资源文件平移后的坐标值小于任一资源文件的坐标值,则确定任一相似资源文件通过任一资源文件的平移变换得到;

若任一相似资源文件平移后的坐标值大于或等于任一资源文件的坐标值,则确定任一相似资源文件通过任一资源文件的旋转变换得到。

具体地,例如,任一资源文件为图片A,资源文件集合中有M个资源文件,确定图片A与M个资源文件中每个资源文件之间是否相似,其中,M为正整数;每次确定图片A与M个资源文件中1个资源文件之间是否相似后,处理后的图片A对应的字符串都会进行一次向右移位操作,每次向右移位操作都有对应一个右移位操作的位数,右移位操作的位数例如1位、2位、3位、4位等。记录所有右移位操作的位数,并基于所有右移位操作的位数,通过openCV的warpAffine函数,确定一个二维矩阵,将预设矩阵系数和该二维矩阵进行乘积,得到平移距离K。任一相似资源文件为图片B,图片B图片A之间的平移距离为平移距离K。

基于平移距离K,将图片B进行平移,得到图片B平移后的坐标,即图片B的宽值(X坐标)和高值(Y坐标);若图片B平移后的坐标在图片A内,即图片B平移后的坐标值都小于图片A的坐标值,则确定图片B通过图片A的平移变换得到。

若图片B平移后的坐标值大于或等于图片A的坐标值,则确定图片B通过图片A的旋转变换得到。通过getRotationMatrix2D方法,进行二维矩阵的矩阵变换,得到图片B对应的旋转参数,旋转参数包含旋转原点和旋转角度。

在一个实施例中,例如,任一资源文件为图片A,任一相似资源文件为图片B,若图片B对应的字符串string12小于或等于图片A对应的字符串string13,则确定图片B通过图片A的缩放变换得到。图片A的像素为AW*AH,图片B的像素为BW*BH;若已知BW和BH,则可以通过公式(1)计算得到AW和AH;或者,若已知AW和AH,则可以通过公式(1)计算得到BW和BH;公式(1)如下所示:

BW/AW=BH/AH 公式(1)

其中,像素比例为BW/BH和AW/AH,可以根据像素比例来计算图片A的像素和图片B的像素,即图片A未缩放的像素和图片B未缩放的像素。

在一个实施例中,基于转换规则,将任一资源文件转换成至少一个相似资源文件,包括:

基于转换规则,通过执行预设资源文件调用函数,将任一资源文件转换成至少一个相似资源文件。

具体地,例如,func(原始资源文件调用函数)用于加载静态扫描的资源文件,即将资源文件从磁盘中加载到内存中;相应的,预设资源文件调用函数可以为_func;任一资源文件为图片A,任一相似资源文件为图片B,基于转换规则,通过执行_func,将图片A转换成图片B。

在一个实施例中,启动应用程序,加载classes_name.txt文件和sources_name.txt文件,从classes_name.txt中将类名取出,基于类名调用反射,通过反射,初始化类对象;通过类名能够确定类对象,初始化类对象可以使初始化后的类对象具备调用类对象的方法的能力,即初始化后的类对象可以调用类对象的方法。原始资源文件调用函数为func,预设资源文件调用函数为_func,基于转换规则,通过执行_func,将任一资源文件转换成至少一个相似资源文件;其中,执行_func,即通过初始化后的类对象调用类对象的_func。

应用本申请实施例,至少具有如下有益效果:

从目标应用程序中删除了至少一个相似资源文件,减少了目标应用程序大小,即减少了目标应用程序的安装包大小,从而避免了由于目标应用程序(目标应用程序的安装包)过大而影响用户下载该目标应用程序(目标应用程序的安装包)的问题;在减少了目标应用程序大小的前提下,提升了用户下载目标应用程序的效率。在开发过程中,实现了减少开发和维护的成本;能够较快并且精准的计算出客户端版本迭代后所增加的本地资源文件。

为了更好的理解本申请实施例所提供的方法,下面结合具体应用场景的示例对本申请实施例的方案进行进一步说明。

在一个具体应用场景实施例中,例如资源管理场景,参见图3,示出了一种资源管理方法的处理流程,如图3所示,本申请实施例提供的资源管理方法的处理流程包括如下步骤:

S301,通过脚本,对应用程序进行静态扫描,得到全局集合A。

具体地,通过脚本,将应用程序对应的工程根路径传入脚本作为根路径开始静态扫描,并将API的接口名称作为关键字,当静态扫描到关键字时,通过工程中的文件名获取类名,将类名保存在全局集合A中;静态扫描完成,将全局集合A写入classes_name.txt文件。通过全局集合A中的类名,得到相应的多种资源文件。

在一个实施例中,如图4所示,扫描模块对API进行检测,并将API注入应用程序,得到classes_name.txt文件;通过扫描模块对应用程序进行静态扫描,得到的集合A,并将集合A中的类名存储在classes_name.txt文件中;通过集合A的类名,得到相应的多个文件,对多个文件进行过滤,将过滤到的文件写入集合B中。扫描模块可以为脚本。

S302,基于全局集合A,得到全局集合B。

具体地,如图4所示,通过集合A的类名,得到相应的多个文件,对多个文件进行过滤,将过滤到的文件写入全局集合B中。

例如,基于预设资源文件参数,对多种资源文件(多个文件)进行筛选,将筛选后的多种资源文件(过滤到的文件)写入全局集合B中;将全局集合B中多种资源文件的资源名称写入sources_name.txt文件;如此,过滤掉实际未使用的资源文件,得到集合B,从而减少了ipa包大小,可以防止出现ipa包过大影响用户下载App的情况;其中,本地ipa包是指应用程序编译后的二进制包。

S303,对预设资源文件调用函数进行动态加载。

具体地,例如,预设资源文件调用函数可以为_func,相应的,原始资源文件调用函数为func,func用于加载静态扫描的资源文件,即将资源文件从磁盘中加载到内存中。通过Objective-C语言的动态性和RunTime机制,hook类中的实例方法,即如图4所示,对预设资源文件调用函数进行动态加载。

对预设资源文件调用函数进行动态加载包括:

在得到筛选后的多种资源文件(集合B)后,分别通过classes_name.txt文件和sources_name.txt文件,获取到类名称和API(原始资源文件调用函数),将当前网络设置为unknown;将API的接口名称前增加“_”,生成新接口(预设资源文件调用函数);当开始调用API(例如func)时,新接口(例如_func)捕获到API(例如func)的调用,通过class_getClassMethod方法得到API的函数指针(例如func的函数地址);将得到的API的函数地址(例如func的函数地址)与新接口的函数地址(例如_func的函数地址),进行method_exchangeImplementations方法调用,即进行函数交换;其中,函数交换为:将API的函数地址与新接口的函数地址进行交换。

S304,对全局集合B中的资源文件进行标记。

具体地,如图4所示,将筛选后的多种资源文件(全局集合B中的资源文件)在本地ipa包(本地ipa包是指应用程序编译后的二进制包)中进行标记,将ipa包中标记的资源文件上传到服务器,并生成缓存结点;缓存结点在服务器的内存中,缓存结点中包括资源文件的名称和路径。当客户端即将发版时,可以通过对缓存结点中资源文件的增加或减少来验证各个模块(例如扫码模块、登录模块、播放模块等)是否进行了正常的业务迭代。

S305,从全局集合B的资源文件中筛选出全部图片,得到集合B1。

具体地,从筛选后的多种资源文件(全局集合B中的资源文件)中筛选出全部图片(多个资源文件),可以通过UIImage对象去加载全部图片,得到全部图片的集合,即集合B1;其中,UIImage对象能够将图片进行面向对象的操作,从而方便获取图片的属性。

S306,对集合B1中全部图片进行遍历操作,确定与全部图片中任一图片相似的相似图片,并确定相似图片的转换规则;将相似图片从应用程序中删除。

具体地,如图5所示,对集合B1中全部图片进行遍历操作,确定与全部图片中任一图片相似的相似图片,并确定相似图片的转换规则,包括步骤S501-S514:

S501,开始遍历。

具体地,开始对集合B1中图片进行遍历操作。例如集合B1中包括图片A、图片B、图片C、图片D等,通过步骤S502-S506确定与图片A相似的所有图片,确定与图片B相似的所有图片,确定与图片C相似的所有图片,确定与图片D相似的所有图片,依次类推。

S502,统一不同图片的尺寸。

具体地,例如,集合B1中的任一资源文件为图片A,集合B1(资源文件集合)中的第N个资源文件为图片B,图片A的尺寸为1*1,图片B的尺寸为10*10,将图片A的尺寸放大为8*8,将图片B的尺寸缩小为8*8,如此,处理后的图片A的尺寸和处理后的图片B的尺寸都为8*8,去除了图片A和图片B的细节,只保存结构、明暗等基本信息,规避不同尺寸的图片(图片A和图片B)带来的差异。

S503,统一不同图片的位深度。

具体地,例如,将图片A和图片B的位深度都调整为6位,因此像素点共有2

S504,计算平均值。

具体地,计算处理后的图片A对应的字符串和处理后的图片B对应的字符串之间的平均值。

S505,进行异或运算和移位操作。

具体地,异或运算:将处理后的图片A对应的字符串和处理后的图片B对应的字符串之间进行异或处理,得到异或值。移位操作,例如向右移位操作,向右移位操作:将处理后的图片A对应的字符串进行向右移位操作,得到新的字符串。

S506,判断异或值是否大于平均值,若异或值大于平均值,则转到步骤S502;若异或值没有大于平均值,则转到步骤S507处理。

具体地,若异或值大于平均值,则确定图片A与图片B之间不相似;若异或值小于或等于平均值,则确定图片A与图片B之间相似。

S507,判断相似图片对应的字符串是否大于预设阈值,若大于预设阈值,则转到步骤S509;若没有大于预设阈值,则转到步骤S508处理。

具体地,预设阈值可以是任一资源文件对应的字符串,例如,预设阈值可以是图片A对应的字符串。

又例如,任一资源文件为图片A,任一相似资源文件为图片B,若图片B对应的字符串string9大于图片A对应的字符串string10,则确定图片B通过图片A的平移变换或旋转变换得到。

又例如,任一资源文件为图片A,任一相似资源文件为图片C,若图片C对应的字符串string11小于或等于图片A对应的字符串string9,则确定图片C通过图片A的缩放变换得到。

S508,确定任一相似图片通过任一图片的缩放变换得到,并计算像素比例;转到步骤S514处理。

具体地,例如,任一图片为图片A,任一相似图片为图片C,若图片C对应的字符串string11小于或等于图片A对应的字符串string9,则确定图片C通过图片A的缩放变换得到。又例如,图片A的像素为AW*AH,图片B的像素为BW*BH,则像素比例为BW/BH和AW/AH。

S509,记录所有移位操作的位数。

具体地,记录所有右移位操作的位数。

S510,调用warpAffine函数。

具体地,warpAffine函数为openCV的warpAffine函数。

S511,判断任一相似图片的宽高值是否在任一图片的像素内;若确定任一相似图片的宽高值是在任一图片的像素内,转到步骤S513处理;若确定任一相似图片的宽高值不是在任一图片的像素内,转到步骤S512处理;

具体地,若任一相似图片B平移后的坐标在任一图片A内(任一相似图片B的宽高值是在任一图片A的像素内),即图片B平移后的坐标值都小于图片A的坐标值。

S512,确定任一相似图片通过任一图片的旋转变换得到;并计算旋转参数;转到步骤S514处理。

具体地,通过getRotationMatrix2D方法,进行二维矩阵的矩阵变换,得到任一相似图片对应的旋转参数,旋转参数包含旋转原点和旋转角度。

S513,确定任一相似图片通过任一图片的平移变换得到;并计算平移距离。

具体地,记录所有右移位操作的位数,并基于所有右移位操作的位数,通过openCV的warpAffine函数,确定一个二维矩阵,将预设矩阵系数和该二维矩阵进行乘积,得到平移距离。

S514,缓存转换规则。

具体地,存储转换规则,以便后续在使用已删除相识图片的调用处,进行代码转换。代码转换包括:将任一图片转换成相似图片,并将转换得到的相似图片进行加载。

S307,响应于调用相似图片,基于转换规则,将任一图片转换成相似图片,并将转换得到的相似图片进行加载。

应用本申请实施例,至少具有如下有益效果:

从应用程序中删除了相似图片,减少了应用程序大小,即减少了应用程序的安装包大小,从而避免了由于应用程序(应用程序的安装包)过大而影响用户下载该应用程序(应用程序的安装包)的问题;在减少了应用程序大小的前提下,提升了用户下载应用程序的效率。在开发过程中,实现了减少开发和维护的成本;能够较快并且精准的计算出客户端版本迭代后所增加的本地资源文件。

本申请实施例还提供了一种资源管理装置,该资源管理装置的结构示意图如图6所示,资源管理装置70,包括第一处理模块701、第二处理模块702、第三处理模块703和第四处理模块704。

第一处理模块701,用于获取目标应用程序中的多个资源文件;

第二处理模块702,用于将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;

第三处理模块703,用于确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;

第四处理模块704,用于响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载。

在一个实施例中,第一处理模块701,具体用于:

获取目标应用程序中的多种资源文件;

基于预设资源文件参数,对多种资源文件进行筛选,得到筛选后的多种资源文件;

从筛选后的多种资源文件中再次筛选出多个资源文件,多个资源文件的类型都为图片。

在一个实施例中,第一处理模块701,具体用于:

在应用程序运行前,基于预设资源文件参数,通过预设脚本对所述多种资源文件进行筛选,得到筛选后的多种资源文件。

在一个实施例中,第一处理模块701,还用于:

在应用程序运行中,获取目标应用程序中原始资源文件调用函数的函数地址;

将原始资源文件调用函数的函数地址和预设资源文件调用函数的函数地址进行交换,以用于在调用原始资源文件调用函数的过程中执行预设资源文件调用函数。

在一个实施例中,第二处理模块702,具体用于:

将多个资源文件中任一资源文件和资源文件集合中第N个资源文件进行尺寸深度处理,得到处理后的任一资源文件和处理后的第N个资源文件,处理后的任一资源文件和处理后的第N个资源文件之间的尺寸以及深度均相同;

确定处理后的任一资源文件对应的第一字符串和处理后的第N个资源文件对应的第二字符串之间的平均值;

并将第一字符串和第二字符串之间进行异或处理,得到异或值;

若异或值小于或等于平均值,则确定多个资源文件中任一资源文件与资源文件集合中第N个资源文件之间相似,N为正整数。

在一个实施例中,第二处理模块702,还用于:

将处理后的任一资源文件对应的初始字符串进行向右移位操作,得到第一字符串。

在一个实施例中,第三处理模块703,具体用于:

基于多个资源文件中任一资源文件对应的字符串和至少一个相似资源文件中任一相似资源文件对应的字符串,确定任一相似资源文件的转换规则。

在一个实施例中,第三处理模块703,具体用于执行以下至少一项:

若任一相似资源文件对应的字符串大于多个资源文件中任一资源文件对应的字符串,则确定任一相似资源文件通过任一资源文件的平移变换或旋转变换得到;

若任一相似资源文件对应的字符串小于或等于任一资源文件对应的字符串,则确定任一相似资源文件通过任一资源文件的缩放变换得到。

在一个实施例中,第三处理模块703,具体用于:

确定任一相似资源文件和任一资源文件之间的平移距离;

基于平移距离,将任一相似资源文件进行平移,得到任一相似资源文件平移后的坐标值;

若任一相似资源文件平移后的坐标值小于任一资源文件的坐标值,则确定任一相似资源文件通过任一资源文件的平移变换得到;

若任一相似资源文件平移后的坐标值大于或等于任一资源文件的坐标值,则确定任一相似资源文件通过任一资源文件的旋转变换得到。

在一个实施例中,第四处理模块704,具体用于:

基于转换规则,通过执行预设资源文件调用函数,将任一资源文件转换成至少一个相似资源文件。

应用本申请实施例,至少具有如下有益效果:

获取目标应用程序中的多个资源文件;将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;如此,从目标应用程序中删除了至少一个相似资源文件,减少了目标应用程序大小,即减少了目标应用程序的安装包大小,从而避免了由于目标应用程序(目标应用程序的安装包)过大而影响用户下载该目标应用程序(目标应用程序的安装包)的问题。当用户需要从目标应用程序中调用至少一个相似资源文件,响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载;如此,在减少了目标应用程序大小的前提下,提升了用户下载目标应用程序的效率。

本申请实施例还提供了一种电子设备,该电子设备的结构示意图如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。

处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。

总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。

存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。

其中,电子设备包括但不限于:终端、服务器等。

应用本申请实施例,至少具有如下有益效果:

获取目标应用程序中的多个资源文件;将多个资源文件中任一资源文件对应的字符串和资源文件集合中每个资源文件对应的字符串分别进行哈希处理,确定资源文件集合中与任一资源文件相似的至少一个相似资源文件;资源文件集合为多个资源文件中除任一资源文件之外的资源文件的集合;确定至少一个相似资源文件的转换规则,并将至少一个相似资源文件从目标程序中删除;如此,从目标应用程序中删除了至少一个相似资源文件,减少了目标应用程序大小,即减少了目标应用程序的安装包大小,从而避免了由于目标应用程序(目标应用程序的安装包)过大而影响用户下载该目标应用程序(目标应用程序的安装包)的问题。当用户需要从目标应用程序中调用至少一个相似资源文件,响应于调用至少一个相似资源文件,基于转换规则,将任一资源文件转换成至少一个相似资源文件,并将转换得到的至少一个相似资源文件进行加载;如此,在减少了目标应用程序大小的前提下,提升了用户下载目标应用程序的效率。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。

本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。

基于与本申请实施例提供的方法相同的原理,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述本申请任一可选实施例中提供的方法。

应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。

以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

相关技术
  • 一种确定人眼图像中瞳孔图像边缘点的方法及装置
  • 一种图像边缘偏移方法
  • 一种基于机器视觉的边缘偏移视觉测量方法、图像检测仪
技术分类

06120116524303