CN110737476A - 一种终端重启方法及装置 - Google Patents
一种终端重启方法及装置 Download PDFInfo
- Publication number
- CN110737476A CN110737476A CN201810792937.5A CN201810792937A CN110737476A CN 110737476 A CN110737476 A CN 110737476A CN 201810792937 A CN201810792937 A CN 201810792937A CN 110737476 A CN110737476 A CN 110737476A
- Authority
- CN
- China
- Prior art keywords
- terminal
- target application
- application information
- byte stream
- database
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/725—Cordless telephones
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本申请公开了一种终端重启方法及装置,用于解决重启终端的Framework层后用户需要输入密码,从而使得用户感知到终端的重启操作的问题。该方法包括:终端保留终端的文件系统的目标解锁状态,目标解锁状态为当前的解锁状态;终端重启终端的框架层;终端查询终端的文件系统的解锁状态;终端将终端的解锁方式设置为查询到的解锁状态对应的解锁方式。本申请涉及终端技术领域。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种终端重启方法及装置。
背景技术
安卓(Android)系统是一款跨平台的开源操作系统,已被广泛应用于手机、平板电脑、可穿戴设备、电视等设备上。但是随着Android系统的大量使用,其劣势也慢慢的体现出来,最令人诟病的就是Android系统使用时间长后,引起卡顿,手机性能下降,用户体验差等问题。为了解决Android系统越用越慢的问题,Android系统可以基于框架(Framework)层进行重启,基于Framework层重启的方法,可以解决应用、系统进程的膨胀老化问题,但是重启Framework层后用户需要输入密码,会使得用户感知到终端的重启操作。
发明内容
本申请实施例提供了一种终端重启方法及装置,用于解决重启终端的Framework层后用户需要输入密码,从而使得用户感知到终端的重启操作的问题。
第一方面,提供了一种终端重启方法,包括:终端保留终端的文件系统的目标解锁状态,目标解锁状态为当前的解锁状态;终端重启终端的框架层;终端查询终端的文件系统的解锁状态;终端将终端的解锁方式设置为查询到的解锁状态对应的解锁方式。第一方面提供的方法,在终端重启终端的Framework层之前,终端可以保留终端的文件系统的当前的解锁状态,从而使得在重启终端的Framework层之后,用户仍然可以采用重启终端的Framework层之前的解锁方式解锁终端,不会使得用户通过解锁方式感知到终端的Framework层的重启,提升用户的体验。
在一种可能的设计中,在终端重启终端的框架层之前,终端重启方法还包括:终端保存目标应用信息,目标应用信息为与终端当前运行的应用相关的信息;在终端重启终端的框架层之后,终端重启方法还包括:终端根据保存的目标应用信息在终端上恢复目标应用信息。该种可能的实现方式,能够使得用户无法根据目标应用信息感知到终端的Framework层的重启,提升用户的体验。
在一种可能的设计中,目标应用信息包括当前的通知列表、当前的前台应用的应用数据、当前的至少一个后台应用的标识中的至少一个。该种可能的实现方式,提供了多种目标应用信息,为目标应用信息的选择提供了多种可能性。
在一种可能的设计中,目标应用信息包括当前的前台应用的应用数据,前台应用的应用数据为前台应用对应的堆栈中的与前台应用相关的全部活动。
在一种可能的设计中,终端根据保存的目标应用信息在终端上恢复目标应用信息,包括:终端获取保存的全部活动;终端根据获取的全部活动在堆栈中的位置在终端上启动全部活动;其中,全部活动中的位于堆栈中的越底层的活动越早被启动。该种可能的实现方式,终端可以恢复当前的前台应用的应用数据,从而使得用户无法根据前台应用感知到终端的Framework层的重启,提升用户的体验。
在一种可能的设计中,目标应用信息包括当前的通知列表,终端根据保存的目标应用信息在终端上恢复目标应用信息,包括:终端根据保存的通知列表获取通知列表中的每个通知的信息;终端按照时间由先至后的顺序依次在终端上恢复通知列表中的全部通知。该种可能的实现方式,终端可以恢复通知列表,从而使得用户无法根据通知列表感知到终端的Framework层的重启,提升用户的体验。
在一种可能的设计中,目标应用信息包括当前的前台应用的应用数据和/或当前的通知列表,终端保存目标应用信息,包括:若目标应用信息中包括位图对象,终端将第一字节流存储进数据库,第一字节流为位图对象或压缩后的位图对象;和/或,若目标应用信息中包括待触发意图对象,终端将第二字节流存储进数据库,第二字节流为对待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息进行序列化得到的字节流。该种可能的实现方式,将位图对象对应的第一字节流存储在数据库中,提高了位图对象存储的安全性(现有技术中是将位图对象在文件中存储成图片,安全性不高)。并且,该种可能的实现方式,还提供了一种待触发意图对象存储的方法。
应用数据可能包含位图和待触发意图中的任意一个或多个,通知列表也是同样的。
在一种可能的设计中,终端重启方法还包括:若目标应用信息中包括位图对象,终端将根据第一字节流计算得到的第一哈希值存储进数据库,第一哈希值用于对第一字节流进行校验和/或去重;和/或,若目标应用信息中包括待触发意图对象,终端将根据第二字节流计算得到的第二哈希值存储进数据库,第二哈希值用于对第二字节流进行校验和/或去重。该种可能的实现方式,通过采用第一哈希值对第一字节流进行校验,可以提高第一字节流的安全性,通过第一哈希值对第一字节流进行去重,可以节约数据库的存储空间。相应的,通过采用第二哈希值对第二字节流进行校验,可以提高第二字节流的安全性,通过第二哈希值对第二字节流进行去重,可以节约数据库的存储空间。
在一种可能的设计中,终端重启方法还包括:若目标应用信息中包括位图对象,终端将第一哈希值写入包裹,和/或,若目标应用信息中包括待触发意图对象,终端将第二哈希值写入包裹。该种可能的实现方式,不需要将整个第一字节流和/或第二字节流写到parcel中,节约parcel的空间。
在一种可能的设计中,终端根据保存的目标应用信息在终端上恢复目标应用信息,包括:终端在数据库中获取包裹,并根据获取到的包裹中的第一哈希值在数据库中获取第一字节流,终端对第一字节流进行反序列化得到位图对象;和/或,终端在数据库中获取包裹,并根据获取到的包裹中的第二哈希值在数据库中获取第二字节流,终端对第二字节流进行反序列化得到待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息,根据活动管理器服务中的信息确定待触发意图对象;终端根据位图对象和/或待触发意图对象在终端上恢复目标应用信息。该种可能的实现方式,终端可以从数据库中获取位图对象和/或待触发意图对象,以便在终端上恢复目标应用信息。
在一种可能的设计中,目标应用信息包括当前的至少一个后台应用的标识,终端根据保存的目标应用信息在终端上恢复目标应用信息,包括:终端获取保存的至少一个后台应用的标识;终端根据获取的至少一个后台应用的标识在终端上启动至少一个后台应用。该种可能的实现方式,可以在重启终端的Framework层之后,将部分用户觉得重要的后台应用进行启动,满足用户的需求。
在一种可能的设计中,在终端重启终端的框架层之前,终端重启方法还包括:终端确定终端处于空闲状态。该种可能的实现方式,可以在终端处于空闲状态时重启终端的Framework层,避免用户感知到Framework层的重启,提升用户体验。
在一种可能的设计中,在终端重启终端的框架层之前,终端重启方法还包括:终端关闭终端的开机动画中的第二屏动画。其中,第二屏动画为终端的厂家添加的具有厂家个性化的开机动画。该种可能的实现方式,能够使得用户无法根据第二屏动画感知到终端的Framework层的重启,提升用户体验。
第二方面,提供了一种终端重启装置,该装置具有实现第一方面提供的任意一种方法的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该装置可以以芯片的产品形态存在。该终端重启装置具体可以是终端,也可以是设置在终端上固定的或可移除的功能模块。
第三方面,提供了一种终端重启装置,该装置包括:存储器、处理器;存储器用于存储计算机执行指令,处理器,处理器用于执行存储器存储的计算机执行指令,以使得该装置执行第一方面提供的任意一种方法。该终端重启装置具体可以是终端,也可以是设置在终端上固定的或可移除的功能模块。
第四方面,提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种手机的硬件组成示意图;
图2为本申请实施例提供的一种Android系统的架构示意图;
图3为本申请实施例提供的一种终端重启方法的流程图;
图4为本申请实施例提供的一种数据的保存和在终端上恢复的流程图;
图5为本申请实施例提供的又一种数据的保存和在终端上恢复的流程图;
图6-图8分别为本申请实施例提供的一种终端重启装置的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本申请实施例提供的方法可以应用于终端中。终端也可以称为用户设备(UserEquipment,简称UE)、移动设备、终端设备等。示例性的,终端可以为手机、平板电脑、车载设备、可穿戴设备、电视等。终端上可以安装有Android系统或其他操作系统。本申请实施例中以提供的方法应用于安装有Android系统的终端中为例对本申请实施例提供的方法作示例性说明。
以终端为手机为例,图1示出的是与本申请实施例相关的手机100的部分结构的框图。参考图1,手机100包括、射频(Radio Frequency,简称RF)电路110、存储器120、其他输入设备130、显示屏140、传感器150、音频电路160、I/O子系统170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。本领域技术人员可以理解显示屏140属于用户界面(User Interface,简称UI),且手机100可以包括比图示更多或更少的用户界面。
下面结合图1对手机100的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送。特别地,将基站的下行信息接收后,给处理器180处理,将上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,简称LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,简称GSM)、通用分组无线服务(General Packet Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(WidebandCode Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行手机100的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图象播放功能等)等;存储数据区可存储根据手机100的使用所创建的数据(比如音频数据、电话本等)。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其他输入设备130可用于接收输入的数字或字符信息,以及产生与手机100的用户设置以及功能控制有关的键信号输入。具体地,其他输入设备130可包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)等中的一种或多种。其他输入设备130与I/O子系统170的其他输入设备控制器171相连接,在其他输入设备控制器171的控制下与处理器180进行信号交互。
显示屏140可用于显示由用户输入的信息或提供给用户的信息以及手机100的各种菜单,还可以接受用户输入。具体的,显示屏140可包括显示面板141,以及触控面板142。其中,显示面板141可以采用液晶显示器(Liquid Crystal Display,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板141。触控面板142,也称为触摸屏、触敏屏等,可收集用户在其上或附近的接触或非接触操作(比如用户使用手指、触笔等任何适合的物体在触控面板142上或在触控面板142附近的操作,也可以包括体感操作;该操作包括单点控制操作、多点控制操作等操作类型),并根据预先设定的程式驱动相应的连接装置。可选地,触控面板142可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位、姿势,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成处理器能够处理的信息,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板142,也可以采用未来发展的任何技术实现触控面板142。进一步的,触控面板142可覆盖显示面板141,用户可以根据显示面板141显示的内容(该显示内容包括但不限于,软键盘、虚拟鼠标、虚拟按键、图标等等),在显示面板141上覆盖的触控面板142上或附近进行操作,触控面板142检测到在其上或附近的操作后,通过I/O子系统170传送给处理器180以确定用户输入,随后处理器180根据用户输入通过I/O子系统170在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板142与显示面板141是作为两个独立的部件来实现手机100的输入和输出功能,但是在某些实施例中,可以将触控面板142与显示面板141集成而实现手机100的输入和输出功能。
手机100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器。其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在手机100移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等。手机100还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161和麦克风162可提供用户与手机100之间的音频接口。音频电路160可将接收到的音频数据转换后的信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,麦克风162将收集的声音信号转换为信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给其他设备(比如另一手机),或者将音频数据输出至存储器120以便进一步处理。
I/O子系统170用来控制输入输出的外部设备,可以包括其他输入设备控制器171、传感器控制器172、显示控制器173。可选地,一个或多个其他输入控制设备控制器171从其他输入设备130接收信号和/或向其他输入设备130发送信号,其他输入设备130可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮、光鼠。值得说明的是,其他输入设备控制器171可以与任一个或多个上述设备连接。所述I/O子系统170中的显示控制器173从显示屏140接收信号和/或向显示屏140发送信号。显示屏140检测到用户输入后,显示控制器173将检测到的用户输入转换为与显示在显示屏140上的用户界面对象的交互,即实现人机交互。传感器控制器172可以从一个或多个传感器150接收信号和/或向一个或多个传感器150发送信号。
处理器180是手机100的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机100的各种功能和数据处理,从而对手机进行整体监控。可选地,处理器180可包括一个或多个处理单元。优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
手机100还包括给各个部件供电的电源190(比如电池)。优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
尽管未示出,手机100还可以包括摄像头、蓝牙模块等,在此不再赘述。
图2示出了Android系统的架构示意图,Android系统采用了分层的架构,由高至低依次为:应用程序层(以下简称APP(即Application)层)、应用程序框架层(以下简称Framework层)和Linux内核(kernel)层(以下简称内核层)。
其中,APP层中可以包括一个或多个应用程序(例如,短信、联系人、浏览器等)。
Framework层包括系统界面(System User Interface,简称SystemUI)、系统服务器(SystemServer)和本地化(Native)进程。SystemUI为桌面应用,可以显示通知列表。SystemServer为Android系统进程,管理所有的Android应用。Native进程用于连接内核层和Framework层。
SystemServer中可以包括活动管理器服务(ActivityManagerService)、通知管理器服务(NotificationManagerService)、电池统计服务(BatteryStatsService)、存储管理器服务(StorageManagerService)、用户管理器服务(UserManagerService)等多个系统服务。
其中,ActivityManagerService用于管理Android应用所有界面,或者说是管理所有的活动(Activity)。NotificationManagerService用于管理通知。BatteryStatsService用于管理系统电量(例如,统计系统电量)。StorageManagerService用于管理存储设备。UserManagerService用于管理用户信息。
Native进程中可以包括磁盘管理守护进程(Volume Daemon,简称Vold),Vold能够保存终端的文件系统的当前解锁状态。
在Android系统中,一个应用程序可以使用其他应用程序的组件。Android系统的组件包括Activity和服务(Service)。一个Activity通常展现为一个可视化的用户界面。Service没有用户界面,但它会在后台一直运行。例如,Service可能在用户处理其他事情的时候播放背景音乐,或者从网络上获取数据,或者,执行一些运算,并把运算结果提供给Activity展示给用户。
本申请实施例提供了一种终端重启方法,如图3所示,该方法包括:
301、终端保留终端的文件系统的目标解锁状态,目标解锁状态为当前的解锁状态。
其中,当前的解锁状态可以为已解锁状态(或称为已认证状态)或未解锁状态(或称为未认证状态),终端的文件系统的不同的解锁状态对应终端的不同的解锁方式。其中,未解锁状态对应数字解锁方式,即终端的文件系统为未解锁状态时,用户只能通过数字解锁方式解锁终端。已解锁状态对应所有的解锁方式,例如,数字解锁、指纹解锁、人脸解锁、瞳孔解锁、图案解锁等,即终端的文件系统为已解锁状态时,用户可以通过任意一种解锁方式解锁终端。
终端的文件系统的解锁状态可以存储在Vold中。
302、所述终端重启所述终端的框架(Framework)层。
终端重启Framework层包括重启Framework层中的SystemServer和SystemUI,还可以包括重启Framework层中的一类或多类或全部类型的Native进程,还可以包括重启依赖于SystemServer状态的部分或全部进程,依赖于SystemServer状态的进程可以是指需要根据SystemServer状态确定是否重启的进程。Native进程的类型包括:hal类型、core类型、main类型、late_start类型。需要说明的是,一种类型的Native进程的重启可能要在其他某种类型的Native重启之后才能重启,例如,core类型的Native进程的重启需要在hal类型的Native进程重启之后才能重启。
终端重启终端的Framework层之后,可以改善终端的应用、系统进程的膨胀老化问题,提高手机性能,提升用户体验。
步骤302在具体实现时,由于终端的文件系统的当前的解锁状态位于Vold中、且终端保留终端的文件系统的当前的解锁状态,则终端在重启终端的Framework层的过程中不重启Vold。
303、所述终端查询所述终端的文件系统的解锁状态。
步骤303在具体实现时,SystemUI可以查询终端的文件系统的解锁状态。
304、所述终端将所述终端的解锁方式设置为查询到的所述解锁状态对应的解锁方式。
步骤304在具体实现时,SystemUI可以根据文件系统的当前的解锁状态在终端上恢复终端的解锁方式,即将所述终端的解锁方式设置为查询到的所述解锁状态对应的解锁方式。
步骤303和步骤304可以执行在system_server进程重启的过程中。
本申请实施例提供的方法,在终端重启终端的Framework层之前,终端可以保留所述终端的文件系统的当前的解锁状态,从而使得在重启终端的Framework层之后,用户仍然可以采用重启终端的Framework层之前的解锁方式解锁终端,不会使得用户通过解锁方式感知到终端的Framework层的重启,提升用户的体验。
可选地,在步骤302之前,上述方法还包括:11)所述终端保存目标应用信息,所述目标应用信息为与所述终端当前运行的应用相关的信息;则在步骤302之后,上述方法还包括:12)所述终端根据保存的所述目标应用信息在所述终端上恢复所述目标应用信息。其中,步骤12)可以在步骤304之后执行。
其中,终端当前运行的应用可以包括前台应用和/或后台应用。可选地,所述目标应用信息包括当前的通知列表、当前的前台应用的应用数据、当前的至少一个后台应用的标识中的至少一个。
通知列表中包括至少一个通知的信息。通知的信息包括:通知的创建时间、通知所在的包(package)信息、通知对应的图标信息、通知的待触发意图(PendingIntent)、通知的标题栏文字、通知的灯光提示信息、通知的声音提示信息等。
前台应用的应用数据为所述前台应用对应的堆栈中的与所述前台应用相关的全部Activity。
当前的至少一个后台应用可以为当前的所有后台应用中的被标识为Framework层重启前需要被保存的后台应用中的一个或多个。示例性的,被标识为Framework层重启前需要被保存的后台应用可以为重要应用。
目标应用信息可以保存到文件中,例如,存储到可扩展标记语言(eXtensibleMarkup Language,简称XML)文件中,也可以保存到数据库中,例如,将目标应用信息转化成二进制字节流存储到数据库中。本申请实施例中以目标应用信息保存到数据库中为例对本申请实施例提供的方法作示例性说明。示例性的,本申请实施例中的数据库可以为Sqlite数据库。
该可选地方式,能够使得用户无法根据目标应用信息感知到终端的Framework层的重启,提升用户的体验。
当目标应用信息包括当前的通知列表的情况下:
由于NotificationManagerService管理通知。因此,NotificationManagerService可以在内部存储器中获取通知列表并保存到数据库中。
可选地,步骤12)在具体实现时包括:21)所述终端根据保存的所述通知列表获取所述通知列表中的每个通知的信息;22)所述终端按照时间由先至后的顺序依次在终端上恢复所述通知列表中的全部通知。
当目标应用信息包括当前的前台应用的应用数据的情况下:
需要说明的是,在SystemServer进程中,ActivityManagerService负责记录Activity相关信息以及Activity栈的维护工作,同时还会更新最近任务列表(RecentApplications)。因此,获取以及保存当前的前台应用的应用数据的动作可以由终端中的ActivityManagerService执行。
具体的,ActivityManagerService中会记录当前运行的Activity所属的Activity栈,当前应用的当前界面对应的Activity位于Activity栈的栈顶,Activity栈中的每个Activity中包含该Activity对应的应用的标识。因此,ActivityManagerService根据当前运行的Activity所属的Activity栈的栈顶的Activity可以确定当前应用,根据当前应用确定该Activity栈中的与当前应用相关的Activity(即包含当前应用的标识的Activity)。在对多个Activity进行存储时,可以按序存储多个Activity,以便后续在终端上对多个Activity进行恢复。
可选地,步骤12)在具体实现时可以包括:31)所述终端获取保存的所述全部活动;32)所述终端根据获取的所述全部Activity在所述堆栈中的位置在所述终端上启动所述全部Activity;其中,所述全部Activity中的位于所述堆栈中的越底层的Activity越早被启动。
示例性的,若该全部Activity包括Activity1、Activity2、Activity3和Activity4,该全部Activity在原堆栈中的顺序为1、2、3、4,则在启动该全部Activity后该全部Activity中的Activity的顺序仍然为1、2、3、4。
需要说明的是,终端根据全部Activity在堆栈中的位置启动全部Activity的过程中,不更新最近任务列表。
参见图4,图4示出了当前的前台应用的应用数据的保存和在终端上恢复的过程。保存过程具体包括:将当前运行的Activity所属的Activity栈中的与前台应用对应的Activity顺序写入数据库。在终端上恢复的过程包括:401、顺序读取数据库中的与前台应用对应的Activity(即上述全部Activity);402、逆序将与前台应用对应的Activity在终端上恢复至所属的Activity栈中;403、依次启动与前台应用对应的Activity,并不更新最近任务列表。
当目标应用信息包括当前的至少一个后台应用的标识的情况下:
由于ActivityManagerService管理Android应用所有界面,因此,ActivityManagerService可以在内部存储器中获取当前至少一个后台应用的标识并保存到数据库中。
可选地,步骤12)在具体实现时包括:所述终端获取保存的所述至少一个后台应用的标识;所述终端根据获取的所述至少一个后台应用的标识在所述终端上启动所述至少一个后台应用。
示例性的,当用户认为应用1、应用5、应用8比较重要时,可以将应用1、应用5和应用8标识为Framework层重启前需要被保存的后台应用。终端在步骤302之前,若当前的后台应用中包括应用1、应用5和应用8中的应用1和应用5时,可以保存应用1和应用5的标识,在步骤302之后,根据保存的应用1和应用5的标识启动应用1和应用5。
进一步的,在步骤302之前,终端还可以保存终端的当前的耗电排行信息,在步骤302之后,终端根据保存的耗电排行信息在终端上恢复耗电排行。该过程具体可以由BatteryStatsService执行。耗电排行信息可以为终端中的硬件和/或软件的耗电信息的排行信息。
可选地,在步骤302之前,所述方法还包括:所述终端确定所述终端处于空闲状态。
其中,当终端处于空闲状态时,终端可以进行Framework层的重启。空闲状态可以是自定义的一种状态,也可以是安装有Android系统的终端的idle态。当空闲状态可以是自定义的一种状态时,示例性的,空闲状态可以为:终端的屏幕处于灭屏状态超过预设时间段(例如,30分钟)。
可选地,在步骤302之前,所述方法还包括:所述终端关闭所述终端的开机动画中的第二屏动画。
现有技术中,在重启system_server后,会有第二屏动画。该可选地方式,能够使得用户无法根据开机动画中的第二屏动画感知到终端的Framework层的重启。
需要说明的是,安卓终端在开机时会有第一屏动画和第二屏动画。其中,第一屏动画一般为包含终端的操作系统的信息的不具有个性化的开机动画,第二屏动画一般为终端的厂家添加的具有厂家个性化的开机动画。
可选地,上述方法还可以包括:终端保存终端的用户信息。该过程具体可以由UserManagerService执行。
终端的用户信息可以为用户的标识。上述实施例中所描述的方法均可以针对该用户。另外,终端保存的终端的用户信息也可以有多个,即将对应的文件系统进行解锁过的用户的文件系统的解锁状态都保留,并在进行Framework层的重启之后,将终端的各个用户的解锁方式设置为查询到的各个用户对应的解锁状态对应的解锁方式。
以下介绍目标应用信息的保存和在终端上的恢复的一种具体实现方式,该方式中,目标应用信息包括当前的前台应用的应用数据和/或所述当前的通知列表。
目标应用信息的保存:
若所述目标应用信息中包括位图(Bitmap)对象,所述终端将第一字节流存储进数据库,所述第一字节流为所述Bitmap对象或压缩(例如,png的压缩方式、jpg的压缩方式)后的所述Bitmap对象;和/或,若所述目标应用信息中包括PendingIntent对象,所述终端将第二字节流存储进所述数据库,所述第二字节流为对所述PendingIntent对象中的远程过程调用的基本接口(IBinder)对象对应的ActivityManagerService中的信息进行序列化得到的字节流。
PendingIntent对象中的远程过程调用的IBinder对象可以为IIntentSender。PendingIntent对象中的远程过程调用的IBinder对象对应的ActivityManagerService中的信息可以为PendingIntentRecord中的信息。
进一步的,保存过程还可以包括:若所述目标应用信息中包括Bitmap对象,所述终端将根据所述第一字节流计算得到的第一哈希值存储进所述数据库,所述第一哈希值用于对所述第一字节流进行校验和/或去重;和/或,若所述目标应用信息中包括PendingIntent对象,所述终端将根据所述第二字节流计算得到的第二哈希值存储进所述数据库,所述第二哈希值用于对所述第二字节流进行校验和/或去重。
示例性的,用于计算哈希值的算法可以为信息-摘要算法5(Message DigestAlgorithm,简称MD5)、安全散列算法(Secure Hash Algorithm,简称SHA)等。
其中,通过采用第一哈希值对第一字节流进行校验,可以提高第一字节流的安全性,通过第一哈希值对第一字节流进行去重,可以节约数据库的存储空间。相应的,通过采用第二哈希值对第二字节流进行校验,可以提高第二字节流的安全性,通过第二哈希值对第二字节流进行去重,可以节约数据库的存储空间。
进一步的,上述方法还可以包括:若所述目标应用信息中包括Bitmap对象,所述终端将所述第一哈希值写入包裹(Parcel),和/或,若所述目标应用信息中包括PendingIntent对象,所述终端将所述第二哈希值写入所述Parcel。
需要说明的是,目标应用信息中还可以包括非Bitmap对象和非PendingIntent对象,终端可以将非Bitmap对象和非PendingIntent对象存储到Parcel中,再对Parcel进行序列化后存储到数据库中。需要说明的是,在存储非Bitmap对象和非PendingIntent对象时,也可以将根据非Bitmap对象和非PendingIntent对象计算得到的哈希值存储到数据库中,从而对非Bitmap对象和非PendingIntent对象进行校验。
Parcel是数据库中的一部分,第一哈希值写到parcel中,就可以对第一字节流进行索引,因此,与非Bitmap对象和非PendingIntent对象相比,就不需要将整个第一字节流写到parcel中,节约parcel的空间。同样的,第二哈希值写到parcel中,就可以对第二字节流进行索引,因此,与非Bitmap对象和非PendingIntent对象相比,就不需要将整个第二字节流写到parcel中,节约parcel的空间。
目标应用信息在终端上的恢复:
41)所述终端在数据库中获取所述包裹,并根据获取到的所述包裹中的所述第一哈希值在所述数据库中获取所述第一字节流,所述终端对所述第一字节流进行反序列化得到所述位图对象;和/或,所述终端在数据库中获取所述包裹,并根据获取到的所述包裹中的所述第二哈希值在所述数据库中获取所述第二字节流,所述终端对所述第二字节流进行反序列化得到所述待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息,根据所述活动管理器服务中的信息确定所述待触发意图对象;42)所述终端根据所述位图对象和/或所述待触发意图对象在所述终端上恢复所述目标应用信息。
可以理解的是,若在步骤41)中,终端获取到位图对象,步骤42)中,终端根据位图对象在终端上恢复目标应用信息。若在步骤41)中,终端获取到待触发意图对象,步骤42)中,终端根据待触发意图对象在终端上恢复目标应用信息。若在步骤41)中,终端获取到位图对象和待触发意图对象,步骤42)中,终端根据位图对象和待触发意图对象在终端上恢复目标应用信息。
若目标应用信息中包括PendingIntent对象,终端可以从数据库中获取第二字节流,对第二字节流进行反序列化得到上述ActivityManagerService中的信息,根据这个信息确定远程过程调用的IBinder对象,根据远程过程调用的IBinder对象构造PendingIntent。
参见图5,图5示出了保存和获取目标应用信息的过程。保存过程具体可以包括:501a、将目标应用信息中的非Bitmap对象和非PendingIntent对象存储进数据库中;502a、确定目标应用信息中是否包含Bitmap对象,若是,执行步骤503a,若否,执行步骤504a;503a、将目标应用信息中Bitmap对象存储进数据库中;504a、确定目标应用信息中是否包含PendingIntent对象,若是,执行步骤505a,若否,结束;505a、将目标应用信息中的PendingIntent对象存储进数据库中。获取过程具体可以包括:501b、反序列化数据库中的非Bitmap对象和非PendingIntent对象对应的字节流得到目标应用信息中的非Bitmap对象和非PendingIntent对象;502b、确定目标应用信息中是否包含Bitmap对象,若是,执行步骤503b,若否,执行步骤504b;503b、从数据库中获取目标应用信息中的Bitmap对象;504b、确定目标应用信息中是否包含PendingIntent对象,若是,执行步骤505b,若否,结束;505b、从数据库中获取目标应用信息中的PendingIntent对象。
需要说明的是,一个通知对应一个通知标识,一个Activity对应一个Activity标识。步骤21)在具体实现时,若终端需要获取通知列表,则可以根据通知标识在parcel中获取通知标识对应的数据(包括第一哈希值),根据该数据从数据库中获取通知标识对应的通知的信息。若终端需要获取Activity,则可以根据Activity标识在parcel中获取Activity对应的数据(包括第二哈希值),根据该数据从数据库中获取Activity标识对应的Activity。
上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,终端重启装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端重启装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一个示例中,当对应各个功能划分各个功能单元时,参见图6,终端重启装置60可以包括:
保留单元601,用于保留终端重启装置的文件系统的目标解锁状态,目标解锁状态为当前的解锁状态;
重启单元602,用于重启终端重启装置的框架层;
查询单元603,用于查询终端重启装置的文件系统的解锁状态;
设置单元604,用于将终端重启装置的解锁方式设置为查询到的解锁状态对应的解锁方式。
可选地,参见图7,终端重启装置还包括:
保存单元605,用于保存目标应用信息,目标应用信息为与终端重启装置当前运行的应用相关的信息;
恢复单元606,用于根据保存的目标应用信息在终端重启装置上恢复目标应用信息。
可选地,目标应用信息包括当前的通知列表、当前的前台应用的应用数据、当前的至少一个后台应用的标识中的至少一个。
可选地,目标应用信息包括当前的前台应用的应用数据,前台应用的应用数据为前台应用对应的堆栈中的与前台应用相关的全部活动。
可选地,恢复单元606,具体用于获取保存的全部活动,并根据获取的全部活动在堆栈中的位置在终端重启装置上启动全部活动;其中,全部活动中的位于堆栈中的越底层的活动越早被启动。
可选地,目标应用信息包括当前的通知列表,恢复单元606,具体用于根据保存的通知列表获取通知列表中的每个通知的信息,并按照时间由先至后的顺序依次在终端重启装置上恢复通知列表中的全部通知。
可选地,目标应用信息包括当前的前台应用的应用数据和/或当前的通知列表,保存单元605,具体用于:若目标应用信息中包括位图对象,将第一字节流存储进数据库,第一字节流为位图对象或压缩后的位图对象;和/或,若目标应用信息中包括待触发意图对象,将第二字节流存储进数据库,第二字节流为对待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息进行序列化得到的字节流。
可选地,保存单元605,还用于:若目标应用信息中包括位图对象,将根据第一字节流计算得到的第一哈希值存储进数据库,第一哈希值用于对第一字节流进行校验和/或去重;和/或,若目标应用信息中包括待触发意图对象,将根据第二字节流计算得到的第二哈希值存储进数据库,第二哈希值用于对第二字节流进行校验和/或去重。
可选地,参见图7,终端重启装置还包括:写入单元607,用于在目标应用信息中包括位图对象时,将第一哈希值写入包裹,和/或,在目标应用信息中包括待触发意图对象时,将第二哈希值写入包裹。
可选地,恢复单元606,具体用于:
在数据库中获取包裹,并根据获取到的包裹中的第一哈希值在数据库中获取第一字节流,对第一字节流进行反序列化得到位图对象;和/或,在数据库中获取包裹,并根据获取到的包裹中的第二哈希值在数据库中获取第二字节流,对第二字节流进行反序列化得到待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息,根据活动管理器服务中的信息确定待触发意图对象;
根据位图对象和/或待触发意图对象在终端上恢复目标应用信息。
可选地,目标应用信息包括当前的至少一个后台应用的标识,恢复单元606,具体用于:获取保存的至少一个后台应用的标识,并根据获取的至少一个后台应用的标识在终端重启装置上启动至少一个后台应用。
可选地,参见图7,终端重启装置还包括:确定单元608,用于确定终端重启装置处于空闲状态。
可选地,参见图7,终端重启装置还包括:关闭单元609,用于关闭终端重启装置的开机动画中的第二屏动画。
由于终端重启装置60用于执行上述方法,因此,终端重启装置60的有益效果参见上述方法的有益效果,在此不再赘述。
在另一个示例中,为了实现上述方法,本申请可以对现有的终端进行改进,参见图8,改进之处具体包括:
增加系统上下文保留模块,用于保留系统上下文,系统上下文包括终端的文件系统的目标解锁状态。系统上下文保留模块可以位于SystemServer中。
增加重启执行模块,用于重启Framework层。重启执行模块可以位于内核层中。
增加解锁状态同步模块,用于查询终端的文件系统的解锁状态并将终端的解锁方式设置为查询到的解锁状态对应的解锁方式。解锁状态同步模块可以位于SystemUI中。
可选地,改进之处还包括:增加用户上下文保存和恢复模块,用于保存以及恢复目标应用信息。用户上下文保存和恢复模块可以位于SystemServer中。
可选地,改进之处还包括:增加无感知场景判定模块,用于判定无感知场景,即用于判断终端处于空闲状态。无感知场景判定模块可以位于SystemServer中。
可选地,改进之处还包括:修改Anim启动控制模块,用于关闭开机动画中的第二屏动画。Anim启动控制模块可以位于SystemServer中。
可选地,改进之处还包括:增加重启方式控制模块,重启方式控制模块包含多种重启方式。不同的重启方式用于重启Framework层中的不同的模块,示例性的,重启方式可以用于指示在进行Framework层中的Native进程的重启时,重启哪些Native进程以及native进程的启动顺序。重启方式控制模块可以包含在内核层中。
基于上述改进,本申请实施例提供的方法的具体实现流程可以为:无感知场景判定模块判定终端处于无感知场景时,向系统上下文保留模块和用户上下文保存和恢复模块发送第一指示信息,第一指示信息用于指示终端当前处于无感知场景,系统上下文保留模块根据第一指示信息保留终端的文件系统的目标解锁状态,用户上下文保存和恢复模块根据第一指示信息保存目标应用信息和用户的ID;系统上下文保留模块和用户上下文保存和恢复模块向Anim启动控制模块发送第二指示信息,系统上下文保留模块发送的第二指示信息用于指示系统上下文保留完成,用户上下文保存和恢复模块发送的第二指示信息用于指示用户上下文保存完成,Anim启动控制模块根据第二指示信息关闭开机动画中的第二屏动画;系统上下文保留模块和用户上下文保存和恢复模块向内核层中的init进程中的重启执行模块发送第二指示信息,重启执行模块根据第二指示信息,在重启方式控制模块中获取重启方式,并根据重启方式重启终端的Framework层;重启执行模块向解锁状态同步模块和用户上下文保存和恢复模块发送第三指示信息,第三指示信息用于指示重启完成,解锁状态同步模块根据第三指示信息查询终端的文件系统的解锁状态并将终端的解锁方式设置为查询到的解锁状态对应的解锁方式;用户上下文保存和恢复模块根据第三指示信息恢复终端的目标应用信息。
当将以上的多个功能单元(或模块)集成在一个处理单元中时,上述各个功能单元执行的动作均可由处理单元根据存储单元中存储的程序执行。其中,处理单元可以是处理器或控制器。存储单元可以是存储器。当处理单元为处理器,存储单元为存储器时,上述各个功能单元执行的动作可以由处理器根据存储器中存储的程序执行。示例性的,当终端重启装置的硬件结构示意图如图1所示时,处理器可以处理器180,存储器可以为存储器120。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,简称SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。
Claims (27)
1.一种终端重启方法,其特征在于,包括:
终端保留所述终端的文件系统的目标解锁状态,所述目标解锁状态为当前的解锁状态;
所述终端重启所述终端的框架层;
所述终端查询所述终端的文件系统的解锁状态;
所述终端将所述终端的解锁方式设置为查询到的所述解锁状态对应的解锁方式。
2.根据权利要求1所述的终端重启方法,其特征在于,
在所述终端重启所述终端的框架层之前,所述终端重启方法还包括:所述终端保存目标应用信息,所述目标应用信息为与所述终端当前运行的应用相关的信息;
在所述终端重启所述终端的框架层之后,所述终端重启方法还包括:所述终端根据保存的所述目标应用信息在所述终端上恢复所述目标应用信息。
3.根据权利要求2所述的终端重启方法,其特征在于,所述目标应用信息包括当前的通知列表、当前的前台应用的应用数据、当前的至少一个后台应用的标识中的至少一个。
4.根据权利要求3所述的终端重启方法,其特征在于,所述目标应用信息包括所述当前的前台应用的应用数据,所述前台应用的应用数据为所述前台应用对应的堆栈中的与所述前台应用相关的全部活动。
5.根据权利要求4所述的终端重启方法,其特征在于,所述终端根据保存的所述目标应用信息在所述终端上恢复所述目标应用信息,包括:
所述终端获取保存的所述全部活动;
所述终端根据获取的所述全部活动在所述堆栈中的位置在所述终端上启动所述全部活动;其中,所述全部活动中的位于所述堆栈中的越底层的活动越早被启动。
6.根据权利要求3所述的终端重启方法,其特征在于,所述目标应用信息包括所述当前的通知列表,所述终端根据保存的所述目标应用信息在所述终端上恢复所述目标应用信息,包括:
所述终端根据保存的所述通知列表获取所述通知列表中的每个通知的信息;
所述终端按照时间由先至后的顺序依次在所述终端上恢复所述通知列表中的全部通知。
7.根据权利要求3-6任一项所述的终端重启方法,其特征在于,所述目标应用信息包括所述当前的前台应用的应用数据和/或所述当前的通知列表,所述终端保存目标应用信息,包括:
若所述目标应用信息中包括位图对象,所述终端将第一字节流存储进数据库,所述第一字节流为所述位图对象或压缩后的所述位图对象;和/或,
若所述目标应用信息中包括待触发意图对象,所述终端将第二字节流存储进所述数据库,所述第二字节流为对所述待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息进行序列化得到的字节流。
8.根据权利要求7所述的终端重启方法,其特征在于,所述终端重启方法还包括:
若所述目标应用信息中包括位图对象,所述终端将根据所述第一字节流计算得到的第一哈希值存储进所述数据库,所述第一哈希值用于对所述第一字节流进行校验和/或去重;和/或,
若所述目标应用信息中包括待触发意图对象,所述终端将根据所述第二字节流计算得到的第二哈希值存储进所述数据库,所述第二哈希值用于对所述第二字节流进行校验和/或去重。
9.根据权利要求8所述的终端重启方法,其特征在于,所述终端重启方法还包括:
若所述目标应用信息中包括位图对象,所述终端将所述第一哈希值写入包裹,和/或,若所述目标应用信息中包括待触发意图对象,所述终端将所述第二哈希值写入所述包裹。
10.根据权利要求9所述的终端重启方法,其特征在于,所述终端根据保存的所述目标应用信息在所述终端上恢复所述目标应用信息,包括:
所述终端在所述数据库中获取所述包裹,并根据获取到的所述包裹中的所述第一哈希值在所述数据库中获取所述第一字节流,所述终端对所述第一字节流进行反序列化得到所述位图对象;和/或,所述终端在所述数据库中获取所述包裹,并根据获取到的所述包裹中的所述第二哈希值在所述数据库中获取所述第二字节流,所述终端对所述第二字节流进行反序列化得到所述待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息,根据所述活动管理器服务中的信息确定所述待触发意图对象;
所述终端根据所述位图对象和/或所述待触发意图对象在所述终端上恢复所述目标应用信息。
11.根据权利要求3-10任一项所述的终端重启方法,其特征在于,所述目标应用信息包括所述当前的至少一个后台应用的标识,所述终端根据保存的所述目标应用信息在所述终端上恢复所述目标应用信息,包括:
所述终端获取保存的所述至少一个后台应用的标识;
所述终端根据获取的所述至少一个后台应用的标识在所述终端上启动所述至少一个后台应用。
12.根据权利要求1-11任一项所述的终端重启方法,其特征在于,在所述终端重启所述终端的框架层之前,所述终端重启方法还包括:
所述终端确定所述终端处于空闲状态。
13.根据权利要求1-12任一项所述的终端重启方法,其特征在于,在所述终端重启所述终端的框架层之前,所述终端重启方法还包括:
所述终端关闭所述终端的开机动画中的第二屏动画。
14.一种终端重启装置,其特征在于,包括:
保留单元,用于保留所述终端重启装置的文件系统的目标解锁状态,所述目标解锁状态为当前的解锁状态;
重启单元,用于重启所述终端重启装置的框架层;
查询单元,用于查询所述终端重启装置的文件系统的解锁状态;
设置单元,用于将所述终端重启装置的解锁方式设置为查询到的所述解锁状态对应的解锁方式。
15.根据权利要求14所述的终端重启装置,其特征在于,所述终端重启装置还包括:
保存单元,用于保存目标应用信息,所述目标应用信息为与所述终端重启装置当前运行的应用相关的信息;
恢复单元,用于根据保存的所述目标应用信息在所述终端重启装置上恢复所述目标应用信息。
16.根据权利要求15所述的终端重启装置,其特征在于,所述目标应用信息包括当前的通知列表、当前的前台应用的应用数据、当前的至少一个后台应用的标识中的至少一个。
17.根据权利要求16所述的终端重启装置,其特征在于,所述目标应用信息包括所述当前的前台应用的应用数据,所述前台应用的应用数据为所述前台应用对应的堆栈中的与所述前台应用相关的全部活动。
18.根据权利要求17所述的终端重启装置,其特征在于,
所述恢复单元,具体用于获取保存的所述全部活动,并根据获取的所述全部活动在所述堆栈中的位置在所述终端重启装置上启动所述全部活动;其中,所述全部活动中的位于所述堆栈中的越底层的活动越早被启动。
19.根据权利要求16所述的终端重启装置,其特征在于,所述目标应用信息包括所述当前的通知列表,
所述恢复单元,具体用于根据保存的所述通知列表获取所述通知列表中的每个通知的信息,并按照时间由先至后的顺序依次在所述终端重启装置上恢复所述通知列表中的全部通知。
20.根据权利要求16-19任一项所述的终端重启装置,其特征在于,所述目标应用信息包括所述当前的前台应用的应用数据和/或所述当前的通知列表,所述保存单元,具体用于:
若所述目标应用信息中包括位图对象,将第一字节流存储进数据库,所述第一字节流为所述位图对象或压缩后的所述位图对象;和/或,
若所述目标应用信息中包括待触发意图对象,将第二字节流存储进所述数据库,所述第二字节流为对所述待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息进行序列化得到的字节流。
21.根据权利要求20所述的终端重启装置,其特征在于,所述保存单元,还用于:
若所述目标应用信息中包括位图对象,将根据所述第一字节流计算得到的第一哈希值存储进所述数据库,所述第一哈希值用于对所述第一字节流进行校验和/或去重;和/或,
若所述目标应用信息中包括待触发意图对象,将根据所述第二字节流计算得到的第二哈希值存储进所述数据库,所述第二哈希值用于对所述第二字节流进行校验和/或去重。
22.根据权利要求21所述的终端重启装置,其特征在于,所述终端重启装置还包括:
写入单元,用于在所述目标应用信息中包括位图对象时,将所述第一哈希值写入包裹,和/或,在所述目标应用信息中包括待触发意图对象时,将所述第二哈希值写入所述包裹。
23.根据权利要求22所述的终端重启装置,其特征在于,所述恢复单元,具体用于:
在所述数据库中获取所述包裹,并根据获取到的所述包裹中的所述第一哈希值在所述数据库中获取所述第一字节流,对所述第一字节流进行反序列化得到所述位图对象;和/或,在所述数据库中获取所述包裹,并根据获取到的所述包裹中的所述第二哈希值在所述数据库中获取所述第二字节流,对所述第二字节流进行反序列化得到所述待触发意图对象中的远程过程调用的基本接口对象对应的活动管理器服务中的信息,根据所述活动管理器服务中的信息确定所述待触发意图对象;
根据所述位图对象和/或所述待触发意图对象在所述终端上恢复所述目标应用信息。
24.根据权利要求16-23任一项所述的终端重启装置,其特征在于,所述目标应用信息包括所述当前的至少一个后台应用的标识,所述恢复单元,具体用于:
获取保存的所述至少一个后台应用的标识,并根据获取的所述至少一个后台应用的标识在所述终端重启装置上启动所述至少一个后台应用。
25.根据权利要求14-24任一项所述的终端重启装置,其特征在于,所述终端重启装置还包括:
确定单元,用于确定所述终端重启装置处于空闲状态。
26.根据权利要求14-25任一项所述的终端重启装置,其特征在于,所述终端重启装置还包括:
关闭单元,用于关闭所述终端重启装置的开机动画中的第二屏动画。
27.一种终端重启装置,其特征在于,所述终端重启装置包括:存储器和处理器;
所述存储器用于存储计算机执行指令,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述终端重启装置实现如权利要求1-13中任意一项所述的终端重启方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810792937.5A CN110737476B (zh) | 2018-07-18 | 2018-07-18 | 一种终端重启方法及装置 |
PCT/CN2019/083756 WO2020015415A1 (zh) | 2018-07-18 | 2019-04-22 | 一种终端重启方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810792937.5A CN110737476B (zh) | 2018-07-18 | 2018-07-18 | 一种终端重启方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737476A true CN110737476A (zh) | 2020-01-31 |
CN110737476B CN110737476B (zh) | 2021-08-20 |
Family
ID=69163583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810792937.5A Active CN110737476B (zh) | 2018-07-18 | 2018-07-18 | 一种终端重启方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110737476B (zh) |
WO (1) | WO2020015415A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443156A (zh) * | 2021-12-24 | 2022-05-06 | 荣耀终端有限公司 | 一种应用程序的处理方法及电子设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214254A (zh) * | 2020-09-25 | 2021-01-12 | 北京小米移动软件有限公司 | 加速应用程序启动的方法及装置、以及电子设备 |
CN115022447B (zh) * | 2022-04-28 | 2024-07-23 | 中国联合网络通信集团有限公司 | 协助解锁方法、用户终端、服务器、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242625A1 (en) * | 2005-04-25 | 2006-10-26 | Nokia Corporation | System and method for separating code sharing and active applications in an OSGi service platform |
CN103297600A (zh) * | 2012-03-01 | 2013-09-11 | 宇龙计算机通信科技(深圳)有限公司 | 移动终端和移动终端系统自动重启方法 |
CN104462980A (zh) * | 2014-12-30 | 2015-03-25 | 北京奇虎科技有限公司 | 一种应用程序权限管理的方法、装置、系统及移动终端 |
CN105094791A (zh) * | 2014-05-22 | 2015-11-25 | 北京奇虎科技有限公司 | 状态栏通知的存储方法及装置 |
CN106293907A (zh) * | 2015-06-24 | 2017-01-04 | 三星电子株式会社 | 用于应用程序的操作方法以及支持其的电子设备 |
CN106598704A (zh) * | 2016-12-19 | 2017-04-26 | 北京小米移动软件有限公司 | 应用程序恢复方法和装置 |
CN107015816A (zh) * | 2017-05-25 | 2017-08-04 | 微鲸科技有限公司 | 操作系统升级方法、装置及一种智能终端 |
CN107105082A (zh) * | 2016-02-23 | 2017-08-29 | 中兴通讯股份有限公司 | 一种终端解除锁网的方法、开机的方法及装置 |
CN107492131A (zh) * | 2017-07-01 | 2017-12-19 | 武汉斗鱼网络科技有限公司 | 用于安卓电视的倒影生成方法、存储介质、设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004157871A (ja) * | 2002-11-07 | 2004-06-03 | Ntt Communications Kk | ファームウェア更新方法、装置およびプログラム |
-
2018
- 2018-07-18 CN CN201810792937.5A patent/CN110737476B/zh active Active
-
2019
- 2019-04-22 WO PCT/CN2019/083756 patent/WO2020015415A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242625A1 (en) * | 2005-04-25 | 2006-10-26 | Nokia Corporation | System and method for separating code sharing and active applications in an OSGi service platform |
CN103297600A (zh) * | 2012-03-01 | 2013-09-11 | 宇龙计算机通信科技(深圳)有限公司 | 移动终端和移动终端系统自动重启方法 |
CN105094791A (zh) * | 2014-05-22 | 2015-11-25 | 北京奇虎科技有限公司 | 状态栏通知的存储方法及装置 |
CN104462980A (zh) * | 2014-12-30 | 2015-03-25 | 北京奇虎科技有限公司 | 一种应用程序权限管理的方法、装置、系统及移动终端 |
CN106293907A (zh) * | 2015-06-24 | 2017-01-04 | 三星电子株式会社 | 用于应用程序的操作方法以及支持其的电子设备 |
CN107105082A (zh) * | 2016-02-23 | 2017-08-29 | 中兴通讯股份有限公司 | 一种终端解除锁网的方法、开机的方法及装置 |
CN106598704A (zh) * | 2016-12-19 | 2017-04-26 | 北京小米移动软件有限公司 | 应用程序恢复方法和装置 |
CN107015816A (zh) * | 2017-05-25 | 2017-08-04 | 微鲸科技有限公司 | 操作系统升级方法、装置及一种智能终端 |
CN107492131A (zh) * | 2017-07-01 | 2017-12-19 | 武汉斗鱼网络科技有限公司 | 用于安卓电视的倒影生成方法、存储介质、设备及系统 |
Non-Patent Citations (2)
Title |
---|
船长&CAP: "Android为何比iOS卡?", 《博客园》 * |
诸葛建伟: "安卓手机系统的安全威胁及应对", 《中国信息安全》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443156A (zh) * | 2021-12-24 | 2022-05-06 | 荣耀终端有限公司 | 一种应用程序的处理方法及电子设备 |
CN114443156B (zh) * | 2021-12-24 | 2023-01-17 | 荣耀终端有限公司 | 一种应用程序的处理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020015415A1 (zh) | 2020-01-23 |
CN110737476B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239295B (zh) | 一种软件升级的方法及软件升级装置 | |
US8819403B2 (en) | Method and device for performing data synchronization of a snapshot image by selectively reloading data from nonvolatile to volatile memory after wakeup from hibernation | |
WO2019227994A1 (en) | Method and apparatus for updating application prediction model, storage medium, and terminal | |
CN107678876B (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
US20210329526A1 (en) | Terminal Behavior Triggering Method and Terminal | |
CN107807861B (zh) | 冻屏解决方法、移动终端及计算机可读存储介质 | |
WO2019076293A1 (zh) | 一种差分升级的方法、装置及系统 | |
CN110737476B (zh) | 一种终端重启方法及装置 | |
CN112148579B (zh) | 一种用户界面的测试方法和装置 | |
CN110888821A (zh) | 一种内存管理方法及装置 | |
CN110865884A (zh) | 一种内存管理方法及装置 | |
US20220255639A1 (en) | Radio frequency parameter processing method and device, and mobile terminal and storage medium | |
US20230362244A1 (en) | Application interface migration system and method, and related device | |
CN107766222B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107908492B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN108052430B (zh) | 移动终端重启定位方法、移动终端及计算机可读存储介质 | |
CN104133752A (zh) | 操作平台的监控方法和装置 | |
US20160308879A1 (en) | Application-Based Service Providing Method, Apparatus, and System | |
WO2018166169A1 (zh) | 指纹识别方法及相关产品 | |
CN107832191B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107818036B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107872367B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN105278942B (zh) | 组件管理方法及装置 | |
CN111741504B (zh) | 通信控制方法、装置、终端及存储介质 | |
CN106101095B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |