CN107368536A - 一种安装包的优化方法及终端 - Google Patents
一种安装包的优化方法及终端 Download PDFInfo
- Publication number
- CN107368536A CN107368536A CN201710483236.9A CN201710483236A CN107368536A CN 107368536 A CN107368536 A CN 107368536A CN 201710483236 A CN201710483236 A CN 201710483236A CN 107368536 A CN107368536 A CN 107368536A
- Authority
- CN
- China
- Prior art keywords
- file
- subdirectory
- resource file
- target
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种安装包的优化方法及终端,其中方法包括:从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,删除在终端中已经保存的动态链接库文件;从应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并;在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并。本发明实施例通过对库文件目录和资源文件目录的优化,可以根据目标终端的硬件和软件属性对安装包的大小和内容进行优化,降低安装包占用的空间,提高应用的运行效率。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种安装包的优化方法及终端。
背景技术
随着科技的不断发展,智能手机等智能终端被广泛使用子在各个领域,而智能终端上的操作系统,例如Android操作系统已经被应用在非常多的领域。
Android智能终端上的应用(Application,APP)为了兼容不同的设备,往往需要在应用安装包(AndroidPackage,APK)中打包多种不同类型的资源和代码,以支持不同的终端设备,导致APK占用的空间较大,而智能终端本身的存储空间有限,因此往往影响到智能终端能够安装的APP数量,并且减少了用户的物理存储空间。
发明内容
本发明实施例提供一种安装包的优化方法,可以根据目标终端的硬件和软件属性对安装包的大小和内容进行优化,降低安装包占用的空间,提高应用的运行效率。
第一方面,本发明实施例提供了一种安装包的优化方法,该方法包括:
从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
从所述目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
从所述应用安装包的资源文件目录中,删除与所述终端的操作系统版本不匹配的资源文件子目录,并对所述资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将所述不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
根据所述库文件目录和所述资源文件目录,生成优化后的应用安装包。
第二方面,本发明实施例提供了一种终端,该终端包括:
第一删除单元,用于从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
第二删除单元,用于从所述目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
资源文件处理单元,用于从所述应用安装包的资源文件目录中,删除与所述终端的操作系统版本不匹配的资源文件子目录,并对所述资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
图片文件处理单元,用于在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将所述不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
生成单元,用于根据所述库文件目录和所述资源文件目录,生成优化后的应用安装包。
第三方面,本发明实施例提供了另一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例从应用安装包的库文件目录中删除与终端的中央处理器类型无关的库文件,得到目标库文件子目录,并从该目标库文件子目录中删除在终端中已经保存的动态链接库文件;同时,从在应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录,并在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;然后根据库文件目录和资源文件目录,生成优化后的应用安装包。本发明实施例一方面根据目标终端的硬件和软件属性,删除库文件目录和资源文件目录中与目标终端不相关的文件以及冗余的文件,减少安装包占用的空间,另一方面,通过对资源文件目录中的子目录进行同类合并以及图片文件的预处理,能够进一步避免文件的冗余,同时极大的提高应用安装包的运行效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种安装包的优化方法的示意流程图;
图2是本发明实施例二提供的一种安装包的优化方法的示意流程图;
图3是本发明实施例三提供的一种终端的示意性框图;
图4是本发明实施例四提供的一种终端的示意性框图;
图5是本发明实施例五提供的一种终端的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本发明实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
实施例一:
请参阅图1,图1是本发明实施例一提供的一种安装包的优化方法的示意流程图,本实施例的执行主体可以是智能手机或者其他智能终端等设备。图1所示的优化方法可以包括以下步骤:
S101、从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录。
在应用安装包中,库文件目录可以是lib目录。
为了使应用能够支持不同芯片类型的终端,应用安装包的lib目录下通常会对常用的每种中央处理器(Central Processing Unit,CPU)均部署一套对应的库文件。但是实际情况是每个终端设备在出厂时其CPU类型就已经确定了,不会再变化。因此对一个确定CPU类型的终端设备来说,即使其应用安装包中部署了多种CPU类型的库文件,但实际应用的时候只会读取该终端设备的CPU类型对应的那一套库文件,其他库文件均是与该终端设备的CPU类型不匹配的库文件,不会被调用。
具体地,终端在安装应用安装包时,根据自身CPU的类型从应用安装包的库文件目录中删除与自身CPU类型不匹配的库文件,将自身CPU类型对应的库文件子目录确定为目标库文件子目录。
S102、从目标库文件子目录中,删除在终端中已经保存的动态链接库文件。
具体地,在目标库文件子目录中存在不同的动态链接库文件,例如各种so文件。这些so文件可能在终端的系统文件目录,或者在其他应用安装包的文件目录中被重复保存。例如,新闻客户端这一应用的安装包中的动态链接库文件liblocSDK6a.so是一个地理位置定位的库文件,该动态链接库文件在许多应用中都存在。
如果目标库文件子目录中的动态链接库文件已经保存在当前终端的系统文件目录或者其他应用安装包的文件目录中,则终端从目标库文件子目录中删除该动态链接库文件。
S103、从应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录。
在应用安装包中,资源文件目录可以是res目录或者asset目录。
在资源文件目录中,每个子目录的目录名称均采用“类型+V+数字”的命名格式,其中,“数字”代表操作系统版本对应的数值,“数字”的意义是大于或者等于该数字对应的版本的操作系统版本可以使用该子目录。在Android系统中,Android版本与目录名称中的“数字”的对应关系如表一所示。
Android版本 | 数字 |
Android 1.6 | 4 |
Android 2.2 | 8 |
Android 2.3 | 9 |
Android 3.0 | 11 |
Android 4.0 | 14 |
Android 4.2 | 17 |
Android 4.4 | 19 |
Android 5.0 | 21 |
Android 6.0 | 23 |
Android 7.0 | 24 |
表一
具体地,终端在安装应用安装包时,从该应用安装包的资源文件目录中删除与自身操作系统版本不匹配的资源文件子目录。并在资源文件目录中剩余的其他资源文件子目录中,通过对相同类型的资源文件子目录进行合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录。
例如,假设在res目录中包含了drawable-hdpi-v11子目录、drawable-hdpi-v8和drawable-hdpi-v4子目录,那么这三个子目录均对应的是drawable-hdpi这一类型,若当前终端的操作系统版本为Android 2.3,则drawable-hdpi-v11子目录与当前的操作系统版本不匹配,drawable-hdpi-v4子目录和drawable-hdpi-v8子目录是与当前的操作系统版本相匹配的子目录。因此,终端删除drawable-hdpi-v11子目录,并且对drawable-hdpi-v4子目录和drawable-hdpi-v8子目录进行合并,使得drawable-hdpi这一类型只保留一个子目录。
S104、在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件。
根据步骤S103的处理结果,在资源文件目录中包含了多个目标资源文件子目录,并且每个目标资源文件子目录均对应一个具体的类型,不同目标资源文件子目录对应不同的类型。其中,每个屏幕密度类型对应一个目标资源文件子目录,每种屏幕密度类型的目标资源文件子目录中保存的图片文件的分辨率与该屏幕密度相匹配。
例如,在res目录中,drawable-ldrtl-hdpi-v4子目录、drawable-ldrtl-mdpi-v4子目录、drawable-ldrtl-xhdpi-v4子目录、drawable-ldrtl-xxhdpi-v4子目录以及drawable-ldrtl-xxxhdpi-v4子目录分别对应hdpi屏幕密度类型、mdpi屏幕密度类型、xhdpi屏幕密度类型、xxhdpi屏幕密度类型以及xxxhdpi屏幕密度类型。
具体地,终端根据自身的清晰度要求,对不同屏幕密度类型的目标资源文件子目录中不满足清晰度要求的图片进行缩放处理,使得缩放后的图片的分辨率满足终端的清晰度要求,并且将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件。
终端的清晰度可以是终端根据显示屏幕的尺寸和分辨率得到的对屏幕密度的要求。
S105、根据库文件目录和资源文件目录,生成优化后的应用安装包。
具体地,终端根据步骤S101至步骤S104对库文件目录和资源文件目录进行优化后,生成优化后的应用安装包,并将该优化后的应用安装包安装到终端中。
需要说明的是,本发明实施例的步骤S101至步骤S102与步骤S103至步骤S104之间没有必然的先后顺序,其可以是并列执行的关系,此处不做限制。
从上述图1示例的优化方法可知,本实施例中,从应用安装包的库文件目录中删除与终端的中央处理器类型无关的库文件,得到目标库文件子目录,并从该目标库文件子目录中删除在终端中已经保存的动态链接库文件;同时,从在应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录,并在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;然后根据库文件目录和资源文件目录,生成优化后的应用安装包。本发明实施例一方面根据目标终端的硬件和软件属性,删除库文件目录和资源文件目录中与目标终端不相关的文件以及冗余的文件,减少安装包占用的空间,另一方面,通过对资源文件目录中的子目录进行同类合并以及图片文件的预处理,能够进一步避免文件的冗余,同时极大的提高应用安装包的运行效率。
实施例二:
请参阅图2,图2是本发明实施例二提供的一种安装包的优化方法的示意流程图,本实施例的执行主体可以是智能手机或者其他智能终端等设备。图2所示的优化方法可以包括以下步骤:
S201、获取中央处理器类型。
具体地,终端在安装应用安装包时,获取自身CPU的类型。
目前,Android设备主流的CPU类型包括armeabi、armeabi-v7a、armeabi-v8a、x86、mips、arm64-v8a、mips64以及x86_64等。每个终端设备在出厂时其CPU类型就已经确定了,不会再变化。
S202、在应用安装包的库文件目录中,将中央处理器类型对应的库文件子目录确定为目标库文件子目录。
具体地,终端在库文件目录中将终端的CPU类型对应的库文件子目录确定为目标库文件子目录。
安装包在安装完成后的运行过程中只会读取目标库文件子目录中的库文件。
在应用安装包中,库文件目录可以是lib目录。
S203、从应用安装包的库文件目录中,删除目标库文件子目录之外的其他库文件子目录。
具体地,终端从库文件目录中删除目标库文件子目录之外的其他库文件子目录。
以新闻客户端应用为例,在新闻客户端的应用安装包的lib目录下包含三个子目录,分别为armeabi、armeabi-v7a和x86三个子目录,若新闻客户端所在的终端的CPU类型为x86,则新闻客户端在运行时,终端只会读取x86子目录下的库文件,不会从armeabi子目录和armeabi-v7a子目录中读取库文件。因此,终端在安装新闻客户端时,将x86子目录确定为目标库文件子目录,删除lib目录下的armeabi子目录和armeabi-v7a子目录,可以清理三分之二的lib目录所占的空间。
S204、遍历目标库文件子目录下的动态链接库文件,生成每个动态链接库文件对应的目标加密序列。
步骤S203确定的目标库文件子目录下包含多个动态链接库文件。动态链接库文件可以是so文件,例如上述新闻客户端的目标库文件子目录中包含13个so文件。这些so文件可能已经保存在终端的系统文件目录或者其他应用安装包的文件目录中。
具体地,终端遍历步骤S203确定的目标库文件子目录下的动态链接库文件,为每个动态链接库文件生成对应的目标加密序列。
目标加密序列可以采用信息-摘要算法5(Message-Digest Algorithm 5,MD5)得到。MD5用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一。MD5通过对动态链接库文件产生信息摘要得到对应的目标加密序列,该目标加密序列可以用于比较动态链接库文件的唯一性。每个动态链接库文件根据MD5算法得到唯一对应的目标加密序列,不同动态链接库文件对应不同的目标加密序列。终端根据目标加密序列可以确定其对应的动态链接库文件。
S205、若从预设的动态链接库文件信息汇总表中查找到目标加密序列,则删除该目标加密序列对应的动态链接库文件,其中,动态链接库文件信息汇总表包含每个动态链接库文件的状态信息,状态信息包括动态链接库文件的位置信息、动态链接库文件的加密序列,以及用于表示动态链接库文件是否被其他应用使用的标识信息。
终端在系统中维护一个动态链接库文件系统汇总表,该汇总表包含了终端上运行的所有应用的动态链接库文件的状态信息。每个动态链接库文件的状态信息包括动态链接库文件的位置信息,动态链接库文件的加密序列,以及用于表示动态链接库文件是否被其他应用使用的标识信息。其中,位置信息用于标识动态链接库文件在终端中的保存位置,加密序列通过对动态链接库文件采用MD5算法得到,标识信息可以包括使用该动态链接库的其他应用的应用列表。
具体地,终端查找预设的动态链接库文件信息汇总表,若从该汇总表中查找到目标加密序列,则确认该目标加密序列对应的动态链接库文件已经保存在终端中,无需重复保存,因此从目标库文件子目录中删除该目标加密序列对应的动态链接库文件。
S206、若从预设的动态链接库文件信息汇总表中未查找到目标加密序列,则将该目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中。
具体地,终端查找预设的动态链接库文件信息汇总表,若从该汇总表中未查找到目标加密序列,则确认该目标加密序列对应的动态链接库文件尚未保存在终端中,因此将该目标加密序列对应的动态链接库文件保留在目标库文件子目录中。
同时,将该目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中,以使得动态链接库文件信息汇总表能够实时反映终端使用的动态链接库文件的情况。
需要说明的是,如果一个应用的某个动态链接库文件是被其他应用使用的,那么,在卸载该应用时,终端会将该动态链接库文件重新生成到终端的系统目录中,从而确保依赖该动态链接库文件的其他应用在运行过程中不会出错。
S207、根据应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个资源文件子目录对应的匹配版本。
在应用安装包的资源文件目录中,每个子目录的名称均采用“类型+V+数字”的命名格式,其中,“数字”代表操作系统版本对应的数值,“数字”的意义是大于或者等于该数字对应的版本的操作系统版本可以使用该子目录。在Android系统中,每个Android版本均与一个目录名称中的“数字”唯一对应,Android版本与目录名称中的“数字”的对应关系如表一所示。
在应用安装包中,资源文件目录可以是res目录或者asset目录。
具体地,终端在安装应用安装包时,获取应用安装包的资源文件目录下的子目录的名称中的“数字”,根据版本与“数字”的对应关系确定出的该“数字”对应的版本,即为该资源文件子目录对应的匹配版本。
S208、对每种类型的资源文件子目录,将与终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录。
具体地,根据步骤S207得到的每个资源文件子目录的匹配版本,对每种类型的资源文件子目录,若匹配版本与终端的操作系统版本相同,则将该匹配版本对应的资源文件子目录确定为该类型的目标资源文件子目录。
需要说明的是,资源文件目录下包含多个不同类型的资源文件子目录,每种类型的资源文件子目录也可能存在多个。因此,确定的目标资源文件子目录是每种类型均存在一个目标资源文件子目录。
目标资源文件子目录是终端在运行时实际加载的目录。
例如,假设在res目录中包含了drawable-hdpi-v11子目录、drawable-hdpi-v9、drawable-hdpi-v4子目录、xml-v9子目录、xml-v12子目录以及xml-v13子目录,那么drawable-hdpi-v11子目录、drawable-hdpi-v9和drawable-hdpi-v4子目录均对应的是drawable-hdpi这一类型,xml-v9子目录、xml-v12子目录和xml-v13子目录均对应的是xml这一类型。
若当前终端的操作系统版本为Android 2.3,则drawable-hdpi-v11子目录与当前的操作系统版本不匹配,drawable-hdpi-v4子目录和drawable-hdpi-v9子目录是与当前的操作系统版本相匹配的子目录,xml-v12子目录和xml-v13子目录与当前的操作系统版本不匹配,xml-v9子目录是与当前的操作系统版本相匹配的子目录。
终端确定的目标资源文件子目录具体为:drawable-hdpi类型的目标资源文件子目录为drawable-hdpi-v9子目录,xml类型的目标资源文件子目录为xml-v9子目录。
S209、对每种类型的资源文件子目录,删除高于操作系统版本的匹配版本对应的资源文件子目录。
具体地,对每种类型的资源文件子目录,如果存在多个资源文件子目录,则找出匹配版本高于终端的操作系统版本的资源文件子目录,由于这些资源文件子目录匹配的版本超过了终端当前的操作系统版本,终端在运行过程中不会使用这些资源文件子目录,因此删除高于操作系统版本的匹配版本对应的资源文件子目录,即将满足资源文件子目录的名称中的“数字”大于目标资源文件子目录的名称中的“数字”这一条件的资源文件子目录删除。
继续以步骤S208中的例子进行说明,drawable-hdpi类型中删除drawable-hdpi-v11子目录,xml类型中删除xml-v12子目录和xml-v13子目录。
S210、对每种类型的资源文件子目录,遍历低于终端的操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若目标资源文件子目录未包含该待确认文件,则将该待确认文件复制到目标资源文件子目录中。
具体地,对每种类型的资源文件子目录,如果存在低于终端的操作系统版本的匹配版本对应的资源文件子目录,则遍历低于终端的操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,如果该类型的目标资源文件子目录中没有包含该待确认文件,则将该待确认文件复制到该类型的目标资源文件子目录中。
在对资源文件子目录进行遍历时,可以按照版本由高到低或者由低到高的顺序进行遍历。
继续以步骤S208中的例子进行说明,drawable-hdpi类型中遍历drawable-hdpi-v4子目录中的每个文件,对每个待确认文件判断是否在drawable-hdpi-v9子目录中已经存在,若不存在则将该待确认文件复制到drawable-hdpi-v9子目录中。
S211、对每种类型的资源文件子目录,删除低于操作系统的版本号的匹配版本号对应的资源文件子目录。
具体地,对每种类型的资源文件子目录,如果存在低于终端的操作系统版本的匹配版本对应的资源文件子目录,由于经过步骤S210的处理,这些资源文件子目录中的文件已经全部包含在目标资源文件子目录中,因此可以删除这些资源文件子目录。
继续以步骤S208中的例子进行说明,删除drawable-hdpi-v4子目录。
S212、根据屏幕尺寸和屏幕分辨率,确定实际屏幕密度。
具体地,终端根据屏幕尺寸和屏幕分辨率,确定自身显示屏幕的实际屏幕密度。
屏幕密度(Screen density)指的是屏幕里像素值浓度,通常,Android系统将屏幕密度分为6种,包括low、medium、high、extra-high、extra-extra-high和extra-extra-extra-high,在资源文件子目录名称的“类型”中分别对应ldpi、mdpi、hdpi、xhdpi、xxhdpi和xxxhdpi。例如,屏幕密度为low,则“类型”中使用ldpi,比如drawable-ldpi-v4,屏幕密度为extra-extra-high,则“类型”中使用xxhdpi,比如drawable-xxhdpi-v4。
终端通过计算DPI值确定实际屏幕密度。DPI(dot per inch)表示每英寸像素数,可以反映屏幕的清晰度。DPI的计算的方法一般为屏幕分辨率与屏幕尺寸的比值。例如,分辨率为320×240,物理尺寸为2inch×1.5inch的屏幕,其DPI=320/2=240/1.5=160。分辨率为800*480,屏幕尺寸为3.7英寸的屏幕,其DPI=sqrt(800^2+480^2)÷3.7=252。
S213、对不同屏幕密度类型的目标资源文件子目录,将终端的实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录。
在资源文件目录中,每种屏幕密度类型对应一个目标资源文件子目录,每种屏幕密度类型的目标资源文件子目录中保存的图片文件的分辨率与该屏幕密度相匹配。
具体地,对不同屏幕密度类型的目标资源文件子目录,根据目标资源文件子目录的名称,找到终端的实际屏幕密度对应的目标资源文件子目录,并将该目标资源文件子目录确定为目标图片子目录。
S214、从除目标图片子目录之外的其他目标资源文件子目录中,获取与该目标图片子目录中的目标图片文件不相同的其他图片文件。
具体地,终端将除目标图片子目录之外的其他目标资源文件子目录中的资源与目标图片子目录中的资源进行比对,找出目标图片子目录中没有的资源,即与目标图片子目录中的目标图片文件不相同的其他图片文件。
S215、对其他图片文件进行缩放处理,使得处理后的其他图片文件满足终端的清晰度要求。
具体地,终端对步骤S214获取的其他图片文件进行缩放处理,即按照目标图片子目录对应的屏幕密度对其他图片文件进行缩放处理,目标图片子目录中的目标图片文件满足终端的清晰度要求,因此按照目标图片子目录对应的屏幕密度对其他图片文件进行缩放处理后可以满足终端的清晰度要求。
对其他图片文件的缩放处理可以根据屏幕密度对应的DPI值和系数计算得到。屏幕密度与DPI、系数的对应关系如表二所示。
屏幕密度 | DPI | 系数 |
low | 120 | 0.75 |
medium | 160 | 1 |
high | 240 | 1.5 |
extra-high | 320 | 2.0 |
extra-extra-high | 480 | 3.0 |
extra-extra-extra-high | 640 | 4.0 |
表二
例如,如果目标图片子目录是drawable-xxhdpi-v4子目录,那么在drawable-xhdpi-v4子目录中的其他图片文件就需要进行放大处理,按照屏幕密度与DPI、系数的对应关系,放大后的尺寸=原始图片尺寸×3/2,在drawable-xxxhdpi-v4子目录中的其他图片文件需要进行缩小处理,缩小后的尺寸=原始图片尺寸×2/4。
S216、将处理后的其他图片文件复制到目标图片子目录中。
具体地,终端将步骤S215处理后的其他图片文件复制到目标图片子目录中。
S217、删除目标图片子目录之外的其他目标资源文件子目录。
具体地,终端删除目标图片子目录之外的其他目标资源文件子目录。
S218、根据库文件目录和资源文件目录,生成优化后的应用安装包。
具体地,终端根据步骤S201至步骤S217对库文件目录和资源文件目录进行优化后,生成优化后的应用安装包,并将该优化后的应用安装包安装到终端中。
以新闻客户端的应用安装包为例,通过步骤S201至步骤S217对库文件目录和资源文件目录进行优化后,该应用安装包占用的空间从34M降低到24M,大约节省30%以上的物理存储空间,其中lib目录所占的空间从10.4M降低到3.1M,res目录所占的空间从8M降低到5M。
需要说明的是,本发明实施例的步骤S201至步骤S206与步骤S207至步骤S217之间没有必然的先后顺序,其可以是并列执行的关系,此处不做限制。
从上述图2示例的优化方法可知,本实施例中,一方面,从应用安装包的库文件目录中删除与终端的中央处理器类型无关的库文件,得到目标库文件子目录,并遍历目标库文件子目录下的动态链接库文件,生成每个动态链接库文件对应的目标加密序列,若从预设的动态链接库文件信息汇总表中查找到目标加密序列,则删除该目标加密序列对应的动态链接库文件,若从预设的动态链接库文件信息汇总表中未查找到目标加密序列,则将该目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中,实现了对库文件目录的优化,删除与目标终端不匹配的文件以及冗余的文件,通过对动态链接库文件的优化确保了相同文件在系统中只保存一份,减少安装包占用的空间。另一方面,根据应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个资源文件子目录对应的匹配版本,对每种类型的资源文件子目录,将与终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录,对每种类型的资源文件子目录,删除高于操作系统版本的匹配版本对应的资源文件子目录,遍历低于终端的操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若目标资源文件子目录未包含该待确认文件,则将该待确认文件复制到目标资源文件子目录中,并删除低于操作系统的版本号的匹配版本号对应的资源文件子目录,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录,在减少安装包占用空间的同时,能够真正做到文件不冗余,通过对待确认文件的合并,使得运行过程中不需要在不同的目录查找文件,提高了运行效率。同时,根据屏幕尺寸和屏幕分辨率确定实际屏幕密度,对不同屏幕密度类型的目标资源文件子目录,将终端的实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录,从除目标图片子目录之外的其他目标资源文件子目录中,获取与该目标图片子目录中的目标图片文件不相同的其他图片文件,并对其他图片文件进行缩放处理,使得处理后的其他图片文件满足终端的清晰度要求,然后将处理后的其他图片文件复制到目标图片子目录中,删除除目标图片子目录之外的其他目标资源文件子目录,通过这种对图片文件的预处理的过程,预先将图片尺寸缩放到与终端屏幕密度匹配的大小,使得在运行过程中不需要再进行放大或者缩小的处理,从而在进一步避免文件冗余的同时,极大的提高了应用安装包的运行效率。
实施例三:
请参阅图3,图3是本发明实施例三提供的一种终端示意框图。为了便于说明,仅示出了与本发明实施例相关的部分。图3示例的终端300可以是前述实施例一提供的一种优化方法的执行主体。图3示例的终端300主要包括:第一删除单元31、第二删除单元32、资源文件处理单元33、图片文件处理单元34和生成单元35。各单元详细说明如下:
第一删除单元31,用于从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
第二删除单元32,用于从第一删除单元31得到的目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
资源文件处理单元33,用于从应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
图片文件处理单元34,用于在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
生成单元35,用于根据库文件目录和资源文件目录,生成优化后的应用安装包。
本实施例提供的一种终端300中各单元实现各自功能的过程,具体可参考前述图1所示实施例的描述,此处不再赘述。
从上述图3示例的终端300可知,本实施例中,从应用安装包的库文件目录中删除与终端的中央处理器类型无关的库文件,得到目标库文件子目录,并从该目标库文件子目录中删除在终端中已经保存的动态链接库文件;同时,从在应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录,并在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;然后根据库文件目录和资源文件目录,生成优化后的应用安装包。本发明实施例一方面根据目标终端的硬件和软件属性,删除库文件目录和资源文件目录中与目标终端不相关的文件以及冗余的文件,减少安装包占用的空间,另一方面,通过对资源文件目录中的子目录进行同类合并以及图片文件的预处理,能够进一步避免文件的冗余,同时极大的提高应用安装包的运行效率。
实施例四:
请参阅图4,图4是本发明实施例四提供的一种终端示意框图。为了便于说明,仅示出了与本发明实施例相关的部分。图4示例的终端400可以是前述实施例一提供的一种优化方法的执行主体。图4示例的终端400主要包括:第一删除单元41、第二删除单元42、资源文件处理单元43、图片文件处理单元44和生成单元45。各单元详细说明如下:
第一删除单元41,用于从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
第二删除单元42,用于从第一删除单元41得到的目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
资源文件处理单元43,用于从应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
图片文件处理单元44,用于在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
生成单元45,用于根据库文件目录和资源文件目录,生成优化后的应用安装包。
进一步地,第一删除单元41包括:
获取单元411,用于获取中央处理器类型;
确定单元412,用于在应用安装包的库文件目录中,将中央处理器类型对应的库文件子目录确定为目标库文件子目录;
库文件子目录删除单元413,用于从库文件目录中,删除确定单元412确定的目标库文件子目录之外的其他库文件子目录。
进一步地,第二删除单元42包括:
遍历单元421,用于遍历确定单元412确定的目标库文件子目录下的动态链接库文件,生成每个动态链接库文件对应的目标加密序列;
动态链接库文件删除单元422,用于若从预设的动态链接库文件信息汇总表中查找到遍历单元421生成的目标加密序列,则删除目标加密序列对应的动态链接库文件,其中,动态链接库文件信息汇总表包含每个动态链接库文件的状态信息,状态信息包括动态链接库文件的位置信息、动态链接库文件的加密序列,以及用于表示动态链接库文件的是否被其他应用使用的标识信息;
信息汇总表更新单元423,用于若从预设的动态链接库文件信息汇总表中未查找到遍历单元421生成的目标加密序列,则将目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中。
进一步地,资源文件处理单元43包括:
匹配版本确定单元431,用于根据应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个资源文件子目录对应的匹配版本;
目标资源文件子目录确定单元432,用于对每种类型的资源文件子目录,将与终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录;
第一资源文件子目录删除单元433,用于对每种类型的资源文件子目录,删除高于操作系统版本的匹配版本对应的资源文件子目录;
待确认文件复制单元434,用于对每种类型的资源文件子目录,遍历低于操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若目标资源文件子目未包含该待确认文件,则将该待确认文件复制到目标资源文件子目录中;
第二资源文件子目录删除单元435,用于对每种类型的资源文件子目录,删除低于操作系统版本的匹配版本对应的资源文件子目录。
进一步地,图片文件处理单元44包括:
屏幕密度确定单元441,用于根据屏幕尺寸和屏幕分辨率,确定实际屏幕密度;
目标图片子目录确定单元442,用于对相同类型不同屏幕密度的目标资源文件子目录,将屏幕密度确定单元441确定的实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录;
其他图片文件获取单元443,用于从除目标图片子目录确定单元442确定的目标图片子目录之外的其他目标资源文件子目录中,获取与目标图片子目录中的目标图片文件不相同的其他图片文件;
缩放处理单元444,用于对其他图片文件获取单元443得到的其他图片文件进行缩放处理,使得处理后的其他图片文件满足终端的清晰度要求;
图片文件复制单元445,用于将缩放处理单元444处理后的其他图片文件复制到目标图片子目录中;
资源文件子目录删除单元446,用于删除其他目标资源文件子目录。
本实施例提供的一种终端400中各单元实现各自功能的过程,具体可参考前述图2所示实施例的描述,此处不再赘述。
从上述图4示例的终端400可知,本实施例中,一方面,从应用安装包的库文件目录中删除与终端的中央处理器类型无关的库文件,得到目标库文件子目录,并遍历目标库文件子目录下的动态链接库文件,生成每个动态链接库文件对应的目标加密序列,若从预设的动态链接库文件信息汇总表中查找到目标加密序列,则删除该目标加密序列对应的动态链接库文件,若从预设的动态链接库文件信息汇总表中未查找到目标加密序列,则将该目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中,实现了对库文件目录的优化,删除与目标终端不匹配的文件以及冗余的文件,通过对动态链接库文件的优化确保了相同文件在系统中只保存一份,减少安装包占用的空间。另一方面,根据应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个资源文件子目录对应的匹配版本,对每种类型的资源文件子目录,将与终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录,对每种类型的资源文件子目录,删除高于操作系统版本的匹配版本对应的资源文件子目录,遍历低于终端的操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若目标资源文件子目录未包含该待确认文件,则将该待确认文件复制到目标资源文件子目录中,并删除低于操作系统的版本号的匹配版本号对应的资源文件子目录,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录,在减少安装包占用空间的同时,能够真正做到文件不冗余,通过对待确认文件的合并,使得运行过程中不需要在不同的目录查找文件,提高了运行效率。同时,根据屏幕尺寸和屏幕分辨率确定实际屏幕密度,对不同屏幕密度类型的目标资源文件子目录,将终端的实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录,从除目标图片子目录之外的其他目标资源文件子目录中,获取与该目标图片子目录中的目标图片文件不相同的其他图片文件,并对其他图片文件进行缩放处理,使得处理后的其他图片文件满足终端的清晰度要求,然后将处理后的其他图片文件复制到目标图片子目录中,删除除目标图片子目录之外的其他目标资源文件子目录,通过这种对图片文件的预处理的过程,预先将图片尺寸缩放到与终端屏幕密度匹配的大小,使得在运行过程中不需要再进行放大或者缩小的处理,从而在进一步避免文件冗余的同时,极大的提高了应用安装包的运行效率。
实施例五:
请参阅图5,图5是本发明实施例五提供的一种终端示意框图。如图5所示的本实施例中的终端可以包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器502用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器502存储的程序指令。其中,处理器501被配置用于调用所述程序指令执行:
从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
从目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
从应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
根据库文件目录和资源文件目录,生成优化后的应用安装包。
进一步地,处理器501还用于调用所述程序指令执行:
获取中央处理器类型;
在应用安装包的库文件目录中,将中央处理器类型对应的库文件子目录确定为目标库文件子目录;
从库文件目录中,删除目标库文件子目录之外的其他库文件子目录。
进一步地,处理器501还用于调用所述程序指令执行:
遍历目标库文件子目录下的动态链接库文件,生成每个动态链接库文件对应的目标加密序列;
若从预设的动态链接库文件信息汇总表中查找到目标加密序列,则删除目标加密序列对应的动态链接库文件,其中,动态链接库文件信息汇总表包含每个动态链接库文件的状态信息,状态信息包括动态链接库文件的位置信息、动态链接库文件的加密序列,以及用于表示动态链接库文件的是否被其他应用使用的标识信息;
若从预设的动态链接库文件信息汇总表中未查找到目标加密序列,则将目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中。
进一步地,处理器501还用于调用所述程序指令执行:
根据应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个资源文件子目录对应的匹配版本;
对每种类型的资源文件子目录,将与终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录;
对每种类型的资源文件子目录,删除高于操作系统版本的匹配版本对应的资源文件子目录;
对每种类型的资源文件子目录,遍历低于操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若目标资源文件子目未包含该待确认文件,则将该待确认文件复制到目标资源文件子目录中;
对每种类型的资源文件子目录,删除低于操作系统版本的匹配版本对应的资源文件子目录。
进一步地,处理器501还用于调用所述程序指令执行:
根据屏幕尺寸和屏幕分辨率,确定实际屏幕密度;
对相同类型不同屏幕密度的目标资源文件子目录,将实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录;
从除目标图片子目录之外的其他目标资源文件子目录中,获取与目标图片子目录中的目标图片文件不相同的其他图片文件;
对其他图片文件进行缩放处理,使得处理后的其他图片文件满足终端的清晰度要求;
将处理后的其他图片文件复制到目标图片子目录中;
删除其他目标资源文件子目录。
应当理解,在本发明实施例中,所称处理器501可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备502可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备503可以包括显示器(LCD等)、扬声器等。
该存储器504可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器。例如,存储器504还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器801、输入设备502、输出设备503可执行本发明实施例提供的优化方法的第一实施例和第二实施例中所描述的实现方式,也可执行本发明实施例所描述的终端的实现方式,在此不再赘述。
在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:
从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
从目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
从应用安装包的资源文件目录中,删除与终端的操作系统版本不匹配的资源文件子目录,并对资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
根据库文件目录和资源文件目录,生成优化后的应用安装包。
在应用安装包的库文件目录中,将中央处理器类型对应的库文件子目录确定为目标库文件子目录;
从库文件目录中,删除目标库文件子目录之外的其他库文件子目录。
遍历目标库文件子目录下的动态链接库文件,生成每个动态链接库文件对应的目标加密序列;
若从预设的动态链接库文件信息汇总表中查找到目标加密序列,则删除目标加密序列对应的动态链接库文件,其中,动态链接库文件信息汇总表包含每个动态链接库文件的状态信息,状态信息包括动态链接库文件的位置信息、动态链接库文件的加密序列,以及用于表示动态链接库文件的是否被其他应用使用的标识信息;
若从预设的动态链接库文件信息汇总表中未查找到目标加密序列,则将目标加密序列对应的动态链接库文件的状态信息保存到动态链接库文件信息汇总表中。
根据应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个资源文件子目录对应的匹配版本;
对每种类型的资源文件子目录,将与终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录;
对每种类型的资源文件子目录,删除高于操作系统版本的匹配版本对应的资源文件子目录;
对每种类型的资源文件子目录,遍历低于操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若目标资源文件子目未包含该待确认文件,则将该待确认文件复制到目标资源文件子目录中;
对每种类型的资源文件子目录,删除低于操作系统版本的匹配版本对应的资源文件子目录。
根据屏幕尺寸和屏幕分辨率,确定实际屏幕密度;
对相同类型不同屏幕密度的目标资源文件子目录,将实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录;
从除目标图片子目录之外的其他目标资源文件子目录中,获取与目标图片子目录中的目标图片文件不相同的其他图片文件;
对其他图片文件进行缩放处理,使得处理后的其他图片文件满足终端的清晰度要求;
将处理后的其他图片文件复制到目标图片子目录中;
删除其他目标资源文件子目录。
所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种安装包的优化方法,其特征在于,所述优化方法包括:
从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
从所述目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
从所述应用安装包的资源文件目录中,删除与所述终端的操作系统版本不匹配的资源文件子目录,并对所述资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将所述不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
根据所述库文件目录和所述资源文件目录,生成优化后的应用安装包。
2.根据权利要求1所述的方法,其特征在于,所述从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录包括:
获取中央处理器类型;
在应用安装包的库文件目录中,将所述中央处理器类型对应的库文件子目录确定为目标库文件子目录;
从所述库文件目录中,删除所述目标库文件子目录之外的其他库文件子目录。
3.根据权利要求2所述的方法,其特征在于,所述从所述目标库文件子目录中,删除在终端中已经保存的动态链接库文件包括:
遍历所述目标库文件子目录下的动态链接库文件,生成每个所述动态链接库文件对应的目标加密序列;
若从预设的动态链接库文件信息汇总表中查找到所述目标加密序列,则删除所述目标加密序列对应的动态链接库文件,其中,所述动态链接库文件信息汇总表包含每个所述动态链接库文件的状态信息,所述状态信息包括动态链接库文件的位置信息、动态链接库文件的加密序列,以及用于表示动态链接库文件的是否被其他应用使用的标识信息;
若从预设的动态链接库文件信息汇总表中未查找到所述目标加密序列,则将所述目标加密序列对应的动态链接库文件的状态信息保存到所述动态链接库文件信息汇总表中。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述从所述应用安装包的资源文件目录中,删除与所述终端的操作系统版本不匹配的资源文件子目录,并对所述资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录包括:
根据所述应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个所述资源文件子目录对应的匹配版本;
对每种类型的资源文件子目录,将与所述终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录;
对每种类型的资源文件子目录,删除高于所述操作系统版本的匹配版本对应的资源文件子目录;
对每种类型的资源文件子目录,遍历低于所述操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若所述目标资源文件子目未包含所述待确认文件,则将所述待确认文件复制到所述目标资源文件子目录中;
对每种类型的资源文件子目录,删除低于所述操作系统版本的匹配版本对应的资源文件子目录。
5.根据权利要求4所述的方法,其特征在于,所述在不同屏幕密度类型的目标资源文件子目录中,对存放的不满足所述终端的清晰度要求的图片进行缩放处理后,将所述不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件包括:
根据屏幕尺寸和屏幕分辨率,确定实际屏幕密度;
对相同类型不同屏幕密度的目标资源文件子目录,将所述实际屏幕密度对应的目标资源文件子目录确定为目标图片子目录;
从除所述目标图片子目录之外的其他目标资源文件子目录中,获取与所述目标图片子目录中的目标图片文件不相同的其他图片文件;
对所述其他图片文件进行缩放处理,使得处理后的其他图片文件满足所述终端的清晰度要求;
将所述处理后的其他图片文件复制到所述目标图片子目录中;
删除所述其他目标资源文件子目录。
6.一种终端,其特征在于,所述终端包括:
第一删除单元,用于从应用安装包的库文件目录中,删除与中央处理器类型不匹配的库文件,得到目标库文件子目录;
第二删除单元,用于从所述目标库文件子目录中,删除在终端中已经保存的动态链接库文件;
资源文件处理单元,用于从所述应用安装包的资源文件目录中,删除与所述终端的操作系统版本不匹配的资源文件子目录,并对所述资源文件目录中的其他资源文件子目录进行同类合并,使得每种类型的资源文件子目录分别保留一个目标资源文件子目录;
图片文件处理单元,用于在不同屏幕密度类型的目标资源文件子目录中,对保存的不满足所述终端的清晰度要求的图片进行缩放处理后,将所述不同屏幕密度类型的目标资源文件子目录进行合并,删除重复的文件;
生成单元,用于根据所述库文件目录和所述资源文件目录,生成优化后的应用安装包。
7.根据权利要求6所述的终端,其特征在于,所述第二删除单元包括:
遍历单元,用于遍历所述目标库文件子目录下的动态链接库文件,生成每个所述动态链接库文件对应的目标加密序列;
动态链接库文件删除单元,用于若从预设的动态链接库文件信息汇总表中查找到所述目标加密序列,则删除所述目标加密序列对应的动态链接库文件,其中,所述动态链接库文件信息汇总表包含每个所述动态链接库文件的状态信息,所述状态信息包括动态链接库文件的位置信息、动态链接库文件的加密序列,以及用于表示动态链接库文件的是否被其他应用使用的标识信息;
信息汇总表更新单元,用于若从预设的动态链接库文件信息汇总表中未查找到所述目标加密序列,则将所述目标加密序列对应的动态链接库文件的状态信息保存到所述动态链接库文件信息汇总表中。
8.根据权利要求6或7所述的终端,其特征在于,所述资源文件处理单元包括:
匹配版本确定单元,用于根据所述应用安装包的资源文件目录包含的资源文件子目录的名称,确定每个所述资源文件子目录对应的匹配版本;
目标资源文件子目录确定单元,用于对每种类型的资源文件子目录,将与所述终端的操作系统版本相同的匹配版本对应的资源文件子目录确定为目标资源文件子目录;
第一资源文件子目录删除单元,用于对每种类型的资源文件子目录,删除高于所述操作系统版本的匹配版本对应的资源文件子目录;
待确认文件复制单元,用于对每种类型的资源文件子目录,遍历低于所述操作系统版本的匹配版本对应的资源文件子目录中的每个待确认文件,若所述目标资源文件子目未包含所述待确认文件,则将所述待确认文件复制到所述目标资源文件子目录中;
第二资源文件子目录删除单元,用于对每种类型的资源文件子目录,删除低于所述操作系统版本的匹配版本对应的资源文件子目录。
9.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-5任一项的所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项的所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710483236.9A CN107368536A (zh) | 2017-06-22 | 2017-06-22 | 一种安装包的优化方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710483236.9A CN107368536A (zh) | 2017-06-22 | 2017-06-22 | 一种安装包的优化方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368536A true CN107368536A (zh) | 2017-11-21 |
Family
ID=60305693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710483236.9A Pending CN107368536A (zh) | 2017-06-22 | 2017-06-22 | 一种安装包的优化方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368536A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108089865A (zh) * | 2017-12-04 | 2018-05-29 | 北京小米移动软件有限公司 | 应用裁剪方法、装置及存储介质 |
CN108415708A (zh) * | 2018-01-19 | 2018-08-17 | 五八有限公司 | 应用程序安装包大小的处理方法、装置、设备和存储介质 |
CN108804314A (zh) * | 2018-05-23 | 2018-11-13 | 北京五八信息技术有限公司 | 安装包测试方法、装置、设备及计算机可读存储介质 |
CN108804688A (zh) * | 2018-06-14 | 2018-11-13 | 珠海金山网络游戏科技有限公司 | 一种游戏资源引用关系的查找以及优化方法 |
CN109240934A (zh) * | 2018-09-29 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 应用程序性能测试方法、装置、及计算机可读存储介质 |
CN109491664A (zh) * | 2018-11-08 | 2019-03-19 | 腾讯科技(深圳)有限公司 | iOS应用程序的生成方法、装置、设备及存储介质 |
CN109510825A (zh) * | 2018-11-13 | 2019-03-22 | 许昌许继软件技术有限公司 | 动态库加密方法和装置及动态库防劫持方法和装置 |
CN109543062A (zh) * | 2018-09-29 | 2019-03-29 | 中国平安人寿保险股份有限公司 | 图像处理方法、系统、计算机装置及可读存储介质 |
CN110659081A (zh) * | 2019-09-10 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 用于程序对象的文件处理方法、装置及电子设备 |
CN110765394A (zh) * | 2019-09-20 | 2020-02-07 | 中国平安人寿保险股份有限公司 | so文件加载方法、装置、存储介质及终端设备 |
CN111290738A (zh) * | 2020-01-21 | 2020-06-16 | 北京字节跳动网络技术有限公司 | 应用程序的资源处理方法、装置、设备及存储介质 |
CN114116624A (zh) * | 2021-11-29 | 2022-03-01 | 武汉联影智融医疗科技有限公司 | 图片资源处理方法、电子装置和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023849A (zh) * | 2009-09-22 | 2011-04-20 | 北京搜狗科技发展有限公司 | 一种多平台多分辨率应用程序界面的处理方法和装置 |
CN103077059A (zh) * | 2013-01-07 | 2013-05-01 | 北京播思软件技术有限公司 | 判断应用程序是否匹配的方法 |
CN103955375A (zh) * | 2014-05-21 | 2014-07-30 | 北京安兔兔科技有限公司 | 一种应用安装文件的生成方法、应用的启动方法及装置 |
CN105915623A (zh) * | 2016-05-20 | 2016-08-31 | 努比亚技术有限公司 | 应用安装包处理装置及方法 |
CN106843974A (zh) * | 2017-01-24 | 2017-06-13 | 广东欧珀移动通信有限公司 | Apk的安装方法、装置及终端 |
CN106843880A (zh) * | 2017-01-20 | 2017-06-13 | 广东欧珀移动通信有限公司 | Android安装包APK的定制方法、装置及服务器 |
-
2017
- 2017-06-22 CN CN201710483236.9A patent/CN107368536A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023849A (zh) * | 2009-09-22 | 2011-04-20 | 北京搜狗科技发展有限公司 | 一种多平台多分辨率应用程序界面的处理方法和装置 |
CN103077059A (zh) * | 2013-01-07 | 2013-05-01 | 北京播思软件技术有限公司 | 判断应用程序是否匹配的方法 |
CN103955375A (zh) * | 2014-05-21 | 2014-07-30 | 北京安兔兔科技有限公司 | 一种应用安装文件的生成方法、应用的启动方法及装置 |
CN105915623A (zh) * | 2016-05-20 | 2016-08-31 | 努比亚技术有限公司 | 应用安装包处理装置及方法 |
CN106843880A (zh) * | 2017-01-20 | 2017-06-13 | 广东欧珀移动通信有限公司 | Android安装包APK的定制方法、装置及服务器 |
CN106843974A (zh) * | 2017-01-24 | 2017-06-13 | 广东欧珀移动通信有限公司 | Apk的安装方法、装置及终端 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108089865A (zh) * | 2017-12-04 | 2018-05-29 | 北京小米移动软件有限公司 | 应用裁剪方法、装置及存储介质 |
CN108415708B (zh) * | 2018-01-19 | 2021-07-20 | 五八有限公司 | 应用程序安装包大小的处理方法、装置、设备和存储介质 |
CN108415708A (zh) * | 2018-01-19 | 2018-08-17 | 五八有限公司 | 应用程序安装包大小的处理方法、装置、设备和存储介质 |
CN108804314A (zh) * | 2018-05-23 | 2018-11-13 | 北京五八信息技术有限公司 | 安装包测试方法、装置、设备及计算机可读存储介质 |
CN108804688A (zh) * | 2018-06-14 | 2018-11-13 | 珠海金山网络游戏科技有限公司 | 一种游戏资源引用关系的查找以及优化方法 |
CN109240934A (zh) * | 2018-09-29 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 应用程序性能测试方法、装置、及计算机可读存储介质 |
CN109543062A (zh) * | 2018-09-29 | 2019-03-29 | 中国平安人寿保险股份有限公司 | 图像处理方法、系统、计算机装置及可读存储介质 |
CN109240934B (zh) * | 2018-09-29 | 2023-05-26 | 中国平安人寿保险股份有限公司 | 应用程序性能测试方法、装置、及计算机可读存储介质 |
CN109491664A (zh) * | 2018-11-08 | 2019-03-19 | 腾讯科技(深圳)有限公司 | iOS应用程序的生成方法、装置、设备及存储介质 |
CN109510825A (zh) * | 2018-11-13 | 2019-03-22 | 许昌许继软件技术有限公司 | 动态库加密方法和装置及动态库防劫持方法和装置 |
CN110659081B (zh) * | 2019-09-10 | 2022-12-27 | 北京达佳互联信息技术有限公司 | 用于程序对象的文件处理方法、装置及电子设备 |
CN110659081A (zh) * | 2019-09-10 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 用于程序对象的文件处理方法、装置及电子设备 |
CN110765394A (zh) * | 2019-09-20 | 2020-02-07 | 中国平安人寿保险股份有限公司 | so文件加载方法、装置、存储介质及终端设备 |
CN111290738A (zh) * | 2020-01-21 | 2020-06-16 | 北京字节跳动网络技术有限公司 | 应用程序的资源处理方法、装置、设备及存储介质 |
CN114116624A (zh) * | 2021-11-29 | 2022-03-01 | 武汉联影智融医疗科技有限公司 | 图片资源处理方法、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368536A (zh) | 一种安装包的优化方法及终端 | |
JP7158482B2 (ja) | クライアント同期における違反の解決のための方法、コンピュータ可読媒体、及びシステム | |
CN110447035B (zh) | 结构化用户数据文件中用户内容模糊 | |
CN117195307A (zh) | 针对隐私敏感用户内容的可配置注释 | |
CN109804361B (zh) | 计算系统中的文件同步 | |
US8650166B1 (en) | Systems and methods for classifying files | |
MX2010011958A (es) | Sincronizacion de documento a traves de protocolos sin estado. | |
JP2022549983A (ja) | コンテキスト付きのコンテンツ・アイテム共有 | |
CN108717516A (zh) | 文件标签方法、终端及介质 | |
CN106484779B (zh) | 文件操作方法及装置 | |
CN107408239B (zh) | 通过多个邮箱在通信应用中进行海量数据管理的架构 | |
JP6193406B2 (ja) | 差分符号化のためのシリアライゼーション | |
US9111015B1 (en) | System and method for generating a point-in-time copy of a subset of a collectively-managed set of data items | |
CN104285221A (zh) | 对跨各内容源的内容的高效原地保留 | |
CN113535650A (zh) | 一种文件命名方法及计算设备 | |
US20180074867A1 (en) | Provide copy of notebook document | |
WO2023006024A1 (zh) | 图像处理方法、装置、电子设备及可读存储介质 | |
JP2018173714A (ja) | 共有装置、共有システム、共有方法、および共有プログラム | |
KR100681117B1 (ko) | 멀티 데이터베이스 어플리케이션의 이동 유연성을 확대하기 위한 데이터베이스 사용 제어 방법 | |
CN117171100A (zh) | 基于虚拟文件系统的小文件动态聚合方法、装置及可读介质 | |
CN113360494A (zh) | 一种宽表数据的生成方法、更新方法和相关装置 | |
CN115374114A (zh) | 数据维护的方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20210122 |