一种修复Android应用程序的方法和装置制造方法及图纸

技术编号:14173640 阅读:55 留言:0更新日期:2016-12-13 01:48
本发明专利技术属于计算机领域,提供一种修复Android应用程序的方法和装置,方法包括:在开启Android应用程序时,读取Android应用程序的错误代码段对应的修正代码段;按照Android应用程序运行时代码段执行的先后逻辑,将修正代码段插入逻辑上先于Android应用程序的错误代码段执行的位置;运行Android应用程序时在执行完仅加载修正代码段部分后,略过错误代码段,按照应用程序代码段的逻辑顺序继续执行应用程序的其他代码段。本发明专利技术的技术方案既避免了如现有技术在Android应用程序运行错误时安装新的Android应用程序,又不会中断用户使用Android应用程序。

Method and device for repairing Android application program

The invention belongs to the field of computer, provide a method and apparatus for repairing Android application methods include: in the open Android application, code error correction code reads the Android application corresponding; according to Android application runtime code execution order logic, modified code insertion error code logic Android prior to the execution of the application position; running the Android application when executing only loading correction code section, skip the error code, other code according to the logic sequence of application code segment to execute applications. The technical scheme of the invention not only avoids the installation of the new Android application program in the Android application running error, but also can not interrupt the user to use the Android application program.

【技术实现步骤摘要】

本专利技术属于计算机领域,尤其涉及一种修复Android应用程序的方法和装置
技术介绍
Android系统由于良好的开源性,逐渐成为目前电子设备,例如,手机、平板电脑和智能电视等的主流操作系统。虽然Android系统在IT人士的共同努力下不断完善,日趋稳定,但是Android系统上运行的应用程序在运行过程中难免也会出现问题。一般地,Android系统上运行的应用程序在运行过程中出现问题时,现有技术提供的方法是应用程序开发商提供新的安装包,这些新的安装包已经将应用程序的问题修复好,用户只需要下载这些最新的安装包,重新安装一下应用程序即可解决问题。然而,上述解决问题的方式会带来新的问题,这是因为,在安装应用程序最新的安装包的过程中,需要将正在运行的应用程序关闭。待新的应用程序安装完毕后,再启动该应用程序。由于需要中途打断用户对应用程序的使用,会给用户带来不好的体验。针对上述问题,现有技术提供的一种解决方案是在后台对应用程序进行更新,即,默默地卸装有问题的应用程序的同时安装最新的应用程序,如此,也不会打扰用户对应用程序的使用。这种解决方案看上去很完美,然而,有些应用程序,例如,智能电视的launcher界面是智能电视必备的一个应用程序,更是智能电视所有应用程序的主入口,在开机时就启动了,一旦launcher界面的加载出了问题,根本不可能在后台去更新,还是要回到关闭应用程序后再安装新的应用程序的老路上。综上,针对Android应用程序运行时出现问题需要关闭应用程序后重装新的应用程序,目前业界还没有比较理想的解决方案。
技术实现思路
本专利技术的目的在于提供一种修复Android应用程序的方法和装置,以在修复Android应用程序时减轻给客户带来的不好体验。本专利技术第一方面提供一种修复Android应用程序的方法,所述方法包括:在开启Android应用程序时,读取所述Android应用程序的错误代码段对应的修正代码段;按照所述Android应用程序运行时代码段执行的先后逻辑,将所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置;运行所述Android应用程序时在执行完所述修正代码段部分后,略过所述错误代码段,按照所述应用程序代码段的逻辑顺序继续执行所述应用程序的其他代码段。本专利技术第二方面提供一种修复Android应用程序的装置,所述装置包括:读取模块,用于在开启Android应用程序时,读取所述Android应用程序的错误代码段对应的修正代码段;插入模块,用于按照所述Android应用程序运行时代码段执行的先后逻辑,将所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置;代码段加载模块,用于运行所述Android应用程序时在执行完所述修正代码段部分后,略过所述错误代码段,按照所述应用程序代码段的逻辑顺序继续执行所述应用程序的其他代码段。从上述本专利技术技术方案可知,Android应用程序的错误代码段对应的修正代码段可预先准备,并且所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置。由于上述修复流程可事先设计好,在所述Android应用程序出现运行错误后,用户在开启所述Android应用程序时执行的是修正代码段使得Android应用程序正确运行,既避免了如现有技术在Android应用程序运行错误时安装新的Android应用程序,又不会中断用户使用Android应用程序,不仅给用户使用Android应用程序带来方便,而且提高了用户使用Android应用程序的体验。附图说明图1是本专利技术实施例一提供的修复Android应用程序的方法的实现流程示意图;图2是本专利技术实施例二提供的修复Android应用程序的装置的结构示意图;图3是本专利技术实施例三提供的修复Android应用程序的装置的结构示意图;图4是本专利技术实施例四提供的修复Android应用程序的装置的结构示意图;图5-a是本专利技术实施例五提供的修复Android应用程序的装置的结构示意图;图5-b是本专利技术实施例六提供的修复Android应用程序的装置的结构示意图;图5-c是本专利技术实施例七提供的修复Android应用程序的装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例提供一种修复Android应用程序的方法,所述方法包括:在开启Android应用程序时,读取所述Android应用程序的错误代码段对应的修正代码段;按照所述Android应用程序运行时代码段执行的先后逻辑,将所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置;运行所述Android应用程序时在执行完所述修正代码段部分后,略过所述错误代码段,按照所述应用程序代码段的逻辑顺序继续执行所述应用程序的其他代码段。本专利技术实施例还提供相应的修复Android应用程序的装置。以下分别进行详细说明。请参阅附图1,是本专利技术实施例一提供的修复Android应用程序的方法的实现流程示意图,主要包括以下步骤S101至步骤S103,详细说明如下:S101,在开启Android应用程序时,读取所述Android应用程序的错误代码段对应的修正代码段。在本专利技术实施例中,错误代码段为发生错误的类(class),修正代码段为所述发生错误的类修复后得到的修改正确的类(class)。在读取Android应用程序的错误代码段对应的修正代码段之前,附图1示例的方法还包括侦测运行错误的Android应用程序的错误代码段,将所述错误代码段修改正确后制作成对应可执行文件,存储所述对应可执行文件至指定目录,其中,指定目录可以是与Android应用程序所属目录同级的目录,也可以是与Android应用程序所属目录不同级的目录,本专利技术对此不加限制。需要说明的是,在去指定目录读取这些可执行文件之前,会判断该目录是否为空,若为空,则不读取,否则读取;由于指定目录存储的是修正代码段对应的可执行文件,因此,只要指定目录有可执行文件读取,则读取的必然是修正代码段。作为本专利技术一个实施例,读取Android应用程序运行的错误代码段对应的修正代码段,可以是从指定目录读取修改正确的类所制作成的对应可执行文件,加载所述对应可执行文件中所述修改正确的类对应的数组数据,其中,数组数据所属的数组包含各种类,其中发生错误的类的类名与修改正确的类的类名相同,并且,与所述发生错误的类同名的类有多个时,只加载位置在前的类作为所述修改正确的类。作为本专利技术一个实施例,此处的数组可以是DexElements数组。在Android平台下,DexElements数组的元素是一系列apk文件(即Android应用程序)对应的类,这些类是根据程序逻辑上的先后执行顺序进行排列,例如,程序启动时需要首先执行A类,再执行B类,则在DexElements数组中,A类是排列在B类之前的。正是由于这个排序机制,系统在查找类时也是根据程序执行的逻辑来查找,因此,查找时不会浪费很多时间。对于Android平台,应用程序在启动过程中,需要解析apk文件并加载对应的类本文档来自技高网...
一种修复Android应用程序的方法和装置

【技术保护点】
一种修复Android应用程序的方法,其特征在于,所述方法包括:在开启Android应用程序时,读取所述Android应用程序的错误代码段对应的修正代码段;按照所述Android应用程序运行时代码段执行的先后逻辑,将所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置;运行所述Android应用程序时在执行完所述修正代码段部分后,略过所述错误代码段,按照所述应用程序代码段的逻辑顺序继续执行所述应用程序的其他代码段。

【技术特征摘要】
1.一种修复Android应用程序的方法,其特征在于,所述方法包括:在开启Android应用程序时,读取所述Android应用程序的错误代码段对应的修正代码段;按照所述Android应用程序运行时代码段执行的先后逻辑,将所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置;运行所述Android应用程序时在执行完所述修正代码段部分后,略过所述错误代码段,按照所述应用程序代码段的逻辑顺序继续执行所述应用程序的其他代码段。2.如权利要求1所述的方法,其特征在于,所述错误代码段为发生错误的类,所述修正代码段为所述发生错误的类修复后得到的修改正确的类。3.如权利要求2所述的方法,其特征在于,所述读取所述Android应用程序运行的错误代码段对应的修正代码段,包括:从指定目录读取所述修改正确的类所制作成的对应可执行文件,其中发生错误的类的类名与修改正确的类的类名相同;加载所述对应可执行文件中所述修改正确的类对应的数组数据,所述数组数据所属的数组包含各种类,与所述发生错误的类同名的类有多个时,只加载位置在前的类作为所述修改正确的类。4.如权利要求2所述的方法,其特征在于,所述按照所述Android应用程序运行时代码段执行的先后逻辑,将所述修正代码段插入逻辑上先于所述Android应用程序的错误代码段执行的位置,包括:定位所述发生错误的类对应的数组数据在所述数组A中的位置A[i+1],所述i为自然数;将所述修改正确的类对应的数组数据插入所述数组A中A[i]和A[i+1]之间。5.如权利要求1至4任意一项所述的方法,其特征在于,所述读取所述Android应用程序的错误代码段对应的修正代码段之前,所述方法还包括:侦测运行错误的Android应用程序的错误代码段;将所述错误代码段修改正确后制作成对应可执行文件;存储所述对应可执行文件至指定目录...

【专利技术属性】
技术研发人员:曹晗
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1