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

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

Info

Publication number
CN106792185A
CN106792185A CN201611036746.3A CN201611036746A CN106792185A CN 106792185 A CN106792185 A CN 106792185A CN 201611036746 A CN201611036746 A CN 201611036746A CN 106792185 A CN106792185 A CN 106792185A
Authority
CN
China
Prior art keywords
broadcast
boot
self
priority
service
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
Application number
CN201611036746.3A
Other languages
English (en)
Other versions
CN106792185B (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.)
Shenzhen TCL New Technology Co Ltd
Shenzhen TCL Digital Technology Co Ltd
Original Assignee
Shenzhen TCL New Technology Co 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 Shenzhen TCL New Technology Co Ltd filed Critical Shenzhen TCL New Technology Co Ltd
Priority to CN201611036746.3A priority Critical patent/CN106792185B/zh
Priority to PCT/CN2016/112813 priority patent/WO2018090457A1/zh
Publication of CN106792185A publication Critical patent/CN106792185A/zh
Application granted granted Critical
Publication of CN106792185B publication Critical patent/CN106792185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

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_P0广播,以启动第一优先级的***服务或***应用,在自定义BOOT_P0广播发出预设时间之后,发送自定义BOOT_P1广播,以启动优先级仅次于自定义BOOT_P0广播启动的***服务或应用,在自定义BOOT_P1广播发出预设时间之后,发送启动第三方应用和/或第三优先级***服务的源生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广播接收模块的结构示意图。
附图标号说明:
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种开机方法,应用于智能设备。
参照图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 (11)

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智能设备包括如权利要求6-10任一项所述的开机装置。
CN201611036746.3A 2016-11-15 2016-11-15 开机方法、开机装置及Android智能设备 Active CN106792185B (zh)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN106792185A true CN106792185A (zh) 2017-05-31
CN106792185B CN106792185B (zh) 2020-08-04

Family

ID=58971334

Family Applications (1)

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

Country Status (2)

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

Cited By (8)

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

Families Citing this family (1)

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

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146204A (ja) * 2006-12-07 2008-06-26 Hitachi Ltd サービス管理システム、サービス管理装置およびサービス管理方法
JP2010217945A (ja) * 2009-03-13 2010-09-30 Panasonic Corp アプリケーション動作調整システム
CN102163150A (zh) * 2010-02-24 2011-08-24 腾讯科技(深圳)有限公司 一种***启动方法及装置
CN102298532A (zh) * 2011-09-15 2011-12-28 奇智软件(北京)有限公司 一种基于启动项的管理方法及装置
CN102707966A (zh) * 2012-04-12 2012-10-03 腾讯科技(深圳)有限公司 加速操作***启动的方法及装置、预取信息生成方法及装置和终端
CN102830996A (zh) * 2012-08-08 2012-12-19 广东欧珀移动通信有限公司 一种手持设备的快速开机方法
CN103064705A (zh) * 2012-12-18 2013-04-24 北京奇虎科技有限公司 计算机***启动处理方法与装置
US8452949B1 (en) * 2009-05-28 2013-05-28 Cms Products, Inc. Optical boot to eliminate changing BIOS to boot externally attached storage device
US20150212825A1 (en) * 2014-01-28 2015-07-30 Hyundai Mobis Co., Ltd. System and method for booting application of terminal
CN105302611A (zh) * 2015-11-13 2016-02-03 中标软件有限公司 一种Linux下的启动计算机***的方法及***
CN105549958A (zh) * 2015-12-02 2016-05-04 海信集团有限公司 嵌入式***启动方法和智能终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488495A (zh) * 2013-08-13 2014-01-01 广东欧珀移动通信有限公司 一种通过动态调整开机预加载资源加速开机的方法
CN105302588A (zh) * 2014-07-09 2016-02-03 联想移动通信科技有限公司 一种终端应用程序加载方法、装置及终端

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146204A (ja) * 2006-12-07 2008-06-26 Hitachi Ltd サービス管理システム、サービス管理装置およびサービス管理方法
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
CN102163150A (zh) * 2010-02-24 2011-08-24 腾讯科技(深圳)有限公司 一种***启动方法及装置
CN102298532A (zh) * 2011-09-15 2011-12-28 奇智软件(北京)有限公司 一种基于启动项的管理方法及装置
CN102707966A (zh) * 2012-04-12 2012-10-03 腾讯科技(深圳)有限公司 加速操作***启动的方法及装置、预取信息生成方法及装置和终端
CN102830996A (zh) * 2012-08-08 2012-12-19 广东欧珀移动通信有限公司 一种手持设备的快速开机方法
CN103064705A (zh) * 2012-12-18 2013-04-24 北京奇虎科技有限公司 计算机***启动处理方法与装置
US20150212825A1 (en) * 2014-01-28 2015-07-30 Hyundai Mobis Co., Ltd. System and method for booting application of terminal
KR20150089660A (ko) * 2014-01-28 2015-08-05 현대모비스 주식회사 단말의 애플리케이션 부팅 시스템 및 방법
CN105302611A (zh) * 2015-11-13 2016-02-03 中标软件有限公司 一种Linux下的启动计算机***的方法及***
CN105549958A (zh) * 2015-12-02 2016-05-04 海信集团有限公司 嵌入式***启动方法和智能终端

Cited By (12)

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

Also Published As

Publication number Publication date
CN106792185B (zh) 2020-08-04
WO2018090457A1 (zh) 2018-05-24

Similar Documents

Publication Publication Date Title
CN106792185A (zh) 开机方法、开机装置及Android智能设备
US11462191B2 (en) Methods, systems, and media for managing output of an HDMI source
CN105979375B (zh) 一种智能电视的启动方法及装置
CN108513154A (zh) 基于智能电视的智能家居控制方法、智能电视及存储介质
US10701435B2 (en) Television video interception method and device
CN112350981B (zh) 一种切换通信协议的方法、装置和***
CN109286854B (zh) 基于WiFi网络的网络流媒体卡顿检测及优化***及方法
CN106407003A (zh) 屏幕界面显示方法和***
CN111694625A (zh) 一种车盒向车机投屏的方法和设备
CN104219544B (zh) Iptv业务资源的动态调度方法与***
WO2022268068A1 (zh) 无线通信方法、装置、电子设备及可读存储介质
CN113660653B (zh) 一种传输方法、装置及电子设备
CN105830418A (zh) 一种共享界面的方法及终端设备
CN105025373B (zh) 电视机、远程控制***及其控制方法
CN105407452A (zh) 在蓝牙共享网络下控制数据流量的方法和***
US8760512B2 (en) Wireless video transmission device and wireless video reception device
CN106254810A (zh) 一种视频通话方法和装置
CN112929065B (zh) 电子设备控制方法、装置和电子设备
CN109963170A (zh) 具有备援机制的串流***及其备援方法
CN108924875A (zh) 优先级设置方法、装置、用户设备及存储介质
CN108196816A (zh) 熄屏状态下的音乐播放控制方法、装置和计算机存储介质
CN105657532B (zh) 智能电视无线网开机启动方法以及装置
KR20230071634A (ko) 전자 장치 및 그 동작 방법
CN105263064B (zh) 一种播放控制方法及装置
CN112887747B (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