本发明涉及apk安装技术领域,尤其涉及一种apk安装方法及系统。
背景技术:
各大机构采购android设备时,对android系统的性能要求很多,也很高。比如,安装apk应用时,速度越快,投标时评分越高。现有的apk应用安装过程比较复杂,也有多种优化方式,这里简化成验签和安装两大步,无论是验签还是先安装,也无法提升速度,比较耗时,一般都是磁盘的写入耗时更长,磁盘的写入速度远远小于cpu计算速度,长时间浪费cpu能力,显然不合理。
技术实现要素:
本发明要解决的技术问题在于,针对现有技术的缺陷,提供一种apk安装方法及系统。
本发明解决其技术问题所采用的技术方案是:构造一种apk安装方法,包括以下步骤:
s1:安装开始,通过校验函数对apk的机构数字证书进行机构验证;
s2:若机构验证成功,则并发启动安装线程以将apk分解后的原始数据写入磁盘中,以及启动验签线程以通过所述校验函数对apk的原始数据签名进行签名验证。
优选地,在本发明所述的apk安装方法中,所述机构数字证书为sgn;所述原始数据签名为哈希签名。
优选地,在本发明所述的apk安装方法中,所述步骤s2包括:若机构验证成功,则强制所述校验函数输出签名验证结果为真,以触发并发启动所述安装线程和所述验签线程。
优选地,在本发明所述的apk安装方法中,所述步骤s2还包括:若机构验证失败,则启动中止安装线程,结束安装。
优选地,在本发明所述的apk安装方法中,所述方法还包括s3:若签名验证成功,则完成安装。
优选地,在本发明所述的apk安装方法中,所述方法还包括s4:若签名验证失败,则启动中止安装线程,卸载已安装部分,结束安装。
本发明还构造了一种apk安装系统,包括:
机构验证模块,用于安装开始时,通过校验函数对apk的机构数字证书进行机构验证;
线程并发模块,用于机构验证成功时,并发启动安装线程和验签线程;
验签线程,用于通过所述校验函数对apk的原始数据签名进行签名验证;
安装线程,用于将apk分解后的原始数据写入磁盘中。
优选地,在本发明所述的apk安装系统中,所述机构数字证书为sgn;所述原始数据签名为哈希签名。
优选地,在本发明所述的apk安装系统中,所述机构验证成功时,并发启动安装线程和验签线程,包括:
机构验证成功时,强制所述校验函数输出签名验证结果为真,以触发并发启动安装线程和验签线程。
优选地,在本发明所述的apk安装系统中,所述系统还包括:中止安装模块和中止安装线程;
所述中止安装模块用于机构验证失败时,启动中止安装线程,结束安装;或用于签名验证失败时,启动中止安装线程,卸载已安装部分,结束安装。
通过实施本发明,具有以下有益效果:
本发明在安装开始时,通过校验函数对apk的机构数字证书进行机构验证,若机构验证成功,则并发启动安装线程以将apk分解后的原始数据写入磁盘中,以及启动验签线程以通过校验函数对apk的原始数据签名进行签名验证,从而提升了验签和安装两个阶段各自的速度,提升安装速度20%~40%,并且apk越大,节省的时间越多。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明安装线程的流程图;
图2是本发明并发验签线程的流程图;
图3是本发明中止安装线程的流程图;
图4是本发明apk安装系统的模块框图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
需要说明的是,附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
第一实施例,apk安装时,提升验签速度的极限是cpu,提升安装速度的极限是磁盘(data分区)的写入速度,为了避免磁盘或cpu在安装过程中的性能浪费,且磁盘写入速度慢,写入时间长,应尽早进行安装,并且不改动具体的磁盘写入代码,让验签过程利用系统剩余的cpu能力,因此本发明公开了一种apk安装方法,包括以下步骤:
步骤s1:安装开始,通过校验函数对apk的机构数字证书进行机构验证。其中,机构数字证书为sgn,sgn文件很小,验证速度快。
步骤s2:若机构验证成功,则并发启动如图1所示的安装线程以将apk分解后的原始数据写入磁盘中,以及启动如图2所示的验签线程以通过校验函数对apk的原始数据签名进行签名验证。其中,原始数据签名为哈希签名。
本实施例通过并发启动验签线程和安装线程,提升了验签和安装两个阶段各自的速度,提升安装速度20%~40%,并且apk越大,节省的时间越多。
在本实施例中,如图1所示,安装开始,cpu执行校验函数,该校验函数可依次对机构数字证书和原始数据签名进行验证,当机构验证成功时,可在未验证始数据签名之前,强制校验函数输出签名验证结果为真,即假定签名验证成功,处理器判断签名验证成功时,触发并发启动安装线程以将apk分解后的原始数据写入磁盘中,以及启动验签线程以通过校验函数对apk的原始数据签名进行签名验证,相当于启动的验签线程是透明的,在安装过程中利用系统剩余的cpu能力进行验签过程。
在一些实施例中,步骤s2还包括:若机构验证失败,则启动如图3所示的中止安装线程,结束安装。因为sgn一般均为正确,因此需要中止安装的可能性几乎没有,命中率很高,可以提前启动安装过程,这样,安装和验签就可以并行了,而且也不妨碍原来的并发验签和并发安装。
在一些实施例中,本方法还包括:
步骤s3:若签名验证成功,则完成安装,显示安装成功,安装结束。
步骤s4:若签名验证失败,则启动如图3所示的中止安装线程,中止安装,并显示安装失败,卸载已安装部分,结束安装。
第二实施例,如图4所示,本发明公开了一种apk安装系统,包括:
机构验证模块,用于安装开始时,通过校验函数对apk的机构数字证书进行机构验证。其中,机构数字证书为sgn,sgn很小,验证速度快。
线程并发模块,用于机构验证成功时,并发启动如图1所示的安装线程和如图2所示的验签线程。
验签线程,用于通过校验函数对apk的原始数据签名进行签名验证;其中,原始数据签名为哈希签名。
安装线程,用于将apk分解后的原始数据写入磁盘中;其中,在apk安装过程中,当验签线程的签名验证成功时,完成安装,显示安装成功,安装结束。
本实施例通过并发启动验签线程和安装线程,提升了验签和安装两个阶段各自的速度,提升安装速度20%~40%,并且apk越大,节省的时间越多。
在本实施例中,如图1所示,安装开始,cpu执行校验函数,该校验函数可依次对机构数字证书和原始数据签名进行验证,当机构验证成功时,可在未验证始数据签名之前,强制校验函数输出签名验证结果为真,即假定签名验证成功,处理器判断签名验证成功时,触发并发启动安装线程以将apk分解后的原始数据写入磁盘中,以及启动验签线程以通过校验函数对apk的原始数据签名进行签名验证,相当于启动的验签线程是透明的,在安装过程中利用系统剩余的cpu能力进行验签过程。
在一些实施例中,本系统还包括:中止安装模块和中止安装线程。中止安装模块用于机构验证失败时,启动如图3所示的中止安装线程,结束安装;或,用于签名验证失败时,启动如图3所示的中止安装线程,中止安装,并显示安装失败,卸载已安装部分,结束安装。
因为sgn一般均为正确,因此需要中止安装的可能性几乎没有,命中率很高,可以提前启动安装过程,这样,安装和验签就可以并行了,而且也不妨碍原来的并发验签和并发安装。
通过实施本发明,具有以下有益效果:
本发明在安装开始时,通过校验函数对apk的机构数字证书进行机构验证,若机构验证成功,则并发启动安装线程以将apk分解后的原始数据写入磁盘中,以及启动验签线程以通过校验函数对apk的原始数据签名进行签名验证,从而提升了验签和安装两个阶段各自的速度,提升安装速度20%~40%,并且apk越大,节省的时间越多。
可以理解的,以上实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,可以对上述技术特点进行自由组合,还可以做出若干变形和改进,这些都属于本发明的保护范围;因此,凡跟本发明权利要求范围所做的等同变换与修饰,均应属于本发明权利要求的涵盖范围。