CN117076168A - Sdk处理方法、装置、设备和存储介质 - Google Patents

Sdk处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN117076168A
CN117076168A CN202310876436.6A CN202310876436A CN117076168A CN 117076168 A CN117076168 A CN 117076168A CN 202310876436 A CN202310876436 A CN 202310876436A CN 117076168 A CN117076168 A CN 117076168A
Authority
CN
China
Prior art keywords
sdk
abnormal data
service
app
local monitor
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
Application number
CN202310876436.6A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310876436.6A priority Critical patent/CN117076168A/zh
Publication of CN117076168A publication Critical patent/CN117076168A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种SDK处理方法、装置、设备和存储介质,涉及计算机技术领域,具体涉及应用程序、网络安全等技术领域。SDK处理方法包括:响应于SDK所在的APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器;响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据;采用所述SDK,将所述异常数据发送给SDK提供方。本公开可以在SDK发生异常时,避免影响该SDK所在的APP,保障该APP正常运行。

Description

SDK处理方法、装置、设备和存储介质
技术领域
本公开涉及计算机技术领域,具体涉及应用程序、网络安全等技术领域,尤其涉及一种SDK处理方法、装置、设备和存储介质。
背景技术
为了降低开发成本,可以在应用程序(Application,APP)中集成软件开发工具包(SoftwareDevelopmentKit,SDK)。
相关技术中,SDK发生异常时,会连带影响其所在的APP发生异常。
发明内容
本公开提供了一种SDK处理方法、装置、设备和存储介质。
根据本公开的一方面,提供了一种SDK处理方法,包括:响应于SDK所在的APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器;响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据;采用所述SDK,将所述异常数据发送给SDK提供方。
根据本公开的另一方面,提供了一种SDK处理装置,包括:启动模块,用于响应于SDK所在的APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器;获取模块,用于响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据;发送模块,用于采用所述SDK,将所述异常数据发送给SDK提供方。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。
根据本公开的技术方案,可以在SDK发生异常时,避免影响该SDK所在的APP,保障该APP正常运行。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开实施例提供的应用场景的示意图;
图3是根据本公开实施例提供的APP内部组成与相关技术中的APP内部组成的对比示意图;
图4是根据本公开第二实施例的示意图;
图5是根据本公开实施例提供的SDK异常数据的处理过程示意图;
图6是根据本公开第三实施例的示意图;
图7是用来实现本公开实施例的SDK处理方法的电子设备的示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开第一实施例的示意图,本实施例提供一种SDK处理方法,该方法包括:
101、响应于SDK所在的APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器。
102、响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据。
103、采用所述SDK,将所述异常数据发送给SDK提供方。
其中,APP内可以集成一种或多种SDK,每种SDK能够完成一种特定功能,比如,完成身份验证功能的SDK、完成支付功能的SDK等。
APP在启动时,可以向其内集成的SDK发送调用指令,SDK响应于该调用指令,完成SDK自身的启动。
SDK在启动时,可以启动SDK业务执行器,SDK业务执行器用于执行SDK的业务逻辑。以SDK是完成身份验证功能的SDK为例,则相应的业务执行器用于对用户进行身份验证。
业务执行器可以具体是进程、线程等,以线程为例,业务执行器也可以称为业务线程。
相关技术中,为了获知SDK或APP自身的异常数据,APP内设置有全局***,该全局***用于获取APP自身的异常数据,以及APP内集成的所有SDK的异常数据。全局***获知到APP自身的异常数据和/或APP内集成的SDK的异常数据后,APP会发生异常,表现为发生闪退(崩溃)现象。
因此,相关技术中,任一SDK发生异常后,都会连带该SDK所在的APP发生异常。
为了避免SDK异常对APP的影响,本实施例中,SDK启动时,还会启动SDK局部***,SDK局部***用于监听对应的SDK业务执行器。其中,不同的SDK可以采用不同的SDK局部***进行监听。
局部***可以具体是进程、线程等,以线程为例,局部***也可以称为局部监听线程。
局部***与全局***不同,全局***是APP级别的,可以监听APP自身以及APP内集成的SDK的异常数据,局部***是SDK级别的,用于监听其所在的SDK的异常数据。
由于局部***是SDK级别的,在SDK发生异常时,该异常数据是被SDK局部***获知的,该异常数据不会被发送至全局***,由于全局***并不知道存在异常,则APP可以保持正常运行,避免SDK异常连带影响APP。
SDK局部***启动后,采用该SDK局部***监听对应的SDK业务执行器,并在对应的SDK业务执行器发生异常时,获取异常数据。
SDK局部***获取异常数据后,采用对应的SDK,将该异常数据发送给对应的SDK提供方。
例如,第一SDK的局部***监听到第一SDK的异常数据后,采用第一SDK将自身的异常数据发送给第一SDK的提供方。
相关技术中,采用APP的全局***进行全局监听,任一SDK发生异常后,该异常数据通过该全局***获得,之后该APP将SDK的异常数据发送给APP提供方,再由APP提供方提供给SDK提供方,这个过程较为复杂。
本实施例中,由SDK自身进行处理,SDK获知自身的异常数据后发送给自身对应的SDK提供方,传输路径更为简洁,可以降低处理复杂度。
本实施例中,通过启动SDK局部***,并由SDK局部***获知对应的SDK业务执行器的异常数据,可以监听到SDK的异常数据,实现对SDK异常数据的获取;由于是SDK局部***获知到SDK异常数据,可以在SDK异常时保持APP正常运行,避免连带影响APP;通过SDK发送异常数据给SDK提供方,可以简化传输路径,降低处理复杂度。因此,可以在SDK发生异常时,避免影响该SDK所在的APP,保障该APP正常运行。
为了更好地理解本公开,对本公开实施例的应用场景进行说明。
图2是根据本公开实施例提供的应用场景的示意图。如图2所示,整体***可以包括:APP201、APP提供方202和SDK提供方203。
APP部署在用户终端上,用户终端可以包括:个人电脑(PersonalComputer、PC)、移动设备、智能家居设备、智能家居设备、可穿戴式设备等,移动设备例如包括手机、便携式电脑、平板电脑等,智能家居设备例如包括智能音箱、智能电视等,可穿戴式设备例如包括智能手表、智能眼镜等。APP提供方和SDK提供方也可以称为服务端,部署在服务器上,相应的服务器可以分别称为APP服务器和SDK服务器,服务器可以是相应提供方的本地服务器,也可以是云端服务器。用户终端与服务器基于通信网络进行交互,通信网络可以包括有线和/或无线通信网络。
APP内可以集成一种或多种SDK。以一种SDK为例,如图2的虚线所示,相关技术中,由APP级别的全局***进行APP自身的异常数据和APP内集成的SDK的异常数据的监听,并将监听到的异常数据发送给APP提供方。若异常数据是SDK产生的,则APP提供方再将异常数据发送给SDK提供方。
而本实施例中,如图2的实线所示,由SDK自身进行自身异常数据的监听,并在监听到SDK自身异常数据后,由SDK将自身异常数据发送给SDK提供方。
具体地,在APP的内部组成上,以APP集成第一SDK和第二SDK为例,相关技术中,如图3的左侧所示,APP内包括全局***,全局***用于监听APP自身和所有SDK的异常数据,因此,各个SDK将自身的异常数据发送给全局***,之后全局***将异常数据发生给APP提供方。而本实施例中,在每个SDK中启动业务执行器和局部***,如针对第一SDK,启动第一SDK业务执行器和第一SDK局部***,针对第二SDK,启动第二SDK业务执行器和第二SDK局部***。各个SDK局部***用于监听对应的SDK业务执行器,并在监听到SDK的异常数据后,由对应的SDK将异常数据发送给SDK提供方。SDK发生异常时,APP正常运行,即SDK的异常数据不会发送给APP的全局***,APP的全局***可以只用于监听APP自身的异常数据。由于APP不会获知SDK的异常数据,为此在SDK异常时,APP可以正常运行,避免SDK异常连带影响APP异常。
结合上述的应用场景,本公开还提供一种SDK处理方法。
图4是根据本公开第二实施例的示意图,本实施例提供一种SDK处理方法。本实施例以业务执行器为业务线程,局部***是监听线程为例,该方法包括:
401、SDK响应于APP的调用指令进行初始化。
其中,以APP是iOS***的APP为例,当用户启动App时,App可以在[AppDelegateapplication:didFinishLaunchingWithOptions:]方法中调用SDK的启动方法,从而产生调用指令并发送给SDK,SDK接收到调用指令后进行初始化,开始运行SDK自己的业务。
402、SDK启动SDK业务线程,且在所述SDK业务线程对应的代码中增加捕获代码,所述捕获代码用于在所述SDK业务线程发生异常时,将异常数据发送给所述SDK监听线程。
其中,SDK业务线程可以用thread_sdk表示,SDK业务线程用于执行SDK的业务逻辑,运行SDK的内部业务。
thread_sdk是独立线程,可通过NSThread创建,后续的SDK内部逻辑代码都运行在thread_sdk线程中。
捕获代码可以具体是@try@catch,@try@catch用于捕获Objective-C崩溃信息,并交由SDK监听线程处理。
本实施例中,通过在SDK业务线程中增加捕获代码,可以使得SDK业务线程自身捕获自身的异常数据并发送给SDK监听线程,实现对SDK异常的监听。
403、SDK启动SDK监听线程。
其中,SDK监听线程可以用thread_crash_server表示。
SDK内部通过注册处理代码(registerHandlerForTask方法)启动CrashExceptionServer,CrashExceptionServer会启动监听独立线程thread_crash_server,目的是对thread_sdk进行监听,当thread_sdk发生崩溃时thread_crash_server能立刻捕获,并进一步处理。
CrashExceptionServer通过内部的registerHandlerForTask启动SDK监听线程thread_crash_server。
CrashExceptionServer内部的registerHandlerForTask逻辑为:
(1)申请监听端口;
(2)分配端口权限;
(3)创建、启动监听线程。
其中,如图5所示,针对某个SDK,其内启动两个独立线程,分别是SDK业务线程和SDK监听线程,SDK业务线程用于执行业务逻辑,如图5所示的业务逻辑用业务逻辑1~业务逻辑3表示,在一个或多个业务逻辑发生异常,如C++异常或者OC(Objective-C)异常时,SDK业务线程将异常数据发送给SDK监听线程。其中,SDK监听线程中注册监听端口,通过该监听端口可以完成异常数据收集。另外,SDK监听线程还可以存储异常数据,另外,还可以通过该监听端口上报异常数据。
本实施例中,通过所述SDK内部的注册处理代码,启动SDK局部***,可以生成用于监听SDK业务线程的SDK监听线程,实现对SDK业务线程的监听。
404、响应于所述SDK业务线程发生异常,保持所述APP正常运行,且采用所述SDK监听线程获取所述SDK业务线程的异常数据。
其中,当SDK业务线程自身通过获知自身异常后,可以将异常数据发送给SDK监听线程;或者,SDK监听线程对SDK业务线程进行监听时也可以获知SDK业务线程的异常数据。
在SDK业务线程异常时,APP保持正常运行,不会影响APP运行。
异常数据可以包括:基础信息和异常信息(崩溃信息)。基础信息可以包括:SDK版本信息、当前线程信息、设备机型信息、***版本信息等;崩溃信息可以包括:崩溃类型、崩溃状态、堆栈信息等。
另外,SDK监听线程还可以将异常数据记录在APP的文件(Documents)沙盒目录中。其中,不同的SDK可以将自身异常数据记录在不同的异常数据日志中。
本实施例中,由于沙盒具有隔离性和安全性,通过将异常数据记录在文件沙盒目录中,可以保证异常数据的安全性。
405、采用所述SDK,将所述异常数据发送给SDK提供方。
其中,SDK在产生异常数据后的下次初始化过程中,可以检查文件沙盒目录中是否存在自身SDK对应的异常数据,若存在,可以读取自身的异常数据并发送给SDK提供方。其中,SDK中可以预先配置与SDK提供方的应用程序编程接口(ApplicationProgrammingInterface,API),通过该API将异常数据发送给SDK提供方。
本实施例中,通过在SDK初始化时获取并发送SDK的异常数据,可以实现异常数据的及时发送,以便SDK提供方及时定位和解决SDK的异常问题。
图6是根据本公开第三实施例的示意图,本实施例提供一种SDK处理装置。该装置600包括:启动模块601、获取模块602和发送模块603。
启动模块601用于响应于SDK所在的APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器;获取模块602用于响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据;发送模块603用于采用所述SDK,将所述异常数据发送给SDK提供方。
本实施例中,通过启动SDK局部***,并由SDK局部***获知对应的SDK业务执行器的异常数据,可以监听到SDK的异常数据,实现对SDK异常数据的获取;由于是SDK局部***获知到SDK异常数据,可以在SDK异常时保持APP正常运行,避免连带影响APP;通过SDK发送异常数据给SDK提供方,可以简化传输路径,降低处理复杂度。因此,可以在SDK发生异常时,避免影响该SDK所在的APP,保障该APP正常运行。
一些实施例中,所述SDK业务执行器是SDK业务线程,所述启动模块601进一步用于:响应于所述调用指令,启动所述SDK业务线程,且在所述SDK业务线程对应的代码中增加捕获代码,所述捕获代码用于在所述SDK业务线程发生异常时,将异常数据发送给所述SDK局部***。
本实施例中,通过在SDK业务线程中增加捕获代码,可以使得SDK业务线程自身捕获自身的异常数据并发送给SDK监听线程,实现对SDK异常的监听。
一些实施例中,所述局部***是SDK监听线程,所述启动模块601进一步用于:采用所述SDK,通过所述SDK内部的注册处理代码,启动所述SDK局部***。
本实施例中,通过所述SDK内部的注册处理代码,启动SDK局部***,可以生成用于监听SDK业务线程的SDK监听线程,实现对SDK业务线程的监听。
一些实施例中,该装置600还包括:记录模块,用于采用所述SDK局部***将所述异常数据记录在所述APP的文件沙盒目录中。
本实施例中,由于沙盒具有隔离性和安全性,通过将异常数据记录在文件沙盒目录中,可以保证异常数据的安全性。
一些实施例中,所述发送模块603进一步用于:在所述SDK初始化过程中,从所述文件沙盒目录中获取所述异常数据,并将所述异常数据发送给SDK提供方。
本实施例中,通过在SDK初始化时获取并发送SDK的异常数据,可以实现异常数据的及时发送,以便SDK提供方及时定位和解决SDK的异常问题。
可以理解的是,本公开实施例中,不同实施例中的相同或相似内容可以相互参考。
可以理解的是,本公开实施例中的“第一”、“第二”等只是用于区分,不表示重要程度高低、时序先后等。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备700还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如SDK处理方法。例如,在一些实施例中,SDK处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到RAM703并由计算单元701执行时,可以执行上文描述的SDK处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行SDK处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程负载均衡装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("VirtualPrivateServer",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (13)

1.一种SDK处理方法,包括:
响应于软件开发工具包SDK所在的应用程序APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器;
响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据;
采用所述SDK,将所述异常数据发送给SDK提供方。
2.根据权利要求1所述的方法,其中,所述SDK业务执行器是SDK业务线程,所述响应于SDK所在的APP的调用指令,启动SDK业务执行器,包括:
响应于所述调用指令,启动所述SDK业务线程,且在所述SDK业务线程对应的代码中增加捕获代码,所述捕获代码用于在所述SDK业务线程发生异常时,将异常数据发送给所述SDK局部***。
3.根据权利要求2所述的方法,其中,所述局部***是SDK监听线程,所述启动局部***,包括:
采用所述SDK,通过所述SDK内部的注册处理代码,启动所述SDK局部***。
4.根据权利要求1所述的方法,还包括:
采用所述SDK局部***将所述异常数据记录在所述APP的文件沙盒目录中。
5.根据权利要求4所述的方法,其中,所述采用所述SDK,将所述异常数据发送给SDK提供方,包括:
在所述SDK初始化过程中,从所述文件沙盒目录中获取所述异常数据,并将所述异常数据发送给SDK提供方。
6.一种SDK处理装置,包括:
启动模块,用于响应于软件开发工具包SDK所在的应用程序APP的调用指令,启动SDK业务执行器,所述SDK业务执行器用于执行所述SDK的业务逻辑,以及启动SDK局部***,所述SDK局部***用于监听所述SDK业务执行器;
获取模块,用于响应于所述SDK业务执行器发生异常,保持所述APP正常运行,且采用所述SDK局部***获取所述SDK业务执行器的异常数据;
发送模块,用于采用所述SDK,将所述异常数据发送给SDK提供方。
7.根据权利要求6所述的装置,其中,所述SDK业务执行器是SDK业务线程,所述启动模块进一步用于:
响应于所述调用指令,启动所述SDK业务线程,且在所述SDK业务线程对应的代码中增加捕获代码,所述捕获代码用于在所述SDK业务线程发生异常时,将异常数据发送给所述SDK局部***。
8.根据权利要求7所述的装置,其中,所述局部***是SDK监听线程,所述启动模块进一步用于:
采用所述SDK,通过所述SDK内部的注册处理代码,启动所述SDK局部***。
9.根据权利要求6所述的装置,还包括:
记录模块,用于采用所述SDK局部***将所述异常数据记录在所述APP的文件沙盒目录中。
10.根据权利要求9所述的装置,其中,所述发送模块进一步用于:
在所述SDK初始化过程中,从所述文件沙盒目录中获取所述异常数据,并将所述异常数据发送给SDK提供方。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的方法。
CN202310876436.6A 2023-07-17 2023-07-17 Sdk处理方法、装置、设备和存储介质 Pending CN117076168A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310876436.6A CN117076168A (zh) 2023-07-17 2023-07-17 Sdk处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310876436.6A CN117076168A (zh) 2023-07-17 2023-07-17 Sdk处理方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN117076168A true CN117076168A (zh) 2023-11-17

Family

ID=88703275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310876436.6A Pending CN117076168A (zh) 2023-07-17 2023-07-17 Sdk处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN117076168A (zh)

Similar Documents

Publication Publication Date Title
EP3575975B1 (en) Method and apparatus for operating smart network interface card
CN109214632B (zh) 一种风险控制方法及设备
US9612886B2 (en) Method and device for monitoring API function scheduling in mobile terminal
CN109582655B (zh) ***日志的定位方法及装置、计算机可读存储介质
CN113766487B (zh) 云手机信息获取方法、装置、设备和介质
CN110377341B (zh) 一种监听无响应异常的方法、装置、介质和电子设备
CN106034138A (zh) 一种远程服务调用方法及装置
CN114025037B (zh) 一种云手机的检修方法、装置、电子设备和存储介质
CN110881224B (zh) 一种网络长连接方法、装置、设备及存储介质
CN112965799B (zh) 任务状态的提示方法、装置、电子设备和介质
CN112818336A (zh) 一种数据访问方法、数据访问装置及计算机可读存储介质
CN110275701B (zh) 数据处理方法、装置、介质和计算设备
CN116545905A (zh) 一种服务健康检测方法、装置、电子设备及存储介质
CN114257632B (zh) 断线重连的方法、装置、电子设备及可读存储介质
CN117076168A (zh) Sdk处理方法、装置、设备和存储介质
CN114374703B (zh) 云手机信息的获取方法、装置、设备以及存储介质
CN115658290A (zh) 消息处理方法、装置、设备和存储介质
CN114389969A (zh) 客户端的测试方法、装置、电子设备和存储介质
CN114116373A (zh) 一种网络请求监控方法、装置、电子设备及存储介质
CN113419880A (zh) 云手机根权限获取方法、相关装置及计算机程序产品
CN114244700A (zh) 端口处理方法及装置、电子设备和计算机可读存储介质
CN106487650B (zh) 消息同步方法、及服务器
CN115080205B (zh) 任务执行方法、装置、电子设备和可读存储介质
US9980132B2 (en) Method for detecting messages and call request and electronic device adapted thereto
CN115840604B (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