CN116775356A - 应用程序运行控制方法、装置、设备和介质 - Google Patents
应用程序运行控制方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN116775356A CN116775356A CN202310726236.2A CN202310726236A CN116775356A CN 116775356 A CN116775356 A CN 116775356A CN 202310726236 A CN202310726236 A CN 202310726236A CN 116775356 A CN116775356 A CN 116775356A
- Authority
- CN
- China
- Prior art keywords
- target
- function
- application program
- version
- code
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000002159 abnormal effect Effects 0.000 claims abstract description 56
- 230000006870 function Effects 0.000 claims description 269
- 238000009434 installation Methods 0.000 claims description 78
- 230000008439 repair process Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 7
- 230000005856 abnormality Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 101150053844 APP1 gene Proteins 0.000 description 5
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 5
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007659 motor function Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000005316 response function Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序运行控制方法、装置、设备和介质,属于通信技术领域。该方法包括:在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;禁止运行所述目标功能。
Description
技术领域
本申请属于通信领域,具体涉及一种应用程序运行控制方法、装置、设备和介质。
背景技术
目前,随时电子设备技术的飞速发展,各类应用程序(Application,APP)应用而生,不用的APP具有不同的功能。随着APP的不断更新迭代,APP的功能也日益丰富。
用户在使用某一APP时,若该APP的运行出现异常,则APP会闪退,如此严重影响用户体验。
发明内容
本申请实施例的目的是提供一种应用程序运行控制方法、装置、设备和介质。以实现在APP运行异常时,APP不直接闪退。
第一方面,本申请实施例提供了一种运行控制方法,该方法包括:
在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;
根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;
禁止运行所述目标功能。
第二方面,本申请实施例提供了一种运行控制装置,该装置包括:
获取模块,用于在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;
确定模块,用于根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;
禁止运行模块,用于禁止运行所述目标功能。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,在应用程序在电子设备上运行异常的情况下,根据获取的运行异常的第一目标代码,确定引起应用程序运行异常的目标功能,然后禁止运行该出现异常的目标功能,如此可不执行该运行异常的目标功能,进而确保该应用程序不会闪退,此外,由于仅禁止运行了出现异常的目标功能,故应用程序的其他功能还是可以正常运行的,如此不会影响用户对应用程序其他功能的使用。
附图说明
图1是本申请的一些实施例提供的应用程序的运行控制方法的流程示意图;
图2是本申请的一些实施例提供的将第一目标代码替换为第二目标代码的流程示意图;
图3是本申请的一些实施例提供的目标功能的卸载过程示意图;
图4是本申请的一些实施例示出的应用程序的运行控制装置的结构示意图;
图5是本申请的一些实施例示出的电子设备的结构示意图;
图6是本申请的一些实施例示出的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
如背景技术部分所述,现有技术中存在运行应用程序时,若该应用程序的某一功能运行异常,则导致应用程序闪退,如此影响用户对应用程序的使用体验,为了解决该问题,本申请实施例提供了一种应用程序运行控制方法、装置、设备和介质,在应用程序在电子设备上运行异常的情况下,根据获取的运行异常的第一目标代码,确定引起应用程序运行异常的目标功能,然后禁止运行该运行异常的目标功能,如此可不执行该运行出现异常的目标功能,进而确保该应用程序不会闪退,此外,由于仅禁止运行了出现异常的目标功能,故应用程序的其他功能还是可以正常运行的,如此不会影响用户对应用程序其他功能的使用。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的应用程序运行控制方法进行详细地说明。
在本申请的一些实施例中,应用程序的执行是虚拟机执行程序编译之后的中央处理器(Central Processing Unit,CPU)指令。本申请实施例的方案适用于运行某一版本的应用程序时,该应用程序运行出现异常,导致应用程序闪退的场景。具体的现有技术中在检测到应用程序运行异常时,应用程序闪退的工作原理如下:
1、用户点击应用程序的程序图标。
2、电子设备执行APP的消息响应函数方法。
3、调用应用程序的程序代码内的函数执行代码。
4、在程序代码运行到引起异常的代码时,电子检测到无法继续运行应用程序的程序代码,通知虚拟机。
5、虚拟机分析引起异常的类型,将异常抛出。
6、虚拟机禁止APP的进程运行,APP闪退。
需要说明的是,步骤4中,代码异常可以是代码中的空指针异常,还可以是数组越界异常,还可以是其他引起应用程序闪退的异常,在本申请实施例中不作限定。
图1是本申请实施例所提供的一种应用程序运行控制方法的流程示意图,该应用程序运行控制方法的执行主体可以为电子设备,需要说明的是,上述执行主体并不构成对本申请实施例的限定。
在本申请的实施例中,电子设备可以但不限于是个人电脑(PersonalComputer,PC)、智能手机、平板电脑或个人数字助理(Personal DigitalAssistant,PDA)等。
如图1所示,本申请实施例提供的应用程序运行控制方法可以包括步骤110-步骤130。
步骤110、在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码。
其中,第一目标代码可以是应用程序在电子设备上运行出现异常时运行异常的代码。
在本申请的一些实施例中,应用程序在电子设备上运行异常可以是用户一进入到应用程序就发生异常,即用户点击应用程序的程序图标就发生异常,还可以是用户在使用应用程序的某一项功能时发生异常,例如,以应用程序为即时通信应用程序为例,该即时通信应用程序中具有支付功能,用户在使用即时通信应用程序的支付功能时发生异常。
需要说明的是,在现有技术中在检测到应用程序在电子设备上运行异常时,会直接退出应用程序。然而,本申请实施例中方案是在应用程序在电子设备上运行异常时,不让应用程序闪退,而是电子设备捕捉到了该异常后,在应用程序闪退之前进行介入处理,例如是电子设备在检测到应用程序运行异常的情况下,先不通知虚拟机,即不禁止APP进程的运行,故而不会影响用户正常使用该应用程序。
步骤120、根据第一目标代码,确定引起应用程序运行异常的目标功能。
其中,目标功能可以是引起应用程序运行异常的功能。
在本申请的一些实施例中,可以根据第一目标代码,确定出引起应用程序运行异常的目标功能。
在本申请的一些实施例中,应用程序的各功能可以是按照模块化进行开发的,例如,针对支付功能,可以开发支付模块,针对聊天功能可以开发聊天功能。针对模块化开发的应用程序,为了精确确定引起应用程序运行异常的目标功能,步骤120具体可以包括:
根据第一目标代码所在的调用函数,确定与调用函数对应的目标功能模块;
将目标功能模块所对应的目标功能确定为引起应用程序运行异常的目标功能。
其中,调用函数可以是第一目标代码所在的函数。可以理解的是,实现应用程序的每个功能均需要有对应的调用函数,每个调用函数由开发人员编写的多行代码组成,每个功能具体所用的调用函数是固定的,例如,针对支付功能,需要用到数据计算函数。
目标功能模块可以是与第一目标代码所在的调用函数对应的功能模块。可以理解的是,应用程序中每个功能均对应有功能模块,即每个功能具有对应的功能组件。
在本申请的一些实施例中,在定位到运行异常的第一目标代码后,可查看该第一目标代码所在的调用函数,由于每个功能模块均有其对应的调用函数,所以可确定与第一目标代码所在的调用函数对应的目标功能模块,将该目标功能模块对应的功能确定为引起应用程序运行异常的目标功能。
在本申请的实施例中,通过根据第一目标代码所在的调用函数,可确定与调用函数对应的目标功能模块,然后可将目标功能模块所对应的目标功能直接确定为引起应用程序运行异常的目标功能,如此可快速精确的确定引起应用程序运行异常的目标功能。
在本申请的一些实施例中,针对不是模块化开发的应用程序,步骤120具体可以包括:
获取第一目标代码对应的注释信息,其中,注释信息中包括第一目标代码所对应的功能;
将注释信息中的功能确定为引起应用程序运行异常的目标功能。
在本申请的一些实施例中,开发人员在编写代码时,均会在该代码行旁批注上注释信息,或者在多行代码对应某一项功能时,会在该项功能对应的多行代码前注释上其对应的功能信息,如此可通过获取第一目标代码所在行的注释信息或者是获取第一目标代码所在的调用函数方法对应的注释信息,将注释信息中的功能确定为引起应用程序运行异常的目标功能。
在一个示例中,如下所示为实现打车功能的代码:
/**打车功能**/
Private void callCar(){…
}
上述代码所组成的调用函数具有注释信息,注释信息中包含该注释信息下面的代码所实现的功能,若该打车功能的代码运行时,运行异常的第一目标代码为Private voidcallCar,则可获取该第一目标代码所在调用函数的注释信息,通过该注释信息可获取引起应用程序运行异常的目标功能为打车功能。
在本申请的实施例中,通过获取第一目标代码对应的注释信息,然后将注释信息中的功能确定为引起应用程序运行异常的目标功能,如此可快速精确确定引起应用程序运行异常的目标功能。
步骤130、禁止运行目标功能。
在本申请的一些实施例中,在确定引起应用程序运行异常的目标功能后,可禁止运行该出现异常的目标功能,如此可不执行该异常的目标功能,进而确保应用程序不会闪退,此外,由于仅禁止运行了出现异常的目标功能,故应用程序的其他功能还是可以正常运行的,如此不会影响用户对应用程序其他功能的使用。
在本申请的一些实施例中,为了快速禁止运行目标功能,步骤130具体可以包括:
执行回退指令;
跳过执行第一目标代码。
在本申请的一些实施例中,在禁止运行目标功能时,可以是执行回退指令,然后跳过执行出现异常的第一目标代码,进而跳过执行该目标功能。
在一个示例中,如下为应用程序的程序代码:
publicApplication onCrete(){
method1();//功能1初始化
method2();//功能2初始化
method3();//功能3,
引起异常闪退的功能}
method4()
}
该应用程序中包括功能1、功能2和功能3这3个功能,引起异常的是功能3,即method3()中的代码,则在确定出运行异常的目标功能后,可执行回退指令,回退到method3()方法前面,然后跳过执行method3()方法,直接执行下面的method4()方法,如此规避引起应用程序的闪退。
在本申请的实施例中,通过执行回退指令,跳过执行第一目标代码,可避免引起应用程序闪退。
在本申请的一些实施例中,上述出现异常的应用程序可以是第一版本的应用程序,对应的目标功能也是该第一版本的应用程序中的某一功能,即该目标功能也是第一版本的目标功能。
这里的第一版本可以是该应用程序正在使用的某一版本,例如可以是该应用程序的最新版本。
为了进一步提升用户体验,在步骤130之后,上述所涉及的方法还可以包括:
获取应用程序的第二版本的目标功能对应的第二目标代码;
将第一版本的应用程序的程序安装包中的第一目标代码替换为第二目标代码,得到第一目标安装包;
运行第一目标安装包。
其中,第二版本可以为应用程序的除第一版本外的其他版本,具体的是第一版本之前的版本。
第二目标代码可以是第二版本的应用程序中的实现目标功能的代码。
第一目标安装包可以是将第一版本的应用程序的程序安装包中的第一目标代码替换为第二目标代码后所得到的应用程序的安装包。
在本申请的一些实施例中,在确定第一版本的目标功能运行异常后,可获取应用程序的第二版本的目标功能的第二目标代码,然后将第一版本的应用程序的程序安装包中的第一目标代码替换为第二目标代码,得到第一目标安装包,如此在运行第一目标安装包时,目标功能的代码是第二版本的应用程序中的目标功能的代码,如此可确保目标功能的正常使用。
需要说明的是,在将第二目标代码放入应用程序的第一版本的程序安装包中时,还可以是先将第一版本的程序安装包中的第一目标代码卸载,然后再将第二目标代码插入到应用程序的第一版本的程序安装包中。具体的如何将第二目标代码放入应用程序的第一版本的程序安装包中,在本申请实施例中不作限定。
在一个示例中,参考图2,APP1具有功能1、功能2和功能3这3种功能,各功能之间无依赖关系,在运行第一版本的APP1时,功能3的运行出现了异常,则可从第二版本的APP1中获取功能3的代码段3,将的第二版本的APP1中获取功能3的代码段3替换第一版本的APP1中的功能3的代码段。
在本申请的实施例中,通过获取应用程序的第二版本的目标功能的第二目标代码,然后将第一版本的应用程序的程序安装包中的第一目标代码替换为第二目标代码,得到第一目标安装包,如此在运行第一目标安装包时,目标功能的代码是第二版本的应用程序中的目标功能的代码,而第二目标代码是运行正常的代码,如此可确保目标功能的正常使用,提升了用户对目标功能的使用体验。
在本申请的一些实施例中,为了提升第二目标代码的获取效率,所述获取应用程序的第二版本的目标功能对应的第二目标代码,具体的可以包括:
在确定应用程序非首次安装在电子设备上的情况下,从电子设备上获取第一安装包;
从第一安装包中获取第二目标代码。
其中,第一安装包为第二版本的应用程序对应的安装包。
可以理解的是,若在运行第一版本的应用程序之前,该电子设备之前安装过第二版本的应用程序,则该电子设备上一定存储有该第二版本的应用程序的安装包,该第二版本的应用程序的安装包中具有该应用程序的各功能的程序代码,如此在确定应用程序并非是首次安装在电子设备上时,可直接获取该应用程序的第一安装包,然后从第一安装包中直接解析获取到第二目标代码。
在本申请的实施例中,在确定应用程序并非是首次安装在电子设备上时,可直接获取该应用程序的第一安装包,然后从第一安装包中直接解析获取到第二目标代码,如此无需从其他地方下载安装第二目标代码,提升了第二目标代码的获取效率。
在本申请的一些实施例中,若电子设备在之前未安装过该应用程序,即在电子设备上不存在第一安装包的情况下,也可通过其他的方式下载旧版本的应用程序中的目标功能的程序代码,即从其他途径下载第二目标代码,确保目标功能的正常使用。
在本申请的一些实施例中,为了确保目标功能的正常使用,所述获取应用程序的第二版本的目标功能对应的第二目标代码,具体的可以包括:
获取第一版本的目标功能的标识信息;
在确定应用程序为首次安装在电子设备上,且在服务端存在与标识信息对应的第二版本的目标功能的情况下,根据标识信息,从服务端下载第二目标代码。
其中,标识信息可以是用于表征目标功能的的信息,例如可以是目标功能的编号代码,还可以是目标功能的名称,还可以是其他可用于表征目标功能的信息,在本申请实施例中不作限定。
可以理解的是,应用程序中的每个功能均具有其对应的标识信息,即身份标识ID,利用该身份标识ID可查找到各功能。每个功能均是独立的文件,可动态下载插入到应用程序的程序安装包中。
在本申请的一些实施例中,若应用程序是首次安装在电子设备上,则该电子设备上不会存储有应用程序的旧版本的安装包,则可根据目标功能的标识信息,向服务端请求是否存在该目标功能的旧版本的功能文件,若服务端中存在该目标功能的旧版本的功能文件,则电子设备可向服务端请求下载该目标功能的旧版本的功能文件,进而获取第二目标代码。
在本申请的实施例中,通过获取第一版本的目标功能的标识信息,然后在确定应用程序为首次安装在电子设备上,且在服务端存在与标识信息对应的第二版本的目标功能的情况下,根据该标识信息,从服务端下载第二目标代码,如此在电子设备上不存在应用程序的旧版本的第二目标代码的情况下,也可以从服务端下载获取第二目标代码,确保目标功能的正常使用。
在本申请的一些实施例中,为了进一步确保应用程序的正常使用,在步骤130之后,上述所涉及的方法还可以包括:
在确定应用程序为首次安装在电子设备上,且在服务端不存在与标识信息对应的第二版本的目标功能的情况下,卸载第一目标代码,得到第二目标安装包;
运行第二目标安装包。
其中,第二目标安装包可以是第一版本的应用程序的程序安装包中删除第一目标代码后的程序安装包。
在本申请的一些实施例中,若应用程序是首次安装在电子设备上,则该电子设备上不会存储有应用程序的旧版本的安装包,并且服务端也不存在该目标功能的旧版本的功能文件时,为了确保应用程序不会闪退,则可直接将第一目标代码卸载,运行除去第一目标代码后的安装包,如此该应用程序中不存在运行异常的代码,应用程序也不会闪退。
在本申请的一些实施例中,为了避免误删除第一目标代码,在卸载第一目标代码之前,上述所涉及的方法还可以包括:
显示第一目标代码的卸载控件;
接收用户对卸载控件的第一输入;
响应于第一输入,卸载第一目标代码。
其中,卸载控件可以是用于确认是否卸载第一目标代码的控件。
第一输入用于卸载第一目标代码,第一输入可以为第一操作。示例性地,上述第一输入包括但不限于:用户通过手指或者手写笔等触控装置对卸载控件的触控输入,或者为用户输入的语音指令,或者为用户输入的特定手势,或者为其他可行性输入,具体的可以根据实际使用需求确定,本发明实施例不作限定。本申请实施例中的特定手势可以为单击手势、滑动手势、拖动手势、压力识别手势、长按手势、面积变化手势、双按手势、双击手势中的任意一种;本申请实施例中的点击输入可以为单击输入、双击输入或任意次数的点击输入等,还可以为长按输入或短按输入。例如,上述的第一输入可以为:用户对卸载控件的点击输入。
在本申请的一些实施例中,电子设备可以首先输出是否确认删除第一版本的应用程序的程序安装包中的目标功能,待接收到用户的第一输入后,可从目标功能对应的第一目标代码从内存中移除,则该目标功能对应的所有代码对应从第一版本的应用程序的程序安装包移除,重新打包成新的安装包,即第二目标安装包,然后运行该第二目标安装包中的程序代码。
在本申请的一些实施例中,为了更加清晰的理解目标功能的卸载过程,参考图3,图3为卸载目标功能的流程示意图,该目标功能的卸载过程包括如下步骤:
步骤310、接收用户对第一目标代码进行卸载的卸载控件的第一输入。
步骤320、响应于第一输入,确定异常的目标功能业务模块。
步骤330、将目标功能业务模块的代码从内存中移除。
步骤340、目标功能业务对应的代码从第一版本的应用程序的程序安装包中移除。
步骤350、重新打包生成第二目标安装包。
步骤360、运行第二目标安装包。
在本申请的实施例中,通过在确定应用程序为首次安装在电子设备上,且在服务端不存在与标识信息对应的第二版本的目标功能的情况下,可卸载第一目标代码,运行除去第一目标代码后的安装包,如此该应用程序中不存在运行异常的代码,应用程序也不会闪退,不会影响用户对应用程序的使用。
在本申请的一些实施例中,为了确保第一版本的目标功能的正常使用,在确定第一目标代码运行异常之后,上述所涉及的方法还可以包括:
接收服务端下发的透传指令;
基于透传指令,根据标识信息,从服务端下载修复完成的第一目标代码;
基于下载的修复完成的第一目标代码,得到第三目标安装包;
运行第三目标安装包。
其中,透传指令可以是服务端下发的用于指示运行异常的第一目标代码已修复完成。
第三目标安装包可以是第一版本的应用程序的程序安装包中插入修复好的第一目标代码后的程序安装包。
在本申请的一些实施例中,在确定第一目标代码运行异常后,可将该第一目标代码输出,以供开发人员对第一目标代码进行修复,待第一目标代码修复完成后,服务端中会存储有该修复完成的第一目标代码,服务端下发push透传指令到电子设备,电子设备根据该目标功能的标识信息从服务端下载修复完成的第一目标代码,然后得到第三目标安装包,运行该第三目标安装包,如此运行的是第一版本的目标功能。
在本申请的实施例中,在运行第二目标安装包后可根据接收的服务端下发的透传指令,根据标识信息,从服务端下载修复完成的第一目标代码,然后基于下载的修复完成的第一目标代码,得到第三目标安装包,如此运行该第三目标安装包,可运行用户所需的第一版本的目标功能,满足了用户需求,确保了第一版本的目标功能的正常使用。
本申请实施例提供的应用程序运行控制方法,执行主体可以为应用程序运行控制装置。本申请实施例中以应用程序运行控制装置执行拍摄方法为例,说明本申请实施例提供的应用程序运行控制装置。
图4是根据一示例性实施例示出的一种应用程序运行控制装置的结构示意图。
如图4所示,该应用程序运行控制装置400可以包括:
获取模块410,用于在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;
确定模块420,用于根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;
处理模块430,用于禁止运行所述目标功能。
在本申请实施例中,在应用程序在电子设备上运行异常的情况下,根据获取的运行异常的第一目标代码,确定引起应用程序运行异常的目标功能,然后禁止运行该出现异常的目标功能,如此可不执行该异常的目标功能,进而确保该应用程序不会闪退,此外,由于仅禁止运行了出现异常的目标功能,故应用程序的其他功能还是可以正常运行的,如此不会影响用户对应用程序其他功能的使用。
在本申请的一些实施例中,确定模块420具体可以用于:
根据所述第一目标代码所在的调用函数,确定与所述调用函数对应的目标功能模块;
将所述目标功能模块所对应的目标功能确定为引起所述应用程序运行异常的目标功能,其中,所述应用程序中每个功能均对应有功能模块。
在本申请的一些实施例中,确定模块420具体可以用于:
获取所述第一目标代码对应的注释信息,其中,所述注释信息中包括所述第一目标代码所对应的功能;
将所述注释信息中的功能确定为引起所述应用程序运行异常的目标功能。
在本申请的一些实施例中,处理模块430具体可以用于:
执行回退指令;
跳过执行所述第一目标代码。
在本申请的一些实施例中,所述应用程序为第一版本的应用程序,所述目标功能为第一版本的目标功能,获取模块410还可以用于获取所述应用程序的第二版本的目标功能对应的第二目标代码,其中,所述第二版本为所述第一版本之前的版本;
确定模块420还可以用于将第一版本的应用程序的程序安装包中的所述第一目标代码替换为第二目标代码,得到第一目标安装包;
处理模块430,还可以用于运行所述第一目标安装包。
在本申请的一些实施例中,获取模块410具体用于在确定所述应用程序非首次安装在所述电子设备上的情况下,从所述电子设备上获取第一安装包,其中,所述第一安装包为所述第二版本的应用程序对应的安装包;从所述第一安装包中获取所述第二目标代码。
在本申请的一些实施例中,获取模块410具体用于获取所述第一版本的目标功能的标识信息;
上述装置还可以包括:下载模块,用于在确定所述应用程序为首次安装在所述电子设备上,且在服务端存在与所述标识信息对应的所述第二版本的目标功能的情况下,根据所述标识信息,从所述服务端下载所述第二目标代码。
在本申请的一些实施例中,处理模块430还可以用于在确定所述应用程序为首次安装在所述电子设备上,且在服务端不存在与所述标识信息对应的第二版本的目标功能的情况下,卸载所述第一目标代码,得到第二目标安装包;运行所述第二目标安装包。
在本申请的一些实施例中,上述所涉及的装置还可以包括:接收模块,用于接收所述服务端下发的透传指令,其中,所述透传指令用于指示所述第一目标代码已修复完成;
所述下载模块,用于基于所述透传指令,根据所述标识信息,从所述服务端下载修复完成的所述第一目标代码;
确定模块420具体可以用于基于下载的修复完成的所述第一目标代码,得到第三目标安装包;
处理模块430具体可以用于运行所述第三目标安装包。
本申请实施例中的应用程序运行控制装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的应用程序运行控制装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的应用程序运行控制装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图5所示,本申请实施例还提供一种电子设备500,包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,该程序或指令被处理器501执行时实现上述应用程序运行控制方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图6为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、以及处理器610等部件。
本领域技术人员可以理解,电子设备600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,射频单元601,用于在检测到第一版本的应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;
处理器610,用于根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;
处理器610,还用于禁止运行所述第一版本的目标功能。
如此,在应用程序在电子设备上运行异常的情况下,根据获取的运行异常的第一目标代码,确定引起应用程序运行异常的目标功能,然后禁止运行该出现异常的目标功能,如此可不执行该异常的目标功能,进而确保该应用程序不会闪退,此外,由于仅禁止运行了出现异常的目标功能,故应用程序的其他功能还是可以正常运行的,如此不会影响用户对应用程序其他功能的使用。
可选地,处理器610,还用于根据所述第一目标代码所在的调用函数,确定与所述调用函数对应的目标功能模块;将所述目标功能模块所对应的目标功能确定为引起所述应用程序运行异常的目标功能,其中,所述应用程序中每个功能均对应有功能模块。
如此,通过根据第一目标代码所在的调用函数,可确定与调用函数对应的目标功能模块,然后可将目标功能模块所对应的目标功能直接确定为引起应用程序运行异常的目标功能,如此可快速精确的确定引起应用程序运行异常的目标功能。
可选地,射频单元601,还用于获取所述第一目标代码对应的注释信息,其中,所述注释信息中包括所述第一目标代码所对应的功能;
处理器610,还用于将所述注释信息中的功能确定为引起所述应用程序运行异常的目标功能。
如此,通过获取第一目标代码对应的注释信息,然后将注释信息中的功能确定为引起应用程序运行异常的目标功能,如此可快速精确确定引起应用程序运行异常的目标功能。
可选地,处理器610,还用于执行回退指令,跳过执行第一目标代码。
如此,通过执行回退指令,跳过执行第一目标代码,可避免引起应用程序闪退。
可选地,所述应用程序为第一版本的应用程序,所述目标功能为第一版本的目标功能。
射频单元601,还用于获取所述应用程序的第二版本的目标功能对应的第二目标代码,其中,所述第二版本为所述第一版本之前的版本;
处理器610,还用于将第一版本的应用程序的程序安装包中的所述第一目标代码替换为第二目标代码,得到第一目标安装包;运行所述第一目标安装包。
如此,通过获取应用程序的第二版本的目标功能的第二目标代码,然后将第一版本的应用程序的程序安装包中的第一目标代码替换为第二目标代码,得到第一目标安装包,如此在运行第一目标安装包时,目标功能的代码是第二版本的应用程序中的目标功能的代码,而第二目标代码是运行正常的代码,如此可确保目标功能的正常使用,提升了用户对目标功能的使用体验。
可选地,射频单元601,还用于在确定所述应用程序非首次安装在所述电子设备上的情况下,从所述电子设备上获取第一安装包,其中,所述第一安装包为所述第二版本的应用程序对应的安装包;从所述第一安装包中获取所述第二目标代码。
如此,在确定应用程序并非是首次安装在电子设备上时,可直接获取该应用程序的第一安装包,然后从第一安装包中直接解析获取到第二目标代码,如此无需从其他地方下载安装第二目标代码,提升了第二目标代码的获取效率。
可选地,射频单元601,还用于获取所述第一版本的目标功能的标识信息;
处理器610,还用于在确定所述应用程序为首次安装在所述电子设备上,且在服务端存在与所述标识信息对应的所述第二版本的目标功能的情况下,根据所述标识信息,从所述服务端下载所述第二目标代码。
如此,通过获取第一版本的目标功能的标识信息,然后在确定应用程序为首次安装在电子设备上,且在服务端存在与标识信息对应的第二版本的目标功能的情况下,根据该标识信息,从服务端下载第二目标代码,如此在电子设备上不存在应用程序的旧版本的第二目标代码的情况下,也可以从服务端下载获取第二目标代码,确保目标功能的正常使用。
可选地,处理器610,还用于在确定所述应用程序为首次安装在所述电子设备上,且在服务端不存在与所述标识信息对应的第二版本的目标功能的情况下,卸载所述第一目标代码,得到第二目标安装包;运行所述第二目标安装包。
如此,通过在确定应用程序为首次安装在电子设备上,且在服务端不存在与标识信息对应的第二版本的目标功能的情况下,可卸载第一目标代码,运行除去第一目标代码后的安装包,如此该应用程序中不存在运行异常的代码,应用程序也不会闪退,不会影响用户对应用程序的使用。
可选地,射频单元601,还用于接收所述服务端下发的透传指令,其中,所述透传指令用于指示所述第一目标代码已修复完成;
处理器610,还用于基于所述透传指令,根据所述标识信息,从所述服务端下载修复完成的所述第一目标代码;基于下载的修复完成的所述第一目标代码,得到第三目标安装包;运行所述第三目标安装包。
如此,在运行第二目标安装包后可根据接收的服务端下发的透传指令,根据标识信息,从服务端下载修复完成的第一目标代码,然后基于下载的修复完成的第一目标代码,得到第三目标安装包,如此运行该第三目标安装包,可运行用户所需的第一版本的目标功能,满足了用户需求,确保了第一版本的目标功能的正常使用。
应理解的是,本申请实施例中,输入单元604可以包括图形处理器(GraphicsProcessing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。
处理器610可包括一个或多个处理单元;可选的,处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述应用程序运行控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述应用程序运行控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述应用程序运行控制方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (14)
1.一种应用程序运行控制方法,其特征在于,所述方法包括:
在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;
根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;
禁止运行所述目标功能。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能,包括:
根据所述第一目标代码所在的调用函数,确定与所述调用函数对应的目标功能模块;
将所述目标功能模块所对应的目标功能确定为引起所述应用程序运行异常的目标功能,其中,所述应用程序中每个功能均对应有功能模块。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能,包括:
获取所述第一目标代码对应的注释信息,其中,所述注释信息中包括所述第一目标代码所对应的功能;
将所述注释信息中的功能确定为引起所述应用程序运行异常的目标功能。
4.根据权利要求1所述的方法,其特征在于,所述禁止运行所述目标功能,包括:
执行回退指令;
跳过执行所述第一目标代码。
5.根据权利要求1所述的方法,其特征在于,所述应用程序为第一版本的应用程序,所述目标功能为第一版本的目标功能,在所述禁止运行所述目标功能之后,所述方法还包括:
获取所述应用程序的第二版本的目标功能对应的第二目标代码,其中,所述第二版本为所述第一版本之前的版本;
将第一版本的应用程序的程序安装包中的所述第一目标代码替换为第二目标代码,得到第一目标安装包;
运行所述第一目标安装包。
6.根据权利要求5所述的方法,其特征在于,所述获取所述应用程序的第二版本的目标功能对应的第二目标代码,包括:
在所述应用程序非首次安装在所述电子设备上的情况下,从所述电子设备上获取第一安装包,其中,所述第一安装包为所述第二版本的应用程序对应的安装包;
从所述第一安装包中获取所述第二目标代码。
7.根据权利要求5所述的方法,其特征在于,所述获取所述应用程序的第二版本的目标功能对应的第二目标代码,包括:
获取所述第一版本的目标功能的标识信息;
在所述应用程序为首次安装在所述电子设备上,且在服务端存在与所述标识信息对应的所述第二版本的目标功能的情况下,根据所述标识信息,从所述服务端下载所述第二目标代码。
8.根据权利要求7所述的方法,其特征在于,在所述禁止运行所述目标功能之后,所述方法还包括:
在所述应用程序为首次安装在所述电子设备上,且在服务端不存在与所述标识信息对应的第二版本的目标功能的情况下,卸载所述第一目标代码,得到第二目标安装包;
运行所述第二目标安装包。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述方法还包括:
接收所述服务端下发的透传指令,其中,所述透传指令用于指示所述第一目标代码已修复完成;
基于所述透传指令,根据所述标识信息,从所述服务端下载修复完成的所述第一目标代码;
基于下载的修复完成的所述第一目标代码,得到第三目标安装包;
运行所述第三目标安装包。
10.一种应用程序运行控制装置,其特征在于,所述装置包括:
获取模块,用于在应用程序在电子设备上运行异常的情况下,获取运行异常的第一目标代码;
确定模块,用于根据所述第一目标代码,确定引起所述应用程序运行异常的目标功能;
处理模块,用于禁止运行所述目标功能。
11.根据权利要求10所述的装置,其特征在于,所述应用程序为第一版本的应用程序,所述目标功能为第一版本的目标功能,所述获取模块,还用于获取所述应用程序的第二版本的目标功能对应的第二目标代码,其中,所述第二版本为所述第一版本之前的版本;
所述确定模块,还用于将第一版本的应用程序的程序安装包中的所述第一目标代码替换为第二目标代码,得到第一目标安装包;
所述处理模块,还用于运行所述第一目标安装包。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收所述服务端下发的透传指令,其中,所述透传指令用于指示所述第一目标代码已修复完成;
所述下载模块,用于基于所述透传指令,根据所述标识信息,从所述服务端下载修复完成的所述第一目标代码;
所述确定模块,用于基于下载的修复完成的所述第一目标代码,得到第三目标安装包;
所述处理模块,用于运行所述第三目标安装包。
13.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-9任一项所述的应用程序运行控制方法的步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-9任一项所述的应用程序运行控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310726236.2A CN116775356A (zh) | 2023-06-16 | 2023-06-16 | 应用程序运行控制方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310726236.2A CN116775356A (zh) | 2023-06-16 | 2023-06-16 | 应用程序运行控制方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775356A true CN116775356A (zh) | 2023-09-19 |
Family
ID=87994218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310726236.2A Pending CN116775356A (zh) | 2023-06-16 | 2023-06-16 | 应用程序运行控制方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775356A (zh) |
-
2023
- 2023-06-16 CN CN202310726236.2A patent/CN116775356A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726067B (zh) | 一种进程监控方法以及客户端设备 | |
CN110765394A (zh) | so文件加载方法、装置、存储介质及终端设备 | |
CN115967618A (zh) | 一种多项目的bmc传感器配置管理方法及装置 | |
CN110362371B (zh) | 视图层级的控制方法、装置及系统、计算机设备及介质 | |
CN107025173B (zh) | 一种函数执行时间的测试方法及装置 | |
CN113467981A (zh) | 异常处理的方法和装置 | |
US8769498B2 (en) | Warning of register and storage area assignment errors | |
CN107085532B (zh) | 任务监听方法和装置 | |
CN110674050B (zh) | 内存越界检测方法、装置、电子设备及计算机存储介质 | |
CN113282435B (zh) | 应用异常的处理方法和电子设备 | |
CN114489698A (zh) | 应用程序安装方法和装置 | |
CN116775356A (zh) | 应用程序运行控制方法、装置、设备和介质 | |
CN110879701A (zh) | 工作流可视化配置方法、服务器、系统及介质 | |
CN115185745A (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 | |
CN110597536B (zh) | 一种软件升级方法、系统及终端设备 | |
CN113515299A (zh) | 软件开发工具包sdk热升级方法、装置、设备及存储介质 | |
CN109933357B (zh) | 应用程序升级方法及装置 | |
CN108133149B (zh) | 一种数据保护方法、装置及电子设备 | |
CN113139190A (zh) | 程序文件检测方法、装置、电子设备及存储介质 | |
CN112348499B (zh) | 支付终端的通信服务方法及装置 | |
CN104573504B (zh) | 一种用于在iOS相关系统中运行应用的方法和装置 | |
CN111376248B (zh) | 机器人、机器人的决策方法及终端设备 | |
CN117093225A (zh) | 代码文件编译方法、系统更新方法、装置、服务器及设备 | |
CN116048547A (zh) | 应用程序的安装方法和装置 | |
CN114706635A (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 |