安装包的共享函数库文件处理方法及装置与流程

文档序号:12596352阅读:270来源:国知局
安装包的共享函数库文件处理方法及装置与流程

本发明涉及移动终端技术领域,尤其涉及安装包的共享函数库文件处理方法及装置。



背景技术:

随着移动智能终端的快速发展,智能终端中应用软件也越来越多,应用软件的安装通常需通过网络下载相应的安装包。但是随着应用软件的功能越来越多,安装包也在不断的升级,从而使得安装包越来越大,进而导致传输过程中产生的流量加大,浪费网络传输流量资源。

在安卓操作系统中,安装包为apk安装包,在通过安卓编译平台对应应用程序编译时,通常采用预置编译处理工具对资源文件进行编译处理,以得到apk安装包。该资源文件中包括共享函数库文件,现有技术中对共享函数库文件的压缩处理过程通常是调用安卓编译平台内置默认的Deflate算法,但是受到Deflate算法的限制,共享函数库文件压缩后的压缩包较大,导致最终得到的apk安装包较大。



技术实现要素:

本发明实施例的主要目的是提供一种安装包的共享函数库文件处理方法及装置,旨在减小安装包的大小。

为实现上述目的,本发明实施例提供了一种安装包的共享函数库文件处理方法,所述安装包的共享函数库文件处理方法包括以下步骤:

获取预置编译平台生成的安装包中共享函数库文件对应的初始压缩包;

解压所述初始压缩包得到共享函数库文件;

调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;

将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。

进一步地,本发明实施例还提供了一种安装包的共享函数库文件处理装置,所述安装包的共享函数库文件处理装置包括:

获取模块,用于获取预置编译平台生成的安装包中共享函数库文件对应的初始压缩包;

第一解压模块,用于解压所述初始压缩包得到共享函数库文件;

压缩模块,用于调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;

处理模块,用于将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。

本发明实施例通过在编译平台生成的安装包后,获取安装包内共享函数库文件对应的初始压缩包,然后解压所述初始压缩包得到共享函数库文件;并调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;最后将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。从而可以有效减小共享函数库文件对应压缩包的占用空间大小,因此减小了安装包的大小,进而减少传输过程中产生的流量,节省网络传输流量资源。

附图说明

图1是本发明安装包的共享函数库文件处理装置第一实施例的硬件架构示意图;

图2是本发明安装包的共享函数库文件处理装置第二实施例的功能模块示意图;

图3是本发明安装包的共享函数库文件处理装置第三实施例的功能模块示意图;

图4是本发明安装包的共享函数库文件处理装置第四实施例的功能模块示意图;

图5是本发明安装包的共享函数库文件处理方法第一实施例的流程示意图;

图6是本发明安装包的共享函数库文件处理方法第二实施例的流程示意图;

图7是本发明安装包的共享函数库文件处理方法第三实施例的流程示意图;

图8是本发明安装包的共享函数库文件处理方法第四实施例的流程示意图;

图9是本发明安装包的共享函数库文件处理方法第五实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,提出本发明安装包的共享函数库文件处理装置第一实施例。该实施例中,该安装包的共享函数库文件处理装置包括:处理器111、存储器112、用户接口113、网络接口114及通信总线115。通信总线115用于数据服务器中各组成部件之间的通信,用户接口113用于接收用户输入的信息,该用户接口可以为有线接口及无线接口,例如键盘、鼠标等。网络接口114用于数据服务器与外部进行互相通信,该网络接口114也可以包括有线接口及无线接口。存储器112可以包括一个或一个以上计算机可读存储介质,而且其不但包括内部存储器,还包括外部存储器。该存储器中存储有操作系统及文件处理应用程序等等。处理器111用于调用存储器112中的文件处理应用程序,以执行以下操作:

获取预置编译平台生成的安装包中共享函数库文件对应的初始压缩包;

解压所述初始压缩包得到共享函数库文件;

调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;

将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。

进一步地,处理器111还用于调用存储器112中的文件处理应用程序,以执行以下操作:

对包含所述目标压缩包的安装包进行签名处理。

进一步地,处理器111还用于调用存储器112中的文件处理应用程序,以执行以下操作:

下载安装所述签名处理后的安装包后,判断是否接收到加载共享函数库请求;

当接收到加载共享函数请求时,判断共享函数库文件是否已经被解压;

若是,则在所述共享函数库文件中加载对应的共享函数库;

若否,则调用所述预置压缩工具从预置位置对所述目标压缩包进行解压处理,并将解压获得的共享函数库文件储存至预置路径下。

进一步地,处理器111还用于调用存储器112中的文件处理应用程序,以执行以下操作:

调用预置压缩工具将所有共享函数库文件压缩形成一目标压缩包。

进一步地,处理器111还用于调用存储器112中的文件处理应用程序,以执行以下操作:

调用预置压缩工具将所有共享函数库文件压缩,以使共享函数库文件对应形成一目标压缩包。

本发明实施例通过在编译平台生成的安装包后,获取安装包内共享函数库文件对应的初始压缩包,然后解压所述初始压缩包得到共享函数库文件;并调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;最后将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。从而可以有效减小共享函数库文件对应压缩包的占用空间大小,因此减小了安装包的大小,进而减少传输过程中产生的流量,节省网络传输流量资源。

进一步地,参照图2,在本发明安装包的共享函数库文件处理装置第二实施例中,该安装包的共享函数库文件处理装置包括:

获取模块10,用于获取预置编译平台生成的安装包中共享函数库文件对应的初始压缩包;

本发明实施例提供的安装包的共享函数库文件处理装置主要应用于安卓操作系统中,用于对应用程序编译流程进行控制,以生成安装包。本实施例中,该安装包是指apk安装包。上述预置编译平台为Android编译平台,在Android编译平台中通过aapt对资源文件进行编译形成二进制文件,当所有的 资源文件编译完成后将打包形成apk安装包。当应用程序有共享函数库文件(即so文件)的情况下,通常采用Android编译平台内置默认的Deflate算法压缩共享函数库文件,并将共享函数库文件压缩后存储在apk安装包的libs中。本实施例中,上述初始压缩包为apk安装包的libs中共享函数库文件通过Deflate算法压缩得到的压缩文件。

第一解压模块20,用于解压所述初始压缩包得到共享函数库文件;

当获取到上述apk安装包的libs中存在初始压缩包时,可以通过对应的压缩工具对初始压缩包进行解压,以还原共享函数库文件。具体地,本实施例中,上述对应的压缩工具具体地压缩算法可以根据实际需要进行设置,在此不做进一步地限定。例如,可以采用Deflate算法,具体地,该7-Zip压缩工具应用了LZMA(Lempel-Ziv-Markov chain-Algorithm)算法,该LZMA算法是Deflate算法和LZ77算法改良和优化后的压缩算法。在其他实施例中,还可以直接采用Deflate算法对初始压缩包进行解压处理,以得到共享函数库文件。

压缩模块30,用于调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;

本实施例中,该预置压缩工具的形式可以根据实际实际需要进行设置,但该预置压缩工具的压缩比要大于上述Deflate算法的压缩比。该压缩比是指压缩前与压缩后的文件所占的磁盘空间比值,其中压缩比越大,压缩效果越好,压缩后的体积越小。即在本实施例中,通过上述预置压缩工具压缩后的目标压缩包小于上述初始压缩包。优选地,该预置压缩工具可以为7-Zip压缩工具,该7-Zip压缩工具中应用了LZMA算法。

处理模块40,用于将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。

本实施例中,上述预置位置的路径可以根据实际需要进行设置,例如,优选地,可以放在apk安装包的assets目录下。具体地,可以在压缩的过程中对是否压缩成功进行判断,当压缩出错时,则不进行压缩包替换,当成功压缩得到上述目标压缩包时,则将目标压缩包储存至apk安装包的assets目录下,然后删除初始压缩包。由于在本实施例中,在将目标压缩包储存至所述安装包的预置位置后,删除初始压缩包,从而有效保证了安装包的完整性,防止了由于在压缩得到目标压缩包时发生错误,影响后续安装该apk安装包时无法 正常加载共享函数。

本发明实施例通过在编译平台生成的安装包后,获取安装包内共享函数库文件对应的初始压缩包,然后解压所述初始压缩包得到共享函数库文件;并调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;最后将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。从而可以有效减小共享函数库文件对应压缩包的占用空间大小,因此减小了安装包的大小,进而减少传输过程中产生的流量,节省网络传输流量资源。

进一步地,参照图3,基于本发明安装包的共享函数库文件处理装置第二实施例,在本发明安装包的共享函数库文件处理装置第三实施例中,上述安装包的共享函数库文件处理装置还包括:

签名模块50,用于对包含所述目标压缩包的安装包进行签名处理。

本实施例中,在通过上述编译平台编译生成的安装包为Android Package(.apk)文件,该文件需要进行通过jarsigner进行签名处理后得到相应的signer.apk文件时,才能被正常安装使用。应当说明的是,对包含所述目标压缩包的安装包的签名处理方式和流程均可参照现有apk安装包的签名处理方式和流程,在此不再赘述。

进一步地,参照图4,基于本发明安装包的共享函数库文件处理装置第三实施例,在本发明安装包的共享函数库文件处理装置第四实施例中,上述安装包的共享函数库文件处理装置还包括:

第一判断模块60,用于下载安装所述签名处理后的安装包后,判断是否接收到加载共享函数库请求;

第二判断模块70,用于当接收到加载共享函数请求时,判断共享函数库文件是否已经被解压;

加载模块80,用于当共享函数库文件已经被解压时,在所述共享函数库文件中加载对应的共享函数库;

第二解压模块90,用于当共享函数库文件未被解压时,调用所述预置压缩工具从预置位置对所述目标压缩包进行解压处理,并将解压获得的共享函数库文件储存至预置路径下。

本实施例中,未签名的上述apk安装包经过签名处理后得到可以正常安装使用的apk安装包。当用户在下载安装apk安装包后,可以直接运行该apk安装包对应的应用程序,该应用程序要加载某个共享函数库a.so时,将生成加载共享函数请求到应用程序管理服务器,以开启进程加载对应的共享函数库a.so。当应用程序管理服务器接收到该加载共享函数请求时,将首先判断该加载共享函数请求对应的共享函数库a.so是否被解压出来,当该加载共享函数请求对应的共享函数库a.so已经被解压出来,则可以直接加载共享函数库a.so;当该加载共享函数请求对应的共享函数库a.so还未被解压出来,则可以调用上述预置压缩工具对共享函数库a.so进行解压,储存到android设备的指定路径上。

本实施例中,由于将共享函数库的解压与安装包的解压分开不同时段处理,从而将两者的解压时间打散,减少了apk安装包的安装时间。

可以理解的是,上述判断共享函数库文件是否已经被解压的判断方式可以根据实际需要进行设置,例如可以查询在android设备的指定路径上是否存在共享函数库,也可以查询在android设备的指定路径上是否存在共享函数请求对应的共享函数库a.so,在此不做进一步地限定。

可以理解的是,上述对解压后得到的共享函数库文件进行压缩时,压缩得到的目标压缩包数量可以根据实际需要进行设置。例如可以将所有的共享函数库文件放在一起压缩得到一个目标压缩包;还可以单独对每一个共享函数库文件进行压缩,以得到多个目标压缩包。以下将以两个不同的方式进行详细说明。

具体地,基于本发明安装包的共享函数库文件处理装置第二实施例、第三实施例和第四实施例,在本发明安装包的共享函数库文件处理装置第五实施例中,上述压缩模块30具体用于,调用预置压缩工具将所有共享函数库文件压缩形成一目标压缩包。

例如,当解压上述初始压缩包得到5个不同的共享函数库文件,可以将该5个不同的共享函数库文件暂存到预置文件夹下,然后通过调用上述7-Zip压缩工具对该预置文件夹进行压缩处理,以得到一个目标压缩包。由于在本实施例中,采用一个目标压缩包打包所有的共享函数库文件,因此在后续安装 apk安装后,仅需要通过7-Zip压缩工具进行一次解压操作即可。即在运行应用程序后首次加载共享函数库时,将会将所有的共享函数库文件解压出来。防止了后续运行应用程序时,需要解压共享函数库文件,需要等待压缩延时,从而用户的体验。

进一步地,基于本发明安装包的共享函数库文件处理装置第二实施例、第三实施例和第四实施例,在本发明安装包的共享函数库文件处理装置第六实施例中,上述压缩模块30具体用于,调用预置压缩工具将所有共享函数库文件压缩,以使共享函数库文件对应形成一目标压缩包。

本发明安装包的共享函数库文件处理装置第六实施例与本发明安装包的共享函数库文件处理装置第五实施例的区别仅在于,本实施例中通过上述7-Zip压缩工具压缩共享函数库文件得到的目标压缩包为多个。例如,当解压上述初始压缩包得到5个不同的共享函数库文件,可以将该5个不同的共享函数库文件暂存到预置文件夹下,然后通过调用上述7-Zip压缩工具对该每一个共享函数库文件进行单独压缩处理,以使每一个共享函数库文件对应压缩得到一个目标压缩包。由于在本实施例中,采用一个目标压缩包打包所有的共享函数库文件,因此在后续安装apk安装后,可以通过7-Zip压缩工具分时解压。即在运行应用程序后,仅解压需要加载的共享函数库文件,从而有效降低了空间的占用率。

本发明提出了一种安装包的共享函数库文件处理方法。参照图5,在本发明安装包的共享函数库文件处理方法第一实施例中,该安装包的共享函数库文件处理方法包括以下步骤:

步骤S10,获取预置编译平台生成的安装包中共享函数库文件对应的初始压缩包;

本发明实施例提供的安装包的共享函数库文件处理方法主要应用于安卓操作系统中,用于对应用程序编译流程进行控制,以生成安装包。本实施例中,该安装包是指apk安装包。上述预置编译平台为Android编译平台,在Android编译平台中通过aapt对资源文件进行编译形成二进制文件,当所有的资源文件编译完成后将打包形成apk安装包。当应用程序有共享函数库文件 (即so文件)的情况下,通常采用Android编译平台内置默认的Deflate算法压缩共享函数库文件,并将共享函数库文件压缩后存储在apk安装包的libs中。本实施例中,上述初始压缩包为apk安装包的libs中共享函数库文件通过Deflate算法压缩得到的压缩文件。

步骤S20,解压所述初始压缩包得到共享函数库文件;

当获取到上述apk安装包的libs中存在初始压缩包时,可以通过对应的压缩工具对初始压缩包进行解压,以还原共享函数库文件。具体地,本实施例中,上述对应的压缩工具具体地压缩算法可以根据实际需要进行设置,在此不做进一步地限定。例如,可以采用Deflate算法,具体地,该7-Zip压缩工具应用了LZMA(Lempel-Ziv-Markov chain-Algorithm)算法,该LZMA算法是Deflate算法和LZ77算法改良和优化后的压缩算法。在其他实施例中,还可以直接采用Deflate算法对初始压缩包进行解压处理,以得到共享函数库文件。

步骤S30,调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;

本实施例中,该预置压缩工具的形式可以根据实际实际需要进行设置,但该预置压缩工具的压缩比要大于上述Deflate算法的压缩比。该压缩比是指压缩前与压缩后的文件所占的磁盘空间比值,其中压缩比越大,压缩效果越好,压缩后的体积越小。即在本实施例中,通过上述预置压缩工具压缩后的目标压缩包小于上述初始压缩包。优选地,该预置压缩工具可以为7-Zip压缩工具,该7-Zip压缩工具中应用了LZMA算法。

步骤S40,将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。

本实施例中,上述预置位置的路径可以根据实际需要进行设置,例如,优选地,可以放在apk安装包的assets目录下。具体地,可以在压缩的过程中对是否压缩成功进行判断,当压缩出错时,则不进行压缩包替换,当成功压缩得到上述目标压缩包时,则将目标压缩包储存至apk安装包的assets目录下,然后删除初始压缩包。由于在本实施例中,在将目标压缩包储存至所述安装包的预置位置后,删除初始压缩包,从而有效保证了安装包的完整性,防止了由于在压缩得到目标压缩包时发生错误,影响后续安装该apk安装包时无法正常加载共享函数。

本发明实施例通过在编译平台生成的安装包后,获取安装包内共享函数库文件对应的初始压缩包,然后解压所述初始压缩包得到共享函数库文件;并调用预置压缩工具对所述共享函数库文件进行压缩得到目标压缩包;最后将所述目标压缩包储存至所述安装包的预置位置,删除所述初始压缩包。从而可以有效减小共享函数库文件对应压缩包的占用空间大小,因此减小了安装包的大小,进而减少传输过程中产生的流量,节省网络传输流量资源。

进一步地,参照图6,基于本发明安装包的共享函数库文件处理方法第一实施例,在本发明安装包的共享函数库文件处理方法第二实施例中,上述步骤S40之后还包括:

步骤S50,对包含所述目标压缩包的安装包进行签名处理。

本实施例中,在通过上述编译平台编译生成的安装包为Android Package(.apk)文件,该文件需要进行通过jarsigner进行签名处理后得到相应的signer.apk文件时,才能被正常安装使用。应当说明的是,对包含所述目标压缩包的安装包的签名处理方式和流程均可参照现有apk安装包的签名处理方式和流程,在此不再赘述。

进一步地,参照图7,基于本发明安装包的共享函数库文件处理方法第二实施例,在本发明安装包的共享函数库文件处理方法第三实施例中,上述步骤S50之后还包括:

步骤S60,下载安装所述签名处理后的安装包后,判断是否接收到加载共享函数库请求;若是,则执行步骤S70;若否,则结束。

步骤S70,当接收到加载共享函数请求时,判断共享函数库文件是否已经被解压;若是则执行步骤S80,若否,则在执行完上述步骤S90之后转入执行步骤S80;

步骤S80,在所述共享函数库文件中加载对应的共享函数库;

步骤S90,调用所述预置压缩工具从预置位置对所述目标压缩包进行解压处理,并将解压获得的共享函数库文件储存至预置路径下。

本实施例中,未签名的上述apk安装包经过签名处理后得到可以正常安装使用的apk安装包。当用户在下载安装apk安装包后,可以直接运行该apk安装 包对应的应用程序,该应用程序要加载某个共享函数库a.so时,将生成加载共享函数请求到应用程序管理服务器,以开启进程加载对应的共享函数库a.so。当应用程序管理服务器接收到该加载共享函数请求时,将首先判断该加载共享函数请求对应的共享函数库a.so是否被解压出来,当该加载共享函数请求对应的共享函数库a.so已经被解压出来,则可以直接加载共享函数库a.so;当该加载共享函数请求对应的共享函数库a.so还未被解压出来,则可以调用上述预置压缩工具对共享函数库a.so进行解压,储存到android设备的指定路径上。

本实施例中,由于将共享函数库的解压与安装包的解压分开不同时段处理,从而将两者的解压时间打散,减少了apk安装包的安装时间。

可以理解的是,上述判断共享函数库文件是否已经被解压的判断方式可以根据实际需要进行设置,例如可以查询在android设备的指定路径上是否存在共享函数库,也可以查询在android设备的指定路径上是否存在共享函数请求对应的共享函数库a.so,在此不做进一步地限定。

可以理解的是,上述对解压后得到的共享函数库文件进行压缩时,压缩得到的目标压缩包数量可以根据实际需要进行设置。例如可以将所有的共享函数库文件放在一起压缩得到一个目标压缩包;还可以单独对每一个共享函数库文件进行压缩,以得到多个目标压缩包。以下将以两个不同的方式进行详细说明。

具体地,参照图8,基于本发明安装包的共享函数库文件处理方法第一实施例、第二实施例和第三实施例,在本发明安装包的共享函数库文件处理方法第四实施例中,上述步骤S30包括:

调用预置压缩工具将所有共享函数库文件压缩形成一目标压缩包。

例如,当解压上述初始压缩包得到5个不同的共享函数库文件,可以将该5个不同的共享函数库文件暂存到预置文件夹下,然后通过调用上述7-Zip压缩工具对该预置文件夹进行压缩处理,以得到一个目标压缩包。由于在本实施例中,采用一个目标压缩包打包所有的共享函数库文件,因此在后续安装apk安装后,仅需要通过7-Zip压缩工具进行一次解压操作即可。即在运行应用程序后首次加载共享函数库时,将会将所有的共享函数库文件解压出来。 防止了后续运行应用程序时,需要解压共享函数库文件,需要等待压缩延时,从而用户的体验。

进一步地,参照图9,基于本发明安装包的共享函数库文件处理方法第一实施例、第二实施例和第三实施例,在本发明安装包的共享函数库文件处理方法第五实施例中,上述步骤S30包括:

调用预置压缩工具将所有共享函数库文件压缩,以使共享函数库文件对应形成一目标压缩包。

本发明安装包的共享函数库文件处理方法第五实施例与本发明安装包的共享函数库文件处理方法第四实施例的区别仅在于,本实施例中通过上述7-Zip压缩工具压缩共享函数库文件得到的目标压缩包为多个。例如,当解压上述初始压缩包得到5个不同的共享函数库文件,可以将该5个不同的共享函数库文件暂存到预置文件夹下,然后通过调用上述7-Zip压缩工具对该每一个共享函数库文件进行单独压缩处理,以使每一个共享函数库文件对应压缩得到一个目标压缩包。由于在本实施例中,采用一个目标压缩包打包所有的共享函数库文件,因此在后续安装apk安装后,可以通过7-Zip压缩工具分时解压。即在运行应用程序后,仅解压需要加载的共享函数库文件,从而有效降低了空间的占用率。

以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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