CN111176874A - 应用程序异常退出的处理方法、装置、设备及存储介质 - Google Patents

应用程序异常退出的处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111176874A
CN111176874A CN201911339003.7A CN201911339003A CN111176874A CN 111176874 A CN111176874 A CN 111176874A CN 201911339003 A CN201911339003 A CN 201911339003A CN 111176874 A CN111176874 A CN 111176874A
Authority
CN
China
Prior art keywords
character string
string information
application program
private
program interface
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.)
Granted
Application number
CN201911339003.7A
Other languages
English (en)
Other versions
CN111176874B (zh
Inventor
王光辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN201911339003.7A priority Critical patent/CN111176874B/zh
Publication of CN111176874A publication Critical patent/CN111176874A/zh
Application granted granted Critical
Publication of CN111176874B publication Critical patent/CN111176874B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种应用程序异常退出的处理方法,确定运行的应用程序发生异常退出事件;获得与私有应用程序接口关联的第一字符串信息;第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息;基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理。本申请实施例同时还公开了一种应用程序异常退出的处理装置、电子设备及计算机存储介质。

Description

应用程序异常退出的处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其是涉及一种应用程序异常退出的处理方法、应用程序异常退出的处理装置、电子设备及存储介质。
背景技术
目前搭载iOS系统的智能设备得到广泛应用,越来越多开发人员在iOS系统下开发应用程序(Application,APP)。APP在运行过程中,常常会出现闪退。
在实现本发明过程中,发明人发现iOS系统中的公开应用程序接口(PublishedApplication Programming Interface,Published API)虽然封装了大量的方法,但在实际应用中对于iOS系统出现的APP异常退出事件处理效果较差。
私有应用程序接口(Private API)可以实现一些Public API不能实现的效果,功能强大。然而,Private API没有公开给开发者,且禁止开发者使用Private API,所以,对于开发者而言,无法通过Private API处理iOS系统出现的APP异常退出事件。
发明内容
本申请实施例期望提供一种应用程序异常退出的处理方法、应用程序异常退出的处理装置、电子设备及存储介质,解决相关技术中无法通过Private API处理iOS系统出现的APP异常退出事件的问题。
为实现上述目的,根据本申请实施例的第一方面,提供了一种应用程序异常退出的处理方法,方法包括:
确定运行的应用程序发生异常退出事件;
获得与私有应用程序接口关联的第一字符串信息;所述第一字符串信息包括对所述私有应用程序接口的方法名进行处理所得到的信息;
基于所述第一字符串信息调用所述私有应用程序接口对所述异常退出事件进行处理。
可选的,获得与私有应用程序接口关联的第一字符串信息,包括:
获得所述私有应用程序接口对应的第二字符串信息;所述第二字符串信息包括所述私有应用程序接口的方法名;
获得与所述第二字符串信息对应的C语言静态字符串数组;
对所述C语言静态字符串数组与目标字符串进行逻辑运算,得到所述第一字符串信息。
可选的,获得与所述第二字符串信息对应的C语言静态字符串数组,包括:
对所述第二字符串信息进行编码,得到第三字符串信息;
将所述第三字符串信息转码为所述C语言静态字符串数组。
可选的,对所述第二字符串信息进行编码,得到第三字符串信息,包括:
对所述第二字符串信息进行十六进制编码,得到第三字符串信息。
可选的,对所述第二字符串信息进行编码,得到第三字符串信息,包括:
对所述第二字符串信息进行八进制编码,得到第三字符串信息。
根据本申请实施例的第二方面,提供了一种应用程序异常退出的处理装置,所述装置包括:
确定单元,用于确定运行的应用程序发生异常退出事件;
获得单元,用于获得与私有应用程序接口关联的第一字符串信息;所述第一字符串信息包括对所述私有应用程序接口的方法名进行处理所得到的信息;
处理单元,用于基于所述第一字符串信息调用所述私有应用程序接口对所述异常退出事件进行处理。
根据本申请实施例的第三方面,提供了一种电子设备,所述电子设备包括:处理器、存储器和通信总线;
所述通信总线用于实现处理器和存储器之间的通信连接;
所述处理器用于执行存储器中存储的应用程序异常退出的处理程序,以实现如下步骤:
确定运行的应用程序发生异常退出事件;
获得与私有应用程序接口关联的第一字符串信息;所述第一字符串信息包括对所述私有应用程序接口的方法名进行处理所得到的信息;
基于所述第一字符串信息调用所述私有应用程序接口对所述异常退出事件进行处理。
可选的,所述处理器用于执行存储器中存储的应用程序异常退出的处理程序,以实现如下步骤:
获得所述私有应用程序接口对应的第二字符串信息;所述第二字符串信息包括所述私有应用程序接口的方法名;
获得与所述第二字符串信息对应的C语言静态字符串数组;
对所述C语言静态字符串数组与目标字符串进行逻辑运算,得到所述第一字符串信息。
可选的,所述处理器用于执行存储器中存储的应用程序异常退出的处理程序,以实现如下步骤:
对所述第二字符串信息进行编码,得到第三字符串信息;
将所述第三字符串信息转码为所述C语言静态字符串数组。
根据本申请实施例的第四方面,提供了一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述的应用程序异常退出的处理方法。
应用本申请实施例实现以下有益效果:既可以避免iOS系统对应的应用服务器检测到Private API,又可以基于Private API处理应用程序发生的异常退出事件,有效解决闪退现象,提升用户使用体验。
因为确定运行的应用程序发生异常退出事件;获得与私有应用程序接口关联的第一字符串信息;第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息;以确保电子设备的操作系统对应的应用服务器无法检测到Private API,进而基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理;如此,解决了相关技术中无法通过Private API处理系统中出现的APP异常退出事件,实现既可以避免系统对应的应用服务器检测到Private API,又可以基于Private API处理应用程序发生的异常退出事件,有效解决闪退现象,提升用户使用体验。
附图说明
图1为本申请实施例提供的一种应用程序异常退出的处理方法的流程示意图;
图2为本申请实施例提供的另一种应用程序异常退出的处理方法的流程示意图;
图3为本申请实施例提供的一种Private API方法转换的流程示意图;
图4为本申请实施例提供的一种应用程序异常退出的处理装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
应理解,说明书通篇中提到的“本申请实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“本申请实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中应。在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
相关技术中,导致APP产生闪退的原因一般为不合理的使用Public API,这里,API是一些预先定义的函数,或指软件系统不同组成部分衔接的约定;也有可能出现其他故障或者闪退,出现闪退的原因与电子设备的型号、系统版本、中央处理器(CentralProcessing Unit,CPU)、内存或系统不稳定都存在一定关系。
相关技术中,可以采取如下方式解决APP闪退,由于iOS的应用程序代码是使用Objective-C编程语言实现的,在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的依据是选择器(selector),利用Objective-C的动态特性以及iOS系统的Runtime机制,可以实现运行时替换selector对应的方法实现,例如:
获取类方法,其实现函数原型如下:
Method ori_Method=class_getInstanceMethod(objc_getClass("__NSArrayI");
@selector(objectAtIndex:));
在现有类中添加一个方法,其实现函数原型如下:
Method my_Method=class_getInstanceMethod(objc_getClass("__NSArrayI");
@selector(hook_objectAtIndex:));
替换类中方法实现hook功能,其实现函数原型如下:
method_exchangeImplementations(ori_Method,my_Method);
这种方式的实现是基于调用Public API以解决APP闪退,然而,针对如何调用私有应用程序接口即Private API解决APP闪退的技术实现,相关技术中并未涉及,因此,如何通过Private API处理iOS系统中出现的APP异常退出事件已成为亟待解决的问题。
本申请提供一种应用程序异常退出的处理方法,应用于电子设备,参照图1所示,该方法包括以下步骤:
步骤101、确定运行的应用程序发生异常退出事件。
本申请实施例中,电子设备可以根据日志文件确定运行的应用程序发生异常退出事件。日志文件可以理解为记录系统操作事件的记录文件或文件集合;其中,日志文件可以分为事件日志和消息日志,并且日志文件用于处理历史数据、诊断问题的追踪以及理解系统的活动。
电子设备基于日志文件,确定在电子设备运行期间正常调用Public API会出现APP异常闪退事件。想要解决这种错误,需要通过Hook,但是Hook需要对指定方法进行Hook,而iOS系统公开的方法中没有这样的方法。在实现本发明过程中,发明人发现使用反编译系统SDK之后可以找到对应的方法即Private API,然而iOS系统禁止开发人员使用PrivateAPI;进一步地,发明人找到一种解决方案,对Private API进行混淆,不过这种混淆是有规律可循的,此时可以避免iOS系统对应的应用服务器检测到Private API,从而可以利用Private API有效的解决iOS系统出现的APP异常退出事件。
需要说明的是,电子设备基于日志文件,确定电子设备中的App正常运行过程中由于机型、系统、CPU、内存等不通以及系统稳定性会偶发出现bug,导致App闪退。在实际应用中,应用程序在电子设备运行后,用户针对电子设备上的应用程序执行某一操作后,导致应用程序异常退出事件,此时,开发人员需要查看电子设备记录的导致应用程序异常退出的日志文件,确定应用程序异常退出的原因。示例性的,操作人员所持电子设备中的应用程序出现异常退出事件,开发人员查看与异常退出事件相关联的日志文件,确定导致闪退的原因,如日志文件中记载的应用程序出现的偶发性异常事件的原因为#5158893NSInternallnconsistencyException Invalid parameter not:bundleProxy!=nil,进而开发人员在应用程序代码中确定出导致APP闪退的原因是某一个类中的对象,如UNUserNotificationCenter*center=[UNUserNotificationCentercurrentNotificationCente];也就是说,用户对APP进行某一操作时,该操作无法获取到center对象而导致APP出现异常退出。
本申请其他实施例中,电子设备可以将存在问题的对象或者方法对应的应用程序代码的位置进行高亮显示和/或标注,也可以记录应用程序代码中的产生异常退出事件的函数或方法的具体位置,以备开发人员发现存在问题的应用程序代码。
这里,电子设备可以是移动设备如手机、笔记本、平板电脑、POS机,甚至包括车载电脑。随着网络和技术朝着越来越宽带化的方向的发展,移动通信产业将走向真正的移动信息时代。另一方面,随着集成电路技术的飞速发展,移动设备的处理能力已经拥有了强大的处理能力,移动设备正在从简单的通话工具变为一个综合信息处理平台。这也给移动设备增加了更加宽广的发展空间。移动智能电子设备可以简称为智能电子设备,移动智能电子设备拥有接入互联网能力,通常搭载各种操作系统,可根据用户需求定制化各种功能。生活中常见的智能电子设备包括移动智能电子设备、车载智能电子设备、智能电视、可穿戴设备等。
操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。本申请电子设备安装的是iOS系统。应用软件则提供用户直接使用的功能,满足用户需求。操作系统提供底层API,而应用程序提供与用户交互的接口。
步骤102、获得与私有应用程序接口关联的第一字符串信息。
其中,第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息。
这里,如果电子设备直接使用Private API处理iOS系统中的APP发生的异常退出事件,一旦调用Private API,电子设备的iOS系统对应的应用服务器便针对当前调用的API进行检测并将检测结果反馈给电子设备,电子设备基于检测结果,确定应用服务器禁止当前调用的API运行时,电子设备禁止该Private API运行,并记录这一检测结果,生成日志文件。
相关技术中,电子设备在生成日志文件后,可以通过String命令定位出PrivateAPI进而获得该Private API的相关信息。
本申请实施例中,电子设备并非直接使用Private API处理iOS系统中的APP发生的异常退出事件,而是通过对Private API的方法名进行处理后,利用处理后的方法名调用Private API处理iOS系统中的APP发生的异常退出事件。
这里,电子设备获得对Private API的方法名进行处理所得到的信息即第一字符串信息,进而电子设备基于第一字符串信息对APP发生的异常退出事件进行处理;需要说明的是,第一字符串信息是对Private API的方法名进行混淆得到的信息,如此,在电子设备基于第一字符串信息对APP发生的异常退出事件进行处理的过程中,电子设备的iOS系统对应的应用服务器针对当前调用的API进行检测得到的检测结果为允许运行。
步骤103、基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理。
本申请实施例中,电子设备通过系统中的Runtime机制基于第一字符串信息调用Private API对异常退出事件进行处理;其中,Runtime机制可以理解为运行时机制,即在运行时确定调用方法名称,进而找到对应的方法进行调用。
在实际应用中,搭载有iOS系统的电子设备获取到第一字符串信息后,基于第一字符串信息调用Private API的过程中,可以先对第一字符串信息进行逆向处理,以便于电子设备查找到第一字符串信息对应的API,进而基于该API对异常退出事件进行处理,如此,实现既可以避免iOS系统对应的应用服务器检测到Private API,又可以基于Private API处理应用程序发生的异常退出事件,有效解决闪退现象,提升用户使用体验。
需要说明的是,电子设备确定应用程序中的异常退出后,若直接使用Private API解决应用程序中的异常退出事件,则会被String命令检测到应用程序中的Private API中的方法名,从而确定该应用程序代码中调用了Private API,导致应用程序审核无法通过。然而,通过本申请所提供的应用程序异常退出的处理方法,电子设备既可以避免iOS系统对应的应用服务器检测到Private API,又可以基于Private API处理应用程序发生的异常退出事件。
本申请其他实施例中,电子设备还可以通过文件加载的方式,读取第一字符串信息。
本申请其他实施例中,电子设备还可以使用开源库fishhook进行方法的替换。Fishhook将指向系统Private API的指针重新进行绑定指定内部函数,进而确定系统Private API与自身定义的方法进行交换。在该实现过程中,电子设备通过fishhook函数的方法替换可以避免iOS系统对应的应用服务器检测到Private API,又可以基于PrivateAPI处理应用程序发生的异常退出事件。
在实际应用中,电子设备确定运行APP发生异常退出事件,并分析该异常退出事件是由电子设备在调用一个数组的过程中,调用了该数组中不存在的一个元素,导致APP发生异常退出事件。电子设备基于第一字符串信息调用Private API对异常退出事件进行处理如针对该调用操作返回一个空数组,以通知电子设备不存在该元素,进而避免调用不存在的元素,从而解决了APP发生的异常退出事件,提高了APP运行的稳定性。
本申请实施例所提供的一种应用程序异常退出的处理方法,确定运行的应用程序发生异常退出事件;获得与私有应用程序接口关联的第一字符串信息;第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息;以确保系统对应的应用服务器无法检测到Private API,进而基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理;如此,解决了相关技术中无法通过Private API处理系统中出现的APP异常退出事件,实现既可以避免电子设备的操作系统对应的应用服务器检测到Private API,又可以基于Private API处理应用程序发生的异常退出事件,有效解决闪退现象,提升用户使用体验。
基于前述实施例,本申请提供一种应用程序异常退出的处理方法,应用于电子设备,参照图2所示,该方法包括以下步骤:
步骤201、确定运行的应用程序发生异常退出事件。
步骤202、获得私有应用程序接口对应的第二字符串信息。
其中,第二字符串信息包括私有应用程序接口的方法名。
步骤203、对第二字符串信息进行编码,得到第三字符串信息。
本申请实施例中,编码可以理解用预先规定的方法将文字、数字或其它对象编成数码,编码还可以理解为将信息从一种形式或格式转换为另一种形式或格式的过程。
本申请实施例中,步骤203对第二字符串信息进行编码,得到第三字符串信息可以通过如下步骤实现:步骤203a、对第二字符串信息进行十六进制编码,得到第三字符串信息。
本申请实施例中,十六进制编码可以理解为由0-9、A-F组成的数字编码,是计算机中数据的一种表示方法。电子设备对第二字符串信息进行十六进制编码,得到第三字符串信息。示例性的,电子设备通过调用stringWithFormat函数可以将第二字符串信息转化为十六进制编码形式的第三字符串信息。
本申请另一实施例中,步骤203对第二字符串信息进行编码,得到第三字符串信息可以通过如下步骤实现:步骤203b、对第二字符串信息进行八进制编码,得到第三字符串信息。
本申请实施例中,八进制编码可以理解为由0-8组成的数字编码,是计算机中数据的一种表示方法。电子设备对第二字符串信息进行八进制编码,得到第三字符串信息。示例性的,电子设备通过调用stringWithFormat函数可以将第二字符串信息转化为八进制编码形式的第三字符串信息。
步骤204、将第三字符串信息转码为C语言静态字符串数组。
本申请实施例中,转码可以理解为将第三字符串信息转为C语言静态字符串数组的这一过程;C语言静态字符串数组可以理解为计算机语言中用来存放字符数据的数组。需要说明的是,由于C语言中没有字符串类型,第三字符串信息是存放在静态字符型数组中。
本申请实施例中,电子设备通过转码的方式,将第三字符串信息转为与第三字符串信息对应的C语言静态字符串数组。示例性的,电子设备通过调用strtol函数将第三字符串信息转换为C语言静态字符串数组。
步骤205、对C语言静态字符串数组与目标字符串进行逻辑运算,得到第一字符串信息。
其中,第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息。
本申请实施例中,目标字符串可以理解为电子设备随机产生的字符串;逻辑运算可以理解为应用在计算机语言中的逻辑推演法;其中,逻辑运算又称布尔运算。示例性的,逻辑运算包括:逻辑与运算、逻辑或运算,逻辑非运算,逻辑异或运算,本申请不做具体限定。这里,电子设备可以基于C语言静态字符串数组与目标字符串进行异或运算,得到第一字符串信息,提高Private API通过String检测的概率。
本申请实施例中,电子设备获得C语言静态字符串数组和目标字符串后,将C语言静态字符串数组中的每一字符与目标字符串进行逻辑运算,得到第一字符串信息;电子设备对Private API的方法名即第一字符串信息进行混淆后,第一字符串信息中每一字符均无任何规律。
在实际应用中,参考图3所示,当C语言静态字符串数组为charString[],电子设备确定C语言静态字符串数组中每一字符均为十六进制;并随机产生十六进制的目标字符串为0x5a,将C语言静态字符串数组charString[]中的每一字符均与目标字符串0x5a进行逻辑运算,如异或运算,charString[i]=(c-0xa5)^0x5a,得到转换后的字符串信息即第一字符串信息,如第一字符串信息为charString1[]={0xd8,0xd9,0xd8,0xd3,0xb2,0xd8,0xd3,0xd7,0xbd,0xd4,0xd9,0xe3,0xbd,0xe4,0xaf,0xcd,0xda,0xc7,0xc8,0x05,’\0},由此可以看出,第一字符串信息通过char数组保存。需要说明的是,第一字符串信息中的字符信息均以乱码形式存在的十六进制的字符信息,避免了iOS系统对应的应用服务器检测到Private API。
步骤206、基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请的实施例提供一种应用程序异常退出的处理装置,该应用程序异常退出的处理装置可以应用于图1~2对应的实施例提供的一种应用程序异常退出的处理方法中,参照图4所示,该应用程序异常退出的处理装置4包括:
确定单元41,用于确定运行的应用程序发生异常退出事件;
获得单元42,用于获得与私有应用程序接口关联的第一字符串信息;第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息;
处理单元43,用于基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理。
本申请其他实施例中,获得单元42,还用于获得私有应用程序接口对应的第二字符串信息;第二字符串信息包括私有应用程序接口的方法名;获得与第二字符串信息对应的C语言静态字符串数组;处理单元43,用于对C语言静态字符串数组与目标字符串进行逻辑运算,得到第一字符串信息。
本申请其他实施例中,处理单元43,还用于对第二字符串信息进行编码,得到第三字符串信息;将第三字符串信息转码为C语言静态字符串数组。
本申请其他实施例中,处理单元43,还用于对第二字符串信息进行十六进制编码,得到第三字符串信息。
本申请其他实施例中,处理单元43,还用于对第二字符串信息进行八进制编码,得到第三字符串信息。
基于前述实施例,本申请的实施例提供一种电子设备,该电子设备可以应用于图1~2对应的实施例提供的一种应用程序异常退出的处理方法中,参照图5所示,该电子设备5(图5中的电子设备5与图4中的应用程序异常退出的处理装置4相对应)包括:处理器51、存储器52和通信总线53,其中:
通信总线53用于实现处理器51和存储器52之间的通信连接。
处理器51用于执行存储器52中存储的应用程序异常退出的处理程序,以实现以下步骤:
确定运行的应用程序发生异常退出事件;
获得与私有应用程序接口关联的第一字符串信息;第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息;
基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理。
本申请的其他实施例中,处理器51用于执行存储器52中存储的应用程序异常退出的处理程序,以实现以下步骤:
获得私有应用程序接口对应的第二字符串信息;第二字符串信息包括私有应用程序接口的方法名;
获得与第二字符串信息对应的C语言静态字符串数组;
对C语言静态字符串数组与目标字符串进行逻辑运算,得到第一字符串信息。
本申请的其他实施例中,处理器51用于执行存储器52中存储的应用程序异常退出的处理程序,以实现以下步骤:对第二字符串信息进行编码,得到第三字符串信息;
将第三字符串信息转码为C语言静态字符串数组。
本申请的其他实施例中,处理器51用于执行存储器52中存储的应用程序异常退出的处理程序,以实现以下步骤:
对第二字符串信息进行十六进制编码,得到第三字符串信息。
本申请的其他实施例中,处理器51用于执行存储器52中存储的应用程序异常退出的处理程序,以实现以下步骤:
对第二字符串信息进行八进制编码,得到第三字符串信息。
通过本申请实施例所提供的电子设备,解决了相关技术中无法通过Private API处理电子设备的操作系统出现的APP异常退出事件,实现既可以避免电子设备的操作系统对应的应用服务器检测到Private API,又可以基于Private API处理应用程序发生的异常退出事件,有效解决闪退现象,提升用户使用体验。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
基于前述实施例,本申请的实施例提供一种计算机存储介质,该计算机存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如下步骤:确定运行的应用程序发生异常退出事件;
获得与私有应用程序接口关联的第一字符串信息;第一字符串信息包括对私有应用程序接口的方法名进行处理所得到的信息;
基于第一字符串信息调用私有应用程序接口对异常退出事件进行处理。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
获得私有应用程序接口对应的第二字符串信息;第二字符串信息包括私有应用程序接口的方法名;
获得与第二字符串信息对应的C语言静态字符串数组;
基于C语言静态字符串数组与目标字符串进行逻辑运算,得到第一字符串信息。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
对第二字符串信息进行编码,得到第三字符串信息;
将第三字符串信息转码为C语言静态字符串数组。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
对第二字符串信息进行十六进制编码,得到第三字符串信息。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
对第二字符串信息进行八进制编码,得到第三字符串信息。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
需要说明的是,上述计算机存储介质/存储器可以是只读存储器(Read OnlyMemory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种应用程序异常退出的处理方法,其特征在于,所述方法包括:
确定运行的应用程序发生异常退出事件;
获得与私有应用程序接口关联的第一字符串信息;所述第一字符串信息包括对所述私有应用程序接口的方法名进行处理所得到的信息;
基于所述第一字符串信息调用所述私有应用程序接口对所述异常退出事件进行处理。
2.根据权利要求1所述的应用程序异常退出的处理方法,其特征在于,所述获得与私有应用程序接口关联的第一字符串信息,包括:
获得所述私有应用程序接口对应的第二字符串信息;所述第二字符串信息包括所述私有应用程序接口的方法名;
获得与所述第二字符串信息对应的C语言静态字符串数组;
对所述C语言静态字符串数组和目标字符串进行逻辑运算,得到所述第一字符串信息。
3.根据权利要求2所述的应用程序异常退出的处理方法,其特征在于,所述获得与所述第二字符串信息对应的C语言静态字符串数组,包括:
对所述第二字符串信息进行编码,得到第三字符串信息;
将所述第三字符串信息转码为所述C语言静态字符串数组。
4.根据权利要求3所述的应用程序异常退出的处理方法,其特征在于,所述对所述第二字符串信息进行编码,得到第三字符串信息,包括:
对所述第二字符串信息进行十六进制编码,得到所述第三字符串信息。
5.根据权利要求3所述的应用程序异常退出的处理方法,其特征在于,所述对所述第二字符串信息进行编码,得到第三字符串信息,包括:
对所述第二字符串信息进行八进制编码,得到所述第三字符串信息。
6.一种应用程序异常退出的处理装置,其特征在于,所述装置包括:
确定单元,用于确定运行的应用程序发生异常退出事件;
获得单元,用于获得与私有应用程序接口关联的第一字符串信息;所述第一字符串信息包括对所述私有应用程序接口的方法名进行处理所得到的信息;
处理单元,用于基于所述第一字符串信息调用所述私有应用程序接口对所述异常退出事件进行处理。
7.一种电子设备,其特征在于,电子设备包括:处理器、存储器和通信总线;所述通信总线用于实现处理器和存储器之间的通信连接;
所述处理器用于执行存储器中存储的应用程序异常退出的处理程序,以实现如下步骤:
确定运行的应用程序发生异常退出事件;
获得与私有应用程序接口关联的第一字符串信息;所述第一字符串信息包括对所述私有应用程序接口的方法名进行处理所得到的信息;
基于所述第一字符串信息调用所述私有应用程序接口对所述异常退出事件进行处理。
8.根据权利要求7的电子设备,其特征在于,所述处理器用于执行存储器中存储的应用程序异常退出的处理程序,以实现如下步骤:
获得所述私有应用程序接口对应的第二字符串信息;所述第二字符串信息包括所述私有应用程序接口的方法名;
获得与所述第二字符串信息对应的C语言静态字符串数组;
对所述C语言静态字符串数组与目标字符串进行逻辑运算,得到所述第一字符串信息。
9.根据权利要求8的电子设备,其特征在于,所述处理器用于执行存储器中存储的应用程序异常退出的处理程序,以实现如下步骤:
对所述第二字符串信息进行编码,得到第三字符串信息;
将所述第三字符串信息转码为所述C语言静态字符串数组。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的应用程序异常退出的处理方法。
CN201911339003.7A 2019-12-23 2019-12-23 应用程序异常退出的处理方法、装置、设备及存储介质 Active CN111176874B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911339003.7A CN111176874B (zh) 2019-12-23 2019-12-23 应用程序异常退出的处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911339003.7A CN111176874B (zh) 2019-12-23 2019-12-23 应用程序异常退出的处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111176874A true CN111176874A (zh) 2020-05-19
CN111176874B CN111176874B (zh) 2022-04-12

Family

ID=70650283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911339003.7A Active CN111176874B (zh) 2019-12-23 2019-12-23 应用程序异常退出的处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111176874B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485929A (zh) * 2021-07-12 2021-10-08 北大方正集团有限公司 数据处理方法、装置、设备、存储介质及程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468478A (zh) * 2015-11-26 2016-04-06 北京京东尚科信息技术有限公司 一种应用崩溃后的业务数据恢复方法及装置
US20170192832A1 (en) * 2016-01-06 2017-07-06 Nicira, Inc. Providing an application interface programming exception in an upper management layer
US20170329619A1 (en) * 2016-05-13 2017-11-16 International Business Machines Corporation Multi-byte compressed string representation
CN108228446A (zh) * 2016-12-14 2018-06-29 北京国双科技有限公司 一种软件异常处理方法及软件检测装置
WO2018196559A1 (zh) * 2017-04-26 2018-11-01 腾讯科技(深圳)有限公司 应用程序异常处理方法、装置及存储介质
CN109240886A (zh) * 2018-09-03 2019-01-18 平安科技(深圳)有限公司 异常处理方法、装置、计算机设备以及存储介质
CN109284217A (zh) * 2018-09-28 2019-01-29 平安科技(深圳)有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN110059485A (zh) * 2019-03-16 2019-07-26 平安城市建设科技(深圳)有限公司 Ios应用的私有api检测方法、终端及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468478A (zh) * 2015-11-26 2016-04-06 北京京东尚科信息技术有限公司 一种应用崩溃后的业务数据恢复方法及装置
US20170192832A1 (en) * 2016-01-06 2017-07-06 Nicira, Inc. Providing an application interface programming exception in an upper management layer
US20170329619A1 (en) * 2016-05-13 2017-11-16 International Business Machines Corporation Multi-byte compressed string representation
CN108228446A (zh) * 2016-12-14 2018-06-29 北京国双科技有限公司 一种软件异常处理方法及软件检测装置
WO2018196559A1 (zh) * 2017-04-26 2018-11-01 腾讯科技(深圳)有限公司 应用程序异常处理方法、装置及存储介质
CN109240886A (zh) * 2018-09-03 2019-01-18 平安科技(深圳)有限公司 异常处理方法、装置、计算机设备以及存储介质
CN109284217A (zh) * 2018-09-28 2019-01-29 平安科技(深圳)有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN110059485A (zh) * 2019-03-16 2019-07-26 平安城市建设科技(深圳)有限公司 Ios应用的私有api检测方法、终端及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485929A (zh) * 2021-07-12 2021-10-08 北大方正集团有限公司 数据处理方法、装置、设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN111176874B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN109558748B (zh) 数据处理方法、装置、电子设备及存储介质
EP1872225B1 (en) Method for handling a detected error in a script-based application
CN102609279A (zh) 在受限应用执行环境中的应用执行
CN110442502B (zh) 一种埋点的方法、装置、设备及存储介质
US20190095181A1 (en) Easy-To-Use Type Of Compile-Time Dependency Injection Method And Device In The Java Platform
JP7106001B2 (ja) サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム
CN111090582A (zh) 错误代码定位方法、装置、存储介质及电子设备
CN114238948A (zh) 一种应用程序检测方法、装置、电子设备及存储介质
CN112527414A (zh) 一种基于前端的数据处理方法、装置、设备及存储介质
CN111176874B (zh) 应用程序异常退出的处理方法、装置、设备及存储介质
US8914815B2 (en) Automated framework for tracking and maintaining kernel symbol list types
US8539512B2 (en) Transactional environments for event and data binding handlers
CN108984238B (zh) 应用程序的手势处理方法、装置及电子设备
CN110045952B (zh) 代码调用方法与装置
US20200117572A1 (en) Problem diagnosis technique of memory corruption based on regular expression generated during application compiling
CN110018831B (zh) 程序处理方法、装置及计算机可读存储介质
CN111783082A (zh) 进程的追溯方法、装置、终端和计算机可读存储介质
JP5828457B2 (ja) Api実行制御装置およびプログラム
CN113282906B (zh) 权限检测方法、装置、终端及存储介质
CN106897057A (zh) 插件调用通知栏的方法及装置
US10664342B2 (en) Leak protection of executables with debug information
CN112612474A (zh) 产品移植方法、装置、存储介质和电子设备
CN115002269B (zh) 读取通讯录的方法、装置、系统及计算机可读存储介质
CN113722011B (zh) 应用界面启动方法、装置、设备和存储介质
US20230359440A1 (en) Externally-initiated runtime type extension

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
CB02 Change of applicant information

Address after: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176

Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant