WO2018090457A1 - 开机方法、开机装置及Android智能设备 - Google Patents

开机方法、开机装置及Android智能设备 Download PDF

Info

Publication number
WO2018090457A1
WO2018090457A1 PCT/CN2016/112813 CN2016112813W WO2018090457A1 WO 2018090457 A1 WO2018090457 A1 WO 2018090457A1 CN 2016112813 W CN2016112813 W CN 2016112813W WO 2018090457 A1 WO2018090457 A1 WO 2018090457A1
Authority
WO
WIPO (PCT)
Prior art keywords
boot
broadcast
custom
priority
party application
Prior art date
Application number
PCT/CN2016/112813
Other languages
English (en)
French (fr)
Inventor
申雪梅
Original Assignee
深圳Tcl数字技术有限公司
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 深圳Tcl数字技术有限公司 filed Critical 深圳Tcl数字技术有限公司
Publication of WO2018090457A1 publication Critical patent/WO2018090457A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4432Powering on the client, e.g. bootstrap loading using setup parameters being stored locally or received from the server

Definitions

  • the present invention relates to the field of smart device technologies, and in particular, to a booting method, a booting device, and an Android smart device.
  • the main purpose of the present invention is to provide a booting method, which aims to solve the technical problem that a plurality of applications are started in a centralized process during startup, and the CPU usage is too high, causing the system to be stuck.
  • the present invention provides a booting method including the following steps:
  • the ActivityManagerService sends a custom BOOT_P 0 broadcast for starting the first priority system service or system application;
  • a source ACTION_BOOT_COMPLETED broadcast for starting the third party application and/or the third priority system service is sent.
  • the method further includes:
  • the third party application and/or the third priority system service receives and initiates the source ACTION_BOOT_COMPLETED broadcast according to a priority order in the receivers queue.
  • step of the third-party application and/or the third-priority system service receiving the source ACTION_BOOT_COMPLETED broadcast according to the priority order in the receivers queue and starting the step includes:
  • the priority is sorted in the receivers queue by using broadcastIntentLocked;
  • the order of priority of the third-party application and/or the third-priority system service in the receivers queue is adjusted according to the updated array information.
  • the elements of the structure include a user usage frequency, an absolute time of booting, an activity name, and a user usage time.
  • the preset process of the preset time includes the following steps:
  • Another object of the present invention is to provide a booting device, the booting device comprising:
  • ActivityManagerService startup module start ActivityManagerService in the SystemServer process created by Zygote;
  • Custom BOOT_P 0 broadcast transmission module by sending ActivityManagerService priority system for activating a first service application or system broadcast custom BOOT_P 0;
  • Custom BOOT_P 1 broadcast transmission module the custom broadcast sent BOOT_P 0 after a preset time, sending a second priority system for activating a service or application custom system broadcasts BOOT_P 1;
  • the source ACTION_BOOT_COMPLETED broadcast sending module sends a source ACTION_BOOT_COMPLETED broadcast for starting a third party application or a third priority system service after the custom BOOT_P 1 broadcast issues a preset time.
  • optimization device further includes:
  • the source ACTION_BOOT_COMPLETED broadcast receiving module controls the third party application and/or the third priority system service to receive and initiate the source ACTION_BOOT_COMPLETED broadcast according to the priority order in the receivers queue.
  • the source ACTION_BOOT_COMPLETED broadcast receiving module includes:
  • a receivers queue forming unit that stores an array of each third-party application and/or a third-priority system service with an array to form a receivers queue
  • the prioritization unit performs prioritization in the receivers queue by using broadcastIntentLocked according to the structure of each third-party application and/or the third priority system service;
  • An array information update unit that updates the array information corresponding to each third-party application and/or the third priority system service in the receivers queue in real time;
  • the priority order adjusting unit adjusts the priority order of the third party application and/or the third priority system service in the receivers queue according to the updated array information.
  • the elements of the structure include a user usage frequency, an absolute time of booting, an activity name, and a user usage time.
  • booting device further includes:
  • the detection module detects the hardware configuration of the smart device and the number of services initiated by the custom BOOT_P 0 broadcast or the custom BOOT_P 1 broadcast;
  • Debug module a hardware configuration of the smart device and custom BOOT_P 0 Number of broadcast service or custom broadcast start BOOT_P 1, debug custom BOOT_P 0 and broadcast from the broadcasting time between 1 BOOT_P defined interval.
  • the present invention also provides an Android smart device including the boot device as described above.
  • the booting method of the present invention starts the ActivityManagerService in the SystemServer process created by the Zygote process during the booting process, and sends a custom BOOT_P 0 broadcast by the ActivityManagerService in the FinishBooting function or other processes to start the first priority system service or system application.
  • the custom BOOT_P 0 broadcast sends a preset time
  • send a custom BOOT_P 1 broadcast to start the system service or application whose priority is second only to the custom BOOT_P 0 broadcast
  • the preset time is elapsed after the custom BOOT_P 1 broadcast is issued.
  • the order of priority is started in succession, which avoids the startup of many applications or services at the same time, occupies the system caused by the CPU, reduces the burden on the system, and improves the fluency of the system operation.
  • FIG. 1 is a flow chart of an embodiment of a booting method of the present invention
  • step S50 in FIG. 1 is a specific flowchart of step S50 in FIG. 1;
  • FIG. 3 is a flowchart of an embodiment of a preset process of preset time in the present invention.
  • FIG. 4 is a functional block diagram of an embodiment of a booting device of the present invention.
  • FIG. 5 is a schematic structural diagram of a source ACTION_BOOT_COMPLETED broadcast receiving module in FIG.
  • the invention provides a booting method applied to a smart device.
  • FIG. 1 is a flowchart of an embodiment of a booting method according to the present invention.
  • the booting method includes the following steps:
  • the ActivityManagerService sends a custom BOOT_P 0 broadcast for starting the first priority system service or the system application;
  • S30 Send, after the preset time after the custom BOOT_P 0 broadcast is sent, a custom BOOT_P 1 broadcast for starting the second priority system service or the system application;
  • S50 The third-party application and/or the third-priority system service receives the source ACTION_BOOT_COMPLETED broadcast according to a priority order in the receivers queue and starts.
  • the booting method of the embodiment is mainly used to optimize the booting process of the smart device based on the Android platform.
  • the SystemServer process is first created by the Zygote process, and the key Service is started by the SystemServer process, that is, the ActivityManagerService.
  • the ActivityManagerService will send a BOOT_COMPLETED broadcast in the FinishBooting function, or the ActivityManagerService will start the BOOT_COMPLETED broadcast by launching the FinishBooting function in other functions, or the ActivityManagerService will send the BOOT_COMPLETED broadcast in other processes, and then all third-party applications or system services.
  • the BOOT_COMPLETED broadcast will be received for booting, which will cause the system to be stuck and run poorly.
  • the key point of the present invention is to replace the BOOT_COMPLETED broadcast sent by the ActivityManagerService with the custom BOOT_P for starting the system service required for the system to start up.
  • the custom BOOT_P broadcast is customized according to the corresponding startup service, corresponding to the system service to be started, according to the system service
  • the recognized priority will be the first priority system service or the system application 0 custom broadcast named BOOT_P 0
  • the second priority system service or the system application 1 custom broadcast will be named BOOT_P 1 , as needed
  • the custom broadcast BOOT_P 2 which is activated by the Service2 setting of Service1, and the broadcast time of the custom BOOT_P 1 broadcast.
  • the preset time is regarded as each self during the boot process. Define the number of broadcast start services and the configuration of the system hardware. It is defined as 1 second. If the system hardware configuration is poor, or the custom broadcast starts too many services, the preset time will be more than 1 second. If the hardware configuration is poor, or the number of services initiated by the custom broadcast is small, the preset time will be less than 1 second. If Service0 occupies a large proportion of CPUs, the interval for sending custom BOOT_P 1 broadcasts is longer. Otherwise, The time interval is shorter.
  • the FinishBooting function or The start function of the FinishBooting function starts the FinishBooting function or other process will issue a source ACTION_BOOT_COMPLETED broadcast for launching the third party application and/or the third priority system service, and the third party application and/or the third priority system service will receive the The source ACTION_BOOT_COMPLETED broadcast is initiated, and the third-party application and/or the third-priority system service during the startup process, in order to avoid the system startup caused by centralized startup, also internally to the third-party application and/or third priority that needs to be initiated.
  • the level system service is prioritized, that is, all third-party applications and/or third-priority system services that need to be powered on are prioritized in the receivers queue, and then according to each third-party application and/or third priority.
  • the system service receives the source ACTION_BOOT_COMPLETED broadcast in the priority order of the receivers to start, avoiding all third-party applications and/or third-priority system services starting at the same time, consuming the CPU causing the system to jam.
  • the ActivityManagerService is started in the SystemServer process created by the Zygote process during the booting process, and the ActivityBooting function is started by the ActivityBooting function or the startup function of the FinishBooting function to start the FinishBooting function or other process to start the first BOOT_P 0 broadcast.
  • a priority system service or system application sends a custom BOOT_P 1 broadcast after the custom BOOT_P 0 broadcasts a preset time to initiate a system service or system application whose priority is second only to the custom BOOT_P 0 broadcast start.
  • the source ACTION_BOOT_COMPLETED broadcast of the third-party application and/or the third priority system service is sent, and the custom BOOT_P broadcast can be added according to the number of system services that need to be started, and finally
  • the third-party application and/or the third-priority system service receives the source ACTION_BOOT_COMPLETED broadcast according to the priority order in the receivers queue, so that the applications or services to be started are started in the priority order during the boot process. Avoiding many applications or services are concentrated in the same start time, occupancy caused CPU system Caton, reducing the burden on the system, improve the smooth running of the system.
  • step S50 includes:
  • S52 According to the structure of each third-party application and/or the third-priority system service, use the BroadcastIntentLocked to perform priority ranking in the receivers queue;
  • S53 Update the array information corresponding to each third-party application and/or the third priority system service in the receivers queue in real time;
  • S54 Adjust the priority order of the third-party application and/or the third priority system service in the receivers queue according to the updated array information.
  • a structure of a third priority system service including an absolute time of the third party application and/or a third priority system service, an activity name, a third party application and/or a third priority system used by the user
  • the time and frequency of the service, the above four kinds of information constitute the constituent elements of each structure or array, and then each third-party application and/or the array corresponding to the third priority system service are combined to form a receivers queue, and then according to each
  • the structure of the three-party application and/or the third priority system service uses the broadcastIntentLocked algorithm to prioritize in the receivers queue, that is, the frequency of use of each third-party application and/or third-priority system service, Information such as absolute time, activity name, and user usage time as broadcastIntentLocked Variable method, considering the priority ranking criteria.
  • the system Since the operation of the third-party application and/or the third priority system service is different each time the boot is started or after startup, in order to obtain a better user experience under the premise of ensuring smooth system at the next boot, the system will Real-time update of the array information corresponding to each third-party application and/or third-priority system service in the receivers queue, recording each operation for the third-party application and/or the third priority system service, and then performing an array The real-time update of the information, and finally reuse the broadcastIntentLocked algorithm according to the updated array information, that is, the user frequency of each third-party application and/or the third priority system service, the absolute time of the boot, the name of the activity, and the time of the user.
  • the source ACTION_BOOT_COMPLETED broadcast sent by the FinishBooting function is received first.
  • the preset process of the preset time includes the following steps:
  • the preset time in steps S30 and S40 is self-defined as follows.
  • the booting system detects the hardware configuration of the smart device and the custom BOOT_P 0 broadcast or the custom BOOT_P 1 broadcast is started in the boot.
  • the time interval between the broadcast and the custom BOOT_P1 broadcast is repeated to ensure smooth running of the booting system.
  • the time interval, that is, the preset time is generally defined as 1 second. If the system hardware configuration is poor, or the custom broadcast is started, If there are too many services, the preset time will be more than 1 second. If the system hardware configuration is poor, or the custom broadcast starts with less services, the preset time will be less than 1 second.
  • FIG. 4 is a functional block diagram of an embodiment of a booting device according to the present invention.
  • the optimizing device 100 includes:
  • ActivityManagerService starts module 10, and starts ActivityManagerService in the SystemServer process created by Zygote;
  • Custom BOOT_P 0 broadcasting transmission module 20 a first priority use of custom service system or application system BOOT_P 0 ActivityManagerService transmits broadcast start;
  • the source ACTION_BOOT_COMPLETED broadcast sending module 40 sends a source ACTION_BOOT_COMPLETED broadcast for starting the third party application and/or the third priority system service after the preset time after the custom BOOT_P 1 broadcast is sent;
  • the source ACTION_BOOT_COMPLETED broadcast receiving module 50 controls the third party application and/or the third priority system service to receive and initiate the source ACTION_BOOT_COMPLETED broadcast according to the priority order in the receivers queue.
  • the boot optimization apparatus 100 of the embodiment includes an ActivityManagerService startup module 10, a custom BOOT_P 0 broadcast transmission module 20, a custom BOOT_P 1 broadcast transmission module 30, a source ACTION_BOOT_COMPLETED broadcast transmission module 40, and a source ACTION_BOOT_COMPLETED broadcast reception module 50.
  • the ActivityManagerService startup module 10 first controls the Zygote process to create the SystemServer process, and the SystemServer process starts the key Service, that is, the ActivityManagerService. In the case of normal startup, the ActivityManagerService will send the BOOT_COMPLETED broadcast in the FinishBooting function, or by the ActivityManagerService.
  • the key point of the present invention is to replace the BOOT_COMPLETED broadcast sent by the ActivityManagerService in the startup function of the FinishBooting function or the FinishBooting function or other processes into a custom BOOT_P broadcast for starting the system service required for the system to start up, by customization.
  • BOOT_P 0 broadcasting transmitting module 20 to be a first priority for the system service or system service system according to the default priority Custom BOOT_P 0 0 broadcast transmission
  • custom BOOT_P 1 broadcast transmitting module 30 for the second priority application or system service system transmits a broadcast custom BOOT_P 1 may be inferior to the priority of the start of Service1 Service2 set as needed from definition of broadcasting BOOT_P 2, since the transmission time is defined BOOT_P 1 broadcast after the broadcast sent BOOT_P 0 custom preset time, said predetermined time depending on the size of the boot process and services for their own definitions, if the ratio is large CPU-Service0 , the interval between sending a custom BOOT_P 1 broadcast is longer, and the time interval is shorter.
  • the source ACTION_BOOT_COMPLETED broadcast sending module 40 controls the startup function of the FinishBooting function or the FinishBooting function to start the FinishBooting function or other process to issue a source for starting the third-party application and/or the third priority system service.
  • the ACTION_BOOT_COMPLETED broadcast, the third-party application and/or the third-priority system service will receive the source ACTION_BOOT_COMPLETED broadcast to start, in the third-party application and/or the third priority system service during the startup process, in order to avoid centralized startup System Caton will also internally prioritize the third-party applications and/or third-priority system services that need to be started, that is, all third-party applications and/or third-priority system services that need to be powered on in the receivers.
  • the queue is prioritized, and then the ACTION_BOOT_COMPLETED broadcast receiving module 50 controls each third-party application and/or the third-priority system service to receive the source ACTION_BOOT_COMPLETED broadcast according to the priority order in the receivers queue, and avoids all the Party applications and / or third priority system services to start simultaneously, causing the system CPU-Caton problems.
  • Power apparatus starting ActivityManagerService the SystemServer process ActivityManagerService startup module 10 Zygote created during the boot process, the boot FinishBooting function startup function FinishBooting function or FinishBooting function by custom BOOT_P 0 broadcasting transmission module 20 using ActivityManagerService Or sending a custom BOOT_P 0 broadcast in other processes to start the first priority system service or system application, and after the preset time is sent by the BOOT_P 0 broadcast, the custom BOOT_P 1 broadcast sending module 30 sends a custom BOOT_P 1 broadcast, The system service or system application initiated by the boot priority is next to the custom BOOT_P 0 broadcast.
  • the source ACTION_BOOT_COMPLETED broadcast sending module 40 sends a third-party application and/or a third.
  • the source ACTION_BOOT_COMPLETED broadcast of the priority system service can also add a custom BOOT_P broadcast according to the number of system services that need to be started.
  • the source ACTION_BOOT_COMPLETED broadcast receiving module 50 controls the third-party application and/or Or the third priority system service receives the source ACTION_BOOT_COMPLETED broadcast in a priority order in the receivers queue, so that the applications or services to be started are sequentially started in the priority order during the booting process, thereby avoiding numerous applications or services. Focusing on starting at the same time, taking up the system caused by the CPU, reducing the burden on the system and improving the smoothness of the system operation.
  • the source ACTION_BOOT_COMPLETED broadcast receiving module 50 includes:
  • the receivers queue forming unit 51 respectively saves the structure of each third-party application and/or the third priority system service with an array to form a receiver queue;
  • the prioritization unit 52 performs prioritization in the receivers queue by using BroadcastIntentLocked according to the structure of each third-party application and/or the third priority system service;
  • the array information updating unit 53 updates the array information corresponding to each third-party application and/or the third priority system service in the receivers queue in real time;
  • the priority order adjusting unit 54 adjusts the priority order of the third party application and/or the third priority system service in the receivers queue according to the updated array information.
  • the source ACTION_BOOT_COMPLETED broadcast receiving module 50 includes a receivers queue forming unit 51, a priority sorting unit 52, an array information updating unit 53, and a priority order adjusting unit 54.
  • the receivers queue forming unit 51 is configured to respectively save the structure of each third-party application and/or the third priority system service by using an array, where the structure includes the absolute time of the third-party application, the activity name, and the user uses the first The time and frequency of the three-party application and/or the third priority system service, the above four kinds of information constitute the constituent elements of each structure or array, and then the array corresponding to each third-party application and/or the third priority system service is combined.
  • the array information is updated.
  • the unit 53 updates the array information corresponding to each third-party application and/or the third priority system service in the receivers queue in real time, and records each operation performed on the third-party application and/or the third priority system service. Then, the real-time update of the array information is performed, and the priority order adjusting unit 54 is based on the updated array information, that is, the user usage frequency, the absolute time of the boot, the name of the activity, and the service of each third-party application and/or the third priority system service.
  • the user uses the time to re-use the broadcastIntentLocked algorithm to prioritize the receivers queue to ensure that the third-party application and/or the third-priority system service with a longer frequency of use and a shorter boot time are used for the next startup.
  • the source ACTION_BOOT_COMPLET sent by the FinishBooting function is received first. ED broadcast.
  • the booting device 100 further includes:
  • the detecting module 60 detects the hardware configuration of the smart device and the number of services initiated by the custom BOOT_P 0 broadcast or the custom BOOT_P 1 broadcast;
  • Debug module 70 a hardware configuration of the smart device and custom BOOT_P 0 Number of broadcast service or custom broadcast start BOOT_P 1, debug custom BOOT_P 0 and broadcast from the broadcasting time between 1 BOOT_P defined interval.
  • the booting device 100 further includes a detecting module 60 and a debugging module 70.
  • the detecting module 60 is configured to detect the hardware configuration of the smart device and the custom BOOT_P 0 broadcast or the custom BOOT_P 1 broadcast in the booting system.
  • the number of services, the debugging module 70 is used to debug the time between the custom BOOT_P0 broadcast and the custom BOOT_P 1 broadcast according to the hardware configuration of the smart device and the number of services initiated by the BOOT_P 0 broadcast or the custom BOOT_P 1 broadcast in this boot.
  • the preset time is generally defined as 1 second. If the system hardware configuration is poor, or the custom broadcast starts too many services, the preset time will be more than 1 second. If the system hardware configuration is poor, or the custom broadcast If there are fewer services to start, the preset time will be less than 1 second.
  • the present invention also provides an Android smart device, which includes the boot device 100 as described above, and the smart device is a smart TV based on the Android platform.
  • the ActivityManagerService startup module 10 starts the ActivityManagerService in the SystemServer process created by Zygote
  • the custom BOOT_P 0 broadcast sending module 20 uses the ActivityManagerService to start the FinishBooting function or other processes in the startup function of the FinishBooting function or the FinishBooting function.
  • the custom BOOT_P 1 broadcast sending module 30 sends a custom BOOT_P 1 broadcast to start the priority.
  • the source ACTION_BOOT_COMPLETED broadcast sending module 40 sends the source ACTION_BOOT_COMPLETED to start the third-party application and/or the third priority system service after the BOOT_P 1 broadcasts the preset time. Broadcast, according to the number of system services that need to be started, a custom BOOT_P broadcast can also be added, and finally the source ACTION_BOOT_COMPLETED broadcast receiving module 50 controls the third-party application and/or the third priority system service at r.
  • the priority sequence in the eceivers queue receives the source ACTION_BOOT_COMPLETED broadcast, so that the applications or services to be started are sequentially started in the priority order during the boot process, thereby avoiding the startup of many applications or services at the same time, occupying the CPU.
  • the resulting system has reduced the burden on the smart TV Android booting system and improved the smoothness of the smart TV system.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

一种开机方法、开机装置及Android智能设备,在开机过程中由Zygote进程创建的SystemServer进程中启动ActivityManagerService,由ActivityManagerService在FinishBooting函数或其他进程中发送自定义BOOT_P 0广播,以启动第一优先级的系统服务或系统应用,在自定义BOOT_P 0广播发出预设时间之后,发送自定义BOOT_P 1广播,以启动优先级仅次于自定义BOOT_P 0广播启动的系统服务或应用,在自定义BOOT_P 1广播发出预设时间之后,发送启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播,根据需要启动的系统服务的多少,还可以增加自定义BOOT_P广播,以在开机过程中,将要启动的应用或服务按照优先级的顺序先后进行启动,避免了众多应用或服务集中于同一时刻启动,占用CPU造成的系统卡顿,减轻了系统负担,提高了系统运行的流畅性。

Description

开机方法、开机装置及Android智能设备 技术领域
本发明涉及智能设备技术领域,尤其涉及一种开机方法、开机装置及Android智能设备。
背景技术
随着采用Android系统的Android电视的飞速发展,越来越多的电视应用应运而生。娱乐电视已经成为一种趋势,因此电视体验显得尤为重要,众多电视应用(包括第三方应用)为了提升产品自身的体验性,都会采取开机启动某些服务的方式,后台监听用户的操作,提供实时响应,来提升用户的好感度。由于有些服务是在Init.rc里面启动的,而此时应用开机启动的方式一般都是采取监听系统开机广播ACTION_BOOT_COMPLETED,这样一来在开机过程中,众多应用在集中的时间启动,CPU占用相当高,很容易引起系统卡顿。
发明内容
本发明的主要目的在于提供一种开机方法,旨在解决开机过程中众多应用集中启动,CPU占用率过高造成系统卡顿的技术问题。
为实现上述目的,本发明提出一种开机方法,包括以下步骤:
在Zygote创建的SystemServer进程中启动ActivityManagerService;
ActivityManagerService发送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
在所述自定义BOOT_P0广播发出后的预设时间之后,发送用于启动第二优先级系统服务或系统应用的自定义BOOT_P1广播;
在所述自定义BOOT_P1广播发出后的预设时间之后,发送用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播。
进一步地,所述在所述自定义BOOT_P1广播发出预设时间之后,发送用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播的步骤之后,还包括:
所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
进一步地,所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动的步骤包括:
分别用数组保存每一第三方应用和/或第三优先级系统服务的结构体,形成receivers队列;
依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息;
依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
进一步地,所述结构体的元素包括用户使用频率、开机绝对时间、Activity名称及用户使用时间。
进一步地,所述预设时间的预设过程包括以下步骤:
检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;
根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔。
本发明的另一目的在于提供一种开机装置,该开机装置包括:
ActivityManagerService启动模块,在Zygote创建的SystemServer进程中启动ActivityManagerService;
自定义BOOT_P0广播发送模块,利用ActivityManagerService发 送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
自定义BOOT_P1广播发送模块,在所述自定义BOOT_P0广播发出预设时间之后,发送用于启动第二优先级系统服务或系统应用的自定义BOOT_P1广播;及
源生ACTION_BOOT_COMPLETED广播发送模块,在所述自定义BOOT_P1广播发出预设时间之后,发送用于启动第三方应用或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播。
进一步地,该优化装置还包括:
源生ACTION_BOOT_COMPLETED广播接收模块,控制所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
进一步地,所述源生ACTION_BOOT_COMPLETED广播接收模块包括:
receivers队列形成单元,分别用数组保存每一第三方应用和/或第三优先级系统服务的结构体,形成receivers队列;
优先级排序单元,依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
数组信息更新单元,实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息;及
优先级顺序调整单元,依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
进一步地,所述结构体的元素包括用户使用频率、开机绝对时间、Activity名称及用户使用时间。
进一步地,该开机装置还包括:
检测模块,检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;及
调试模块,根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和 自定义BOOT_P1广播之间的时间间隔。
本发明还提供一种Android智能设备,该Android智能设备包括如上所述的开机装置。
本发明的开机方法,在开机过程中由Zygote进程创建的SystemServer进程中启动ActivityManagerService,由ActivityManagerService在FinishBooting函数或其他进程中发送自定义BOOT_P0广播,以启动第一优先级的系统服务或系统应用,在自定义BOOT_P0广播发出预设时间之后,发送自定义BOOT_P1广播,以启动优先级仅次于自定义BOOT_P0广播启动的系统服务或应用,在自定义BOOT_P1广播发出预设时间之后,发送启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播,根据需要启动的系统服务的多少,还可以增加自定义BOOT_P广播,以在开机过程中,将要启动的应用或服务按照优先级的顺序先后进行启动,避免了众多应用或服务集中于同一时刻启动,占用CPU造成的系统卡顿,减轻了系统负担,提高了系统运行的流畅性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明开机方法一实施例的流程图;
图2为图1中步骤S50的具体流程图;
图3为本发明中预设时间的预设过程一实施例的流程图;
图4为本发明开机装置一实施例的功能模块图;
图5为图4中源生ACTION_BOOT_COMPLETED广播接收模块的结构示意图。
附图标号说明:
Figure PCTCN2016112813-appb-000001
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种开机方法,应用于智能设备。
参照图1,图1为本发明开机方法一实施例的流程图,在本实施例中,该开机方法包括以下步骤:
S10:在Zygote创建的SystemServer进程中启动ActivityManagerService;
S20:ActivityManagerService发送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
S30:在所述自定义BOOT_P0广播发出后的预设时间之后,发送用于启动第二优先级系统服务或系统应用的自定义BOOT_P1广播;
S40:在所述自定义BOOT_P1广播发出后的预设时间之后,发送用于启动第三方应用和/或第三优先级系统服务的源生 ACTION_BOOT_COMPLETED广播;
S50:所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
本实施例的开机方法,主要用于对基于Android平台的智能设备的开机启动过程进行优化,在开机启动过程中,首先由Zygote进程创建SystemServer进程,由SystemServer进程启动关键的Service,也即ActivityManagerService,在正常启动的情况下ActivityManagerService会在FinishBooting函数中发送BOOT_COMPLETED广播,或者由ActivityManagerService在其他函数中启动FinishBooting函数发送BOOT_COMPLETED广播,或者由ActivityManagerService在其他进程中发送BOOT_COMPLETED广播,然后所有的第三方应用或系统服务均会接收该BOOT_COMPLETED广播进行开机启动,这样会造成系统卡顿,运行不畅,本发明的关键点就在于将ActivityManagerService发送的BOOT_COMPLETED广播替换为用于启动系统开机运行必需的系统服务的自定义BOOT_P广播,所述自定义BOOT_P广播根据对应的启动服务自定义编写,对应所要启动的系统服务,根据系统服务默认的优先级将启动第一优先级系统服务或系统应用0的自定义广播命名为BOOT_P0,将启动第二优先级系统服务或系统应用1的自定义广播命名为BOOT_P1,根据需要可以对优先级次于Service1的Service2设定启动的自定义广播BOOT_P2,自定义BOOT_P1广播的发送时间在自定义BOOT_P0广播发出预设时间之后,所述预设时间视开机启动过程中每一自定义广播启动服务的多少及系统硬件的配置进行自行定义,一般定义为1秒,若系统硬件配置较差,或者自定义广播启动的服务太多,则预设时间会多于1秒,若系统硬件配置较差,或者自定义广播启动的服务较少,则预设时间会少于1秒,若Service0占用CPU的比例较大,则距离发送自定义BOOT_P1广播的间隔就较长,反之则时间间隔较短。
在系统开机必需的系统服务启动之后,FinishBooting函数或 FinishBooting函数的启动函数启动FinishBooting函数或其他进程会发出用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播,第三方应用和/或第三优先级系统服务会接收所述源生ACTION_BOOT_COMPLETED广播进行启动,第三方应用和/或第三优先级系统服务在启动过程中,为了避免集中启动造成系统卡顿,也会在内部给需要启动的第三方应用和/或第三优先级系统服务一个优先级排序,也即将所有需要开机启动的第三方应用和/或第三优先级系统服务在receivers队列中进行优先级排序,然后依据每一第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序接收源生ACTION_BOOT_COMPLETED广播进行启动,避免了所有第三方应用和/或第三优先级系统服务同时启动,占用CPU造成系统卡顿的问题。
本实施例的开机方法,在开机过程中由Zygote进程创建的SystemServer进程中启动ActivityManagerService,由ActivityManagerService在FinishBooting函数或FinishBooting函数的启动函数启动FinishBooting函数或其他进程中发送自定义BOOT_P0广播,以启动第一优先级的系统服务或系统应用,在自定义BOOT_P0广播发出预设时间之后,发送自定义BOOT_P1广播,以启动优先级仅次于自定义BOOT_P0广播启动的系统服务或系统应用,在自定义BOOT_P1广播发出预设时间之后,发送启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播,根据需要启动的系统服务的多少,还可以增加自定义BOOT_P广播,最后由第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播,以在开机过程中,将要启动的应用或服务按照优先级的顺序先后进行启动,避免了众多应用或服务集中于同一时刻启动,占用CPU造成的系统卡顿,减轻了系统负担,提高了系统运行的流畅性。
参照图2,步骤S50包括:
S51:分别用数组保存每一第三方应用和/或第三优先级系统服务 的结构体,形成receivers队列;
S52:依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
S53:实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息;
S54:依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
本实施例的开机方法,第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播时,首先分别用数组保存每一个第三方应用和/或第三优先级系统服务的结构体,所述结构体包括该第三方应用和/或第三优先级系统服务的开机绝对时间,Activity名称,用户使用该第三方应用和/或第三优先级系统服务的时间及频率,上述四种信息构成每一结构体或数组的组成元素,然后每一第三方应用和/或第三优先级系统服务对应的数组结合起来形成receivers队列,之后依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked算法在receivers队列中进行优先级排序,也即,将每一第三方应用和/或第三优先级系统服务的用户使用频率、开机绝对时间、Activity名称、及用户使用时间等信息作为broadcastIntentLocked算法的变量,综合考虑各项标准进行优先等级排序。
由于每次开机启动时或者启动后对所述第三方应用和/或第三优先级系统服务的操作不同,为了在下一次开机时在保证系统流畅的前提下获得更好的用户体验,该系统会实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息,对每一次针对第三方应用和/或第三优先级系统服务进行的操作进行记录,然后进行数组信息的实时更新,最后根据更新后的数组信息,也即每一第三方应用和/或第三优先级系统服务的用户使用频率、开机绝对时间、Activity名称、及用户使用时间,重新利用broadcastIntentLocked算法在receivers队列中进行优先级排序,以保证使用频率较高、开机绝 对时间短,使用时间比较长的第三方应用和/或第三优先级系统服务在下一次的启动中,最先接收FinishBooting函数发送的源生ACTION_BOOT_COMPLETED广播。
参照图3,所述预设时间的预设过程包括以下步骤:
S80:检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;
S90:根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔。
本实施例中,步骤S30和S40中的预设时间进行自行定义的过程如下,首先开机系统会检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播在本次开机中启动的服务数量,然后根据智能设备的硬件配置和BOOT_P0广播或自定义BOOT_P1广播在本次开机中启动的服务数量,尝试开机启动,如果视频卡顿,则在重新启动时适当延长自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔,重复调试,保证开机系统的运行流畅,所述时间间隔,也即预设时间一般定义为1秒,若系统硬件配置较差,或者自定义广播启动的服务太多,则预设时间会多于1秒,若系统硬件配置较差,或者自定义广播启动的服务较少,则预设时间会少于1秒。
参照图4,图4为本发明开机装置一实施例的功能模块图,在本实施例中,该优化装置100包括:
ActivityManagerService启动模块10,在Zygote创建的SystemServer进程中启动ActivityManagerService;
自定义BOOT_P0广播发送模块20,利用ActivityManagerService发送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
自定义BOOT_P1广播发送模块30,在所述自定义BOOT_P0广播发出后的预设时间之后,发送用于启动第二优先级系统服务或系统 应用的自定义BOOT_P1广播;
源生ACTION_BOOT_COMPLETED广播发送模块40,在所述自定义BOOT_P1广播发出后的预设时间之后,发送用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播;
源生ACTION_BOOT_COMPLETED广播接收模块50,控制所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
本实施例的开机优化装置100,包括ActivityManagerService启动模块10、自定义BOOT_P0广播发送模块20、自定义BOOT_P1广播发送模块30、源生ACTION_BOOT_COMPLETED广播发送模块40、源生ACTION_BOOT_COMPLETED广播接收模块50。在开机启动过程中,首先由ActivityManagerService启动模块10控制Zygote进程创建SystemServer进程,由SystemServer进程启动关键的Service,也即ActivityManagerService,在正常启动的情况下ActivityManagerService会在FinishBooting函数中发送BOOT_COMPLETED广播,或者由ActivityManagerService在其他函数中启动FinishBooting函数发送BOOT_COMPLETED广播,或者由ActivityManagerService在其他进程中发送BOOT_COMPLETED广播,然后所有的第三方应用、及系统服务均会接收该BOOT_COMPLETED广播进行开机启动,这样会造成系统卡顿,运行不畅,本发明的关键点就在于将ActivityManagerService在FinishBooting函数或FinishBooting函数的启动函数或其他进程中发送的BOOT_COMPLETED广播替换为用于启动系统开机运行必需的系统服务的自定义BOOT_P广播,由自定义BOOT_P0广播发送模块20根据系统服务默认的优先级针对第一优先级系统服务或系统应用0发送自定义BOOT_P0广播,自定义BOOT_P1广播发送模块30针对第二优先级系统服务或系统应用1发送自定义BOOT_P1广播,根据需要可以对优先级次于Service1的Service2设定启动的自定义广播BOOT_P2,自定义BOOT_P1广播的发送时间在自定义BOOT_P0广播 发出预设时间之后,所述预设时间视开机启动过程中服务的大小进行自行定义,若Service0占用CPU的比例较大,则距离发送自定义BOOT_P1广播的间隔就较长,反之则时间间隔较短。
在系统开机必需的Service启动之后,源生ACTION_BOOT_COMPLETED广播发送模块40会控制FinishBooting函数或FinishBooting函数的启动函数启动FinishBooting函数或其他进程发出用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播,第三方应用和/或第三优先级系统服务会接收所述源生ACTION_BOOT_COMPLETED广播进行启动,在第三方应用和/或第三优先级系统服务在启动过程中,为了避免集中启动造成系统卡顿,也会在内部给需要启动的第三方应用和/或第三优先级系统服务一个优先级排序,也即将所有需要开机启动的第三方应用和/或第三优先级系统服务在receivers队列中进行优先级排序,然后由ACTION_BOOT_COMPLETED广播接收模块50控制每一第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收源生ACTION_BOOT_COMPLETED广播进行启动,避免了所有第三方应用和/或第三优先级系统服务同时启动,占用CPU造成系统卡顿的问题。
本实施例的开机装置100,在开机过程中由ActivityManagerService启动模块10在Zygote创建的SystemServer进程中启动ActivityManagerService,由自定义BOOT_P0广播发送模块20利用ActivityManagerService在FinishBooting函数或FinishBooting函数的启动函数启动FinishBooting函数或其他进程中发送自定义BOOT_P0广播,以启动第一优先级的系统服务或系统应用,在BOOT_P0广播发出预设时间之后,由自定义BOOT_P1广播发送模块30发送自定义BOOT_P1广播,以启动优先级仅次于自定义BOOT_P0广播启动的系统服务或系统应用,在自定义BOOT_P1广播发出预设时间之后,由源生ACTION_BOOT_COMPLETED广播发送模块40发送启动第三方应用和/或第三优先级系统服务的源生 ACTION_BOOT_COMPLETED广播,根据需要启动的系统Service的多少,还可以增加自定义BOOT_P广播,最后由源生ACTION_BOOT_COMPLETED广播接收模块50控制所述第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播,以在开机过程中,将要启动的应用或服务按照优先级的顺序先后进行启动,避免了众多应用或服务集中于同一时刻启动,占用CPU造成的系统卡顿,减轻了系统负担,提高了系统运行的流畅性。
参照图5,所述源生ACTION_BOOT_COMPLETED广播接收模块50包括:
receivers队列形成单元51,分别用数组保存每一第三方应用和/或第三优先级系统服务的结构体,形成receivers队列;
优先级排序单元52,依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
数组信息更新单元53,实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息;
优先级顺序调整单元54,依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
本实施例的开机装置100,源生ACTION_BOOT_COMPLETED广播接收模块50包括receivers队列形成单元51、优先级排序单元52、数组信息更新单元53、及优先级顺序调整单元54。receivers队列形成单元51用于分别用数组保存每一个第三方应用和/或第三优先级系统服务的结构体,所述结构体包括该第三方应用的开机绝对时间,Activity名称,用户使用该第三方应用和/或第三优先级系统服务的时间及频率,上述四种信息构成每一结构体或数组的组成元素,然后每一第三方应用和/或第三优先级系统服务对应的数组结合起来形成receivers队列优先级排序单元52依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked算法在receivers队 列中进行优先级排序,也即,将每一第三方应用和/或第三优先级系统服务的用户使用频率、开机绝对时间、Activity名称、及用户使用时间等信息作为broadcastIntentLocked算法的变量,综合考虑各项标准进行优先等级排序。
由于每次开机启动时或者启动后对所述第三方应用和/或第三优先级系统服务的操作不同,为了在下一次开机时在保证系统流畅的前提下获得更好的用户体验,数组信息更新单元53会实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息,对每一次针对第三方应用和/或第三优先级系统服务进行的操作进行记录,然后进行数组信息的实时更新,优先级顺序调整单元54根据更新后的数组信息,也即每一第三方应用和/或第三优先级系统服务的用户使用频率、开机绝对时间、Activity名称、及用户使用时间,重新利用broadcastIntentLocked算法在receivers队列中进行优先级排序,以保证使用频率较高、开机绝对时间短,使用时间比较长的第三方应用和/或第三优先级系统服务在下一次的启动中,最先接收FinishBooting函数发送的源生ACTION_BOOT_COMPLETED广播。
参照图4,该开机装置100还包括:
检测模块60,检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;及
调试模块70,根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔。
本实施例中,该开机装置100还包括检测模块60和调试模块70,检测模块60用于开机系统检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播在本次开机中启动的服务数量,调试模块70用于根据智能设备的硬件配置和BOOT_P0广播或自定义BOOT_P1广播在本次开机中启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔,在开机启动过程中,如果视频卡顿,则在重新启动时适当延长自定义BOOT_P0 广播和自定义BOOT_P1广播之间的时间间隔,重复调试,保证开机系统的运行流畅,所述时间间隔,也即预设时间一般定义为1秒,若系统硬件配置较差,或者自定义广播启动的服务太多,则预设时间会多于1秒,若系统硬件配置较差,或者自定义广播启动的服务较少,则预设时间会少于1秒。
本发明还提供一种Android智能设备,该Android智能设备包括如上所述的开机装置100,该智能设备为基于Android平台的智能电视。该智能电视在开机过程中,由ActivityManagerService启动模块10在Zygote创建的SystemServer进程中启动ActivityManagerService,由自定义BOOT_P0广播发送模块20利用ActivityManagerService在FinishBooting函数或FinishBooting函数的启动函数启动FinishBooting函数或其他进程中发送自定义BOOT_P0广播,以启动第一优先级的系统服务或系统应用,在BOOT_P0广播发出预设时间之后,由自定义BOOT_P1广播发送模块30发送自定义BOOT_P1广播,以启动优先级仅次于BOOT_P0广播启动的系统服务或系统应用,在BOOT_P1广播发出预设时间之后,由源生ACTION_BOOT_COMPLETED广播发送模块40发送启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播,根据需要启动的系统Service的多少,还可以增加自定义BOOT_P广播,最后由源生ACTION_BOOT_COMPLETED广播接收模块50控制所述第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播,以在开机过程中,将要启动的应用或服务按照优先级的顺序先后进行启动,避免了众多应用或服务集中于同一时刻启动,占用CPU造成的系统卡顿,减轻了智能电视Android开机系统的负担,提高了该智能电视系统运行的流畅性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变 换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (15)

  1. 一种开机方法,应用于Android智能设备,其特征在于,包括以下步骤:
    在Zygote创建的SystemServer进程中启动ActivityManagerService;
    ActivityManagerService发送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
    在所述自定义BOOT_P0广播发出后的预设时间之后,发送用于启动第二优先级系统服务或系统应用的自定义BOOT_P1广播;
    在所述自定义BOOT_P1广播发出后的预设时间之后,发送用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播。
  2. 如权利要求1所述的开机方法,其特征在于,所述在所述自定义BOOT_P1广播发出预设时间之后,发送用于启动第三方应用和/或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播的步骤之后,还包括:
    所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
  3. 如权利要求2所述的开机方法,其特征在于,所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动的步骤包括:
    分别用数组保存每一第三方应用和/或第三优先级系统服务的结构体,形成receivers队列;
    依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
    实时更新receivers队列中每一第三方应用和/或第三优先级系统 服务所对应的数组信息;
    依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
  4. 如权利要求3所述的开机方法,其特征在于,所述结构体的元素包括用户使用频率、开机绝对时间、Activity名称及用户使用时间。
  5. 如权利要求1所述的开机方法,其特征在于,所述预设时间的预设过程包括以下步骤:
    检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;
    根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔。
  6. 一种开机装置,其特征在于,该开机装置包括:
    ActivityManagerService启动模块,在Zygote创建的SystemServer进程中启动ActivityManagerService;
    自定义BOOT_P0广播发送模块,利用ActivityManagerService发送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
    自定义BOOT_P1广播发送模块,在所述自定义BOOT_P0广播发出预设时间之后,发送用于启动第二优先级系统服务或系统应用的自定义BOOT_P1广播;及
    源生ACTION_BOOT_COMPLETED广播发送模块,在所述自定义BOOT_P1广播发出预设时间之后,发送用于启动第三方应用或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播。
  7. 如权利要求6所述的开机装置,其特征在于,该开机装置还 包括:
    源生ACTION_BOOT_COMPLETED广播接收模块,控制所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
  8. 如权利要求7所述的开机装置,其特征在于,所述源生ACTION_BOOT_COMPLETED广播接收模块包括:
    receivers队列形成单元,分别用数组保存每一第三方应用和/或第三优先级系统服务的结构体,形成receivers队列;
    优先级排序单元,依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
    数组信息更新单元,实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息;及
    优先级顺序调整单元,依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
  9. 如权利要求8所述的开机装置,其特征在于,所述结构体的元素包括用户使用频率、开机绝对时间、Activity名称及用户使用时间。
  10. 如权利要求6所述的开机装置,其特征在于,该开机装置还包括:
    检测模块,检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;及
    调试模块,根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔。
  11. 一种Android智能设备,其特征在于,该Android智能设备 包括一开机装置,所述开机装置包括:
    ActivityManagerService启动模块,在Zygote创建的SystemServer进程中启动ActivityManagerService;
    自定义BOOT_P0广播发送模块,利用ActivityManagerService发送用于启动第一优先级系统服务或系统应用的自定义BOOT_P0广播;
    自定义BOOT_P1广播发送模块,在所述自定义BOOT_P0广播发出预设时间之后,发送用于启动第二优先级系统服务或系统应用的自定义BOOT_P1广播;及
    源生ACTION_BOOT_COMPLETED广播发送模块,在所述自定义BOOT_P1广播发出预设时间之后,发送用于启动第三方应用或第三优先级系统服务的源生ACTION_BOOT_COMPLETED广播。
  12. 如权利要求11所述的Android智能设备,其特征在于,所述开机装置还包括:
    源生ACTION_BOOT_COMPLETED广播接收模块,控制所述第三方应用和/或第三优先级系统服务依据在receivers队列中的优先级顺序接收所述源生ACTION_BOOT_COMPLETED广播并启动。
  13. 如权利要求12所述的Android智能设备,其特征在于,所述源生ACTION_BOOT_COMPLETED广播接收模块包括:
    receivers队列形成单元,分别用数组保存每一第三方应用和/或第三优先级系统服务的结构体,形成receivers队列;
    优先级排序单元,依据每一第三方应用和/或第三优先级系统服务的结构体,利用broadcastIntentLocked在receivers队列中进行优先级排序;
    数组信息更新单元,实时更新receivers队列中每一第三方应用和/或第三优先级系统服务所对应的数组信息;及
    优先级顺序调整单元,依据更新后的数组信息调整第三方应用和/或第三优先级系统服务在receivers队列中的优先级顺序。
  14. 如权利要求13所述的Android智能设备,其特征在于,所述结构体的元素包括用户使用频率、开机绝对时间、Activity名称及用户使用时间。
  15. 如权利要求11所述的Android智能设备,其特征在于,所述开机装置还包括:
    检测模块,检测智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量;及
    调试模块,根据智能设备的硬件配置和自定义BOOT_P0广播或自定义BOOT_P1广播启动的服务数量,调试自定义BOOT_P0广播和自定义BOOT_P1广播之间的时间间隔。
PCT/CN2016/112813 2016-11-15 2016-12-29 开机方法、开机装置及Android智能设备 WO2018090457A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611036746.3 2016-11-15
CN201611036746.3A CN106792185B (zh) 2016-11-15 2016-11-15 开机方法、开机装置及Android智能设备

Publications (1)

Publication Number Publication Date
WO2018090457A1 true WO2018090457A1 (zh) 2018-05-24

Family

ID=58971334

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/112813 WO2018090457A1 (zh) 2016-11-15 2016-12-29 开机方法、开机装置及Android智能设备

Country Status (2)

Country Link
CN (1) CN106792185B (zh)
WO (1) WO2018090457A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114047961A (zh) * 2021-11-15 2022-02-15 合众新能源汽车有限公司 安卓系统开机优化方法、智能终端和计算机可读介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775679A (zh) * 2016-11-30 2017-05-31 深圳天珑无线科技有限公司 一种消息处理方法和装置
CN107861827B (zh) * 2017-10-31 2021-05-21 努比亚技术有限公司 卡屏检测方法、移动终端及计算机可读存储介质
CN108038010A (zh) * 2017-12-25 2018-05-15 青岛海信电器股份有限公司 安卓系统启动阶段广播发送方法、装置和终端
CN108228367B (zh) * 2017-12-29 2021-07-27 北京安云世纪科技有限公司 一种基于分级广播进行启动控制的方法、系统和移动终端
CN108196892B (zh) * 2017-12-29 2021-02-23 北京安云世纪科技有限公司 用于对系统启动过程进行定制的方法、装置以及移动终端
CN112637683A (zh) * 2020-12-07 2021-04-09 青岛海信传媒网络技术有限公司 显示设备系统优化方法及显示设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298532A (zh) * 2011-09-15 2011-12-28 奇智软件(北京)有限公司 一种基于启动项的管理方法及装置
CN102830996A (zh) * 2012-08-08 2012-12-19 广东欧珀移动通信有限公司 一种手持设备的快速开机方法
CN103488495A (zh) * 2013-08-13 2014-01-01 广东欧珀移动通信有限公司 一种通过动态调整开机预加载资源加速开机的方法
US20150212825A1 (en) * 2014-01-28 2015-07-30 Hyundai Mobis Co., Ltd. System and method for booting application of terminal
CN105302588A (zh) * 2014-07-09 2016-02-03 联想移动通信科技有限公司 一种终端应用程序加载方法、装置及终端

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4825120B2 (ja) * 2006-12-07 2011-11-30 株式会社日立製作所 サービス管理システム、サービス管理装置およびサービス管理方法
JP2010217945A (ja) * 2009-03-13 2010-09-30 Panasonic Corp アプリケーション動作調整システム
US8452949B1 (en) * 2009-05-28 2013-05-28 Cms Products, Inc. Optical boot to eliminate changing BIOS to boot externally attached storage device
CN102163150B (zh) * 2010-02-24 2015-09-02 腾讯科技(深圳)有限公司 一种系统启动方法及装置
CN102707966B (zh) * 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
CN103064705B (zh) * 2012-12-18 2016-06-29 北京奇虎科技有限公司 计算机系统启动处理方法与装置
CN105302611B (zh) * 2015-11-13 2019-10-25 中标软件有限公司 一种Linux下的启动计算机系统的方法及系统
CN105549958A (zh) * 2015-12-02 2016-05-04 海信集团有限公司 嵌入式系统启动方法和智能终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298532A (zh) * 2011-09-15 2011-12-28 奇智软件(北京)有限公司 一种基于启动项的管理方法及装置
CN102830996A (zh) * 2012-08-08 2012-12-19 广东欧珀移动通信有限公司 一种手持设备的快速开机方法
CN103488495A (zh) * 2013-08-13 2014-01-01 广东欧珀移动通信有限公司 一种通过动态调整开机预加载资源加速开机的方法
US20150212825A1 (en) * 2014-01-28 2015-07-30 Hyundai Mobis Co., Ltd. System and method for booting application of terminal
CN105302588A (zh) * 2014-07-09 2016-02-03 联想移动通信科技有限公司 一种终端应用程序加载方法、装置及终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114047961A (zh) * 2021-11-15 2022-02-15 合众新能源汽车有限公司 安卓系统开机优化方法、智能终端和计算机可读介质

Also Published As

Publication number Publication date
CN106792185B (zh) 2020-08-04
CN106792185A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
WO2018090457A1 (zh) 开机方法、开机装置及Android智能设备
US9860440B2 (en) Power saving control method and electronic device supporting the same
JP4805281B2 (ja) 装置管理スケジューリングのためのシステム及び方法
CN106162279B (zh) 基于安卓操作系统的电视遥控按键响应方法及电视
JP4345844B2 (ja) 通信システム、情報処理装置および方法、並びにプログラム
US9572187B2 (en) Information processing apparatus, information processing method, and program
CN108111520B (zh) 媒体播放资源处理方法、装置及终端
CN104077521A (zh) 信息处理方法和装置
WO2020224346A1 (zh) 控制装置及其操作方法,和语音交互装置及其操作方法
CN106303639B (zh) 一种智能电视全键盘功能键的实现方法及系统
WO2016184058A1 (zh) 一种终端异常恢复方法及终端
US10009651B2 (en) Method for processing global key of smart television and system thereof
WO2010118696A1 (zh) 电子设备和电子设备的电源管理装置
CN114327606A (zh) 配置管理方法、装置、电子设备及计算机可读存储介质
CN104144356A (zh) 智能机顶盒高效升级方法及装置
WO2019085347A1 (zh) 电视机系统软件的升级方法及装置
CN104918111A (zh) 一种Android智能电视的直播频道识别方法及系统
CN107809650B (zh) 机顶盒及遥控器的省电方法
CN105354058A (zh) 一种文件更新方法及装置
CN113784224A (zh) 显示设备及频道列表自动更新方法
US20200252499A1 (en) Electronic apparatus and control method thereof
CN107329759A (zh) 一种内容滚动显示的方法
CN105704561A (zh) 一种屏幕保护启动方法、屏幕保护装置和智能终端
JP2017045271A (ja) 監視装置、監視方法及び監視プログラム
CN111722869A (zh) 控制面板的配置方法、控制面板及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16921472

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14.10.2019)

122 Ep: pct application non-entry in european phase

Ref document number: 16921472

Country of ref document: EP

Kind code of ref document: A1