【技术实现步骤摘要】
程序调用的优化方法及装置
本专利技术涉及一种应用开发
,特别是涉及一种程序调用的优化方法及装置。
技术介绍
随着操作系统应用开发技术的快速发展,使用虚拟化技术对操作系统底层进行处理、开发以及成为主流手段。其中,安卓运行时(Androidruntime,ART)虚拟机区别于传统的Dalvik虚拟机,使用预编译技术取代Dalvik中的及时编译技术,加快了应用程序的启动和执行。目前,由于安卓4.4之后的版本中,ART虚拟机在使用函数调用来处理多开应用的业务时,采用本地函数执行及解释函数执行并存的方式,ART虚拟机采用桥接函数来实现本地函数调用解释函数以及解释函数调用本地函数,但是,在函数调用时,会出现已格式优化的本地函数调用未格式优化的解释函数,如Art虚拟机中的native层Method1,调用解释器中的.dex格式的Method2,通过桥接函数进行调用时产生一级一级的栈,使得Hook函数钩取时,已格式优化的本地函数与未格式优化的解释函数无法实现调用,因此,对程序调用的优化已经成为亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种程序调用的优化方法及装置, ...
【技术保护点】
一种程序调用的优化方法,其特征在于,包括:当触发调用目标函数操作时,判断原函数是否执行挂钩操作;若所述原函数执行所述挂钩操作,则通过跳转模板以及结合桥接函数调用所述目标函数,所述跳转模板用于对所述目标函数进行格式优化。
【技术特征摘要】
1.一种程序调用的优化方法,其特征在于,包括:当触发调用目标函数操作时,判断原函数是否执行挂钩操作;若所述原函数执行所述挂钩操作,则通过跳转模板以及结合桥接函数调用所述目标函数,所述跳转模板用于对所述目标函数进行格式优化。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述原函数没有执行钩取操作,则直接通过桥接函数调用所述目标函数。3.根据权利要求1或2所述的方法,其特征在于,所述若所述原函数执行所述挂钩操作,则通过跳转模板以及结合桥接函数调用所述目标函数,包括:当所述原函数通过Hook函数钩取目标函数时,判断所述目标函数中是否存在跳转标识;若存在跳转标识,则解析所述目标函数中的参数;若所述参数的转换格式标识小于预设转换条件,则通过预置指向指令跳转至替换函数进行处理;当所述替换函数执行完毕后,根据所述原函数的业务需求判断是否执行第一跳转指令,若所述业务需求确定为执行原函数,则执行所述第一跳转指令,所述第一跳转指令用于跳转至所述原函数;通过结合桥接函数使得所述原函数调用所述目标函数。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述参数的转换合适标识大于预设转换条件,则执行第二跳转指令,所述第二跳转指令用于跳转至所述目标函数。5.一种程序调用的优化装置,其特征在于,包括:判断单元,用于当触发调用目标函数操作时,判断原函数是否执行挂钩操作;处理单元,用于若所述原函数执行所述挂钩操作,则通过跳转模板以及结合桥接函数调用所述目标函数,所述跳转模板用于对所述目标...
【专利技术属性】
技术研发人员:任太胜,易新,王浩,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。