CN110908725B - 应用程序启动方法、装置、电子设备及可读介质 - Google Patents

应用程序启动方法、装置、电子设备及可读介质 Download PDF

Info

Publication number
CN110908725B
CN110908725B CN201810983253.3A CN201810983253A CN110908725B CN 110908725 B CN110908725 B CN 110908725B CN 201810983253 A CN201810983253 A CN 201810983253A CN 110908725 B CN110908725 B CN 110908725B
Authority
CN
China
Prior art keywords
abnormal
function
application program
application
substitution
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.)
Active
Application number
CN201810983253.3A
Other languages
English (en)
Other versions
CN110908725A (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.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding 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 Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN201810983253.3A priority Critical patent/CN110908725B/zh
Publication of CN110908725A publication Critical patent/CN110908725A/zh
Application granted granted Critical
Publication of CN110908725B publication Critical patent/CN110908725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种应用程序启动方法、装置、电子设备及可读介质,该方法包括:在应用程序启动时,判断是否存在异常记录;在有异常记录存在时,获取异常记录中的异常函数相关信息;根据所述异常函数相关信息生成替代函数;以及所述应用程序通过所述替代函数继续进行启动。本申请的应用程序启动方法、装置、电子设备及可读介质,能够在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。

Description

应用程序启动方法、装置、电子设备及可读介质
技术领域
本申请涉及互联网领域,尤其涉及一种应用程序启动方法、装置、电子设备及计算机可读介质。
背景技术
移动客户端热修复技术是在APP开发迭代的过程中衍生出来的一种高级技术,该技术可对线上的问题进行修复。常见的软件开发流程大致可分为如下几步:线下开发、上线、发现bug、紧急修复上线。该方法需要将APP重新打包发布到应用市场,让用户再一次下载,极大地降低了用户体验。而热修复的开发流程显得更加灵活,无需重新发版,实时高效热修复,无需下载新的应用,代价小,最重要的是及时的修复了bug。
然而,现有的热修复技术都是解决出现了问题之后,开发人员通过测试解决问题,再打补丁包,对线上问题进行修复,这种方式仍然解决不了以下问题:
(1)当用户启动APP崩溃后,从开发人员进行热修复操作到应用恢复仍需要一两天的时间,这期间内用户将无法正常使用该APP。
(2)当用户启动APP崩溃后,通常仍会再尝试启动一至两次,若应用仍无法启动,用户通常再不会主动打开该应用,这将极大地降低用户体验,导致用户的流失。
(3)用户进入APP之后,若B功能为启动A功能后才可进行的,但是A功能点击崩溃,这一现象导致在开发人员修复A功能之前,用户将无法获取B功能。
发明内容
有鉴于此,本申请提供一种应用程序启动方法、装置、电子设备及计算机可读介质,能够在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的第一方面,提出一种应用程序启动方法,该方法包括:在应用程序启动时,判断是否存在异常记录;在有异常记录存在时,获取异常记录中的异常函数相关信息;根据所述异常函数相关信息生成替代函数;以及所述应用程序通过所述替代函数继续进行启动。
在本申请的一种示例性实施例中,在应用程序启动时,判断是否存在异常记录包括:在应用程序启动时,通过本地缓存中预设信息判断是否存在异常记录。
在本申请的一种示例性实施例中,获取异常记录中的异常函数相关信息包括:获取异常记录中异常函数的名称、参数、返回值。
在本申请的一种示例性实施例中,异常函数的参数与返回值的类型包括:整数类型,浮点类型,字符类型,布尔类型,以及对象类型。
在本申请的一种示例性实施例中,根据所述异常函数相关信息生成替代函数包括:用第一预设值替换所述异常函数中的参数;用第二预设值替换所述异常函数中的返回值;以及通过替换后的参数与返回值生成所述替代函数。
在本申请的一种示例性实施例中,所述应用程序通过所述替代函数继续进行启动包括:通过动态热替换技术将所述异常函数替换为所述替代函数以便所述应用程序通过所述替代函数继续进行启动。
在本申请的一种示例性实施例中,所述应用程序通过所述替代函数继续进行启动还包括:通过动态加载技术将所述替代函数加载到运行程序文件中。
在本申请的一种示例性实施例中,还包括:在应用程序启动异常时,获取异常日志;通过异常日志生成所述异常记录。
根据本申请实施例的第二方面,提出一种应用程序启动装置,该装置包括:判断模块,用于在应用程序启动时,判断是否存在异常记录;信息模块,用于在有异常记录存在时,获取异常记录中的异常函数相关信息;替换模块,用于根据所述异常函数相关信息生成替代函数;以及启动模块,用于所述应用程序通过所述替代函数继续进行启动。
根据本申请实施例的第三方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的应用程序启动方法。
根据本申请实施例的第四方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述任一项所述的应用程序启动方法。
根据本申请的应用程序启动方法、装置、电子设备及计算机可读介质,能够在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种应用程序启动方法及装置的系统框图。
图2是根据一示例性实施例示出的一种应用程序启动方法的流程图。
图3是根据一示例性实施例示出的一种应用程序启动方法的流程图。
图4是根据另一示例性实施例示出的一种应用程序启动方法的流程图。
图5是根据另一示例性实施例示出的一种应用程序启动方法的流程图。
图6是根据一示例性实施例示出的一种应用程序启动装置的框图。
图7是根据一示例性实施例示出的一种用于应用程序启动的电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图仅为本发明的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图对本发明示例实施方式进行详细说明。
图1是根据一示例性实施例示出的一种应用程序启动方法及装置的系统框图。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的应用程序启动系统提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的异常记录等数据进行分析等处理,并将处理结果(例如替代函数、重新加载后的运行程序文件--仅为示例)反馈给终端设备。
服务器105可例如在应用程序启动时,判断是否存在异常记录;服务器105可例如在有异常记录存在时,获取异常记录中的异常函数相关信息;服务器105可例如根据所述异常函数相关信息生成替代函数。服务器105可例如使所述应用程序通过所述替代函数继续进行启动。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,服务器105中的一部分可例如作为本申请中的异常记录判断系统,用于在应用程序启动时,判断是否存在异常记录;以及服务器105中的一部分还可例如作为本申请中的应用程序启动系统,用于在有异常记录存在时,获取异常记录中的异常函数相关信息;根据所述异常函数相关信息生成替代函数;以及使所述应用程序通过所述替代函数继续进行启动。
需要说明的是,本申请实施例所提供的应用程序启动方法可以由服务器105执行,相应地,应用程序启动的装置可以设置于服务器105中。而提供给用户用于上传异常日志与替代函数的请求端一般位于终端设备101、102、103中。
图2是根据一示例性实施例示出的一种应用程序启动方法的流程图。根据图2示出的应用程序启动方法,可以在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。下面,将参照图2,对本申请示例性实施例中的应用程序启动方法进行说明。
在步骤S210中,在应用程序启动时,判断是否存在异常记录。其中,异常记录可通过如下方式生成:在应用程序启动异常时,获取异常日志;通过异常日志生成异常记录。例如,当用户启动该应用程序时,如果因为终端兼容问题或非兼容问题导致启动失败、应用程序崩溃,则获取导致崩溃的日志信息,并在该日志信息中抓取与崩溃相关的函数,并把此函数记录到终端的本地缓存中,以便再次启动该应用程序时进行判断。
根据实施例,可在应用程序启动时,通过本地缓存中预设信息判断是否存在异常记录。其中,预设信息可为人工设置参数。预设信息可例如为布尔类型,当判断预设信息为真值,表明本地缓存中存在异常记录;当判断预设信息为假,认为本地缓存中并不存在异常记录,则应用程序可正常启动。
在步骤S220中,在有异常记录存在时,获取异常记录中的异常函数相关信息。其中,当判断存在异常记录时,说明本次启动仍存在崩溃的风险,可通过异常函数相关信息对启动程序进行更改,使再次启动时可通过修改后的安全方法启动应用程序。异常函数可例如在应用程序启动崩溃时,从导致崩溃的日志信息中抓取得到的相关崩溃的方法。
根据示例实施例,获取异常记录中的异常函数相关信息可包括:获取异常记录中异常函数的名称、参数、返回值。其中,为实现应用程序的安全启动,可首先在应用程序中的各个方法前面加上注解,在注解里写上默认的参数、返回值等信息。又例如,为减少工作量,可仅在重点守护的方法前面加上上述注解。
根据示例实施例,异常函数的参数与返回值的类型包括:整数类型,浮点类型,字符类型,布尔类型,以及对象类型。其中,整数类型可包括四种整数类型:byte、short、int以及long。byte占据8位内存,其取值范围为-128~127;short占据16位内存,其取值范围为-32768~32767;int占据32位内存,其取值范围为-214783648~214783647;long占据64位内存,其取值范围为-9223372036854774808~9223372036854774807。浮点类型可包括两种浮点类型:float以及double。其中,float类型占据32位内存,最少能精确到小数点后6位;double类型占据64位内存,最少能精确到小数点后10位。字符类型可包括两种字符类型:char以及varchar。其中,char为定长的,varchar为可变长字符串,其可使用1或者2个额外字节记录字符串的长度。对象类型为所有其它类型的基类。
在步骤S230中,根据所述异常函数相关信息生成替代函数。根据示例实施例,该步骤可包括:用第一预设值替换所述异常函数中的参数;用第二预设值替换所述异常函数中的返回值;以及通过替换后的参数与返回值生成所述替代函数。例如,例如,当需要守护某一方法时,可以首先在该方法前面加上注解,在注解中写入安全启动时需要的默认的返回值等信息。当根据所述异常函数相关信息生成替代函数时,可在该异常函数的注解中获取第一预设值与第二预设值,用以分别替换异常函数中的参数以及返回值,以便生成所述替代函数。
在步骤S240中,所述应用程序通过所述替代函数继续进行启动。其中,替代函数的参数值和返回值已经被替换为正常启动时其理应呈现的数值或相应类型的值,将不会影响应用程序的正常启动。
根据示例实施例,步骤S240可包括通过动态热替换技术将所述异常函数替换为所述替代函数以便所述应用程序通过所述替代函数继续进行启动。其中,热动态替换技术为一种特殊的动态热加载机制,而动态热加载技术指程序在执行过程中根据程序设定去加载需要被执行的文件。
根据示例实施例,步骤S240还可包括通过动态加载技术将所述替代函数加载到运行程序文件中。其中,运行程序文件可例如为Dex文件。
根据本申请的应用程序启动方法,通过在应用程序启动异常时生成异常记录,并根据预设值将异常记录中异常函数相关信息进行替换,能够在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。
图3是根据一示例性实施例示出的一种应用程序启动方法的流程图。参照图3,应用程序启动方法可包括:
步骤S310,用第一预设值替换所述异常函数中的参数。其中,第一预设值可为异常函数的注解中写入的默认参数值。
步骤S320,用第二预设值替换所述异常函数中的返回值。其中,第二预设值可为异常函数的注解中写入的默认返回值。
步骤S330,通过替换后的参数与返回值生成所述替代函数。其中,该替代函数的参数为默认参数值,返回值为默认返回值。即该函数将不会运行,即可避免该异常函数导致的应用程序启动异常。
图4是根据一示例性实施例示出的一种应用程序启动方法的流程图。参照图4,当应用程序首次启动失败时,应用程序启动方法可以包括:
步骤S410,应用程序第一次启动。其中,可首先在想要守护的方法前面加上注解,注解里写上默认的返回值等信息。默认的返回值等信息用于崩溃后的安全启动。
步骤S420,应用程序崩溃。其中,应用程序可能由于手机兼容问题或非兼容问题等导致启动失败。
步骤S430,记录异常。其中,可在应用程序崩溃时获取导致崩溃的日志信息,并从此日志信息里抓取相关崩溃的方法,并把此方法记录到终端的本地缓存里。
图5是根据一示例性实施例示出的一种应用程序启动方法的流程图。参照图5,当用户第二次启动图4中的应用程序时,应用程序启动方法可包括:
步骤S510,第二次启动。其中,第二次启动可为应用程序启动异常后,并且异常函数并未得到修复期间的任一次启动。
步骤S520,获取异常记录信息。其中异常记录信息包括异常的方法、参数、返回值等信息。
步骤S530,生成解决异常的代码。其中,可将原方法里面的内容替换成默认返回值。参数和返回值的类型可例如为:整数类型、浮点类型、字符类型、布尔类型以及对象类型。
步骤S540,动态加载到Dex文件。其中,生成的方法并不能直接运行,可使用动态加载技术将生成的方法动态加载到Dex文件中。
步骤S550,动态方法替换。其中,可使用动态热替换技术将原方法替换成新加入到Dex里的修复方法。
步骤S560,正常启动。
根据示例实施例,为验证本申请的应用程序启动方法的性能,可进行如下测试:
(1)在进入应用程序的首页里主动写一个异常,首次启动该应用程序将遇到崩溃。测试第二次启动是否崩溃,若应用程序可正常使用,证明本方法可行。
(2)在应用程序的一个功能(例如转账功能)里写一个异常,点击该功能崩溃。测试第二次启动是否崩溃,若应用程序可正常使用,证明本方法可行。
根据本申请的应用程序启动方法,通过记录异常,生成解决异常的替代函数及动态加载Dex文件,并动态替换该方法,能够在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。综上,本申请的应用程序启动方法在用户启动应用程序遇到崩溃之后,下一次启动可保证正常启动以及使用,安全守护该应用程序的启动过程;同时,在用户使用应用程序的某一功能崩溃时,再次启动使用其他功能时可绕过此功能,不必使整个应用程序崩溃;此外,开发人员可以自行决定要使用安全模式守护的相关内容。
图6是根据一示例性实施例示出的一种应用程序启动装置的框图。参照图6,应用程序启动装置可以包括:判断模块610、信息模块620、替换模块630以及启动模块640。
在应用程序启动装置中,判断模块610用于在应用程序启动时,判断是否存在异常记录。其中,异常记录可通过如下方式生成:在应用程序启动异常时,获取异常日志;通过异常日志生成异常记录。例如,当用户启动该应用程序时,如果因为终端兼容问题或非兼容问题导致启动失败、应用程序崩溃,则获取导致崩溃的日志信息,并在该日志信息中抓取与崩溃相关的函数,并把此函数记录到终端的本地缓存中,以便再次启动该应用程序时进行判断。
信息模块620用于在有异常记录存在时,获取异常记录中的异常函数相关信息。其中,当判断存在异常记录时,说明本次启动仍存在崩溃的风险,可通过异常函数相关信息对启动程序进行更改,使再次启动时可通过修改后的安全方法启动应用程序。异常函数可例如在应用程序启动崩溃时,从导致崩溃的日志信息中抓取得到的相关崩溃的方法。
替换模块630用于根据所述异常函数相关信息生成替代函数。根据示例实施例,替换模块630可用于:用第一预设值替换所述异常函数中的参数;用第二预设值替换所述异常函数中的返回值;以及通过替换后的参数与返回值生成所述替代函数。例如,例如,当需要守护某一方法时,可以首先在该方法前面加上注解,在注解中写入安全启动时需要的默认的返回值等信息。当根据所述异常函数相关信息生成替代函数时,可在该异常函数的注解中获取第一预设值与第二预设值,用以分别替换异常函数中的参数以及返回值,以便生成所述替代函数。
启动模块640用于所述应用程序通过所述替代函数继续进行启动。其中,替代函数的参数值和返回值已经被替换为正常启动时其理应呈现的数值或相应类型的值,将不会影响应用程序的正常启动。
根据本申请的应用程序启动装置,通过在应用程序启动异常时生成异常记录,并根据预设值将异常记录中异常函数相关信息进行替换,能够在应用程序出现异常时,保证仍能正常启动,且不影响异常功能以外功能的使用。
图7是根据一示例性实施例示出的一种用于应用程序启动的电子设备的框图。
下面参照图7来描述根据本申请的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从储存部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。例如,中央处理单元701可以执行如图2、图3、图4、图5中的一个或多个所示的步骤。
在RAM 703中,还存储有系统操作所需的各种程序和数据,例如异常记录、替代函数等。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括触摸屏、键盘等的输入部分706;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分707;包括闪存等的储存部分708;以及包括诸如无线网卡、高速网卡等的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如半导体存储器、磁盘等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入储存部分708。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本发明实施例的方法,例如图2、图3、图4、图5中的一个或多个所示的步骤。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
应当理解的是,本发明并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (9)

1.一种应用程序启动方法,其特征在于,包括:
在应用程序启动时,判断是否存在异常记录;
在有异常记录存在时,获取异常记录中的异常函数相关信息;
根据所述异常函数相关信息生成替代函数;以及
所述应用程序通过所述替代函数继续进行启动;
其中,获取异常记录中的异常函数相关信息包括:
获取异常记录中异常函数的名称、参数、返回值;
其中,根据所述异常函数相关信息生成替代函数包括:
用第一预设值替换所述异常函数中的参数;所述第一预设值为异常函数的注解中写入的默认参数值;
用第二预设值替换所述异常函数中的返回值;所述第二预设值为异常函数的注解中写入的默认返回值;以及
通过替换后的参数与返回值生成所述替代函数。
2.如权利要求1所述的方法,其特征在于,在应用程序启动时,判断是否存在异常记录包括:
在应用程序启动时,通过本地缓存中预设信息判断是否存在异常记录。
3.如权利要求1所述的方法,其特征在于,异常函数的参数与返回值的类型包括:
整数类型,浮点类型,字符类型,布尔类型,以及对象类型。
4.如权利要求1所述的方法,其特征在于,所述应用程序通过所述替代函数继续进行启动包括:
通过动态热替换技术将所述异常函数替换为所述替代函数以便所述应用程序通过所述替代函数继续进行启动。
5.如权利要求4所述的方法,其特征在于,所述应用程序通过所述替代函数继续进行启动还包括:
通过动态加载技术将所述替代函数加载到运行程序文件中。
6.如权利要求1所述的方法,其特征在于,还包括:
在应用程序启动异常时,获取异常日志;
通过异常日志生成所述异常记录。
7.一种应用程序启动装置,其特征在于,包括:
判断模块,用于在应用程序启动时,判断是否存在异常记录;
信息模块,用于在有异常记录存在时,获取异常记录中的异常函数相关信息;
替换模块,用于根据所述异常函数相关信息生成替代函数;以及
启动模块,用于所述应用程序通过所述替代函数继续进行启动;
所述信息模块,还用于获取异常记录中异常函数的名称、参数、返回值;
所述替换模块,还用于用第一预设值替换所述异常函数中的参数;所述第一预设值为异常函数的注解中写入的默认参数值;用第二预设值替换所述异常函数中的返回值;所述第二预设值为异常函数的注解中写入的默认返回值;以及通过替换后的参数与返回值生成所述替代函数。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201810983253.3A 2018-08-27 2018-08-27 应用程序启动方法、装置、电子设备及可读介质 Active CN110908725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810983253.3A CN110908725B (zh) 2018-08-27 2018-08-27 应用程序启动方法、装置、电子设备及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810983253.3A CN110908725B (zh) 2018-08-27 2018-08-27 应用程序启动方法、装置、电子设备及可读介质

Publications (2)

Publication Number Publication Date
CN110908725A CN110908725A (zh) 2020-03-24
CN110908725B true CN110908725B (zh) 2024-04-05

Family

ID=69813216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810983253.3A Active CN110908725B (zh) 2018-08-27 2018-08-27 应用程序启动方法、装置、电子设备及可读介质

Country Status (1)

Country Link
CN (1) CN110908725B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880990B (zh) * 2020-07-20 2023-10-27 北京三快在线科技有限公司 一种异常处理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0683456A1 (en) * 1989-12-22 1995-11-22 Tandem Computers Incorporated Fault-tolerant computer system with online reintegration and shutdown/restart
US6324546B1 (en) * 1998-10-12 2001-11-27 Microsoft Corporation Automatic logging of application program launches
US7509539B1 (en) * 2008-05-28 2009-03-24 International Business Machines Corporation Method for determining correlation of synchronized event logs corresponding to abnormal program termination
CN105487980A (zh) * 2015-12-04 2016-04-13 Tcl集团股份有限公司 修复应用程序运行异常的方法及装置
CN106201868A (zh) * 2016-06-28 2016-12-07 Tcl集团股份有限公司 一种修复Android应用程序的方法和装置
CN107632901A (zh) * 2017-09-25 2018-01-26 青岛海信移动通信技术股份有限公司 一种应用程序运行异常的自修复方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0683456A1 (en) * 1989-12-22 1995-11-22 Tandem Computers Incorporated Fault-tolerant computer system with online reintegration and shutdown/restart
US6324546B1 (en) * 1998-10-12 2001-11-27 Microsoft Corporation Automatic logging of application program launches
US7509539B1 (en) * 2008-05-28 2009-03-24 International Business Machines Corporation Method for determining correlation of synchronized event logs corresponding to abnormal program termination
CN105487980A (zh) * 2015-12-04 2016-04-13 Tcl集团股份有限公司 修复应用程序运行异常的方法及装置
CN106201868A (zh) * 2016-06-28 2016-12-07 Tcl集团股份有限公司 一种修复Android应用程序的方法和装置
CN107632901A (zh) * 2017-09-25 2018-01-26 青岛海信移动通信技术股份有限公司 一种应用程序运行异常的自修复方法及装置

Also Published As

Publication number Publication date
CN110908725A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
US10613970B1 (en) Method and system for managing deployment of software application components based on software performance data
US11281768B1 (en) Firmware security vulnerability verification service
US20190317755A1 (en) Method for upgrading software of pos terminal, pos terminal, and storage medium
CN110096314B (zh) 一种接口初始化方法、装置、设备及计算机可读存储介质
CN110162429B (zh) 系统修复方法、服务器及存储介质
US20090271603A1 (en) Embedded system and startup method thereof
US10802847B1 (en) System and method for reproducing and resolving application errors
CN106843947B (zh) 代码缺陷的处理方法和装置
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
CN111736909A (zh) 操作系统的启动方法、装置、计算机设备及存储介质
CN110908725B (zh) 应用程序启动方法、装置、电子设备及可读介质
CN116932010B (zh) 系统固件升级方法、装置及服务器
CN115913913B (zh) 网卡预启动执行环境功能故障定位方法及装置
TWI698740B (zh) 還原映像檔的部署方法與使用此方法的電子裝置
CN116662050A (zh) 一种错误注入支持功能验证方法、装置、终端及介质
CN116305100A (zh) 识别热插拔硬盘的方法、系统、计算机设备和存储介质
CN112379973B (zh) 重载方法和装置
US8689045B2 (en) Apparatus and method for reloading software images
CN107682224B (zh) 一种网络web页面的测试方法及装置
CN114153503A (zh) 一种bios控制方法、装置、介质
CN111694587A (zh) 服务器pnor固件升级方法、装置、设备及存储介质
CN113220362A (zh) 日志记录获取方法、装置、计算机设备和存储介质
CN113015156A (zh) 一种手机号批量换绑方法、终端及计算机可读存储介质
CN112379943A (zh) Electron应用程序的插件应用方法及装置、存储介质
CN111158771A (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
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

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

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

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

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

Applicant before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant