CN109753412A - 异常处理方法、装置、移动终端以及存储介质 - Google Patents
异常处理方法、装置、移动终端以及存储介质 Download PDFInfo
- Publication number
- CN109753412A CN109753412A CN201910075089.0A CN201910075089A CN109753412A CN 109753412 A CN109753412 A CN 109753412A CN 201910075089 A CN201910075089 A CN 201910075089A CN 109753412 A CN109753412 A CN 109753412A
- Authority
- CN
- China
- Prior art keywords
- application program
- application
- version
- mobile terminal
- reinforced
- 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
Landscapes
- Telephone Function (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种异常处理方法、装置、移动终端以及存储介质,涉及电子设备技术领域。该方法应用于移动终端,该移动终端安装有Android系统,在应用程序发生启动异常时,获取异常信息,当该异常信息包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包,判断该安装包是否包括应用加固标记,当该安装包中包括应用加固标记时,展示提示信息,该提示信息用于表征该应用程序的应用加固版本与移动终端的适配结果。本申请通过在应用程序发生启动异常时,若异常信息包括应用程序的应用加固版本与移动终端不适配,且应用程序的安装包包括应用加固标记,则展示提示信息,以供用户了解造成启动异常的真实问题,提升用户体验。
Description
技术领域
本申请涉及电子设备技术领域,更具体地,涉及一种异常处理方法、装置、移动终端以及存储介质。
背景技术
随着科学技术的发展,安卓Android平台占据了当前移动终端的主流市场。由于Android系统开放源码的特性,由此带来的安全问题不可避免,因此,为了提高应用程序的安全性,越来越多的应用程序采用应用加固技术进行处理,以防止代码被获取,但是,采用应用加固技术的应用程序也提升了移动终端崩溃的次数,用户体验不佳。
发明内容
鉴于上述问题,本申请提出了一种异常处理方法、装置、移动终端以及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种异常处理方法,应用于移动终端,所述移动终端安装有Android系统,所述方法包括:在应用程序发生启动异常时,获取异常信息;当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包;判断所述安装包中是否包括应用加固标记;当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。
第二方面,本申请实施例提供了一种异常处理装置,应用于移动终端,所述移动终端安装有Android系统,所述装置包括:第一获取模块,用于在应用程序发生启动异常时,获取异常信息;第二获取模块,用于当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包;判断模块,用于判断所述安装包中是否包括应用加固标记;展示模块,用于当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。
第三方面,本申请实施例提供了一种移动终端,包括:屏幕;存储器;一个或多个处理器,分别与所述屏幕和所述存储器耦接;一个或多个程序,其中,所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请实施例提供的异常处理方法、装置、移动终端以及存储介质,在应用程序发生启动异常时,获取异常信息,当该异常信息包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包,判断该安装包是否包括应用加固标记,当该安装包中包括应用加固标记时,展示提示信息,该提示信息用于表征该应用程序的应用加固版本与移动终端的适配结果,从而通过在应用程序发生启动异常时,若异常信息包括应用程序的应用加固版本与移动终端不适配,且应用程序的安装包包括应用加固标记,则展示提示信息,以供用户了解造成启动异常的真实问题,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了本申请实施例用于执行根据本申请实施例的异常处理方法的移动终端的框图;
图2示出了本申请实施例提供的安卓系统的框架示意图;
图3示出了本申请一个实施例提供的异常处理方法的流程示意图;
图4示出了本申请又一个实施例提供的异常处理方法的流程示意图;
图5示出了本申请再一个实施例提供的异常处理方法的流程示意图;
图6示出了本申请一个实施例提供的异常处理装置的模块框图;
图7示出了本申请又一个实施例提供的异常处理装置的模块框图;
图8示出了本申请实施例的用于保存或者携带实现根据本申请实施例的异常处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
请参阅图1,其示出了本申请实施例提供的一种移动终端100的结构框图。该移动终端100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的移动终端100可以包括一个或多个如下部件:处理器110、存储器120、屏幕130以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个移动终端100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行移动终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储移动终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
屏幕130用于显示移动终端100所生成或接收的图像数据以及用于进行移动终端100与用户之间的交互。其中,该屏幕130可以为液晶显示屏(Liquid Crystal Display,LCD),可以为有机发光二极管(Organic Light-Emitting Diode,OLED),也可以为电子墨水屏等,在此不做限定。
本申请实施例可应用于安卓(Android)系统,其中,存储器120中存储的程序和数据如图2所示,存储器120中存储有Linux内核层140、系统运行库层150、应用框架层160和应用层170。Linux内核层140为移动终端100的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层150通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行库层150中还提供有Android运行时库(Android Runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层160提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层10中运行有至少一个应用程序,这些应用程序可以是操作系统自带的联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的应用程序,比如即时通信程序、相片美化程序、购物程序等。
发明人经过长期的研究发现,由于Android系统开放源码的特性,且目前的Android应用程序基本都是使用Java语言进行开发,Java经过编译后生成dex文件,该dex文件经过反编译后,很容易可以看到应用程序的代码,同时,由于应用程序的代码和源代码之间的差异性较小,稍作修改就可以生成新的应用程序,从而造成应用程序代码的不安全性。因此,为了提升应用程序代码的安全性,目前的应用程序厂商可以采用应用加固技术把该应用程序的相关组件进行加密隐藏起来,从而使得dex文件中没有应用程序相关的字节码,但是,目前的Android大版本更新的时候往往有大量使用应用加固技术的应用程序存在启动闪退,在AOSP(Android开源版本)中,这些应用程序在发生闪退时没有任何提示,用户往往不知道发生了什么情况,也无法识别这是否是移动终端自身的问题,这些都严重影响用户体验。
针对上述问题,发明人提出了本申请实施例提供的异常处理方法、装置、移动终端以及存储介质,通过在应用程序发生启动异常时,若异常信息包括应用程序的应用加固版本与移动终端不适配,且应用程序的安装包包括应用加固标记,则展示提示信息,以供用户了解造成启动异常的真实问题,提升用户体验。其中,具体的异常处理方法在后续的实施例中进行详细的说明。
实施例
请参阅图3,图3示出了本申请一个实施例提供的异常处理方法的流程示意图。所述异常处理方法用于通过在应用程序发生启动异常时,若异常信息包括应用程序的应用加固版本与移动终端不适配,且应用程序的安装包包括应用加固标记,则展示提示信息,以供用户了解造成启动异常的真实问题,提升用户体验。在具体的实施例中,所述异常处理方法应用于如图6所示的异常处理装置200以及配置有所述异常处理装置200的移动终端100(图1)。下面将以移动终端为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的移动终端可以为智能手机、平板电脑、穿戴式电子设备、车载设备、网关等,在此不做具体的限定。下面将针对图3所示的流程进行详细的阐述,所述异常处理方法具体可以包括以下步骤:
步骤S101:在应用程序发生启动异常时,获取异常信息。
在本实施例中,当用户欲在移动终端启动某个应用程序时,首先需要发送指令至移动终端以指示移动终端启动该应用程序,其中,所述指令可以为用户针对设置于移动终端界面上的应用程序图标进行触控操作生成,可以为用户在移动终端输入指示开启该应用程序的语音信息生成,也可以为用户通过其他电子设备传输指示开启该应用程序的控制指令生成等,在此不做限定。
进一步地,当移动终端检测到指示启动该应用程序的指令时,作为响应尝试启动该应用程序,并在应用程序的启动过程中对该应用程序进行监测,以判断该应用程序是否发生启动异常。作为一种方式,可以对应用程序在启动过程中是否发生闪退进行监测、可以对应用程序启动过程中是否发生卡顿进行监测、可以对应用程序在启动过程中是否发生重启进行监测,也可以对应用程序的启动时长进行监测等,在此不做限定。可以理解的,当监测到所述应用程序在启动过程中发生闪退时,确定该应用程序发生启动异常;当监测到所述应用程序在启动过程中发生卡顿时,确定该应用程序发生启动异常;当监测到所述应用程序在启动过程中发生重启时,确定该应用程序发生启动异常,进一步地,可以在监测到应用程序在启动过程中发生重启的次数达到指定次数时,确定该应用程序发生启动异常,在此不再赘述;也可以在监测到应用程序的启动时长超过指定时长时,确定该应用程序发生启动异常。当然,本实施例还可以包括更多确定应用程序启动异常的方式,在此不做限定。
作为一种方式,在确定该应用程序发生启动异常时,获取异常信息,其中,可以在dropbox中捞取该异常信息。可以理解的,当该应用程序发生启动异常时,移动终端可以针对此次应用程序的启动异常进行分析并生成异常信息,以基于该异常信息对应用程序的启动异常进行修复,其中,该异常信息可以包括启动异常的应用程序包名、启动异常记录、启动异常时间、启动异常原因以及可能造成该启动异常原因的因素等,在此不做限定。
步骤S102:当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包。
其中,移动终端在获取到所述异常信息后,可以对该异常信息进行分析,以从异常信息中识别出造成该启动异常的因素,作为一种方式,当识别结果表征造成该启动异常的多个因素中包括该应用程序的应用加固版本与移动终端不适配时,则移动终端可以响应该异常信息获取应用程序的安装包。具体地,在确定所述异常信息为包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包(APK),并对该安装包进行识别,以获取该安装包中的组件信息,例如,获取该安装包中的代码信息、文本信息、附加信息等,在此不做限定。作为一种方式,在获取所述应用程序的安装包后,可以对安装包中的关键信息进行提取,例如,对安装包中的代码信息进行提取、对安装包中的附加信息进行提取等。
例如,假设对该异常信息分析的结果为造成应用程序启动异常的因素可能为A因素、B因素或C因素,那么,可以分别对A因素、B因素以及C因素进行识别,以判断A因素、B因素以及C因素中是否包括应用程序的应用加固版本与移动终端不适配,可以理解的,当A因素、B因素或C因素中的任意一个因素为应用程序的应用加固版本与移动终端不适配时,则表征该异常信息包括应用程序的应用加固版本与移动终端不适配,则移动终端作为响应获取应用程序的安装包;当A因素、B因素以及C因素均不是应用程序的应用加固版本与移动终端不适配时,则表征该异常信息不包括应用程序的应用加固版本与移动终端不适配,则移动终端不执行获取应用程序的安装包。
步骤S103:判断所述安装包中是否包括应用加固标记。
作为一种方式,移动终端在应用程序安装的过程中,可以判断该应用程序是否为采用应用加固技术的应用程序,当判断结果表征该应用程序为采用应用加固技术的应用程序时,可以在该应用程序的安装包中添加应用加固标记,以对该应用程序进行标识,当判断结果表征该应用程序不是采用应用加固技术的应用程序时,则不在该应用程序的安装包中添加应用加固标记,或者在该应用程序的安装包中添加非应用加固标记,以对该应用程序进行标识。
因此,在本实施例中,在获取所述应用程序的安装包后,可以判断该安装包中是否包括应用加固标记,可以理解的,当该安装包中包括该应用加固标记时,可以确定该应用程序采用了应用加固技术进行处理,当该安装包中不包括该应用加固标记时,可以确定该应用程序没有采用应用加固技术进行处理。其中,该应用加固标记可以包括特殊字符串、特殊字母、特殊标记、特殊数字、特殊字符等,在此不做限定。
步骤S104:当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。
在本实施例中,当确定该安装包中包括应用加固标记时,可以确定发生异常的应用程序为采用应用加固技术处理的应用程序,同时,由于异常信息包括引起应用程序启动异常的原因为应用程序的应用加固版本与移动终端不适配,因此,可以确定该应用程序的启动异常是因为该应用程序的应用加固版本与移动终端不适配。进一步地,在确定应用程序的应用加固版本与移动终端不适配时,则移动终端展示提示信息,以提示用户该应用程序的应用加固版本与移动终端的适配结果,以便用户及时了解问题所在并针对处理,提升用户体验。其中,移动终端可以以界面显示的形式展示该提示信息,可以以语音播报的形式展示该提示信息,在此不做限定。
本申请实施例提供的异常处理方法,在应用程序发生启动异常时,获取异常信息,当该异常信息包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包,判断该安装包是否包括应用加固标记,当该安装包中包括应用加固标记时,展示提示信息,该提示信息用于表征该应用程序的应用加固版本与移动终端的适配结果,从而通过在应用程序发生启动异常时,若异常信息包括应用程序的应用加固版本与移动终端不适配,且应用程序的安装包包括应用加固标记,则展示提示信息,以供用户了解造成启动异常的真实问题,提升用户体验。
请参阅图4,图4示出了本申请又一个实施例提供的异常处理方法的流程示意图。下面将针对图4所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S201:在所述应用程序安装的过程中,在Manifest文件中扫描所述应用程序的第一字节码以及在dex文件中读取所述应用程序的第二字节码。
其中,普通的应用程序(没有采用应用加固技术处理的应用程序)在Manifest文件(AndroidManifest.xml)里面进行组件的申明,而实际的类的定义在dex文件当中,因此,在AndroidManifest.xml中扫描得到的组件,都可以在dex文件中找到对应的字节码。但是采用应用加固技术处理的应用程序,除了一个入口方法会放在dex文件中之外,其他方法的代码都会加密起来放在别的地方,等待启动之后进行动态解析,以达到防止dex文件中的方法代码被破解的目的,但同时也造成了从AndroidManifest.xml中解析出来的大量组件都无法在dex文件中找到对应的字节码。
因此,由于应用加固技术会把对应的应用程序的相关组件加密隐藏起来,从而导致dex当中没有相关的字节码,而应用程序又必须在Manifest(AndroidManifest.xml)文件中定义组件,因此,可以利用这种特性在Android PKMS扫描应用程序,可以获取该应用程序的安装包中的字节码。
具体地,在应用程序的安装过程中,Android PKMS扫描AndroidManifest.xml,可以理解的,应用程序的安装包在AndroidManifest.xml中是以多个字节码的形式存在,因此,可以通过Android PKMS扫描AndroidManifest.xml的方式获取该应用程序的字节码,记为第一字节码。另外,从dex文件中读取该应用程序的字节码,记为第二字节码。
步骤S202:判断所述dex文件中是否包括所述应用程序的activity。
其中,activity是Android组件中最基本也是最为常见用的四大组件之一,且activity是一个应用程序组件,提供一个屏幕,用户可以用来交互完成某项任务,另外,Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件,在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。作为一种方式,可以判断dex文件中是否包括应用程序的activity,若dex文件中包括应用程序的activity时,表征该dex文件中至少包括该应用程序的入口方法,因此,可以继续判断该第一字节码和第二字节码是否匹配,若dex文件中不包括应用程序的activity,表征该dex文件中不包括该应用程序的入口方法,即该应用程序无法通过入口调用其他方法代码,则不再执行后续的判断。具体地,在本实施例中,在从dex文件中读取到该应用程序的第二字节码后,可以判断该第二字节码中是否包括与activity对应的第二字节码。
步骤S203:当所述dex文件中包括所述应用程序的activity时,判断所述第一字节码和所述第二字节码是否匹配。
其中,若该dex文件中包括该应用程序的activity,则可以确定dex文件中至少包括该应用程序的入口方法,因此,可以进一步判断该第一字节码和第二字节码是否匹配。具体地,可以将第一字节码和第二字节码一一进行对比的方式,判断该第一字节码和第二字节码是否匹配;也可以提取第一字节码中的关键字节码,并判断该第二字节码中是否包括该关键字节码的方式,判断所述第一字节码和所述第二字节码是否匹配,其中,该关键字节码至少可以包括其他方法的代码。
步骤S204:当所述第一字节码和所述第二字节码不匹配时,在所述应用程序的安装包中添加所述应用加固标记。
进一步地,当判断结果表征该第一字节码和第二字节码不匹配时,即当第一字节码中的所有字节码不完全与第二字节码中的所有字节码匹配,或者当第二字节码中不包括第一字节码中的关键字节码时,可以确定该应用程序为采用应用加固技术的应用程序,作为响应在该应用程序的安装包中添加应用加固标记,以对该应用程序进行标识。可以理解的,该应用程序的安装包在AndroidManifest.xml中是为字节码的形式存在,且存放在AndroidManifest.xml中的某一区域,因此,可以将该应用加固标记添加至该某一区域,其中,可以将该应用加固标记添加至该安装包的头部、尾部、中部等,在此不做具体的限定。
步骤S205:当所述dex文件中不包括所述应用程序的activity时,正常安装所述应用程序。
相反的,若该dex文件中不包括该应用程序的activity,则可以确定该dex文件中不包括该应用程序的入口方法,因此,可以认为该dex文件中不包括该应用程序,则正常安装该应用程序,可以不在应用程序的安装包中添加应用加固标记,或者在应用程序的安装包中添加非应用加固标记。
步骤S206:在应用程序发生启动异常时,获取异常信息。
步骤S207:当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包。
步骤S208:判断所述安装包中是否包括应用加固标记。
其中,步骤S206-步骤S208的具体描述请参阅步骤S101-步骤S103,在此不再赘述。
步骤S209:当所述安装包中包括所述应用加固标记时,弹出提示框。
作为一种方式,当确定该安装包中包括应用加固标记时,可以确定发生异常的应用程序为采集应用加固技术的应用程序,同时,由于异常信息指示引起应用程序启动异常的原因为应用程序的应用加固版本疑似与移动终端不适配,因此,可以确定该应用程序的启动异常是因为该应用程序的应用加固版本与移动终端不适配。进一步地,在确定应用程序的应用加固版本与移动终端不适配时,则弹出提示框,其中,该提示框可以占据移动终端的全部界面,也可以占据移动终端的部分界面,例如,可以占据移动终端的二分之一界面、占据移动终端的五分之一界面等,另外,该提示框可以显示在移动终端的界面的上部、下部、左部、右部、中部等,在此不做限定。
步骤S210:在所述提示框中展示所述提示信息。
进一步地,将提示信息在提示框中展示,以提示用户该应用程序的应用加固版本与移动终端不适配,以便用户及时了解问题所在并针对处理,提升用户体验。
步骤S211:查找所述应用程序的多个应用加固版本,并判断所述多个应用加固版本中是否包括与所述移动终端适配的目标应用加固版本。
在本实施例中,采用应用加固技术的应用程序,其不同的版本可以对应不同的应用加固版本,因此,该应用程序可以对应有多个应用加固版本。作为一种方式,该移动终端可以查找应用程序的多个应用加固版本,其中,移动终端可以在本地查找该多个应用加固版本,也可以通过网络在服务器查找该多个应用加固版本,在此不做限定。可选的,当该移动终端从本地查找该多个应用加固版本时,该移动终端可以预先创建应用程序的版本和对应的应用加固版本的对应关系的映射关系表,然后将该应用程序的多个版本和其对应的多个应用加固版本添加至该映射关系表,并在确定该应用程序当前的应用加固版本与移动终端不适配时,从该映射关系表中查找该应用程序的多个应用加固版本。
进一步地,在获取该应用程序的多个应用加固版本后,判断该多个应用加固版本中是否包括与移动终端适配的应用加固版本,将与移动终端适配的应用加固版本记为目标应用加固版本。具体地,可以获取该应用程序在移动终端运行的历史数据,并通过历史数据判断多个应用加固版本中是否包括与移动终端适配的应用加固版本。作为一种方式,移动终端每运行一个版本的应用程序时,可以对该应用程序的运行状态、该应用程序的应用加固版本以及该应用程序的版本进行记录并建立对应关系,如表1所示,其中,该运行状态至少包括启动正常和启动异常,因此,移动终端可以判断多个应用加固版本中是否记录有启动正常的目标应用加固版本。
表1
运行状态 | 应用加固版本 | 版本 |
启动正常 | A1 | B1 |
启动正常 | A2 | B2 |
启动异常 | A3 | B3 |
例如,如表1所示,该应用程序包括三个版本,即版本B1、版本B2以及版本B3,并且版本B1的应用程序采用应用加固版本A1进行加固处理,版本B2的应用程序采用应用加固版本A2进行加固处理,版本B3的应用程序采用应用加固版本A3进行加固处理,另外,从表1中可以知道,该采用应用加固版本A1和应用加固版本A2处理的应用程序启动正常,因此,可以将应用加固版本A1和应用加固版本A2作为所述目标应用加固版本。
步骤S212:当所述多个应用加固版本中包括与所述移动终端适配的目标应用加固版本时,获取采用所述目标应用加固版本的应用程序的目标版本,推送所述目标版本。
作为一种方式,当确定该多个应用加固版本中包括有与移动终端适配的目标应用加固版本时,可以通过预先建立的应用程序的应用加固版本与应用程序的版本的对应关系,获取采用该目标应用加固版本的应用程序的版本,记为目标版本,推送该目标版本,其中,可以通过将该目标版本展示在移动终端界面的方式推送该目标版本,也可以通过语音播报该目标版本的方式推送该目标版本,在此不做限定。例如,当确定应用加固版本A1和应用加固版本A2为目标应用加固版本时,可以获取该应用加固版本A1对应的版本B1,获取应用加固版本A2对应的版本B2,将版本B1和版本B2作为目标版本推送给。
作为一种方式,该移动终端可以分别获取该版本B1和版本B2的发布时间,并比较版本B1和版本B2的发布时间,并推送发布时间较晚的版本,例如,当版本B2的发布时间晚于该版本B1时,可以将版本B2推送给用户。作为另一种方式,该移动终端还可以分别获取该版本B1和版本B2的启动时长,并比较该版本B1和版本B2的启动时长,并推送启动时长较短的版本,例如,当版本B2的启动时长短于版本B1时,可以将版本B2推送给用户。
本申请又一个实施例提供的异常处理方法,在应用程序安装的过程中,在Manifest文件中扫描应用程序的第一字节码以及在dex文件中读取该应用程序的第二字节码,判断该dex文件中是否包括应用程序的activity,当该dex文件中包括该应用程序的activity时,判断第一字节码和第二字节码是否匹配,当第一字节码和第二字节码不匹配时,在应用程序的安装包中添加应用加固标记,当该dex文件中不包括应用程序的activity时,正常安装该应用程序。在应用程序发生启动异常时,获取异常信息,当该异常信息包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包,判断安装包中是否包括应用加固标记,当该安装包中包括应用加固标记时,弹出提示框,在提示框中展示该提示信息,查找应用程序的多个应用加固版本,并判断该多个应用加固版本中是否包括与移动终端适配的目标应用加固版本,当该多个应用加固版本中包括与移动终端适配的目标应用加固版本时,获取采用该目标应用加固版本的应用程序的目标版本,推送目标版本。相较于图3所示的异常处理方法,本实施例在应用程序安装的过程中,对采用应用加固技术的应用程序的安装包中添加应用加固标记,以在应用程序启动异常时提供查找依据。另外,在确认启动异常是因为应用程序的加固版本与移动终端不适配造成时,查找该应用程序与该移动终端适配的目标应用加固版本,并推送该目标应用加固版本对应的应用程序的目标版本给用户,以解决应用程序不适配的问题。
请参阅图5,图5示出了本申请再一个实施例提供的异常处理方法的流程示意图。下面将针对图5所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S301:在所述应用程序安装的过程中,在Manifest文件中扫描所述应用程序的第一字节码以及在dex文件中读取所述应用程序的第二字节码。
步骤S302:判断所述dex文件中是否包括所述应用程序的activity。
步骤S303:当所述dex文件中包括所述应用程序的activity时,判断所述第一字节码和所述第二字节码是否匹配。
步骤S304:当所述第一字节码和所述第二字节码不匹配时,在所述应用程序的安装包中添加所述应用加固标记。
步骤S305:当所述dex文件中不包括所述应用程序的activity时,正常安装所述应用程序。
步骤S306:在应用程序发生启动异常时,获取异常信息。
步骤S307:当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包。
步骤S308:判断所述安装包中是否包括应用加固标记。
步骤S309:当所述安装包中包括所述应用加固标记时,弹出提示框。
步骤S310:在所述提示框中展示所述提示信息。
其中,步骤S301-步骤S310的具体描述请参阅步骤S201-步骤S210,在此不再赘述。
步骤S211:检测所述应用程序的版本是否为最新版本。
在本实施例中,在应用程序的应用加固版本与移动终端不适配时,可以获取该应用程序的版本,并判断该应用程序的版本是否为最新版本。例如,可以通过检测应用程序的版本的版本号的方式判断该应用程序的版本是否为最新版本,在此不再赘述。
步骤S312:当所述应用程序的版本不是最新版本时,提示用户将所述应用程序的版本更新至所述最新版本。
其中,当判断结果表征该应用程序的版本不是最新版本时,可以提示用户将应用程序的版本更新至最新版本,以克服应用程序的应用加固版本与移动终端不适配的问题。可以理解的,不同版本的应用程序可以采用不同的应用加固版本,因此,通过将应用程序的当前版本更新至最新版本的方式,可以改变应用加固版本,以克服应用程序的应用加固版本与移动终端不适配的问题。
步骤S213:当所述应用程序的版本是最新版本时,提示用户反馈信息至所述应用程序对应的厂商,其中,所述信息用于提示所述厂商对所述应用程序进行更新。
其中,当判断结果表征该应用程序的版本是最新版本时,表征最新版本的应用程序采用的应用加固版本与移动终端不适配,因此,可以提示用户反馈信息至该应用程序对应的厂商,以指示厂商对该应用程序进行更新,例如,提示厂商采用与最新版本的应用程序不同的应用加固版本对应用程序进行加固处理,以克服应用程序的应用加固版本与移动终端不适配的问题。
本申请再一个实施例提供的异常处理方法,在应用程序安装的过程中,在Manifest文件中扫描应用程序的第一字节码以及在dex文件中读取该应用程序的第二字节码,判断该dex文件中是否包括应用程序的activity,当该dex文件中包括该应用程序的activity时,判断第一字节码和第二字节码是否匹配,当第一字节码和第二字节码不匹配时,在应用程序的安装包中添加应用加固标记,当该dex文件中不包括应用程序的activity时,正常安装该应用程序。在应用程序发生启动异常时,获取异常信息,当该异常信息包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包,判断安装包中是否包括应用加固标记,当该安装包中包括应用加固标记时,弹出提示框,在提示框中展示该提示信息,检测该应用程序的版本是否为最新版本,当该应用程序的版本不是最新版本时,提示用户将该应用程序的版本更新至最新版本,当该应用程序是最新版本时,提示用户反馈信息至应用程序对应的厂商,其中,该信息用于提示厂商对应用程序进行更新。相较于图3所示的异常处理方法,本实施例在应用程序安装的过程中,对采用应用加固技术的应用程序的安装包中添加应用加固标记,以在应用程序启动异常时提供查找依据。另外,在确认启动异常是因为应用程序的加固版本与移动终端不适配造成时,提示用户将应用程序更新至最新版本或提示用户反馈信息至应用程序的厂商指示厂商对应用程序进行更新,以解决应用程序不适配的问题。
请参阅图6,图6示出了本申请一个实施例提供的异常处理装置200的模块框图。该异常处理装置200应用于上述移动终端,该移动终端安装有Android系统,下面将针对图6所示的框图进行阐述,所述异常处理装置200包括:第一获取模块201、第二获取模块202、第一判断模块203以及展示模块204,其中:
第一获取模块201,用于在应用程序发生启动异常时,获取异常信息。
第二获取模块202,用于当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配信息时,获取所述应用程序的安装包。
第一判断模块203,用于判断所述安装包中是否包括应用加固标记。
展示模块204,用于当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。
请参阅图7,图7示出了本申请又一个实施例提供的异常处理装置300的模块框图。该异常处理装置300应用于上述移动终端,该移动终端安装有Android系统,下面将针对图7所示的框图进行阐述,所述异常处理装置300包括:扫描模块301、第二判断模块302、第三判断模块303、添加模块304、第一获取模块305、第二获取模块306、第二判断模块307以及展示模块308,其中:
扫描模块301,用于在所述应用程序安装的过程中,在Manifest文件中扫描所述应用程序的第一字节码以及在dex文件中读取所述应用程序的第二字节码。
第二判断模块302,用于判断所述dex文件中是否包括所述应用程序的activity。
第三判断模块303,用于当所述dex文件中包括所述应用程序的activity时,判断所述第一字节码和所述第二字节码是否匹配。
添加模块304,用于当所述第一字节码和所述第二字节码不匹配时,在所述应用程序的安装包中添加所述应用加固标记。
第一获取模块305,用于在应用程序发生启动异常时,获取异常信息。
第二获取模块306,用于当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包。
第二判断模块307,用于判断所述安装包中是否包括应用加固标记。
展示模块308,用于当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。进一步地,所述展示模块308包括:弹出子模块和展示子模块,其中:
弹出子模块,用于当所述安装包中包括所述应用加固标记时,弹出提示框。
展示子模块,用于在所述提示框中展示所述提示信息。
进一步地,所述异常处理装置300还包括:查找模块、推送模块、检测模块、第一提示模块以及第二提示模块,其中:查找模块、推送模块、检测模块、第一提示模块和第二提示模块,其中:
查找模块,用于查找所述应用程序的多个应用加固版本,并判断所述多个应用加固版本中是否包括与所述移动终端适配的目标应用加固版本。
推送模块,用于当所述多个应用加固版本中包括与所述移动终端适配的目标应用加固版本时,获取采用所述目标应用加固版本的应用程序的目标版本,推送所述目标版本。
检测模块,用于检测所述应用程序的版本是否为最新版本。
第一提示模块,用于当所述应用程序的版本不是最新版本时,提示用户将所述应用程序的版本更新至所述最新版本。
第二提示模块,用于当所述应用程序的版本是最新版本时,提示用户反馈信息至所述应用程序对应的厂商,其中,所述信息用于提示所述厂商对所述应用程序进行更新。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的异常处理方法、装置、移动终端以及存储介质,在应用程序发生启动异常时,获取异常信息,当该异常信息包括应用程序的应用加固版本与移动终端不适配时,获取该应用程序的安装包,判断该安装包是否包括应用加固标记,当该安装包中包括应用加固标记时,展示提示信息,该提示信息用于表征该应用程序的应用加固版本与移动终端的适配结果,从而通过在应用程序发生启动异常时,若异常信息包括应用程序的应用加固版本与移动终端不适配,且应用程序的安装包包括应用加固标记,则展示提示信息,以供用户了解造成启动异常的真实问题,提升用户体验。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种异常处理方法,其特征在于,应用于移动终端,所述移动终端安装有Android系统,所述方法包括:
在应用程序发生启动异常时,获取异常信息;
当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包;
判断所述安装包中是否包括应用加固标记;
当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。
2.根据权利要求1所述的方法,其特征在于,所述在应用程序发生启动异常时,获取异常信息之前,还包括:
在所述应用程序安装的过程中,在Manifest文件中扫描所述应用程序的第一字节码以及在dex文件中读取所述应用程序的第二字节码;
判断所述第一字节码和所述第二字节码是否匹配;
当所述第一字节码和所述第二字节码不匹配时,在所述应用程序的安装包中添加所述应用加固标记。
3.根据权利要求2所述的方法,其特征在于,所述判断所述第一字节码和所述第二字节码是否匹配之前,还包括:
判断所述dex文件中是否包括所述应用程序的activity;
当所述dex文件中包括所述应用程序的activity时,执行判断所述第一字节码和所述第二字节码是否匹配。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述当所述安装包中包括所述应用加固标记时,展示提示信息之后,还包括:
查找所述应用程序的多个应用加固版本,并判断所述多个应用加固版本中是否包括与所述移动终端适配的目标应用加固版本;
当所述多个应用加固版本中包括与所述移动终端适配的目标应用加固版本时,获取采用所述目标应用加固版本的应用程序的目标版本,推送所述目标版本。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述当所述安装包中包括所述应用加固标记时,展示提示信息之后,还包括:
检测所述应用程序的版本是否为最新版本;
当所述应用程序的版本不是最新版本时,提示用户将所述应用程序的版本更新至所述最新版本;
当所述应用程序的版本是最新版本时,提示用户反馈信息至所述应用程序对应的厂商,其中,所述信息用于提示所述厂商对所述应用程序进行更新。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述当所述安装包中包括所述应用加固标记时,展示提示信息,包括:
当所述安装包中包括所述应用加固标记时,弹出提示框;
在所述提示框中展示所述提示信息。
7.一种异常处理装置,其特征在于,应用于移动终端,所述移动终端安装有Android系统,所述装置包括:
第一获取模块,用于在应用程序发生启动异常时,获取异常信息;
第二获取模块,用于当所述异常信息包括所述应用程序的应用加固版本与所述移动终端不适配时,获取所述应用程序的安装包;
第一判断模块,用于判断所述安装包中是否包括应用加固标记;
展示模块,用于当所述安装包中包括所述应用加固标记时,展示提示信息,其中,所述提示信息用于表征所述应用程序的应用加固版本与所述移动终端的适配结果。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
扫描模块,用于在所述应用程序安装的过程中,在Manifest文件中扫描所述应用程序的第一字节码以及在dex文件中读取所述应用程序的第二字节码;
第二判断模块,用于判断所述第一字节码和所述第二字节码是否匹配;
添加模块,用于当所述第一字节码和所述第二字节码不匹配时,在所述应用程序的安装包中添加所述应用加固标记。
9.一种移动终端,其特征在于,包括:
屏幕;
存储器;
一个或多个处理器,分别与所述屏幕和所述存储器耦接;
一个或多个程序,其中,所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-6任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910075089.0A CN109753412A (zh) | 2019-01-25 | 2019-01-25 | 异常处理方法、装置、移动终端以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910075089.0A CN109753412A (zh) | 2019-01-25 | 2019-01-25 | 异常处理方法、装置、移动终端以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109753412A true CN109753412A (zh) | 2019-05-14 |
Family
ID=66406303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910075089.0A Pending CN109753412A (zh) | 2019-01-25 | 2019-01-25 | 异常处理方法、装置、移动终端以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753412A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597570A (zh) * | 2020-05-19 | 2020-08-28 | 展讯半导体(南京)有限公司 | 应用程序加固方法、装置、设备和存储介质 |
CN113591079A (zh) * | 2020-04-30 | 2021-11-02 | 中移互联网有限公司 | 获取异常应用安装包的方法、装置及电子设备 |
CN117493127A (zh) * | 2023-12-29 | 2024-02-02 | 太平金融科技服务(上海)有限公司 | 一种应用程序检测方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365732A (zh) * | 2012-03-29 | 2013-10-23 | 宇龙计算机通信科技(深圳)有限公司 | 一种应用程序异常的处理方法、系统及移动终端 |
CN104965712A (zh) * | 2015-07-17 | 2015-10-07 | 北京奇虎科技有限公司 | 应用程序加固保护方法、装置及移动终端 |
CN105205358A (zh) * | 2015-09-21 | 2015-12-30 | 中科信息安全共性技术国家工程研究中心有限公司 | 一种识别Android APP加固的方法及检测方法 |
CN106850976A (zh) * | 2017-01-13 | 2017-06-13 | 努比亚技术有限公司 | 应用更新方法及终端 |
CN107729028A (zh) * | 2017-11-09 | 2018-02-23 | 青岛海信电器股份有限公司 | 基于android系统的应用程序启动的方法和设备 |
-
2019
- 2019-01-25 CN CN201910075089.0A patent/CN109753412A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365732A (zh) * | 2012-03-29 | 2013-10-23 | 宇龙计算机通信科技(深圳)有限公司 | 一种应用程序异常的处理方法、系统及移动终端 |
CN104965712A (zh) * | 2015-07-17 | 2015-10-07 | 北京奇虎科技有限公司 | 应用程序加固保护方法、装置及移动终端 |
CN105205358A (zh) * | 2015-09-21 | 2015-12-30 | 中科信息安全共性技术国家工程研究中心有限公司 | 一种识别Android APP加固的方法及检测方法 |
CN106850976A (zh) * | 2017-01-13 | 2017-06-13 | 努比亚技术有限公司 | 应用更新方法及终端 |
CN107729028A (zh) * | 2017-11-09 | 2018-02-23 | 青岛海信电器股份有限公司 | 基于android系统的应用程序启动的方法和设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113591079A (zh) * | 2020-04-30 | 2021-11-02 | 中移互联网有限公司 | 获取异常应用安装包的方法、装置及电子设备 |
CN113591079B (zh) * | 2020-04-30 | 2023-08-15 | 中移互联网有限公司 | 获取异常应用安装包的方法、装置及电子设备 |
CN111597570A (zh) * | 2020-05-19 | 2020-08-28 | 展讯半导体(南京)有限公司 | 应用程序加固方法、装置、设备和存储介质 |
CN117493127A (zh) * | 2023-12-29 | 2024-02-02 | 太平金融科技服务(上海)有限公司 | 一种应用程序检测方法、装置、设备及介质 |
CN117493127B (zh) * | 2023-12-29 | 2024-04-05 | 太平金融科技服务(上海)有限公司 | 一种应用程序检测方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176141B2 (en) | Preserving emotion of user input | |
US9292253B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US9436482B2 (en) | Input content to application via web browser | |
US9400633B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US9781262B2 (en) | Methods and apparatus for voice-enabling a web application | |
US9081757B2 (en) | Systems and methods for tracking and updating hosted applications | |
US10157612B2 (en) | Methods and apparatus for voice-enabling a web application | |
CN109753412A (zh) | 异常处理方法、装置、移动终端以及存储介质 | |
WO2016177341A1 (zh) | 接口调用方法、装置及终端 | |
EP3090357B1 (en) | Hosted application marketplaces | |
US9292252B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US10474482B2 (en) | Software application dynamic linguistic translation system and methods | |
CN113590327A (zh) | 项目资源检测方法、装置、电子设备及存储介质 | |
WO2022127743A1 (zh) | 内容显示方法及终端设备 | |
US10789751B2 (en) | Method and apparatus for implementing animation in client application and animation script framework | |
CN108595656B (zh) | 一种数据的处理方法及系统 | |
CN114398673A (zh) | 应用程序的合规检测方法、装置、存储介质与电子设备 | |
CN112394906A (zh) | 一种应用切换运行的方法及设备 | |
CN108563476B (zh) | 应用程序运行方法、装置、存储介质及电子设备 | |
CN111158777B (zh) | 组件调用方法、装置及计算机可读存储介质 | |
WO2019021270A1 (en) | SYSTEM AND METHOD FOR GENERATING ADDRESS UPLETS FILE EXECUTION RECORDING | |
CN107783765A (zh) | 文件编译方法和装置 | |
CN106775900B (zh) | 应用浏览器的调用方法和系统 | |
US8739187B2 (en) | Legacy application integration within a bundle framework | |
US20230359458A1 (en) | Machine learning model management and software development integration |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190514 |