CN103514007B - 一种基于Android系统的移动终端的热启动的方法 - Google Patents
一种基于Android系统的移动终端的热启动的方法 Download PDFInfo
- Publication number
- CN103514007B CN103514007B CN201210317478.8A CN201210317478A CN103514007B CN 103514007 B CN103514007 B CN 103514007B CN 201210317478 A CN201210317478 A CN 201210317478A CN 103514007 B CN103514007 B CN 103514007B
- Authority
- CN
- China
- Prior art keywords
- zygote
- mobile terminal
- android
- thermal starting
- socket
- 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.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种基于Android系统的移动终端的热启动的方法,当所述移动终端接收用户的热启动指令后,终止Zygote及Zygote创建的所有子程序;然后,Zygote重新启动,Zygote重新创建系统服务进程和预先设定的Android服务程序,完成热启动。从而无需对移动终端断电便可实现重新启动,一方面减少了系统重启所花费的时间,另一方面加快了系统运行的速度(所有服务都被重启),提高了用户体验。
Description
技术领域
本发明涉及Android应用技术领域,特别涉及用于一种基于Android系统的移动终端的热启动的方法。
背景技术
Android(安卓)系统是一种以Linux为基础的开放源代码操作系统,作为一款开放式的操作系统,随着Android系统的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
基于Android系统的智能手机目前越来越普及,相对于非智能手机而言,智能手机在开机速度上所花费的时间是比较长的。当使用的应用程序存在内存泄露,或者占用的内存比较大的话,会导致Android系统越用越慢,智能手机出现卡顿的现象。
目前,当出现卡顿等现象时,用户通常的做法是长按关机键关掉Android系统然后再开机,有时候甚至迫不得已采用抠电池的极端方式关闭系统,然后再花费很长的时间来开机,从而给用户带来不便。
有鉴于此,现有技术还有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于Android系统的移动终端的热启动的方法,以解决现有技术中的基于Android系统的智能手机,长时间使用后系统变慢时,只能长按关机键或采用断电等方式来关闭系统,再重新启动的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种基于Android系统的移动终端的热启动的方法,其中,所述方法包括以下步骤:
STA、所述移动终端接收用户的热启动指令,终止Zygote及Zygote创建的所有子程序;
STB、Zygote重新启动, Zygote重新创建系统服务进程和预先设定的Android服务程序,完成热启动。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述步骤A具体包括:
ST1、移动终端开机时启动一可执行文件CmdServer,运行Socket服务端,并监听重新启动的指令端口;
ST2、所述移动终端接收用户的热启动指令,找到Zygote的进程ID号,建立Socket客户端,通过Socket客户端将所述Zygote的进程ID号发送到重新启动的指令端口;
ST3、Socket服务端接收到来自重新启动的指令端口的Zygote的进程ID号,终止Zygote;
ST4、Zygote的父进程Init接收到Zygote的终止信息后,终止Zygote创建的所有子进程。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述步骤ST1中的重新启动的指令端口为5200端口。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述步骤ST3中Socket服务端终止Zygote具体采用以下步骤:
Socket服务端调用system()函数,执行命令“kill -9 Zygote的进程ID号”。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述步骤ST4中还包括:
Init标记init.svc.zygote的值为restarting。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述步骤B具体包括:
Zygote的父进程Init 重新启动Zygote,进而启动Davik VM,Davik VM启动系统服务进程,接着启动Framework和预先设定的Android服务程序。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述Framework包括:Activity Manager和Windows Manager,Activity Manager负责把Home引导完毕。
优选地,所述的基于Android系统的移动终端的热启动的方法,其中,所述移动终端为手机。
有益效果:
相较于现有技术,本发明提供的基于Android系统的移动终端的热启动的方法,无需对移动终端断电便可实现重新启动,一方面减少了系统重启所花费的时间,另一方面加快了系统运行的速度(所有服务都被重启),提高了用户体验。
附图说明
图1为本发明的基于Android系统的移动终端的热启动的方法的流程图。
图2为本发明的基于Android系统的移动终端的热启动的方法中终止Zygote及Zygote创建的所有子程序的实施例的示意图。
具体实施方式
本发明提供一种基于Android系统的移动终端的热启动的方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
首先介绍一下Android系统的启动过程:
Android系统启动过程分为两个阶段,第一个阶段是Linux(一种类UNIX 计算机操作系统)的启动,主要顺序是上电、加载BootLoader(引导加载程序)引导、启动Kernel(即Linux内核)、加载Driver(设备驱动)等,第二个阶段是Android的启动,即内核空间进入用户空间后,第一个运行init程序,该程序启动android的native(本地)服务,包括Servicemanager(服务管理器)和Zygote(孵化器)进程,它们两个奠定了Android的基础。Zygote利用Socket(套接字)通讯,接收ActivityManagerService(活动管理服务,用于提供给ActivityManager接口)的请求,Fork(派生)出各种应用程序。基于上面的描述,本发明的热启动就是不再走第一个阶段,直接进行第二阶段:Android的启动。其中,所有的JAVA应用程序进程以及大部分系统都是由Zygote派生出来的,当Zygote完成了JAVA世界的初创阶段后,就进入了不断等待的阶段,等待子进程的请求,比如创建一个Activity。Zygote主要负责启动system server(系统服务进程)和执行android程序(APK)。成功启动system server后会使用socket方式监听(monitor android apps/prcesses)。
请参阅图1,图1为本发明的基于Android系统的移动终端的热启动的方法的流程图。如图所示,所述方法包括两个步骤:
A、移动终端接收用户的热启动指令,终止Zygote及Zygote创建的所有子程序;
B、移动终端的Zygote重新启动, Zygote重新创建系统服务进程和预先设定的Android服务程序,完成热启动。
下面分别针对上述步骤进行详细介绍:
所述步骤A是当移动终端接收用户的热启动指令后,终止Zygote及Zygote创建的所有子程序。在本实施例中,如图2所示,所述步骤A具体包括:
S1、移动终端开机时启动一可执行文件CmdServer(即请求命令接收服务端),运行Socket服务端,并监听重新启动的指令端口;其中,所述重新启动的指令端口可以任意设定,只要不占用操作系统指定的端口即可。在本实施例中,采用5200端口作为重新启动的指令端口。
S2、所述移动终端(如:手机、PAD等)接收用户的热启动指令,找到Zygote的进程ID号,建立Socket客户端,通过Socket客户端将所述Zygote的进程ID号发送到重新启动的指令端口;其中,所述用户的热启动指令可以采用多种方式,比如,采用一些组合按键(例如:关机键和上键等)。当用户想重新启动移动终端时(如感觉系统变慢等),可以通过组合按键来发送热启动指令。然后,移动终端便去寻找到Zygote的进程ID号,建立Socket客户端(与步骤S1中的Socket服务端对应),通过Socket客户端将所述Zygote的进程ID号发送到重新启动的指令端口。
S3、Socket服务端接收到来自重新启动的指令端口的Zygote的进程ID号,终止Zygote;在本实施例中Socket服务端终止Zygote具体为:Socket服务端调用system()函数,执行命令“kill -9 Zygote的进程ID号”。此时,Zygote便被终止了。
S4、Zygote的父进程Init接收到Zygote的终止信息后,终止Zygote创建的所有子进程。同时,退出JAVA。为了方便后续重启Zygote,在本实施例中,Init标记init.svc.zygote的值为restarting(重新启动)。因为,Init处理完请求后,就会重新启动标记为restarting属性的服务,Zygote就会被再次启动。
当完成了Zygote的终止后,便进行步骤B,此时,Zygote重新启动, Zygote重新创建系统服务进程(也称systemserver,该系统服务的功能是启动所有native(本地)服务以及JAVA核心服务)和预先设定的Android服务程序,完成热启动。具体来说,Zygote的父进程Init 重新启动Zygote,进而启动Davik VM,Davik VM启动系统服务进程,接着启动Framework(框架)和预先设定的Android服务程序。其中,所述Framework包括:ActivityManager(活动管理器,相当于android的一个客户端,用于调用ActivityManagerService的接口)和Windows Manager(窗口管理器)等,Activity Manager负责把Home(桌面程序,即主页)引导完毕。所述预先设定的Android服务程序应当为Android系统的核心程序,即用户开机时,默认启动的。
综上所述,本发明的基于Android系统的移动终端的热启动的方法,当所述移动终端接收用户的热启动指令后,终止Zygote及Zygote创建的所有子程序;然后,Zygote重新启动, Zygote重新创建系统服务进程和预先设定的Android服务程序,完成热启动。从而无需对移动终端断电便可实现重新启动,一方面减少了系统重启所花费的时间,另一方面加快了系统运行的速度(所有服务都被重启),提高了用户体验。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (5)
1.一种基于Android系统的移动终端的热启动的方法,其特征在于,所述方法包括以下步骤:
STA、移动终端接收用户的热启动指令,终止Zygote及Zygote创建的所有子程序;
STB、Zygote重新启动, Zygote重新创建系统服务进程和预先设定的Android服务程序,完成热启动;
所述步骤STA具体包括:
ST1、移动终端开机时启动一可执行文件CmdServer,运行Socket服务端,并监听重新启动的指令端口;
ST2、所述移动终端接收用户的热启动指令,找到Zygote的进程ID号,建立Socket客户端,通过Socket客户端将所述Zygote的进程ID号发送到重新启动的指令端口;
ST3、Socket服务端接收到来自重新启动的指令端口的Zygote的进程ID号,终止Zygote;
ST4、Zygote的父进程Init接收到Zygote的终止信息后,终止Zygote创建的所有子进程;
所述步骤ST3中Socket服务端终止Zygote具体采用以下步骤:
Socket服务端调用system()函数,执行命令“kill -9 Zygote的进程ID号”;
所述步骤ST4中还包括:
Init标记init.svc.zygote的值为restarting;
所述热启动直接为Android的启动,即内核空间进入用户空间后,第一个运行init程序,该程序启动android的native服务,包括Servicemanager和Zygote进程,Zygote利用Socket通讯,接收ActivityManagerService的请求,Fork出应用程序。
2.根据权利要求1所述的基于Android系统的移动终端的热启动的方法,其特征在于,所述步骤ST1中的重新启动的指令端口为5200端口。
3.根据权利要求1所述的基于Android系统的移动终端的热启动的方法,其特征在于,所述步骤STB具体包括:
Zygote的父进程Init 重新启动Zygote,进而启动Davik VM,Davik VM启动系统服务进程,接着启动Framework和预先设定的Android服务程序。
4.根据权利要求3所述的基于Android系统的移动终端的热启动的方法,其特征在于,所述Framework包括:Activity Manager和Windows Manager,Activity Manager负责把Home引导完毕。
5.根据权利要求1所述的基于Android系统的移动终端的热启动的方法,其特征在于,所述移动终端为手机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210317478.8A CN103514007B (zh) | 2012-08-31 | 2012-08-31 | 一种基于Android系统的移动终端的热启动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210317478.8A CN103514007B (zh) | 2012-08-31 | 2012-08-31 | 一种基于Android系统的移动终端的热启动的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103514007A CN103514007A (zh) | 2014-01-15 |
CN103514007B true CN103514007B (zh) | 2017-09-05 |
Family
ID=49896787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210317478.8A Expired - Fee Related CN103514007B (zh) | 2012-08-31 | 2012-08-31 | 一种基于Android系统的移动终端的热启动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103514007B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376256B (zh) * | 2014-12-02 | 2017-04-05 | 北京奇虎科技有限公司 | 应用程序进程孵化控制方法及装置 |
CN104484223B (zh) * | 2014-12-16 | 2018-02-16 | 北京奇虎科技有限公司 | 一种安卓系统应用关闭方法和装置 |
CN108073452B (zh) * | 2016-11-10 | 2022-01-28 | 阿里巴巴集团控股有限公司 | 一种动态语言的运行时环境处理方法、装置和设备 |
CN107341407B (zh) * | 2017-07-26 | 2021-03-23 | 惠州Tcl移动通信有限公司 | 基于终端的多安卓系统实现方法、存储介质及终端 |
CN107861827B (zh) * | 2017-10-31 | 2021-05-21 | 努比亚技术有限公司 | 卡屏检测方法、移动终端及计算机可读存储介质 |
CN114116040A (zh) * | 2020-08-31 | 2022-03-01 | 华为技术有限公司 | 加速应用启动的方法、电子设备及计算机存储介质 |
CN114489842A (zh) * | 2022-01-17 | 2022-05-13 | 重庆长安汽车股份有限公司 | 一种基于Android平台加速应用启动方法 |
CN114090096B (zh) * | 2022-01-21 | 2022-04-15 | 成都云祺科技有限公司 | 一种网络虚拟文件系统实现方法、系统及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1217265C (zh) * | 2002-08-19 | 2005-08-31 | 万达信息股份有限公司 | 一种进程自动恢复方法 |
US8495351B2 (en) * | 2010-10-13 | 2013-07-23 | International Business Machines Corporation | Preparing and preserving a system configuration during a hot upgrade |
CN102012832B (zh) * | 2010-12-14 | 2013-06-19 | Tcl集团股份有限公司 | 一种加速Android系统启动的方法及装置 |
CN102331947B (zh) * | 2011-10-14 | 2013-12-11 | 中科创达软件股份有限公司 | 一种Android系统的重启方法 |
-
2012
- 2012-08-31 CN CN201210317478.8A patent/CN103514007B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN103514007A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514007B (zh) | 一种基于Android系统的移动终端的热启动的方法 | |
CN106293880B (zh) | 在Windows系统上运行Android应用程序的方法及装置 | |
US8868899B2 (en) | System and method for switching between environments in a multi-environment operating system | |
EP3893118A1 (en) | Recovery from application anomaly | |
US9372711B2 (en) | System and method for initiating a multi-environment operating system | |
US9348633B2 (en) | Multi-environment operating system | |
US8452952B2 (en) | Methods and apparatus for building system images and split booting | |
CN105607921B (zh) | 一种基于Android系统的系统服务启动方法及系统 | |
CN109308241B (zh) | 监听应用程序启动流程方法、装置、终端设备和存储介质 | |
WO2015100933A1 (zh) | 一种实现多操作系统的数据处理方法及终端设备 | |
CN110750284B (zh) | 一种应用快速启动方法、终端及计算机可读存储介质 | |
CN106547598A (zh) | 提升Android应用程序启动速度的方法 | |
WO2012094319A1 (en) | Background synchronization within a multi-environment operating system | |
CN107831887B (zh) | 一种应用启动方法及装置 | |
CN109388473A (zh) | 基于移动操作系统的Android兼容层实现方法和系统 | |
CN112363632A (zh) | 一种Linux平台下Android应用的输入方法和装置 | |
US20230229462A1 (en) | Terminal Device, Gesture Operation Method Thereof, and Medium | |
CN113641320A (zh) | 一种Linux兼容Android的共享屏幕方法及装置 | |
CN112579369B (zh) | 多线程刷机系统、方法、装置、设备和存储介质 | |
CN104731600A (zh) | 一种将安卓系统服务插件化的实现方法 | |
CN107453959B (zh) | 一种网卡的管理方法及其装置 | |
CN104424198A (zh) | 一种页面显示速度的获取方法及装置 | |
CN107783825A (zh) | 移动终端多后台进程启动方法、装置及移动终端 | |
CN107395888B (zh) | 黑屏手势的处理方法、装置、存储介质及移动终端 | |
WO2022171058A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170905 |
|
CF01 | Termination of patent right due to non-payment of annual fee |