CN106406940B - 系统升级方法、装置及终端 - Google Patents

系统升级方法、装置及终端 Download PDF

Info

Publication number
CN106406940B
CN106406940B CN201610803002.3A CN201610803002A CN106406940B CN 106406940 B CN106406940 B CN 106406940B CN 201610803002 A CN201610803002 A CN 201610803002A CN 106406940 B CN106406940 B CN 106406940B
Authority
CN
China
Prior art keywords
upgrading
upgrade
application
preset
preprocessing
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.)
Active
Application number
CN201610803002.3A
Other languages
English (en)
Other versions
CN106406940A (zh
Inventor
帅朝春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201610803002.3A priority Critical patent/CN106406940B/zh
Publication of CN106406940A publication Critical patent/CN106406940A/zh
Application granted granted Critical
Publication of CN106406940B publication Critical patent/CN106406940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种系统升级方法、装置及终端,其中该方法包括:获取系统升级安装包;提取该系统升级安装包中的系统应用及第三方应用的升级安装文件;调用预置的预处理工具文件,对该系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成该系统应用及第三方应用的可运行文件;当检测到升级指令时,根据该系统升级安装包对系统进行升级,并在升级过程中,将该系统应用及第三方应用的可运行文件复制到对应的预设目录下。本发明可节约整个系统升级的时间,提高系统升级后的开机速度,并可保证开机后系统运行的稳定度及流畅度,提升系统运行的稳定性。

Description

系统升级方法、装置及终端
技术领域
本发明涉及终端技术领域,尤其涉及一种系统升级方法、装置及终端。
背景技术
随着电子终端技术的发展,智能手机、平板电脑等智能终端越来越普及。为了提高智能终端的性能,需要经常对终端的系统进行升级。现有的系统升级方式一般是通过OTA(Over-the-Air Technology,空中下载技术)对系统进行升级,升级后主要是改变了system系统分区的核心jar包,升级后再次开机时,需要重新对所有的应用执行odex预处理。由于执行odex预处理需要占用一定的系统资源且耗时较长,从而极大的降低了开机的速度,并因此导致产生系统卡顿、应用使用异常、应用安装速度慢等诸多问题。
发明内容
本发明提供一种系统升级方法、装置及终端,旨在解决系统升级后开机速度缓慢、系统卡顿等技术问题。
本发明第一方面提供一种系统升级方法,包括:获取系统升级安装包;提取所述系统升级安装包中的系统应用及第三方应用的升级安装文件;调用预置的预处理工具文件,对所述系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成所述系统应用及第三方应用的可运行文件;当检测到升级指令时,根据所述系统升级安装包对系统进行升级,并在升级过程中,将所述系统应用及第三方应用的可运行文件复制到对应的预设目录下。
本发明第二方面提供一种系统升级装置,包括:获取模块,用于获取系统升级安装包;提取模块,用于提取所述系统升级安装包中的系统应用及第三方应用的升级安装文件;预处理模块,用于调用预置的预处理工具文件,对所述系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成所述系统应用及第三方应用的可运行文件;升级模块,用于当检测到升级指令时,根据所述系统升级安装包对系统进行升级,并在升级过程中,将所述系统应用及第三方应用的可运行文件复制到对应的预设目录下。
本发明第三方面提供一种终端,所述终端中运行有如上述本发明第二方面提供的一种系统升级装置。
上述本发明实施例提供的系统升级方法、装置及终端,通过在执行系统升级操作前,从系统升级安装包中提取待升级的系统应用及第三方应用的升级安装文件,然后调用预置的预处理工具文件对提取出的系统应用及第三方应用的升级安装文件进行代码优化预处理,当执行系统升级操作时,在升级过程中,将预处理后得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下,以使得当升级操作完成、重启开机之后,可直接执行该预设目录下的各应用的可运行文件。相较于现有技术,本发明实施例由于在升级前预先对系统应用及第三方应用的升级安装文件进行了相应的预处理,使得在系统升级到新版本之后上述文件就已经是可用的了,从而不需要再在升级后执行繁琐的odex处理过程,节约了整个系统升级的时间,提高了系统升级后的开机速度,并可保证开机后系统运行的稳定度及流畅度,提升系统运行的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
附图1示出了一种终端的结构框图;
附图2是本发明第一实施例提供的系统升级方法的实现流程示意图;
附图3是本发明第二实施例提供的系统升级方法的实现流程示意图;
附图4是本发明第三实施例提供的系统升级装置的结构示意图;
附图5是本发明第四实施例提供的系统升级装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图1示出了一种终端的结构框图。该终端可以但不限于包括:安装有Android(安卓)或类似智能操作系统的智能手机、平板电脑、多媒体播放设备以智能穿戴设备等等移动或非移动类电子终端。如附图1所示,终端10包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频模块110、按键模块112、音频模块114以及显示模块116。这些组件通过一条或多条通讯总线/信号线122相互通讯。
可以理解,附图1所示的结构仅为示意,其并不对终端10的结构造成限定。例如,终端10还可包括比附图1所示更多或者更少的组件,或者具有与附图1所示不同的配置。附图1所示的各组件可以采用硬件、软件或其组合实现。
存储器102可用于存储软件程序以及模块,如本发明实施例中的系统升级方法及装置对应的程序指令/模块,处理器106通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统升级方法。
其中,存储器102中存储的模块,具体可包括:获取模块301、提取模块302、预处理模块303以及升级模块304(附图1中均未示出)。
可选的,存储器102中存储的模块,具体还可包括:检测模块401、触发模块402、信息提示模块403、接收模块404以及指令触发模块405,其中检测模块401包括第一检测模块4011和第二检测模块4012(附图1中均未示出)。
上述存储器102中存储的各模块实现各自功能的具体过程,可结合附图4与附图5,参考下文中第三实施例以及第四实施例中的相关内容,此处不再赘述。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输入装置耦合至处理器106以及存储器102。处理器106运行存储器102内的各种软件、指令以执行终端10的各种功能以及进行数据处理。
在一些实例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频模块110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块110可与各种网络如互联网、企业内部网、预置类型的无线网络进行通讯或者通过预置类型的无线网络与其他设备进行通讯。上述的预置类型的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的预置类型的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for MobileCommunication,GSM),增强型移动通信技术(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(Wideband Code Division Multiple Access,W-CDMA),码分多址技术(Code Division Access,CDMA),时分多址技术(Time Division Multiple Access,TDMA),蓝牙,无线保真技术(Wireless-Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE802.11a、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n),网络电话(Voice overInternet Protocol,VoIP),全球微波互联接入(Worldwide Interoperability forMicrowave Access,Wi-Max),其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
按键模块112提供用户向终端10进行输入的接口,用户可以通过按下不同的按键以使终端10执行不同的功能。
音频模块114向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口108处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口108中以进行进一步的处理。音频数据可以从存储器102处或者通过射频模块110获取。此外,音频数据也可以存储至存储器102中或者通过射频模块110进行发送。在一些实例中,音频模块114还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。
显示模块116在终端10与用户之间提供一个输出界面。具体地,显示模块116向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。进一步地,显示模块116还在终端10与用户之间提供一个输入界面,用于接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。显示模块116显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
请参阅附图2,附图2为本发明第一实施例提供的系统升级方法的实现流程示意图。本实施例提供的系统升级方法可应用于如附图1所示的终端10中,如附图2所示,该方法主要包括以下步骤:
S101、获取系统升级安装包;
系统升级安装包可以从服务器获取,也可以从移动存储设备中获取。该系统升级安装包可以是差分升级包,也可以是全量升级包。
S102、提取系统升级安装包中的系统应用及第三方应用的升级安装文件;
系统应用可指系统自带的应用程序,如配置在系统分区中的应用程序。第三方应用可指除了系统自带的应用程序之外的其他应用程序,如配置在数据分区中的应用程序。
S103、调用预置的预处理工具文件,对系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成系统应用及第三方应用的可运行文件;
可选的,预置的预处理工具文件可以从系统升级安装包中得到。调用预置的预处理工具文件,对系统应用及第三方应用的升级安装文件进行代码优化预处理,例如对字节进行重排序、结构对齐等等,其目的主要是为了加快应用的启动速度。
S104、当检测到升级指令时,根据系统升级安装包对系统进行升级,并在升级过程中,将系统应用及第三方应用的可运行文件复制到对应的预设目录下。
当检测到升级指令时,根据获取的系统升级安装包对系统进行升级,并在升级过程中,将预处理得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下,如复制到系统目录/data/dalvik-cache下,从而使得当升级完成后,再次开机时,系统可从该对应的预设目录读取系统应用及第三方应用的可运行文件,并直接执行。
本发明实施例提供的系统升级方法,通过在执行系统升级操作前,从系统升级安装包中提取待升级的系统应用及第三方应用的升级安装文件,然后调用预置的预处理工具文件对提取出的系统应用及第三方应用的升级安装文件进行代码优化预处理,当执行系统升级操作时,在升级过程中,将预处理后得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下,以使得当升级操作完成、重启开机之后,可直接执行该预设目录下的各应用的可运行文件。相较于现有技术,本发明实施例由于在升级前预先对系统应用及第三方应用的升级安装文件进行了相应的预处理,使得在系统升级到新版本之后上述文件就已经是可用的了,从而不需要再在升级后执行繁琐的odex处理过程,节约了整个系统升级的时间,提高了系统升级后的开机速度,并可保证开机后系统运行的稳定度及流畅度,提升系统运行的稳定性。
请参阅附图3,附图3为本发明第二实施例提供的系统升级方法的实现流程示意图。本实施例提供的系统升级方法可应用于如附图1所示的终端10中,如附图3所示,该方法主要包括以下步骤:
S201、获取系统升级安装包;
可选的,通过OTA方式,从服务器下载系统升级安装包。具体的,当接收到服务器推送的系统更新提示消息时,输出系统升级提示信息,以提示用户是否获取系统升级安装包并进行系统升级。然后,响应于用户基于该系统升级提示信息触发的获取指令,从服务器下载系统升级安装包。该系统升级安装包可以是差分升级包,也可以是全量升级包。
可以理解的,获取指令也可根据用户对预置升级交互界面中相关控件的预置操作触发,如用户对升级交互界面中升级按钮进行的点击操作。此外,系统升级安装包也可以存储在移动存储设备中,则终端还可根据用户触发的获取指令的指示,从移动存储设备中获取系统升级安装包。
S202、检测终端的工作状态是否符合预置的空闲条件;
具体的,检测终端的工作状态是否符合预置的空闲条件可通过以下两种方式实现:
方式一,检测终端是否进入待机状态,若进入待机状态,则确认终端的工作状态符合空闲条件。其中,待机状态一般是指终端无任何操作且屏幕处于正常的主屏显示之下的状态,或者锁屏状态,或者休眠形式之下的状态。
方式二、检测终端中系统资源的占用率是否小于预置比率,若小于预置比率,则确认终端的工作状态符合空闲条件。系统资源的占用率一般是指内存和/或CPU(CentralProcessing Unit,中央处理器)的占用率。在实际应用中,可以只检测内存和CPU中的任一个,也可以两个均检测。当同时检测内存和CPU的占用率时,需两者的占用率均小于各自对应的预置比率,才确认终端的工作状态符合空闲条件。
可以理解的,步骤S202还可在提取出系统升级安装包中的系统应用及第三方应用的升级安装文件以及预置的预处理工具文件之后进行,则若终端的工作状态符合预置的空闲条件,则执行调用预置的预处理工具文件,对系统应用及第三方应用的升级安装文件进行代码优化预处理的步骤。
S203、若符合空闲条件,则提取系统升级安装包中的系统应用及第三方应用的升级安装文件,并从系统升级安装包中提取预置的预处理工具文件;
于一具体应用例中,升级安装文件为apk(application package)文件,系统应用是指system(系统)分区的应用,第三方应用是指data(数据)分区的应用。预处理工具文件包括:boot.oat文件和boot.art文件。
需要说明的是,本实施例中涉及的相关文件、目录以及分区的具体名称,均是对应在Android系统中的名称,在其他操作系统中,还可以是其他名称。
S204、调用预置的预处理工具文件,对系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成系统应用及第三方应用的可运行文件;
具体的,调用提取出的boot.oat文件和boot.art文件对系统应用的apk文件执行patchoat命令,以对各系统应用的apk文件进行代码优化预处理,得到各系统应用的可运行文件,即生成各系统应用的odex文件。调用提取出的boot.oat文件和boot.art文件对第三方应用的apk文件进行odex2oat处理,得到各第三方应用的可运行文件,即生成各第三方应用的odex文件。
可以理解的,odex是Android上的应用程序apk中提取出来的可运行文件(或,可以执行的文件),即将apk中的classes.dex文件通过dex优化过程将其优化生成一个.dex文件单独存放。
S205、当检测到升级指令时,根据系统升级安装包对系统进行升级,并在升级过程中,将系统应用及第三方应用的可运行文件以及提取出的预置的预处理工具文件复制到各自对应的预设目录下。
具体的,检测对各系统应用及第三方应用的apk文件的代码优化预处理是否全部完成,当检测到代码优化预处理全部完成时,输出预置的升级提示信息,以提示用户是否进行系统升级;然后,接收用户基于升级提示信息触发的升级指令。可选的,也可当检测代码优化预处理全部完成时,系统自动触发升级指令。
当检测到上述升级指令时,根据获取的系统升级安装包对系统进行升级,并在升级过程中,将提取出的预置的预处理工具文件复制到对应的预设目录下,如此,可省去升级过程中生成该预处理工具文件的时间,提高升级速度。同时,将预处理得到的系统应用及第三方应用的可运行文件复制到对应的预设目录,从而使得当升级完成后,再次开机时,系统可从该对应的预设目录读取系统应用及第三方应用的可运行文件,并直接执行。
为更好的理解本发明实施例提供的系统升级方法,在一具体应用例中,假设现有的操作系统为001版本,现在需要升级到002版本,整个方案流程如下:
(1)在001版本的操作系统中,下载002版本操作系统的升级包,可以是差分升级包或者全量升级包;
(2)从002版本操作系统的升级包中,将002版本的boot.oat和boot.art文件预先提取出来,以便基于这两个文件对应用做odex的预处理,其中需要预处理的应用包括system分区的应用和data分区的第三方应用;
(3)在移动设备空闲时启动对应用的预处理任务,其中针对system分区的系统应用基于002版本的boot.oat和boot.art执行patchoat的过程,以生成下个版本应用可以执行的文件odex;针对data分区的第三方应用执行odex2oat处理,得到第三方应用的可以执行的文件odex;
(4)预处理完所有应用后,提示用户可以升级或者自动升级系统;
(5)根据下载的002版本操作系统的升级包对系统进行升级,在系统升级过程中将上述预先提取的boot.oat和boot.art拷贝到系统目录下;
(6)系统升级过程中将system分区和data分区的可执行文件odex拷贝到系统目录下/data/dalvik-cache,应用执行过程中需要从该目录去取应用可执行,则将操作系统升级到002版本后,系统目录下的这些文件就已经是可直接使用用的了。
本发明实施例提供的系统升级方法,通过在执行系统升级操作前,终端空闲时,从系统升级安装包中提取待升级的系统应用及第三方应用的升级安装文件,以及,预置的预处理工具文件,然后调用该预处理工具文件对系统应用及第三方应用的升级安装文件进行代码优化预处理,当执行系统升级操作时,在升级过程中,将提取的预处理工具文件、以及预处理后得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下,以使得在进行升级操作时不必再重新生成该预处理工具文件,而当升级操作完成、重启开机之后,可直接执行该预设目录下的各应用的可运行文件。相较于现有技术,本发明实施例一方面,由于在升级前预先对系统应用及第三方应用的升级安装文件以及预处理工具文件,进行了相应的预处理,使得在系统升级到新版本之后上述文件就已经是可用的了,从而不需要再在升级后执行繁琐的odex处理过程,节约了整个系统升级的时间,提高了系统升级后的开机速度,并可保证开机后系统运行的稳定度及流畅度,提升系统运行的稳定性;另一方面,由于是在终端空闲时执行的预处理操作,因此不会干扰到用户对终端的正常使用。
请参阅附图4,附图4是本发明第三实施例提供的系统升级装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。附图4示例的系统升级装置可以是前述实施例提供的系统升级方法的执行主体,其可以是终端或者终端的一个功能模块。附图4示例的系统升级装置,主要包括:获取模块301、提取模块302、预处理模块303以及升级模块304。各功能模块详细说明如下:
获取模块301,用于获取系统升级安装包;
提取模块302,用于提取该系统升级安装包中的系统应用及第三方应用的升级安装文件;
预处理模块303,用于调用预置的预处理工具文件,对该系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成该系统应用及第三方应用的可运行文件;
升级模块304,用于当检测到升级指令时,根据该系统升级安装包对系统进行升级,并在升级过程中,将该系统应用及第三方应用的可运行文件复制到对应的预设目录下。
具体的,系统升级安装包可以从服务器获取,也可以从移动存储设备中获取。该系统升级安装包可以是差分升级包,也可以是全量升级包。获取模块301获取系统升级安装包后,触发提取模块302提取该系统升级安装包中的系统应用及第三方应用的升级安装文件,然后触发预处理模块303调用预置的预处理工具文件,对该系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成该系统应用及第三方应用的可运行文件。当检测到升级指令时,升级模块304根据获取模块301获取的系统升级安装包对系统进行升级,并在升级过程中,将预处理模块303通过代码优化预处理操作得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下。
需要说明的是,以上附图4示例的系统升级装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将该装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成。本说明书提供的各个实施例都可应用上述描述原则。
本发明实施例提供的系统升级装置,通过在执行系统升级操作前,从系统升级安装包中提取待升级的系统应用及第三方应用的升级安装文件,然后调用预置的预处理工具文件对提取出的系统应用及第三方应用的升级安装文件进行代码优化预处理,当执行系统升级操作时,在升级过程中,将预处理后得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下,以使得当升级操作完成、重启开机之后,可直接执行该预设目录下的各应用的可运行文件。相较于现有技术,本发明实施例由于在升级前预先对系统应用及第三方应用的升级安装文件进行了相应的预处理,使得在系统升级到新版本之后上述文件就已经是可用的了,从而不需要再在升级后执行繁琐的odex处理过程,节约了整个系统升级的时间,提高了系统升级后的开机速度,并可保证开机后系统运行的稳定度及流畅度,提升系统运行的稳定性。
请参阅附图5,附图5是本发明第四实施例提供的系统升级装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。附图5示例的系统升级装置可以是前述实施例提供的系统升级方法的执行主体,其可以是终端或者终端中的一个功能模块。如附图5所示,该系统升级装置包括:
获取模块301,用于获取系统升级安装包。
具体的,获取模块301可以在接收到服务器推送的系统更新提示消息时,输出系统升级提示信息,以提示用户是否获取系统升级安装包并进行系统升级。然后,响应于用户基于该系统升级提示信息触发的获取指令,从服务器下载系统升级安装包。其中该系统升级安装包可以是差分升级包,也可以是全量升级包。
可以理解的,获取指令也可根据用户对预置升级交互界面中相关控件的预置操作触发,如用户对升级交互界面中升级按钮进行的点击操作。此外,系统升级安装包也可以存储在移动存储设备中,则获取模块301还可根据用户触发的获取指令的指示,从移动存储设备中获取系统升级安装包。
提取模块302,用于提取该系统升级安装包中的系统应用及第三方应用的升级安装文件。
于一具体应用例中,升级安装文件为apk文件,系统应用是指system分区的应用,第三方应用是指data分区的应用。需要说明的是,本实施例中涉及的相关文件、目录以及分区的具体名称,均是对应在Android系统中的名称,在其他操作系统中,还可以是其他名称。
预处理模块303,用于调用预置的预处理工具文件,对该系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成该系统应用及第三方应用的可运行文件。
具体的,预处理工具文件包括:boot.oat文件和boot.art文件。预处理模块303调用boot.oat文件和boot.art文件对系统应用的apk文件执行patchoat命令,以对各系统应用的apk文件进行代码优化预处理,得到各系统应用的可运行文件,即生成各系统应用的odex文件。调用boot.oat文件和boot.art文件对第三方应用的apk文件进行odex2oat处理,得到各第三方应用的可运行文件,即生成各第三方应用的odex文件。
可以理解的,odex是Android上的应用程序apk中提取出来的可运行文件,即将apk中的classes.dex文件通过dex优化过程将其优化生成一个.dex文件单独存放。
升级模块304,用于当检测到升级指令时,根据该系统升级安装包对系统进行升级,并在升级过程中,将该系统应用及第三方应用的可运行文件复制到对应的预设目录下。
进一步地,提取模块302,还用于从该系统升级安装包中提取该预置的预处理工具文件;
升级模块304,还用于在升级过程中,将提取出的该预置的预处理工具文件复制到对应的预设目录下。
进一步地,该装置还包括:
检测模块401,用于检测终端的工作状态是否符合预置的空闲条件;
触发模块402,用于若检测模块401检测到该终端的工作状态符合该空闲条件,则触发提取模块302执行该提取该系统升级安装包中的系统应用及第三方应用的升级安装文件的步骤;
触发模块402,还用于若检测模块401检测到该终端的工作状态符合该空闲条件,则触发预处理模块303执行该调用预置的预处理工具文件,对该系统应用及第三方应用的升级安装文件进行代码优化预处理的步骤。
进一步地,检测模块401包括:
第一检测模块4011,用于检测该终端是否进入待机状态,若进入该待机状态,则确认该终端的工作状态符合该空闲条件;
第二检测模块4012,用于检测该终端中系统资源的占用率是否小于预置比率,若小于预置比率,则确认该终端的工作状态符合该空闲条件。
具体的,待机状态一般是指终端无任何操作且屏幕处于正常的主屏显示之下的状态,或者锁屏状态,或者休眠形式之下的状态。系统资源的占用率一般是指内存和/或CPU的占用率。在实际应用中,第二检测模块4012可以只检测内存和CPU中的任一个,也可以两个均检测。当同时检测内存和CPU的占用率时,需两者的占用率均小于各自对应的预置比率,才确认终端的工作状态符合空闲条件。
进一步地,该装置还包括:
信息提示模块403,用于当检测到该代码优化预处理全部完成时,输出预置的升级提示信息,以提示用户是否进行系统升级;
接收模块404,用于接收该用户基于该升级提示信息触发的该升级指令;
指令触发模块405,用于当检测该代码优化预处理全部完成时,触发该升级指令。
具体的,检测模块401检测预处理模块303对各系统应用及第三方应用的apk文件的代码优化预处理是否全部完成,当检测到代码优化预处理全部完成时,触发信息提示模块403输出预置的升级提示信息,以提示用户是否进行系统升级;然后,接收模块404接收用户基于升级提示信息触发的升级指令。可选的,也可当检测代码优化预处理全部完成时,触发指令触发模块405系统自动触发升级指令。
本发明实施例提供的系统升级装置,通过在执行系统升级操作前,终端空闲时,从系统升级安装包中提取待升级的系统应用及第三方应用的升级安装文件,以及,预置的预处理工具文件,然后调用该预处理工具文件对系统应用及第三方应用的升级安装文件进行代码优化预处理,当执行系统升级操作时,在升级过程中,将提取的预处理工具文件、以及预处理后得到的系统应用及第三方应用的可运行文件复制到对应的预设目录下,以使得在进行升级操作时不必再重新生成该预处理工具文件,而当升级操作完成、重启开机之后,可直接执行该预设目录下的各应用的可运行文件。相较于现有技术,本发明实施例一方面,由于在升级前预先对系统应用及第三方应用的升级安装文件以及预处理工具文件,进行了相应的预处理,使得在系统升级到新版本之后上述文件就已经是可用的了,从而不需要再在升级后执行繁琐的odex处理过程,节约了整个系统升级的时间,提高了系统升级后的开机速度,并可保证开机后系统运行的稳定度及流畅度,提升系统运行的稳定性;另一方面,由于是在终端空闲时执行的预处理操作,因此不会干扰到用户对终端的正常使用。
在本申请所提供的几个实施例中,应该理解到,所揭露方法、装置及终端,可以通过其它的方式实现。例如,以上所描述装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的系统升级方法、装置及终端的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种系统升级方法,其特征在于,所述方法包括:
获取系统升级安装包;
检测终端的工作状态是否符合预置的空闲条件;其中,所述检测终端的工作状态是否符合预置的空闲条件,包括:检测终端是否进入待机状态,若进入待机状态,则确定终端的工作状态符合所述空闲条件,或者,检测终端中系统资源的占用率是否小于预置比率,若小于预置比率,则确定终端的工作状态符合空闲条件;
若符合所述空闲条件,则提取所述系统升级安装包中的系统应用及第三方应用的升级安装文件,并从所述系统升级安装包中提取预置的预处理工具文件;
调用预置的预处理工具文件,对所述系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成所述系统应用及第三方应用的可运行文件;
当检测到升级指令时,根据所述系统升级安装包对系统进行升级,并在升级过程中,将所述系统应用及第三方应用的可运行文件复制到对应的预设目录下,将提取出的所述预置的预处理工具文件复制到对应的预设目录下;
其中,所述检测终端的工作状态是否符合预置的空闲状态还可以在所述提取所述系统升级安装包中的系统应用及第三方应用的升级安装文件,并从所述系统升级安装包中提取预置的预处理工具文件的步骤之后执行,则若符合空闲状态,执行调用预置的预处理工具文件,对所述系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成所述系统应用及第三方应用的可运行文件的步骤。
2.如权利要求1所述的系统升级方法,其特征在于,所述当检测到升级指令时,根据所述系统升级安装包对系统进行升级之前,还包括:
当检测到所述代码优化预处理全部完成时,输出预置的升级提示信息,以提示用户是否进行系统升级;
接收所述用户基于所述升级提示信息触发的所述升级指令;或者
当检测所述代码优化预处理全部完成时,触发所述升级指令。
3.一种系统升级装置,其特征在于,所述装置包括:
获取模块,用于获取系统升级安装包;
提取模块,用于提取所述系统升级安装包中的系统应用及第三方应用的升级安装文件,并从所述系统升级安装包中提取预置的预处理工具文件;
预处理模块,用于调用预置的预处理工具文件,对所述系统应用及第三方应用的升级安装文件进行代码优化预处理,以生成所述系统应用及第三方应用的可运行文件;
升级模块,用于当检测到升级指令时,根据所述系统升级安装包对系统进行升级,并在升级过程中,将所述系统应用及第三方应用的可运行文件复制到对应的预设目录下,将提取出的所述预置的预处理工具文件复制到对应的预设目录下;
所述装置还包括:
检测模块,用于检测终端的工作状态是否符合预置的空闲条件;所述检测模块包括第一检测模块,用于检测终端是否进入待机状态,若进入待机状态,则确定终端的工作条件符合空闲条件;第二检测模块用于检测终端中系统资源的占用率是否小于预置比率,若小于预置比率,则确定终端的工作状态符合空闲条件;
触发模块,用于若检测模块检测到终端的工作状态符合空闲条件,则触发提取模块;
所述触发模块,还用于若检测模块检测到终端的工作状态符合空闲条件,则触发所述预处理模块。
4.如权利要求3所述的系统升级装置,其特征在于,所述装置还包括:
信息提示模块,用于当检测到所述代码优化预处理全部完成时,输出预置的升级提示信息,以提示用户是否进行系统升级;
接收模块,用于接收所述用户基于所述升级提示信息触发的所述升级指令;
指令触发模块,用于当检测所述代码优化预处理全部完成时,触发所述升级指令。
5.一种终端,其特征在于,所述终端中运行有如权利要求3或4所述的系统升级装置。
CN201610803002.3A 2016-09-05 2016-09-05 系统升级方法、装置及终端 Active CN106406940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610803002.3A CN106406940B (zh) 2016-09-05 2016-09-05 系统升级方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610803002.3A CN106406940B (zh) 2016-09-05 2016-09-05 系统升级方法、装置及终端

Publications (2)

Publication Number Publication Date
CN106406940A CN106406940A (zh) 2017-02-15
CN106406940B true CN106406940B (zh) 2020-01-10

Family

ID=57998463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610803002.3A Active CN106406940B (zh) 2016-09-05 2016-09-05 系统升级方法、装置及终端

Country Status (1)

Country Link
CN (1) CN106406940B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109791497B (zh) * 2017-05-17 2020-07-14 华为技术有限公司 一种执行热补丁的方法、装置及终端
CN107015838B (zh) * 2017-05-24 2023-12-19 深圳市永奥图电子有限公司 一种传感装置和轮胎压力监测系统的升级系统
CN107612961B (zh) * 2017-07-26 2020-12-25 捷开通讯(深圳)有限公司 一种系统软件下载/升级的方法、服务器及终端
CN109669709B (zh) * 2018-11-26 2022-04-08 杭州溪塔科技有限公司 一种区块链升级的数据迁移方法及数据迁移系统
CN111399874A (zh) * 2020-03-05 2020-07-10 Tcl移动通信科技(宁波)有限公司 一种系统升级方法、装置、存储介质及智能穿戴设备
CN111290773B (zh) * 2020-03-12 2024-01-19 深圳Tcl新技术有限公司 系统升级方法、设备及可读存储介质
CN111459822B (zh) * 2020-04-01 2023-10-03 抖音视界有限公司 系统组件数据的提取方法、装置、设备及可读介质
CN113821234B (zh) * 2021-06-15 2023-01-03 荣耀终端有限公司 操作系统升级方法、设备、存储介质及计算机程序产品
CN116643778B (zh) * 2023-07-27 2024-03-19 荣耀终端有限公司 一种应用程序优化方法及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138382A (zh) * 2015-09-24 2015-12-09 广东欧珀移动通信有限公司 一种Android系统升级的方法及终端

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138382A (zh) * 2015-09-24 2015-12-09 广东欧珀移动通信有限公司 一种Android系统升级的方法及终端

Also Published As

Publication number Publication date
CN106406940A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN106406940B (zh) 系统升级方法、装置及终端
CN112055424B (zh) 电子装置以及切换电子装置的方法
CN105677335A (zh) 提高移动终端首次开机速度的方法及装置
EP3089046B1 (en) Electronic device operating method and electronic device for supporting the same
CN107871015B (zh) 日志数据处理方法及装置、终端及可读存储介质
US10269347B2 (en) Method for detecting voice and electronic device using the same
CN106951521B (zh) 日志文件的读写方法、装置及系统
CN107797868B (zh) 资源调整方法及装置
CN109375937A (zh) 系统升级方法、装置、终端设备及存储介质
CN106681749B (zh) 基于安卓平台的局部代码补丁更新方法及装置
WO2024078218A1 (zh) 系统启动方法及电子设备
CN112463199A (zh) 一种系统升级方法及终端
CN105933492A (zh) 电话号码获取方法及装置
CN116382791B (zh) 一种配置文件的保护方法及电子设备
CN108616657B (zh) 移动终端中实现软电话拨打的方法及装置
CN107957899B (zh) 录屏方法、装置、计算机可读存储介质和一种移动终端
CN107483750B (zh) 铃声的设置方法及装置
CN107391733B (zh) 音乐文件快速分组方法、音乐文件快速分组装置及终端
CN112822672B (zh) 参数配置方法、装置、终端及存储介质
CN112740177A (zh) 一种游戏的加载方法及相关产品
CN112825538B (zh) 一种应用启动方法、装置、终端设备及存储介质
CN116048872B (zh) 一种数据克隆过程的管控方法、电子设备及存储介质
WO2023051178A1 (zh) 一种任务调度方法、电子设备、芯片系统及存储介质
CN111309605B (zh) 终端测试方法、装置、存储介质及终端设备
CN111344670A (zh) 快捷操作方法及移动终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Applicant after: OPPO Guangdong Mobile Communications Co., Ltd.

Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Applicant before: Guangdong Opel Mobile Communications Co., Ltd.

GR01 Patent grant
GR01 Patent grant