基于云平台的程序包自动优化方法及装置与流程

文档序号:20680981发布日期:2020-05-08 18:23阅读:148来源:国知局
基于云平台的程序包自动优化方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种基于云平台的程序包自动优化方法。



背景技术:

随着科技及社会的不断发展,各类应用程序(包括标准应用程序、小程序、快程序等等)的出现极大方便了人们的工作与生活。目前,应用程序开发者需将程序包提交到相应的应用市场或小程序平台中,从而用户能够从应用市场或小程序平台中获取该程序包,进而运行相应的应用程序。

然而,发明人在实施过程中发现,现有技术中存在如下缺陷:随着应用程序复杂度的提升,其对应的程序包的容量也不断增加,从而在用户获取程序包过程中增加传输资源负担,不利于应用程序的快速运行。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的基于云平台的程序包自动优化方法及装置。

根据本发明实施例的一个方面,提供了一种基于云平台的程序包自动优化方法,包括:

对待优化的程序包进行扫描,提取所述程序包包含的至少一个资源;

将所述至少一个资源上传至云平台的资源服务器,并获取所述至少一个资源的资源获取入口;

从所述程序包中删除所述至少一个资源;

对所述程序包的代码进行扫描,得到所述至少一个资源的引用信息,将所述至少一个资源的引用信息替换为所述至少一个资源的资源获取入口,重新打包所述程序包。

可选的,在所述提取所述程序包包含的至少一个资源之后,所述方法还包括:

根据所述至少一个资源的资源类型和/或资源容量,对所述至少一个资源进行筛选;

所述将所述至少一个资源上传至云平台的资源服务器具体为:将经过筛选的至少一个资源上传至云平台的资源服务器。

可选的,所述资源类型包括以下类型中的至少一种:

图片类型、音频类型、视频类型、以及文本内容类型。

可选的,所述根据所述至少一个资源的资源类型和/或资源容量,对所述至少一个资源进行筛选进一步包括:

判断任一资源的资源类型是否为文本内容资源;

若任一资源的资源类型为文本内容资源,则判断所述文本内容资源的资源容量是否超过预设阈值,若是,则对该资源进行筛选。

可选的,在所述提取所述程序包包含的至少一个资源之后,所述方法还包括:针对于任一资源,对该资源进行至少一个级别的压缩,以生成与该资源对应的至少一个压缩资源;

所述将所述至少一个资源上传至云平台的资源服务器,并获取所述至少一个资源的资源获取入口进一步包括:针对于任一资源,分别将该资源以及与该资源对应的至少一个压缩资源上传至云平台的资源服务器,并获取该资源以及与该资源对应的至少一个压缩资源的资源获取入口;

在所述从所述程序包中删除所述至少一个资源之后,所述方法还包括:生成与所述程序包对应的至少一个程序包备份;针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息;针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。

可选的,在所述重新打包该程序包备份之后,所述方法还包括:

接收客户端发送的程序包安装请求;

基于所述客户端的设备属性信息,确定与所述客户端对应的重新打包的程序包或程序包备份;

将与所述客户端对应的重新打包的程序包或程序包备份发送至所述客户端。

可选的,所述设备属性信息包括以下信息中的至少一种:

终端设备屏幕分辨率信息、终端设备系统信息、以及终端设备机型信息。

可选的,在所述重新打包所述程序包之后,所述方法还包括:

获取所述程序包对应的更新程序包;

扫描所述更新程序包,以提取所述更新程序包包含的至少一个更新资源;

针对于任一更新资源,判断是否已获取有与该更新资源对应的资源的资源获取入口;若是,则将该更新资源上传至云平台的资源服务器,以供资源服务器在所述对应的资源的存储位置处存储该更新资源,并删除已存储的所述对应的资源;若否,则将该更新资源上传至云平台的资源服务器,并获取该更新资源的资源获取入口,将更新程序包中的该更新资源的引用信息替换为该更新资源的资源获取入口。

根据本发明实施例的另一方面,提供了一种基于云平台的程序包自动优化装置,包括:

提取模块,适于对待优化的程序包进行扫描,提取所述程序包包含的至少一个资源;

上传模块,适于将所述至少一个资源上传至云平台的资源服务器;

获取模块,适于获取所述至少一个资源的资源获取入口;

删除模块,适于从所述程序包中删除所述至少一个资源;

替换模块,适于对所述程序包的代码进行扫描,得到所述至少一个资源的引用信息,将所述至少一个资源的引用信息替换为所述至少一个资源的资源获取入口;

重打包模块,适于重新打包所述程序包。

可选的,所述装置还包括:筛选模块,适于在所述提取所述程序包包含的至少一个资源之后,根据所述至少一个资源的资源类型和/或资源容量,对所述至少一个资源进行筛选;

所述上传模块进一步适于:将经过筛选的至少一个资源上传至云平台的资源服务器。

可选的,所述资源类型包括以下类型中的至少一种:

图片类型、音频类型、视频类型、以及文本内容类型。

可选的,所述筛选模块进一步适于:

判断任一资源的资源类型是否为文本内容资源;

若任一资源的资源类型为文本内容资源,则判断所述文本内容资源的资源容量是否超过预设阈值,若是,则对该资源进行筛选。

可选的,所述装置还包括:

压缩模块,适于在所述提取所述程序包包含的至少一个资源之后,针对于任一资源,对该资源进行至少一个级别的压缩,以生成与该资源对应的至少一个压缩资源;

所述上传模块进一步适于:针对于任一资源,分别将该资源以及与该资源对应的至少一个压缩资源上传至云平台的资源服务器;

所述获取模块进一步适于:获取该资源以及与该资源对应的至少一个压缩资源的资源获取入口;

所述装置还包括:备份模块,适于在所述从所述程序包中删除所述至少一个资源之后,生成与所述程序包对应的至少一个程序包备份;针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息;针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。

可选的,所述装置还包括:

请求接收模块,适于在所述重新打包该程序包备份之后,接收客户端发送的程序包安装请求;

确定模块,适于基于所述客户端的设备属性信息,确定与所述客户端对应的重新打包的程序包或程序包备份;

发送模块,适于将与所述客户端对应的重新打包的程序包或程序包备份发送至所述客户端。

可选的,所述设备属性信息包括以下信息中的至少一种:

终端设备屏幕分辨率信息、终端设备系统信息、以及终端设备机型信息。

可选的,所述装置还包括:

更新模块,适于在所述重新打包所述程序包之后,获取所述程序包对应的更新程序包;扫描所述更新程序包,以提取所述更新程序包包含的至少一个更新资源;

针对于任一更新资源,判断是否已获取有与该更新资源对应的资源的资源获取入口;若是,则将该更新资源上传至云平台的资源服务器,以供资源服务器在所述对应的资源的存储位置处存储该更新资源,并删除已存储的所述对应的资源;若否,则将该更新资源上传至云平台的资源服务器,并获取该更新资源的资源获取入口,将更新程序包中的该更新资源的引用信息替换为该更新资源的资源获取入口。

根据本发明实施例的又一方面,提供了一种云平台,包括:上述基于云平台的程序包自动优化装置,以及资源服务器;其中,所述资源服务器用于存储资源。

根据本发明实施例的再一方面,提供一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于云平台的程序包自动优化方法对应的操作。

根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述基于云平台的程序包自动优化方法对应的操作。

根据本发明实施例提供的基于云平台的程序包自动优化方法及装置。首先对待优化的程序包进行扫描,提取程序包包含的至少一个资源;并将至少一个资源上传至云平台的资源服务器,并获取至少一个资源的资源获取入口;以及从程序包中删除至少一个资源;进一步对程序包的代码进行扫描,得到至少一个资源的引用信息,将至少一个资源的引用信息替换为至少一个资源的资源获取入口,重新打包程序包。采用本方案能够实现程序包的自动优化,大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例一提供的基于云平台的程序包自动优化方法的流程示意图;

图2示出了本发明实施例二提供的基于云平台的程序包自动优化方法的流程示意图;

图3示出了本发明实施例三提供的基于云平台的程序包自动优化方法的流程示意图;

图4示出了本发明实施例四提供的基于云平台的程序包自动优化方法的流程示意图;

图5示出了本发明实施例五提供的基于云平台的程序包自动优化装置的结构示意图;

图6示出了本发明实施例六提供的云平台的结构示意图;

图7示出了本发明实施例八提供的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

实施例一

图1示出了本发明实施例一提供的基于云平台的程序包自动优化方法的流程示意图,其中,本实施例所提供的自动优化方法可应用于云平台中,该云平台可以为小程序平台、快应用平台、和/或应用市场等等。

如图1所示,该方法包括以下步骤:

步骤s110:对待优化的程序包进行扫描,提取该程序包包含的至少一个资源。

在实际的实施过程中,应用程序开发者可将应用程序的程序包提交至云平台,从而利用本方法对提交至云平台的程序包进行优化。其中,本实施例所述的待优化的程序包包括提交至云平台待进行优化的程序包。

在一种可选的实施方式中,在接收到提交的程序包之后,可进一步根据提交的程序包的安全级别、包容量、和/或提交者权限等信息,综合确定提交的程序包是否为待优化的程序包。例如,当程序包安全级别大于预设级别、包容量大于预设容量、和/或提交者权限满足预设权限需求时,则确定该提交的程序包为待优化的程序包。

在确定待优化的程序包之后,进一步地对程序包进行扫描。通过对程序包的扫描能够提取出该程序包所包含的至少一个资源。其中,该资源具体可以为图片资源、音频资源、视频资源和/或文本内容资源等等。

步骤s120:将至少一个资源上传至云平台的资源服务器,并获取至少一个资源的资源获取入口。

在提取程序包包含的至少一个资源之后,可进一步将至少一个资源上传至云平台的资源服务器,该资源服务器可存储该至少一个资源,并在存储至少一个资源后生成与该至少一个资源的资源获取入口,从而本步骤可进一步获取至少一个资源的资源获取入口,其中,该资源获取入口可以为:资源存储路径、获取该资源的相关接口、和/或资源id等等。可选的,可在每提取出一个资源之后,便将该资源上传至资源服务器;也可以在待优化的程序包中的资源被全部提取后,将资源上传至资源服务器。本实施例对具体的上传过程不作限定。

步骤s130:从程序包中删除至少一个资源。

在提取程序包包含的至少一个资源之后,可进一步从程序包中删除至少一个资源,从而大幅降低程序包容量。

其中,本实施例对步骤s120与步骤s130的具体执行顺序不作限定,步骤s120与步骤s130可以并发执行,以提升本方法的执行效率;也可依次顺序执行。

步骤s140:对程序包的代码进行扫描,得到至少一个资源的引用信息,将至少一个资源的引用信息替换为至少一个资源的资源获取入口,重新打包程序包。

为保障后续程序包对应的应用程序的正常运行,本实施例在程序包中删除资源之后,进一步地对程序包的代码进行扫描,从而能够获得至少一个资源的引用信息,并将该至少一个资源中任一资源的引用信息替换为与该资源对应的资源获取入口。并在替换后重新打包程序包。并可发布该重新打包后的程序包,该重新打包后的程序包容量大幅降低,并且基于该程序包的应用程序能够正常运行,进而能够减小用户获取程序包时的传输压力,节约传输资源,并便于应用程序的快速运行。

由此可见,本实施例首先对待优化的程序包进行扫描,提取程序包包含的至少一个资源;并将至少一个资源上传至云平台的资源服务器,获取至少一个资源的资源获取入口;以及从程序包中删除至少一个资源;并进一步对程序包的代码进行扫描,得到至少一个资源的引用信息,将至少一个资源的引用信息替换为所述至少一个资源的资源获取入口,重新打包所述程序包。采用本方案能够实现程序包的自动优化,大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率。

实施例二

图2示出了本发明实施例二提供的基于云平台的程序包自动优化方法的流程示意图,其中,本实施例所提供的程序包自动优化方法是对实施例一中程序包自动优化方法的进一步优化。

如图2所示,该方法包括以下步骤:

步骤s210:对待优化的程序包进行扫描,提取该程序包包含的至少一个资源。

步骤s220:根据至少一个资源的资源类型和/或资源容量,对至少一个资源进行筛选。

为进一步地提升程序包的优化效果,本实施例在提取待优化的程序包包含的至少一个资源之后,进一步地对提取出的资源进行筛选。

在具体的筛选过程中,可根据至少一个资源的资源类型和/或资源容量,对提取出的资源进行筛选。其中,资源类型可以包括以下类型中的至少一种:图片类型、音频类型、视频类型、以及文本内容类型。例如,若资源的资源类型为图片类型、音频类型、或视频类型时,则确定该资源为经过筛选的资源。

在一种可选的实施方式中,可判断任一资源的资源类型是否为文本内容资源;若任一资源的资源类型为文本内容资源,则进一步判断该文本内容资源的资源容量是否超过预设阈值,若是,则对该资源进行筛选。即本实施例仅针对于大容量的文本类型进行筛选,从而兼顾优化效率及本方法的执行效率。

在又一种可选的实施方式中,可预先确定不同的资源类型所对应的标准资源容量。其中,不同的资源类型所对应的标准资源容量可根据历史的程序包中不同的资源类型的资源容量,以及该程序包对应的运行效率及传输效率综合确定。举例来说,统计对应的应用程序运行效率达到预设运行效率,和/或传输效率达到预设传输效率时,各个程序包中不同的资源类型的资源容量统计值(如资源容量平均值,资源容量中位数,和/或资源容量最大值或最小值等),从而将该不同的资源类型的资源容量统计值作为不同的资源类型所对应的标准资源容量。进一步地,针对于提取出的程序包包含的至少一个资源,当该资源对应的容量超出该资源对应的资源类型匹配的标准资源容量时,确定该资源为筛选出的资源,并在后续步骤中将该资源上传至资源服务器。

步骤s230:将经过筛选的至少一个资源上传至云平台的资源服务器,并获取该至少一个资源的资源获取入口。

步骤s240:从程序包中删除经过筛选的至少一个资源。

步骤s250:对程序包的代码进行扫描,得到经过筛选的至少一个资源的引用信息,将该至少一个资源的引用信息替换为至少一个资源的资源获取入口,重新打包程序包。

其中,本实施例中步骤s210,步骤s230-步骤s250的具体实施过程其可参照实施例一中相应部分的描述,本实施例在此不做赘述。

由此可见,本实施例除了能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率之外;还进一步地根据至少一个资源的资源类型和/或资源容量,对至少一个资源进行筛选,从而针对于筛选出的资源进行优化,从而进一步地提升了程序包的优化效率,避免了因对一些无效资源进行处理而带来的执行效率低下的弊端。

实施例三

图3示出了本发明实施例三提供的基于云平台的程序包自动优化方法的流程示意图,其中,本实施例所提供的程序包自动优化方法是对实施例一和/或实施例二中程序包自动优化方法的进一步优化。

如图3所示,该方法包括以下步骤:

步骤s310:对待优化的程序包进行扫描,提取该程序包包含的至少一个资源。

步骤s320:针对于至少一个资源中的任一资源,对该资源进行至少一个级别的压缩,以生成与该资源对应的至少一个压缩资源。

本实施例中,为提升后续用户使用程序包对应的应用程序的用户体验,在提取程序包包含的至少一个资源之后,进一步对针对于任一资源,对该资源进行了至少一个级别的压缩,从而生成了与该资源对应的至少一个压缩资源。

其中,本实施例对具体的压缩算法不作限定。具体可根据资源类型的不同采用相匹配的压缩算法对资源进行压缩。例如,针对于图片资源,可对该图片进行一级和/或二级压缩,以供后续能够匹配不同的终端设备。

步骤s330:针对于任一资源,分别将该资源以及与该资源对应的至少一个压缩资源上传至云平台的资源服务器,并获取该资源以及与该资源对应的至少一个压缩资源的资源获取入口。

本实施例中,除了将资源上传至云平台的资源服务器之外,还进一步将该资源对应的压缩资源上传至资源服务器中。资源服务器存储该资源以及该资源对应的压缩资源。并生成与该资源对应的资源获取入口,以及压缩资源对应的资源获取入口。

步骤s340:从程序包中删除至少一个资源。

步骤s350:对程序包的代码进行扫描,得到至少一个资源的引用信息,将至少一个资源的引用信息替换为至少一个资源的资源获取入口,重新打包该程序包。

步骤s360:生成与程序包对应的至少一个程序包备份,针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息,针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。

本实施例中进一步还对程序包进行备份处理,从而得到与程序包对应的至少一个程序包备份。其中,本实施例对程序包进行备份处理时,程序包中已删除了相应的资源,从而获得的程序包备份中也不再包含相应的资源。

进一步针对于任一程序包备份,对该对该程序包备份进行扫描,可以得到相应的资源的引用信息。进一步地,将该程序包备份中资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。其中,针对于一个资源,不同的程序包备份中该资源对应的压缩资源的资源获取入口不同。

举例来说,从程序包j中提取出图片资源a,对图片资源a进行两个级别的压缩后,得到与该图片资源a对应的压缩资源a1以及压缩资源a2;并将存储图片资源a、压缩资源a1以及压缩资源a2上传至资源服务器,分别获取图片资源a、压缩资源a1以及压缩资源a2对应的资源获取入口p、p1及p2;删除程序包j中的图片资源a,并生成与该程序包j对应的程序包备份j1以及程序包备份j2(其中,程序包备份j1以及程序包备份j2已不包含图片资源a);最终将程序包j中图片资源a的引用信息替换为资源获取入口p,将程序包备份j1中图片资源a的引用信息资源获取入口p1,将程序包备份j2中图片资源a的引用信息资源获取入口p2。

通过上述多个步骤的执行,本实施例能够获得重新打包的程序包,以及重新打包的程序包备份。其中,重新打包的程序包对应于标准的程序包优化版本,重新打包的程序包备份对应于其他程序包优化版本。

其中,本实施例对步骤s340-步骤s360的具体执行顺序不作限定,三者可并发执行也可依次顺序执行。

步骤s370:接收客户端发送的程序包安装请求,基于客户端的设备属性信息,确定与客户端对应的重新打包的程序包或程序包备份,并将与客户端对应的重新打包的程序包或程序包备份发送至客户端。

客户端在通过相应的触发操作,如通过对云平台中相应应用程序图标的点击操作等,能够触发对该应用程序的程序包安装请求。在接收到安装请求之后,可获取该客户端的设备属性信息。其中,该设备属性信息包括以下信息中的至少一种:终端设备屏幕分辨率信息、终端设备系统信息、以及终端设备机型信息等等。

进一步地,基于客户端的设备属性信息,确定与客户端对应的重新打包的程序包或程序包备份,并将与客户端对应的重新打包的程序包或程序包备份发送至客户端。例如,客户端的终端设备屏幕分辨率较低,则可确定重新打包的程序包备份j2为与该客户端对应的程序包备份,其中,程序包备份j2中图片资源a对应的压缩资源a2的像素与客户端的终端设备屏幕分辨率相匹配,从而能够进一步地节约传输资源。

其中,本实施例中步骤s310,步骤s340及步骤s350的具体执行过程可参照实施例一和/或实施例二中相应部分的描述,本实施例在此不做赘述。

由此可见,本实施例能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率;并且,本实施例能够基于客户端的设备属性信息,为客户端提供相匹配的优化后的程序包或程序包备份,在提升用户体验的同时,还进一步地节约了传输资源。

此外,在另一个实施例中,步骤s320可以替换为:针对于至少一个资源中的任一资源,对该资源进行至少一个自然语言的语言转换,以生成与该资源对应的至少一个语言副资源。例如,针对于视频资源中的字幕资源,可将原本为汉语字幕的资源转换为英文字幕的资源,该英文字幕的资源即为语言副资源;从而步骤s330中针对于任一资源,分别将该资源以及与该资源对应的至少一个语言副资源上传至云平台的资源服务器,并获取该资源以及与该资源对应的至少一个语言副资源的资源获取入口;而在步骤s360中,生成与程序包对应的至少一个程序包备份,针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息,针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一语言副资源的资源获取入口,并重新打包该程序包备份;则在步骤s370中,接收客户端发送的程序包安装请求,基于客户端的设备属性信息,确定与客户端对应的重新打包的程序包或程序包备份,并将与客户端对应的重新打包的程序包或程序包备份发送至客户端。其中,此处的设备属性信息包括当前设备所使用的语言信息,如当前设备使用的为简体中文,则将简体中文对应的重新打包的程序包或程序包备份发送给该客户端。从而进一步地提升用户体验。

实施例四

图4示出了本发明实施例四提供的基于云平台的程序包自动优化方法的流程示意图,其中,本实施例所提供的自动优化方法是针对于实施例一、实施例二、和/或实施例三中方法的进一步优化。

如图4所示,该方法包括以下步骤:

步骤s410:对待优化的程序包进行扫描,提取该程序包包含的至少一个资源。

步骤s420:将至少一个资源上传至云平台的资源服务器,并获取至少一个资源的资源获取入口。

步骤s430:从程序包中删除至少一个资源。

步骤s440:对程序包的代码进行扫描,得到至少一个资源的引用信息,将至少一个资源的引用信息替换为至少一个资源的资源获取入口,重新打包程序包。

其中,步骤s410-步骤s440中的具体执行过程可参照实施例一、实施例二和/或实施例三中相应部分的描述,本实施例在此不做赘述。

步骤s450:获取程序包对应的更新程序包,并扫描该更新程序包,以提取更新程序包包含的至少一个更新资源。

本实施例中,由于由资源服务器集中存储从程序包中提取出的资源,从而便于对提取出的资源进行集中管理。在程序包的更新过程中,更新程序包中可仅仅提供更新资源,便可实现对程序包的动态更新,从而无需对整个程序包进行修改,进一步提升更新效率。

具体地,可获取程序包对应的更新程序包,并扫描该更新程序包,以提取更新程序包包含的至少一个更新资源。

步骤s460:针对于任一更新资源,根据其是否已获取有与该更新资源对应的资源的资源获取入口,采用相应的更新方式进行更新。

在具体的实施过程中,针对于任一更新资源,首先判断是否已获取有与该更新资源对应的资源的资源获取入口。若是,则表明改更新资源是对现有的资源的更新,从而将该更新资源上传至云平台的资源服务器,以供资源服务器在对应的资源的存储位置处存储该更新资源,并删除已存储的对应的资源,即将该更新资源替换对应的存储的资源;若否,则表明改更新资源不是对现有的资源的更新,则将该更新资源上传至云平台的资源服务器,并获取该更新资源的资源获取入口,将更新程序包中的该更新资源的引用信息替换为该更新资源的资源获取入口。

由此可见,本实施例能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率;并且,本实施例能够实现对程序包的动态更新,提升更新效率。

实施例五

图5示出了本发明实施例五提供的基于云平台的程序包自动优化装置的结构流程示意图,其中,该装置包括:提取模块51,上传模块52,获取模块53,删除模块54,替换模块55,以及重打包模块56。

其中,提取模块51,适于对待优化的程序包进行扫描,提取所述程序包包含的至少一个资源;

上传模块52,适于将所述至少一个资源上传至云平台的资源服务器;

获取模块53,适于获取所述至少一个资源的资源获取入口;

删除模块54,适于从所述程序包中删除所述至少一个资源;

替换模块55,适于对所述程序包的代码进行扫描,得到所述至少一个资源的引用信息,将所述至少一个资源的引用信息替换为所述至少一个资源的资源获取入口;

重打包模块56,适于重新打包所述程序包。

可选的,该装置还包括:筛选模块(图中未示出),适于在所述提取所述程序包包含的至少一个资源之后,根据所述至少一个资源的资源类型和/或资源容量,对所述至少一个资源进行筛选;

所述上传模块(图中未示出)进一步适于:将经过筛选的至少一个资源上传至云平台的资源服务器。

可选的,所述资源类型包括以下类型中的至少一种:图片类型、音频类型、视频类型、以及文本内容类型。

可选的,所述筛选模块进一步适于:判断任一资源的资源类型是否为文本内容资源;

若任一资源的资源类型为文本内容资源,则判断所述文本内容资源的资源容量是否超过预设阈值,若是,则对该资源进行筛选。

可选的,所述装置还包括:压缩模块(图中未示出),适于在所述提取所述程序包包含的至少一个资源之后,针对于任一资源,对该资源进行至少一个级别的压缩,以生成与该资源对应的至少一个压缩资源;

所述上传模块进一步适于:针对于任一资源,分别将该资源以及与该资源对应的至少一个压缩资源上传至云平台的资源服务器;

所述获取模块进一步适于:获取该资源以及与该资源对应的至少一个压缩资源的资源获取入口;

所述装置还包括:备份模块(图中未示出),适于在所述从所述程序包中删除所述至少一个资源之后,生成与所述程序包对应的至少一个程序包备份;针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息;针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。

可选的,所述装置还包括:请求接收模块(图中未示出),适于在所述重新打包该程序包备份之后,接收客户端发送的程序包安装请求;

确定模块(图中未示出),适于基于所述客户端的设备属性信息,确定与所述客户端对应的重新打包的程序包或程序包备份;

发送模块(图中未示出),适于将与所述客户端对应的重新打包的程序包或程序包备份发送至所述客户端。

可选的,所述设备属性信息包括以下信息中的至少一种:终端设备屏幕分辨率信息、终端设备系统信息、以及终端设备机型信息。

可选的,所述装置还包括:更新模块(图中未示出),适于在所述重新打包所述程序包之后,获取所述程序包对应的更新程序包;扫描所述更新程序包,以提取所述更新程序包包含的至少一个更新资源;

针对于任一更新资源,判断是否已获取有与该更新资源对应的资源的资源获取入口;若是,则将该更新资源上传至云平台的资源服务器,以供资源服务器在所述对应的资源的存储位置处存储该更新资源,并删除已存储的所述对应的资源;若否,则将该更新资源上传至云平台的资源服务器,并获取该更新资源的资源获取入口,将更新程序包中的该更新资源的引用信息替换为该更新资源的资源获取入口。

其中,本实施例中各模块的具体实施过程可参照方法实施例中相应部分的描述,本实施例对此不作赘述。

由此可见,本实施例能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率。

实施例六

图6示出了本发明实施例六提供的云平台结构示意图,该云平台包括基于云平台的程序包自动优化装置61以及资源服务器62;其中,该资源服务器用于存储资源。

由此可见,本实施例能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率;并且,本平台具有结构简单,运行效率高的特点,适于大规模应用。

实施例七

根据本发明实施例七提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于云平台的程序包自动优化方法。

可执行指令具体可以用于使得处理器执行以下操作:

对待优化的程序包进行扫描,提取所述程序包包含的至少一个资源;

将所述至少一个资源上传至云平台的资源服务器,并获取所述至少一个资源的资源获取入口;

从所述程序包中删除所述至少一个资源;

对所述程序包的代码进行扫描,得到所述至少一个资源的引用信息,将所述至少一个资源的引用信息替换为所述至少一个资源的资源获取入口,重新打包所述程序包。

在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以下操作:

在所述提取所述程序包包含的至少一个资源之后,

根据所述至少一个资源的资源类型和/或资源容量,对所述至少一个资源进行筛选;

所述将所述至少一个资源上传至云平台的资源服务器具体为:将经过筛选的至少一个资源上传至云平台的资源服务器。

在一种可选的实施方式中,所述资源类型包括以下类型中的至少一种:

图片类型、音频类型、视频类型、以及文本内容类型。

在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以下操作:

判断任一资源的资源类型是否为文本内容资源;

若任一资源的资源类型为文本内容资源,则判断所述文本内容资源的资源容量是否超过预设阈值,若是,则对该资源进行筛选。

在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以下操作:

针对于任一资源,对该资源进行至少一个级别的压缩,以生成与该资源对应的至少一个压缩资源;

针对于任一资源,分别将该资源以及与该资源对应的至少一个压缩资源上传至云平台的资源服务器,并获取该资源以及与该资源对应的至少一个压缩资源的资源获取入口;

生成与所述程序包对应的至少一个程序包备份;针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息;针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。

在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以下操作:

接收客户端发送的程序包安装请求;

基于所述客户端的设备属性信息,确定与所述客户端对应的重新打包的程序包或程序包备份;

将与所述客户端对应的重新打包的程序包或程序包备份发送至所述客户端。

在一种可选的实施方式中,所述设备属性信息包括以下信息中的至少一种:

终端设备屏幕分辨率信息、终端设备系统信息、以及终端设备机型信息。

在一种可选的实施方式中,可执行指令具体可以用于使得处理器执行以下操作:

获取所述程序包对应的更新程序包;

扫描所述更新程序包,以提取所述更新程序包包含的至少一个更新资源;

针对于任一更新资源,判断是否已获取有与该更新资源对应的资源的资源获取入口;若是,则将该更新资源上传至云平台的资源服务器,以供资源服务器在所述对应的资源的存储位置处存储该更新资源,并删除已存储的所述对应的资源;若否,则将该更新资源上传至云平台的资源服务器,并获取该更新资源的资源获取入口,将更新程序包中的该更新资源的引用信息替换为该更新资源的资源获取入口。

由此可见,本实施例能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率。

实施例八

图7示出了本发明实施例八提供的计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图7所示,该计算设备可以包括:处理器(processor)702、通信接口(communicationsinterface)704、存储器(memory)706、以及通信总线708。

其中:处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。通信接口704,用于与其它设备比如客户端或其它服务器等的网元通信。处理器702,用于执行程序710,具体可以执行上述方法实施例中的相关步骤。

具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。

处理器702可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器706,用于存放程序710。存储器706可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序710具体可以用于使得处理器702执行以下操作:

对待优化的程序包进行扫描,提取所述程序包包含的至少一个资源;

将所述至少一个资源上传至云平台的资源服务器,并获取所述至少一个资源的资源获取入口;

从所述程序包中删除所述至少一个资源;

对所述程序包的代码进行扫描,得到所述至少一个资源的引用信息,将所述至少一个资源的引用信息替换为所述至少一个资源的资源获取入口,重新打包所述程序包。

在一种可选的实施方式中,程序710具体可以用于使得处理器702执行以下操作:

在所述提取所述程序包包含的至少一个资源之后,

根据所述至少一个资源的资源类型和/或资源容量,对所述至少一个资源进行筛选;

所述将所述至少一个资源上传至云平台的资源服务器具体为:将经过筛选的至少一个资源上传至云平台的资源服务器。

在一种可选的实施方式中,所述资源类型包括以下类型中的至少一种:

图片类型、音频类型、视频类型、以及文本内容类型。

在一种可选的实施方式中,程序710具体可以用于使得处理器702执行以下操作:

判断任一资源的资源类型是否为文本内容资源;

若任一资源的资源类型为文本内容资源,则判断所述文本内容资源的资源容量是否超过预设阈值,若是,则对该资源进行筛选。

在一种可选的实施方式中,程序710具体可以用于使得处理器702执行以下操作:

针对于任一资源,对该资源进行至少一个级别的压缩,以生成与该资源对应的至少一个压缩资源;

针对于任一资源,分别将该资源以及与该资源对应的至少一个压缩资源上传至云平台的资源服务器,并获取该资源以及与该资源对应的至少一个压缩资源的资源获取入口;

生成与所述程序包对应的至少一个程序包备份;针对任一程序包备份,对该程序包备份进行扫描,得到至少一个资源的引用信息;针对该程序包备份中的任一资源,将该资源的引用信息替换为与该资源对应的任一压缩资源的资源获取入口,并重新打包该程序包备份。

在一种可选的实施方式中,程序710具体可以用于使得处理器702执行以下操作:

接收客户端发送的程序包安装请求;

基于所述客户端的设备属性信息,确定与所述客户端对应的重新打包的程序包或程序包备份;

将与所述客户端对应的重新打包的程序包或程序包备份发送至所述客户端。

在一种可选的实施方式中,所述设备属性信息包括以下信息中的至少一种:

终端设备屏幕分辨率信息、终端设备系统信息、以及终端设备机型信息。

在一种可选的实施方式中,程序710具体可以用于使得处理器702执行以下操作:

获取所述程序包对应的更新程序包;

扫描所述更新程序包,以提取所述更新程序包包含的至少一个更新资源;

针对于任一更新资源,判断是否已获取有与该更新资源对应的资源的资源获取入口;若是,则将该更新资源上传至云平台的资源服务器,以供资源服务器在所述对应的资源的存储位置处存储该更新资源,并删除已存储的所述对应的资源;若否,则将该更新资源上传至云平台的资源服务器,并获取该更新资源的资源获取入口,将更新程序包中的该更新资源的引用信息替换为该更新资源的资源获取入口。

由此可见,本实施例能够大幅降低用户获取程序包的传输压力,节约传输资源,提升应用程序的运行速率。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1