发明内容
本发明的主要目的在于提供一种基于TP和LCD的内存清理方法、终端和计算机可读存储介质,旨在解决如何在检测到TP和LCD驱动上电时序和逻辑出现异常时,自动在内存中对执行TP和LCD驱动上电时序和逻辑的进程的内存占用资源进行清理,预留充裕的内存的技术问题。
为实现上述目的,本发明提供一种基于TP和LCD的内存清理方法,所述内存清理方法包括以下步骤:
当检测到所述移动终端的TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行所述异常处理策略;
在执行所述异常处理策略之后,检测所述TP和LCD上电时序和逻辑是否恢复正常;
当检测到所述TP和LCD上电时序和逻辑未恢复正常时,获取执行所述TP和LCD上电时序和逻辑的进程的内存运行信息,并根据所述内存运行信息判断所述移动终端的内存是否出现异常;
在所述移动终端的内存出现异常时,将执行所述TP和LCD上电时序和逻辑的进程确定为待清理进程,并对所述待清理进程的内存占用资源进行清理。
可选地,根据所述内存运行信息判断所述移动终端的内存是否出现异常的步骤包括:
从所述内存运行信息中读取执行所述TP和LCD上电时序和逻辑的进程的内存申请信息、内存地址信息和内存映射信息;
判断所述内存申请信息中的内存申请状态值、所述内存地址信息中的内存地址状态值和所述内存映射信息中的内存映射状态值是否均为预设状态值;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值均为预设状态值时,判定所述移动终端的内存未出现异常;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值不均为预设状态值时,判定所述移动终端的内存出现异常。
可选地,对所述待清理进程的内存占用资源进行清理的步骤包括:
对所述移动终端的内存进行扫描,以获取内存扫描数据,并获取所述到清理进程的进程标识信息;
从所述内存扫描数据中获取与所述进程标识信息关联的内存占用资源,并释放所述内存占用资源。
可选地,所述确定异常处理策略,并执行所述异常处理策略的步骤包括:
获取异常标识信息,并从预设异常分类信息中获取与所述异常标识信息关联的特征编码;
根据所述特征编码获取对应的异常处理策略,并执行所述异常处理策略,其中,所述特征编码预置在TP和LCD上电时序和逻辑对应的数据接口中。
可选地,根据所述特征编码获取对应的异常处理策略的步骤包括:
根据所述特征编码确定TP和LCD上电时序和逻辑对应的数据接口;
采集所述数据接口的数据返回值,以根据所述数据返回值确定对应的异常处理策略。
可选地,采集所述数据接口的数据返回值,以根据所述数据返回值确定对应的异常处理策略的步骤包括:
获取所述数据接口对应的关键数据处理流程,并在所述关键数据处理流程中设置关键点;
采集所述关键点的数据返回值,并判断所述数据返回值是否异常;
在所述数据返回值异常时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略。
可选地,在所述数据返回值异常时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略的步骤包括:
在所述数据返回值异常时,统计异常数据返回值的频率;
当检测到所述频率超过阈值时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略。
为实现上述目的,本发明还提供一种移动终端,所述移动终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于TP和LCD的内存清理程序,所述基于TP和LCD的内存清理程序被所述处理器执行时实现如上所述的基于TP和LCD的内存清理方法的步骤。
为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有基于TP和LCD的内存清理程序,所述计算机存储介质上存储有基于TP和LCD的内存清理程序,所述基于TP和LCD的内存清理程序被处理器执行时实现如上所述的基于TP和LCD的内存清理方法的步骤。
本发明提供一种基于TP和LCD的内存清理方法、移动终端及存储介质,本发明通过在检测到移动终端的TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行该异常处理策略,然后在执行该异常处理策略之后,检测该TP和LCD上电时序和逻辑是否恢复正常,并在检测到该TP和LCD上电时序和逻辑未恢复正常,则基于执行TP和LCD上电时序和逻辑的进程的内存运行信息判断移动终端的内存是否出现异常,最后在移动终端的内存出现异常时,将执行该TP和LCD上电时序和逻辑的进程确定为待清理进程,并对该待清理进程的内存占用资源进行清理,使得移动终端能够在检测到TP和LCD驱动上电时序和逻辑出现异常时,自动在内存中对执行TP和LCD驱动上电时序和逻辑的进程的内存占用资源进行清理,预留充裕的内存。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、WiFi模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或WiFi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
A/V输入单元104用于接收音频或视频信号。A/V输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或WiFi模块102进行发送。麦克风1042可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风1042接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。麦克风1042可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
参照图2,其为存储程序区中存储的操作系统的层级示意图,如图2所示,该操作系统包括Loader(装载器)层、Kernel(系统内核)层、Native(本地框架)层、Framework(框架)层(包括C++Framework层和Java Framework层)和App(应用程序)层,其中,Kernel层与Native层之间还存在HAL层(硬件抽象层),该C++Framework层和Java Framework层之间还存在JNI层,该HAL层与Kernel层之间还存在SysCall层。
该Loader层包括Boot ROM(启动服务)和Boot Loader(开机初始化程序),该BootROM主要用于当移动终端处于关机状态时,长按Power(开机)键开机,引导芯片开始从固化在ROM里的预设处代码开始执行。Boot Loader为启动操作系统之前的引导程序,主要是检查RAM,初始化硬件参数等功能。
该Kernel层主要用于进行初始化进程管理、内存管理、加载Display(显示)、Camera Driver(相机驱动)和Binder Driver(Binder驱动)等相关工作,并用于创建内核工作线程kworkder、软中断线程ksoftirqd和软中断线程thermal等内核守护进程。
该Native层主要包括init孵化来的用户空间的守护进程、HAL层以及开机动画等。Init进程(由内核启动的用户级进程)会孵化出ueventd、logd、healthd、installd、adbd和lmkd等用户守护进程User Daemons;init进程还启动servicemanager(服务管家)和bootanim(开机动画)等重要服务;init进程孵化出Zygote进程,Zygote进程是操作系统的第一个Java进程,Zygote是所有Java进程的父进程,Zygote进程本身是由init进程孵化而来的。
该Framework层包括Zygote进程、System Server(系统服务)进程和Media Server(多媒体服务)进程,其中,Zygote进程,是由init进程通过解析init.rc文件后fork生成的,Zygote进程主要包含加载ZygoteInit类、注册Zygote Socket服务端套接字、加载虚拟机、preloadClasses和preloadResouces等;System Server进程,是由Zygote进程fork而来,System Server是Zygote孵化的第一个进程,System Server负责启动和管理整个JavaFramework,包含、ActivityManager(应用程序组件)、PowerManager(电源管理组件)和WindowManagerServer(窗口管理组件)等服务;Media Server进程,是由init进程fork而来,负责启动和管理整个C++framework,包含AudioFlinger(音频服务)、Camera Service(相机服务)和MediaPlayServer(多媒体服务)等服务。
该APP层包括APP进程,每个APP进程均由Zygote进程fork生成,Zygote进程孵化出的第一个App进程是Launcher(桌面启动器),为用户看到的桌面App,Zygote进程还会创建Browser(浏览器)、Phone(电话)和Email(邮件)等App进程,每个App至少运行在一个进程上。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
基于上述移动终端硬件结构,提出本发明移动终端的各个实施例。
请参照图1,在本发明移动终端的第一实施例中,该移动终端包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于TP和LCD的内存清理程序,所述基于TP和LCD的内存清理程序被处理器执行时实现以下步骤:
当检测到所述移动终端的TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行所述异常处理策略;
在执行所述异常处理策略之后,检测所述TP和LCD上电时序和逻辑是否恢复正常;
当检测到所述TP和LCD上电时序和逻辑未恢复正常时,获取执行所述TP和LCD上电时序和逻辑的进程的内存运行信息,并根据所述内存运行信息判断所述移动终端的内存是否出现异常;
在所述移动终端的内存出现异常时,将执行所述TP和LCD上电时序和逻辑的进程确定为待清理进程,并对所述待清理进程的内存占用资源进行清理。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
从所述内存运行信息中读取执行所述TP和LCD上电时序和逻辑的进程的内存申请信息、内存地址信息和内存映射信息;
判断所述内存申请信息中的内存申请状态值、所述内存地址信息中的内存地址状态值和所述内存映射信息中的内存映射状态值是否均为预设状态值;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值均为预设状态值时,判定所述移动终端的内存未出现异常;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值不均为预设状态值时,判定所述移动终端的内存出现异常。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
对所述移动终端的内存进行扫描,以获取内存扫描数据,并获取所述到清理进程的进程标识信息;
从所述内存扫描数据中获取与所述进程标识信息关联的内存占用资源,并释放所述内存占用资源。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
获取异常标识信息,并从预设异常分类信息中获取与所述异常标识信息关联的特征编码;
根据所述特征编码获取对应的异常处理策略,并执行所述异常处理策略,其中,所述特征编码是预置在TP和LCD上电时序和逻辑对应的数据接口中。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
根据所述特征编码确定TP和LCD上电时序和逻辑对应的数据接口;
采集所述数据接口的数据返回值,以根据所述数据返回值确定对应的异常处理策略。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
获取所述数据接口对应的关键数据处理流程,并在所述关键数据处理流程中设置关键点;
采集所述关键点的数据返回值,并判断所述数据返回值是否异常;
在所述数据返回值异常时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
在所述数据返回值异常时,统计异常数据返回值的频率;
当检测到所述频率超过阈值时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略。
本发明移动终端的具体实施例与下述基于TP和LCD的内存清理方法的各具体实施例基本相同,在此不作赘述。
进一步地,本发明还提供一种应用于图1所示的移动终端的基于TP和LCD的内存清理方法,参照图3,图3为本发明基于TP和LCD的内存清理方法第一实施例的流程示意图。
在本实施例中,该基于TP和LCD的内存清理方法包括:
步骤S101,当检测到所述移动终端的TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行所述异常处理策略;
该基于TP和LCD的内存清理方法应用于移动终端,该移动终端包括智能手机和平板电脑等,本发明在移动终端中预设异常分类信息,其中预设异常分类信息中包含移动终端显示屏的各类异常问题和处理逻辑,例如,预设异常分类信息可以是表格,表头为导致移动终端显示屏的异常类型,表格中包含各个类型中相关的数据接口信息,数据返回值及其他关联信息;以此同时,各个类型设置有对应的特征编码(特征编码:特征编码与类型一一对应,其目的是在为了将自然语言转换为机械语言,便于计算机识别)。需要补充说明的是:本发明主要围绕移动终端的LCD和TP上电时序和逻辑异常的处理,在本发明中LCD和TP上电时序和逻辑异常的处理异常以安卓系统进行说明。
预设异常分类信息具体包括:将异常问题根据发生时所处的模块不同进行分类,划分为TP和LCD上电时序和逻辑异常、屏幕失去窗口焦点、Binder阻塞、system_server阻塞、TP和LCD依赖第三方核心库异常共五类。
将异常问题根据发生时所处的模块不同进行分类后,再分别规范定义每个类型对应的特征编码,其中,五类异常问题对应的特征编码分别为:
(1)TP和LCD上电时序和逻辑异常:异常标识信息为TP和LCD异常,且对应的特征编码为tpTcdI2CException;
(2)屏幕失去窗口焦点:异常标识信息为屏幕失去窗口焦点,且对应的特征编码为lostScreenWindowFocus;
(3)Binder线程阻塞;异常标识信息为Binder阻塞,且对应的特征编码为binderBlocked;
(4)system_server进程阻塞:异常标识信息为system_server阻塞,且对应的特征编码为mainThreadBlocked;
(5)TP和LCD依赖第三方核心库异常:异常标识信息为TP和LCD依赖第三方核心库异常,且对应的特征编码为tpLCDMainSoException。
上述规范定义的特征编码当前操作系统中没有,属于自定义的特征编码。
TP和LCD上电时序和逻辑异常:对应特征编码为tpTcdI2CException,将该特征编码预埋到TP和LCD上电时序涉及流程的关键执行API中,增加异常判断和捕获逻辑,当TP和LCD上电时序正常,可以执行TP和LCD模块预设的流程;当TP和LCD上电时序出现异常,便会抛出tpTcdI2CException,然后由增设的异常捕获模块捕获到并调用异常处理模块针对该异常进行处理;异常判定的依据主要是根据系统正常运行时,执行流程中涉及到的关键数据接口(数据接口:又叫API接口或者应用程序接口(API:Application ProgramInterface))时返回的正确值进行判断,如果返回的值根据系统预设的结果一样,便认为是正常的执行流程;如果返回的值和系统预设的结果存在差异,便认为是异常,当数据返回值异常时,执行预设异常分类信息中对应的异常处理策略。
该移动终端对显示屏进行检测,并在检测到显示屏出现异常时,其中,显示屏出现异常可能是由TP和LCD驱动上电时序和逻辑出现异常导致的,如,用户在正常使用过程中因TP和LCD驱动上电时序和逻辑存在异常导致TP无法正常上电和对框架上报TP事件,导致触摸屏幕出现无响应;当检测到显示屏出现异常时,基于预设异常分类信息判断是否为TP和LCD上电时序和逻辑出现异常导致的,例如,预设异常分类信息中设置有不同原因导致显示屏异常的信息,并对应设置特征编码,当检测到显示屏出现异常时,就可以通过特征编码确定导致异常的类型。需要补充说明的是:终端LCD和TP上电时序和逻辑异常通常发生在Kernel层,因此,本发明将异常监测模块创建在Native层,当系统启动到Native层时,便会创建LCD和TP异常监测的监听器(lcdTp Exception Listener),监听器负责收集Java框架层关于收到上层APP向Java框架层发送请求显示的信息后,针对Java框架层是否有处理、处理后是否呈现,具体的呈现方式(例如:横屏或竖屏,是否全屏、是否旋转、是否分屏显示、显示时坐标轴是否有变化等),当前显示的主界面是否获取到窗口焦点等针对屏幕显示的状态进行侦听监测。
该移动终端通过上述方式检测到TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行该异常处理策略。
具体地,参照图4,图4为图3中该步骤S101的细化流程示意图,该步骤S101包括:
步骤S1011,获取异常标识信息,并从预设异常分类信息中获取与所述异常标识信息关联的特征编码;
步骤S1012,根据所述特征编码获取对应的异常处理策略,并执行所述异常处理策略,其中,所述特征编码是预置在TP和LCD上电时序和逻辑对应的数据接口中。
当检测到TP和LCD上电时序和逻辑出现异常时,获取异常标识信息,并从预设异常分类信息中获取与该异常标识信息关联的特征编码,然后根据该特征编码获取对应的异常处理策略,并执行该异常处理策略,其中,该特征编码预置在TP和LCD上电时序和逻辑对应的数据接口中。该异常处理策略为通知system_server进程保存当前系统中已经在运行的进程,针对TP和LCD抛出的tpTcdI2CException异常进行统计计数,然后模拟按Power键时对TP和LCD重新上电。
步骤S102,在执行所述异常处理策略之后,检测所述TP和LCD上电时序和逻辑是否恢复正常;
该移动终端在执行异常处理策略,即模拟按Power键时对TP和LCD重新上电之后,检测TP和LCD上电时序和逻辑是否恢复正常,检测的手段主要依据是TP和LCD走上电时序时关键的API的返回值是否正常和是否再次抛出tpTcdI2CException异常;如果TP和LCD走上电时序时关键的API的返回值正常,且系统不再抛出tpTcdI2CException异常,则确定TP和LCD上电时序和逻辑恢复正常,如果TP和LCD走上电时序时关键的API的返回值异常或系统抛出tpTcdI2CException异常,则确定TP和LCD上电时序和逻辑未恢复正常。
步骤S103,当检测到所述TP和LCD上电时序和逻辑未恢复正常时,获取执行所述TP和LCD上电时序和逻辑的进程的内存运行信息,并根据所述内存运行信息判断所述移动终端的内存是否出现异常;
该移动终端在执行异常处理策略之后,且TP和LCD上电时序和逻辑未恢复正常时,获取执行该TP和LCD上电时序和逻辑的进程的内存运行信息,并根据该内存运行信息判断移动终端的内存是否出现异常,该内存运行信息包括进程标识、内存申请信息、内存地址信息和内存映射信息。
具体地,在本实施例中,该步骤S103包括:
从所述内存运行信息中读取执行所述TP和LCD上电时序和逻辑的进程的内存申请信息、内存地址信息和内存映射信息;
判断所述内存申请信息中的内存申请状态值、所述内存地址信息中的内存地址状态值和所述内存映射信息中的内存映射状态值是否均为预设状态值;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值均为预设状态值时,判定所述移动终端的内存未出现异常;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值不均为预设状态值时,判定所述移动终端的内存出现异常。
该移动终端在检测到TP和LCD上电时序和逻辑未恢复正常时,获取执行该TP和LCD上电时序和逻辑的进程的内存运行信息,并从该内存运行信息中读取执行该TP和LCD上电时序和逻辑的进程的内存申请信息、内存地址信息和内存映射信息,然后判断该内存申请信息中的内存申请状态值、该内存地址信息中的内存地址状态值和该内存映射信息中的内存映射状态值是否均为预设状态值,如果该内存申请状态值、该内存地址状态值和该内存映射状态值均为预设状态值,则可以判定移动终端的内存未出现异常;如果该内存申请状态值该内存地址状态值和该内存映射状态值不均为预设状态值,则可以判定移动终端的内存出现异常。
该内存申请状态值为预设状态值,则表示执行该TP和LCD上电时序和逻辑的进程的内存申请出现异常,该内存地址状态值为预设状态值,则表示执行该TP和LCD上电时序和逻辑的进程无法读取内存地址中的数据,该内存映射状态值为预设状态值,则表示执行该TP和LCD上电时序和逻辑的进程的匿名共享内存与物理内存之间的映射关系存在异常。该内存申请状态值、该内存地址状态值和该内存映射状态值均包括第一状态值1和第二状态值0,在本实施例中,预设状态值为1。
步骤S104,在所述移动终端的内存出现异常时,将执行所述TP和LCD上电时序和逻辑的进程确定为待清理进程,并对所述待清理进程的内存占用资源进行清理。
在确定移动终端的内存出现异常时,将执行该TP和LCD上电时序和逻辑的进程确定为待清理进程,并对该待清理进程的内存占用资源进行清理。
具体地,在本实施例中,该步骤S104包括:
对所述移动终端的内存进行扫描,以获取内存扫描数据,并获取所述到清理进程的进程标识信息;
从所述内存扫描数据中获取与所述进程标识信息关联的内存占用资源,并释放所述内存占用资源。
在TP和LCD上电时序和逻辑未恢复正常,切执行TP和LCD上电时序和逻辑的进程的内存运行信息中的内存申请状态值、内存地址状态值和内存映射状态值不均为预设状态值时,根据预设资源类型对移动终端的内存进行扫描,以获取内存扫描数据,并获取待清理进程的进程标识信息,然后从该内存扫描数据中获取与该进程标识信息关联的内存占用资源,并释放该内存占用资源。该预设资源类型的占用资源包括系统类占用资源,应用类占用资源,对象类占用资源、数据库类占用资源和资产类占用资源,该系统类占用资源包括Native Heap、Dalvik Heap、Dalvik Other、Stack、Ashmem、Other dev、.so mmap、apkmmap、.ttf mmap、.dex mmap、oat mmap、.art mmap、Other mmap、GL mtrack和Unknown等资源,该应用类占用资源包括Java Heap堆栈、Native Heap堆栈、Code指针、Stack、Graphics、Private Other和System等资源,该对象类占用资源包括Views、AppContexts、Assets、Local Binders、Parcel memory、Death Recipients等资源,该数据库类占用资源包括memory_used、pagecache_overflow等资源,该资产类占用资源包括.ttf等资源。需要说明的是,该预设阈值可由本领域技术人员基于实际情况进行设置,本实施例对此不作具体限制。
在本实施例中,本发明通过在检测到移动终端的TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行该异常处理策略,然后在执行该异常处理策略之后,检测该TP和LCD上电时序和逻辑是否恢复正常,并在检测到该TP和LCD上电时序和逻辑未恢复正常,则基于执行TP和LCD上电时序和逻辑的进程的内存运行信息判断移动终端的内存是否出现异常,最后在移动终端的内存出现异常时,将执行该TP和LCD上电时序和逻辑的进程确定为待清理进程,并对该待清理进程的内存占用资源进行清理,使得移动终端能够在检测到TP和LCD驱动上电时序和逻辑出现异常时,自动在内存中对执行TP和LCD驱动上电时序和逻辑的进程的内存占用资源进行清理,预留充裕的内存。
进一步地,参照图5,基于前述第一实施例,提出了本发明基于TP和LCD的内存清理方法的第二实施例,与前述实施例的区别在于,该步骤S1012包括:
步骤S10121,根据特征编码确定TP和LCD上电时序和逻辑对应的数据接口。
步骤S10122,采集所述数据接口的数据返回值,以根据所述数据返回值确定对应的异常处理策略。
需要说明的是,本实施例提出了一种异常处理策略的具体确定方式,以下仅对此进行说明,其它可参照前述实施例。
该移动终端基于预设异常分类信息中的特征编码,并确定特征编码对应的异常类型为TP和LCD上电时序和逻辑异常,然后获取TP和LCD上电时序和逻辑对应的数据接口,并采集该数据接口的数据返回值,以根据该数据返回值确定对应的异常处理策略,例如,若数据返回值异常,则将TP和LCD上电进行重新上电,若数据返回值正常,则继续检测接收数据返回值。
具体地,在本实施例中,该步骤S10122包括:
获取所述数据接口对应的关键数据处理流程,并在所述关键数据处理流程中设置关键点;
采集所述关键点的数据返回值,判断所述数据返回值是否异常;
在所述数据返回值异常时,调用预置TP和LCD上电时序和逻辑异常的异常处理策略。
该移动终端获取该数据接口对应的关键数据处理流程,并在该关键数据处理流程中设置关键点,采集该关键点的数据返回值,判断该数据返回值是否异常;如果该数据返回值异常,则调用预置TP和LCD上电时序和逻辑异常的异常处理策略,如果该数据返回值正常,则不做处理。例如,TP和LCD上电时序和逻辑异常:对应特征编码为tpTcdI2CException,将该特征码预埋到TP和LCD上电时序涉及流程的关键执行数据接口中,增加异常判断和捕获逻辑,当TP和LCD上电时序正常,可以执行TP和LCD模块预设的流程;当TP和LCD上电时序出现异常,便会抛出tpTcdI2CException,然后由增设的异常捕获模块捕获到并调用异常冻屏处理模块针对该异常进行处理。
进一步地,在所述数据返回值异常时,统计异常数据返回值的频率;当检测到所述频率超过阈值时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略,在所述频率没有超过阈值,即,可能是其他问题导致的偶然错误,不对移动终端进行处理,并继续监测接收数据返回值。
在本实施例中,具体说明了采集所述数据接口的数据返回值,以根据所述数据返回值确定对应的异常处理策略的步骤,通过预埋异常判断和捕获逻辑,能够更加准确,快速的对TP和LCD上电时序和逻辑异常进行处理。
此外,本发明实施例还提出一种计算机存储介质,所述计算机存储介质上存储有基于TP和LCD的内存清理程序,所述基于TP和LCD的内存清理程序被处理器执行时实现基于TP和LCD的内存清理以下步骤:
当检测到所述移动终端的TP和LCD上电时序和逻辑出现异常时,确定异常处理策略,并执行所述异常处理策略;
在执行所述异常处理策略之后,检测所述TP和LCD上电时序和逻辑是否恢复正常;
当检测到所述TP和LCD上电时序和逻辑未恢复正常时,获取执行所述TP和LCD上电时序和逻辑的进程的内存运行信息,并根据所述内存运行信息判断所述移动终端的内存是否出现异常;
在所述移动终端的内存出现异常时,将执行所述TP和LCD上电时序和逻辑的进程确定为待清理进程,并对所述待清理进程的内存占用资源进行清理。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
从所述内存运行信息中读取执行所述TP和LCD上电时序和逻辑的进程的内存申请信息、内存地址信息和内存映射信息;
判断所述内存申请信息中的内存申请状态值、所述内存地址信息中的内存地址状态值和所述内存映射信息中的内存映射状态值是否均为预设状态值;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值均为预设状态值时,判定所述移动终端的内存未出现异常;
在所述内存申请状态值、所述内存地址状态值和所述内存映射状态值不均为预设状态值时,判定所述移动终端的内存出现异常。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
对所述移动终端的内存进行扫描,以获取内存扫描数据,并获取所述到清理进程的进程标识信息;
从所述内存扫描数据中获取与所述进程标识信息关联的内存占用资源,并释放所述内存占用资源。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
获取异常标识信息,并从预设异常分类信息中获取与所述异常标识信息关联的特征编码;
根据所述特征编码获取对应的异常处理策略,并执行所述异常处理策略,其中,所述特征编码是预置在TP和LCD上电时序和逻辑对应的数据接口中。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
根据所述特征编码确定TP和LCD上电时序和逻辑对应的数据接口;
采集所述数据接口的数据返回值,以根据所述数据返回值确定对应的异常处理策略。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
获取所述数据接口对应的关键数据处理流程,并在所述关键数据处理流程中设置关键点;
采集所述关键点的数据返回值,并判断所述数据返回值是否异常;
在所述数据返回值异常时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略。
进一步地,所述基于TP和LCD的内存清理程序被处理器执行时,还实现以下步骤:
在所述数据返回值异常时,统计异常数据返回值的频率;
当检测到所述频率超过阈值时,调用预置的TP和LCD上电时序和逻辑出现异常的异常处理策略。
本发明计算机可读存储介质的具体实施例与上述基于TP和LCD的内存清理方法的各具体实施例基本相同,在此不作赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。