应用程序安装包大小的处理方法、装置、设备和存储介质与流程

文档序号:15159540发布日期:2018-08-14 10:13阅读:277来源:国知局
本发明实施例涉及计算机技术,尤其涉及一种应用程序(application,app)安装包大小的处理方法、装置、设备和存储介质。
背景技术
::随着业务的增长,app安装包的大小也会不断增大,然而,app安装包的大小会影响下载app的用户量,例如:如果基于ios的app安装包大于100m,appstore在4g环境下限制该app安装包的下载,因此,对app安装包大小的优化尤为重要。现有技术中,通过开发人员手工查找一些明显的冗余文件,对这些冗余文件进行删除或者修改,以减小app安装包的大小。然而,采用现有技术的方法,对app安装包大小的处理的准确率不高。技术实现要素:本发明实施例提供一种应用程序安装包大小的处理方法、装置、设备和存储介质,以提高对app安装包大小的处理的准确率。第一方面,本发明实施例提供一种应用程序安装包大小的处理方法,包括:获取应用程序安装包的第一版本的各可执行文件的文件大小;针对所述第一版本中的每个可执行文件,比较所述可执行文件与所述应用程序安装包的第二版本中相同文件标识的可执行文件的文件大小;获取第一文件标识,其中,所述第一版本中所述第一文件标识对应的文件大小大于所述第二版本中所述第一文件标识对应的文件大小;根据所述第一文件标识生成预警信息,并输出所述预警信息。可选地,所述针对所述第一版本中的每个可执行文件,比较所述可执行文件与所述应用程序安装包的第二版本中相同文件标识的可执行文件的文件大小之前,还包括:根据所述应用程序安装包的第二版本中的各可执行文件的文件标识以及对应的文件大小,在数据库中存储各可执行文件的标识以及对应的文件大小。可选地,还包括:获取第二文件标识,其中,所述第一版本的所述第二文件标识对应的文件大小小于所述第二版本的所述第二文件标识对应的文件大小;根据所述第一版本的第二文件标识对应的文件大小,更新所述数据库中所述第二文件标识对应的文件大小。可选地,所述可执行文件包括所述应用程序安装包的源码编译生成的可执行文件以及所述应用程序安装包调用的静态库中的可执行文件,所述静态库包括.a库或者.framework库。可选地,所述输出所述预警信息,包括:通过邮件、短信或者即时通讯软件输出所述预警信息。可选地,所述通过邮件、短信或者即时通讯软件输出所述预警信息之前,还包括:存储所述第一文件标识。可选地,所述根据所述第一文件标识生成预警信息,包括:按照所述第一文件标识对应的文件大小的顺序,根据所述文件大小最大的前n个第一文件标识生成预警信息,其中,n为大于等于1的整数。第二方面,本发明实施例提供一种应用程序安装包大小的处理装置,包括:第一获取模块,用于获取应用程序安装包的第一版本的各可执行文件的文件大小;处理模块,用于针对所述第一版本中的每个可执行文件,比较所述可执行文件与所述应用程序安装包的第二版本中相同文件标识的可执行文件的文件大小;第二获取模块,用于获取第一文件标识,其中,所述第一版本中所述第一文件标识对应的文件大小大于所述第二版本中所述第一文件标识对应的文件大小;所述处理模块,还用于根据所述第一文件标识生成预警信息;发送模块,用于输出所述预警信息。第三方面,本发明实施例提供一种电子设备,包括:存储器,用于存储程序指令;处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的应用程序安装包大小的处理方法。第四方面,本发明实施例提供一种可读存储介质,所述可读存储介质中存储有计算机程序,当应用程序安装包大小的处理装置的至少一个处理器执行所述计算机程序时,应用程序安装包大小的处理装置执行第一方面所述的应用程序安装包大小的处理方法。本发明实施例提供的应用程序安装包大小的处理方法、装置、设备和存储介质,通过获取app安装包的第一版本的各可执行文件的文件大小,针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小,获取第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识,并根据这些第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识生成预警信息,输出预警信息,从而,提高对app安装包大小的处理的准确率和效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种app安装包大小的处理方法的流程示意图;图2为本发明实施例提供的另一种app安装包大小的处理方法的流程示意图;图3为本发明实施例提供的再一种app安装包大小的处理方法的流程示意图;图4为本发明实施例提供的一种app安装包大小的处理装置的结构示意图;图5为本发明实施例提供的另一种app安装包大小的处理装置的结构示意图;图6为本发明实施例提供的再一种app安装包大小的处理装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明实施例可能涉及到的词汇解释:1、电子设备,包括但不限于移动台(mobilestation,ms)、移动终端(mobileterminal)、移动电话(mobiletelephone)、手机(handset)及便携设备(portableequipment)等,该电子设备可以经无线接入网(radioaccessnetwork,ran)与一个或多个核心网进行通信,例如,电子设备可以是移动电话(或称为“蜂窝”电话)、具有无线通信功能的计算机等,电子设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置或设备。2、app,是电子设备上的第三方应用程序,也称为客户端,例如网购类app、本地服务类app、理财类app以及搜索类app等等。app安装包包括源码和静态库,其中,源码经过编译后生成可执行文件(.o文件),静态库可以是.a库或者.framework库,.a库和.framework库中包含多个可执行文件(.o文件)。本发明实施例针对同一app,通过对比前后两个版本的app安装包的可执行文件大小,确定哪些可执行文件的文件大小变大,得到预警信息,并输出预警信息,从而提高对app安装包大小的处理的准确率和效率。下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。图1为本发明实施例提供的一种app安装包大小的处理方法的流程示意图,该方法可以应用于app安装包上线之前的优化过程中,可以由任一具有处理与通信功能的装置执行,该装置可以是与app安装包的开发环境处于同一台计算机的装置,也可以是独立的装置,对此,本发明实施例不做限制。本实施例的方法如图1所示:s101:获取app安装包的第一版本的各可执行文件的文件大小。针对同一app,app安装包常常会因业务功能的增加、优化或者删除等,不断更新app安装包,因此,同一app安装包可能具有不同的版本,例如:按照开发时间的先后,某app的app安装包有某appv1.0、某appv2.0、……、某appvn.0等。本发明各实施例为了便于描述,将当前待优化的app版本称为第一版本,将该版本的前一版本或者预设的标准版本称为第二版本。其中,app安装包包括源码和静态库,可执行文件包括:app安装包的源码编译后生成的可执行文件,以及所述app安装包调用的静态库中包含的可执行文件,所述静态库包括.a库或者.framework库。其中,一种可能的获取app安装包的第一版本的各可执行文件的文件大小的方式如下:可以通过设置编译选项“writelinkmapfile”值为“yes”,以启动对app安装包进行编译,在“pathtolinkmapfile”目录下生成一个linkmap文件,如:myapp-linkmap-normal-arm64.txt,该linkmap文件主要由三个段组成,即objectfiles、sections和symbols段。objectfiles中列出所有类文件及其编号,sections列出代码段和数据段存储位置和大小,而symbols则列出了每个类中属性和方法的详细位置和大小。对linkmap文件进行分析,主要是结合linkmap文件中的objectfiles段和symbols段进行分析。具体地,生成若干个dic<key,value>,其中,key的取值通过遍历objectfiles段中的文件编号确定,value为自定义model,model设置两个属性,例如:文件名(name)和文件大小(size),分别为model.name和model.size。通过objectfiles段确定<key,value>中编号对应model.name,model.name具体可以为可执行文件的文件名或者静态库的库名。再通过symbols段确定<key,value>中编号对应的model.size的值。从而,得到若干个dic<key,value>,即得到app安装包的文件编号、文件名以及对应的可执行文件的文件大小,从而,得到app安装包的第一版本的各可执行文件的文件大小。可选地,还可以对得到的若干个dic<key,value>进行预处理,例如:将源码生成的可执行文件中文件大小小于某个值(例如:10kb)的可执行文件对应的dic<key,value>从若干个dic<key,value>中清除;和/或将.a库或者.framework库中的可执行文件的文件大小最小的m个可执行文件对应的dic<key,value>从若干个dic<key,value>中清除,m为大于等于1的整数。s103:针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小。其中,第二版本的开发时间早于所述第一版本。文件标识可以是文件名、文件编号或者其他能够识别文件的标识,对此,本申请不做限制。本步骤的一种可能的实现方式,可以通过创建一个数据库,在数据库中创建一个表,表中设置多个字段,用于记录比较结果,如表1所示,表1的字段包括:obj_name、belong_lib、size、size_add、is_new以及备注等;其中,obj_name用于存储编译后得到可执行文件名;belong_lib用于存储可执行文件所属的静态库(.a库或者.framework库);size用于存储可执行文件的大小;size_add用于存储与第二版本相比的增量,is_new用于存储是否为新增文件,备注用于补充说明。表1s105:获取第一文件标识。其中,第一版本中所述第一文件标识对应的文件大小大于所述第二版本中所述第一文件标识对应的文件大小。例如:结合表1,针对.a库或者.framework库,如表1中的xx.a和xx.framework,如果比第二版本中的xx.a和xx.framework的文件大小大,则比较第一版本的xx.a和xx.framework内文件大小为前r个可执行文件,获取第一版本的前n个可执行文件中文件大小大于第二版本中的相同文件标识的可执行文件的文件标识,作为第一文件标识。针对其余的可执行文件,如表1中的myapp.exec、yy.o,获取第一版本中的可执行文件中文件大小大于第二版本中的相同文件标识的可执行文件的文件标识,作为第一文件标识。第一文件标识包括:myapp.exec;xx.a;xx.a(yy.o);xx(yy.o);yy.o。s107:根据所述第一文件标识生成预警信息,并输出所述预警信息。其中,一种可能的实现方式,可以按照第一文件标识对应的文件大小的顺序,根据文件大小最大的前n个第一文件标识生成预警信息,其中,n为大于等于1的整数。结合表1:myapp.exec的文件大小为20000kb;xx.a的文件大小为2000kb;xx.a(yy.o)的文件大小为8kb;xx(yy.o)的文件大小为10kb;yy.o的文件大小为15kb。假设n取2,则根据myapp.exec和xx.a生成预警信息。当n的取值大于所有第一文件标识的个数时,则根据所有第一文件标识生成预警信息。可选地,可以通过邮件、短信或者即时通讯软件输出预警信息。可选地,在输出第一预警信息之前,可以先存储第一文件标识,例如:将第一文件标识存储在一个临时文件中。本实施例,通过获取app安装包的第一版本的各可执行文件的文件大小,针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小,获取第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识,并根据这些第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识生成预警信息,输出预警信息,从而,提高对app安装包大小的处理效率。图2为本发明实施例提供的另一种app安装包大小的处理方法的流程示意图,图2是在图1所示实施例的基础上,可选地,在s103之前,还包括s102,如图2所示:s101:获取app安装包的第一版本的各可执行文件的文件大小。s102:根据应用程序的第二版本中的各可执行文件的文件标识以及对应的文件大小,在数据库中存储各可执行文件的标识以及对应的文件大小。通过在数据库中存储第二版本中的各可执行文件的文件标识以及对应的文件大小,以便于比较第一版本中的各可执行文件与第二版本中相同文件标识的可执行文件的文件大小。s103:针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小。s105:获取第一文件标识。s107:根据所述第一文件标识生成预警信息,并输出所述预警信息。其中,s101、s103、s105、s107的详细描述参见图1所示实施例中的详细描述,此处不再赘述。本实施例,通过获取app安装包的第一版本的各可执行文件的文件大小,根据应用程序的第二版本中的各可执行文件的文件标识以及对应的文件大小,在数据库中存储各可执行文件的标识以及对应的文件大小,从而,便于比较第一版本中的各可执行文件与第二版本中相同文件标识的可执行文件的文件大小,针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小,获取第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识,并根据这些第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识生成预警信息,输出预警信息,从而,提高对app安装包大小的处理效率。图3为本发明实施例提供的再一种app安装包大小的处理方法的流程示意图,图3是在图2所示实施例的基础上,可选地,在s103之后还可以包括:s108和s109,其中,s108和s109在s103之后执行即可,如图3所示:s101:获取app安装包的第一版本的各可执行文件的文件大小。s102:根据所述应用程序的第二版本中的各可执行文件的文件标识以及对应的文件大小,在数据库中存储各可执行文件的标识以及对应的文件大小。s103:针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小。s105:获取第一文件标识。s107:根据所述第一文件标识生成预警信息,并输出所述预警信息。s108:获取第二文件标识。其中,第一版本的所述第二文件标识对应的文件大小小于所述第二版本的所述第二文件标识对应的文件大小。s109:根据所述第一版本的第二文件标识对应的文件大小,更新所述数据库中所述第二文件标识对应的文件大小。其中,s101、s102、s103、s105的详细描述参见图2所示实施例中的详细描述,此处不再赘述。本实施例,通过在图2所示实施例的基础上,获取第二文件标识,并更新数据库中第二文件标识对应的文件大小,以使数据库中始终维护的是各可执行文件的最小的文件大小,以便于开发人员对app安装包的尺寸进行优化时进行参考。图4为本发明实施例提供的一种app安装包大小的处理装置的结构示意图,本实施例的装置包括第一获取模块401、处理模块402、第二获取模块403和发送模块404,其中,第一获取模块401用于获取app安装包的第一版本的各可执行文件的文件大小;处理模块402用于针对所述第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小;第二获取模块403用于获取第一文件标识,其中,所述第一版本中所述第一文件标识对应的文件大小大于所述第二版本中所述第一文件标识对应的文件大小;处理模块402还用于根据第一文件标识生成预警信息;发送模块404用于输出预警信息。可选地,所述可执行文件包括所述app安装包的源码编译生成的可执行文件以及所述app安装包调用的静态库中的可执行文件,所述静态库包括.a库或者.framework库。可选地,所述发送模块404具体用于通过邮件、短信或者即时通讯软件输出预警信息。可选地,所述处理模块402具体用于按照所述第一文件标识对应的文件大小的顺序,根据文件大小最大的前n个第一文件标识生成预警信息,其中,n为大于等于1的整数。本实施例的装置,对应地可用于执行图1所示方法实施例的技术方案,其实现原理,此处不再赘述。本实施例,通过第一获取模块获取app安装包的第一版本的各可执行文件的文件大小,处理模块针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小,第二获取模块获取第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识,处理模块根据这些第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识生成预警信息,并输出预警信息,从而,提高对app安装包大小的处理准确率和效率。图5为本发明实施例提供的另一种app安装包大小的处理装置的结构示意图,图5是在图4所示实施例的基础上,进一步地,还包括存储模块405,在处理模块针对所述第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小之前,用于根据所述app安装包的第二版本中的各可执行文件的文件标识以及对应的文件大小,在数据库中存储各可执行文件的标识以及对应的文件大小。本实施例的装置,对应地可用于执行图2所示方法实施例的技术方案,其实现原理类似,此处不再赘述。本实施例,通过第一获取模块获取app安装包的第一版本的各可执行文件的文件大小,存储模块根据所述app安装包的第二版本中的各可执行文件的文件标识以及对应的文件大小,在数据库中存储各可执行文件的标识以及对应的文件大小,从而,便于比较第一版本中的各可执行文件与第二版本中相同文件标识的可执行文件的文件大小,处理模块针对第一版本中的每个可执行文件,比较所述可执行文件与所述app安装包的第二版本中相同文件标识的可执行文件的文件大小,第二获取模块获取第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识,处理模块根据这些第一版本中文件大小大于第二版本中相同文件标识的可执行文件的文件标识生成预警信息,发送模块输出预警信息,从而,提高对app安装包大小的处理效率。本发明实施例还提供一种app安装包大小的处理装置,在图5所示实施例的基础上,所述第二获取模块403还用于获取第二文件标识,其中,所述第一版本的所述第二文件标识对应的文件大小小于所述第二版本的所述第二文件标识对应的文件大小;所述存储模块405还用于根据所述第一版本的第二文件标识对应的文件大小,更新所述数据库中所述第二文件标识对应的文件大小。本实施例的装置,对应地可用于执行图3所示方法实施例的技术方案,其实现原理类似,此处不再赘述。本实施例,通过第二获取模块获取第二文件标识,存储模块更新数据库中第二文件标识对应的文件大小,以使数据库中始终维护的是各可执行文件的最小的文件大小,以便于开发人员对app安装包的尺寸进行优化时进行参考。本发明各装置实施例中可以根据上述方法示例app安装包大小的处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。图6为本发明实施例提供再一种app安装包大小的处理装置的结构示意图,包括:存储器61和处理器62,其中,存储器61,用于存储程序指令,该存储器可以是flash(闪存)。处理器62,用于调用并执行存储器中的程序指令,以实现图1~图3任一所示的app安装包大小的处理方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。可选地,存储器61既可以是独立的,也可以是存储器61跟处理器62集成在一起。本发明实施例还提供一种电子设备,该电子设备用于执行图1~图3任一所示的app安装包大小的处理方法中的各个步骤。本发明还提供一种可读存储介质,可读存储介质中存储有计算机程序,当app安装包大小的处理装置的至少一个处理器执行该计算机程序时,app安装包大小的处理装置执行图1~图3任一所述的方法。本发明还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。app安装包大小的处理装置的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得app安装包大小的处理装置实施图1~图3任一所述的方法。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1