一种移动设备应用程序兼容性闪退预防方法及***
技术领域
本公开涉及移动设备技术、进程调度技术领域,具体涉及一种移动设备应用程序兼容性闪退预防方法及***。
背景技术
目前的智能手机、平板电脑等移动设备一般基于安卓或者IOS***,安装有大量的应用程序,而应用程序在移动设备上的闪退现象也日趋常见;闪退现象大多数是可能第三方应用和移动设备***的软硬件存在冲突导致,或者说是与移动设备的硬件、版本不匹配,例如内存不足、或者应用程序本身的版本检测问题。对于应用程序版本的问题,如果是版本太旧,一般采用启动时在线检测的软件有没有新版本可以升级,如果有则执行整包升级与差分升级等方式解决;在现有技术中,例如申请号为CN201810108006.9公开了一种解决原生AndroidAPP闪退问题的***,克服了用信息增益选择属性时偏向选择取值多的属性的不足;在树构造过程中进行适当剪枝智能分析小程序会在下载用户一开始用的一段时间内采取一段时间内的监督行为来构造一颗决策树,通过套公式化的决策行为,然后根据不同的异常行为作出最佳的实施策略;但是该方法依赖于一个独立的决策树***作为监督,如果闪退原因是应用和移动设备***的软硬件存在兼容性的冲突,不属于决策树的集合内的元素,则依然会出现闪退问题。
发明内容
本公开提供一种移动设备应用程序兼容性闪退预防方法及***,通过检测应用程序异常闪退获取异常堆栈信息并调用应用解析进程对异常堆栈信息进行解析获得应用程序启动指标,根据应用程序启动指标创建一个沙盒,应用程序在沙盒中运行并启动数据交换进程,数据交换进程建立一个数据通信接口将沙盒与移动设备的存储器进行连接,从而对存储器进行读取和写入数据。
本公开的目的是针对上述问题,提供一种移动设备应用程序兼容性闪退预防方法,所述方法具体包括以下步骤:
S100:创建四个常驻内存的进程,包括闪退监测进程、应用兼容解析进程、沙盒进程与数据交换进程;
S200:当闪退监测进程监测到应用程序异常闪退,则获取异常堆栈信息并调用应用解析进程对异常堆栈信息进行解析获得应用程序启动指标,调用沙盒进程;
S300:沙盒进程根据应用程序启动指标创建一个沙盒,应用程序在沙盒中运行并启动数据交换进程;
S400:数据交换进程建立一个数据通信接口将沙盒与移动设备的存储器进行连接,从而对存储器进行读取和写入数据。
进一步地,在S200中,闪退监测进程监测到应用程序异常闪退的方法为:闪退监测进程捕获到异常闪退信号,异常闪退信号是导致一个应用程序中断的指令流,一旦出现之后应用程序就立即退出。
进一步地,在S300中,沙盒进程根据应用程序启动指标创建一个沙盒的方法为:沙盒进程根据应用程序的需求内存创建沙盒,沙盒为通过重定向将应用程序运行在一个通过软件模拟的具有需求内存大小的完整硬件***功能的一个完全隔离的环境。
所述沙盒为应用程序的虚拟运行环境,通过重定向把应用程序生成和修改的文件定向到自身文件夹中,让应用程序在沙盒中运行。
所述应用程序运行于IOS***或Android***。
所述数据交换进程为沙盒中的应用程序与IOS或Android操作***进行数据交换的进程;所述应用兼容解析进程用于解析异常堆栈信息;异常堆栈信息为应用程序启动信息在存储器中的用于存储启动跟踪记录的堆栈的启动跟踪记录信息,保留了闪退异常出现时应用程序的实时堆栈信息;启动跟踪记录信息为堆栈中保存的程序异常闪退的原因信息;异常堆栈信息至少包括:异常发生时间、版本号不匹配,需求内存不足、软硬件存在冲突原因;
应用程序启动指标至少包括:版本号,需求内存;
所述数据交换进程的数据交换,在IOS***中数据交换进程通过NSData与***进行数据交换,在Android***中数据交换进程通过Json与***进行数据交换;其中,NSData是通过二进制数据格式作为数据交换格式,屏蔽了文本、音频、图像等数据之间的差异,这些数据都可用NSData来存储;Json是一种轻量级的数据交换格式,完全独立于编程语言的文本格式来存储和表示数据。
所述移动设备包括以IOS***或Android***作为操作***的手机、平板电脑、工业PDF等手持设备。
进一步地,将沙盒与移动设备的存储器进行连接为:数据通信接口为消息传送的接口,用于把沙盒中的应用程序生成和修改的文件定向到移动设备的存储器中的文件夹中。
优选地,本公开的进程还可以理解为模块,即上述的闪退监测进程、应用兼容解析进程、沙盒进程与数据交换进程还可以替换为闪退监测模块、应用兼容解析模块、沙盒模块与数据交换模块,由进程之间的调用替换为模块之间的调用。
本发明还提供了一种移动设备应用程序兼容性闪退预防***,所述***包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下***的单元中:
进程创建单元,用于创建四个常驻内存的进程,包括闪退监测进程、应用兼容解析进程、沙盒进程与数据交换进程;
闪退监测单元,用于当闪退监测进程监测到应用程序异常闪退,则获取异常堆栈信息并调用应用解析进程对异常堆栈信息进行解析获得应用程序启动指标,调用沙盒进程;
沙盒启动单元,用于沙盒进程根据应用程序启动指标创建一个沙盒,应用程序在沙盒中运行并启动数据交换进程;
数据交换单元,用于数据交换进程建立一个数据通信接口将沙盒与移动设备的存储器进行连接,从而对存储器进行读取和写入数据。
本公开的有益效果为:本发明公开了一种移动设备应用程序兼容性闪退预防方法,能够主动监测和识别应用程序闪退原因,并且根据闪退原因创造一个封闭式的沙盒环境以执行应用程序防止软硬件的兼容性问题,减少了第二次运行的闪退概率,提高了用户体验,直接利用***原有的堆栈跟踪闪退的信息,无需硬件的负载,开发简单。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为本公开的一种移动设备应用程序兼容性闪退预防方法的流程图;
图2所示为本公开实施方式的一种移动设备应用程序兼容性闪退预防***。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种移动设备应用程序兼容性闪退预防方法的流程图,下面结合图1来阐述根据本公开的实施方式的方法。
本公开提出一种移动设备应用程序兼容性闪退预防方法,具体包括以下步骤:
S100:创建四个常驻内存的进程,包括闪退监测进程、应用兼容解析进程、沙盒进程与数据交换进程;
S200:当闪退监测进程监测到应用程序异常闪退,则获取异常堆栈信息并调用应用解析进程对异常堆栈信息进行解析获得应用程序启动指标,调用沙盒进程;
S300:沙盒进程根据应用程序启动指标创建一个沙盒,应用程序在沙盒中运行并启动数据交换进程;
S400:数据交换进程建立一个数据通信接口将沙盒与移动设备的存储器进行连接,从而对存储器进行读取和写入数据。
进一步地,在S200中,闪退监测进程监测到应用程序异常闪退的方法为:闪退监测进程捕获到异常闪退信号,异常闪退信号是导致一个应用程序中断的指令流,一旦出现之后应用程序就立即退出。
进一步地,在S300中,沙盒进程根据应用程序启动指标创建一个沙盒的方法为:沙盒进程根据应用程序的需求内存创建沙盒,沙盒为通过重定向将应用程序运行在一个通过软件模拟的具有需求内存大小的完整硬件***功能的一个完全隔离环境。
所述沙盒为应用程序的虚拟运行环境,通过重定向把应用程序生成和修改的文件定向到自身文件夹中,让应用程序在沙盒中运行。
所述应用程序运行于IOS***或Android***。
所述数据交换进程为沙盒中的应用程序与IOS或Android操作***进行数据交换的进程;所述应用兼容解析进程用于解析异常堆栈信息;异常堆栈信息为应用程序启动信息在存储器中的用于存储启动跟踪记录的堆栈的启动跟踪记录信息,保留了闪退异常出现时应用程序的实时堆栈信息;启动跟踪记录信息为堆栈中保存的程序异常闪退的原因信息;异常堆栈信息至少包括:异常发生时间、版本号不匹配,需求内存不足、软硬件存在冲突原因;
应用程序启动指标至少包括:版本号,需求内存;
所述数据交换进程的数据交换,在IOS***中数据交换进程通过NSData与***进行数据交换,在Android***中数据交换进程通过Json与***进行数据交换;其中,NSData是通过二进制数据格式作为数据交换格式,屏蔽了文本、音频、图像等数据之间的差异,这些数据都可用NSData来存储;Json是一种轻量级的数据交换格式,完全独立于编程语言的文本格式来存储和表示数据。
所述移动设备包括以IOS***或Android***作为操作***的手机、平板电脑、工业PDF等手持设备。
进一步地,将沙盒与移动设备的存储器进行连接为:数据通信接口为消息传送的接口,用于把沙盒中的应用程序生成和修改的文件定向到移动设备的存储器中的文件夹中。
本公开的实施例提供的一种移动设备应用程序兼容性闪退预防***,如图2所示为本公开的一种移动设备应用程序兼容性闪退预防***结构图,该实施例的一种移动设备应用程序兼容性闪退预防***包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种移动设备应用程序兼容性闪退预防***实施例中的步骤。
所述***包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下***的单元中:
进程创建单元,用于创建四个常驻内存的进程,包括闪退监测进程、应用兼容解析进程、沙盒进程与数据交换进程;
闪退监测单元,用于当闪退监测进程监测到应用程序异常闪退,则获取异常堆栈信息并调用应用解析进程对异常堆栈信息进行解析获得应用程序启动指标,调用沙盒进程;
沙盒启动单元,用于沙盒进程根据应用程序启动指标创建一个沙盒,应用程序在沙盒中运行并启动数据交换进程;
数据交换单元,用于数据交换进程建立一个数据通信接口将沙盒与移动设备的存储器进行连接,从而对存储器进行读取和写入数据。
所述一种移动设备应用程序兼容性闪退预防***可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种移动设备应用程序兼容性闪退预防***可运行的***可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种移动设备应用程序兼容性闪退预防***的示例,并不构成对一种移动设备应用程序兼容性闪退预防***的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种移动设备应用程序兼容性闪退预防***还可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种移动设备应用程序兼容性闪退预防***运行***的控制中心,利用各种接口和线路连接整个一种移动设备应用程序兼容性闪退预防***可运行***的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种移动设备应用程序兼容性闪退预防***的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。