CN104199691B - 一种基于安卓平台的开机自启动apk的方法及终端 - Google Patents

一种基于安卓平台的开机自启动apk的方法及终端 Download PDF

Info

Publication number
CN104199691B
CN104199691B CN201410416451.3A CN201410416451A CN104199691B CN 104199691 B CN104199691 B CN 104199691B CN 201410416451 A CN201410416451 A CN 201410416451A CN 104199691 B CN104199691 B CN 104199691B
Authority
CN
China
Prior art keywords
apk
starting
self
launcher
loading
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
CN201410416451.3A
Other languages
English (en)
Other versions
CN104199691A (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.)
Chongqing Yifang Technology Co ltd
Original Assignee
Konka Group 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 Konka Group Co Ltd filed Critical Konka Group Co Ltd
Priority to CN201410416451.3A priority Critical patent/CN104199691B/zh
Publication of CN104199691A publication Critical patent/CN104199691A/zh
Application granted granted Critical
Publication of CN104199691B publication Critical patent/CN104199691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于安卓平台的开机自启动APK的方法及终端,所述方法包括:预先定制开机自启动的APK;开机时,在等待系统主要服务加载完成后、Launcher加载前判断是否有定制的开机自启动APK需启动;若是,启动所述开机自启动APK,并阻塞Launcher的加载。通过本发明的技术方案,能够实现Android系统开机的时候在Launcher之前启动对应的APK。

Description

一种基于安卓平台的开机自启动APK的方法及终端
技术领域
本发明涉及智能电视领域,尤其涉及一种基于安卓平台的开机自启动APK的方法及终端。
背景技术
如图1所示,现有的基于Android系统平台的电视,系统在启动时会自动运行名为launcher的桌面启动器,从而进入一个静态的UI界面等待用户的操作,实现人机交互。在现有技术中,如果希望开机启动对应的APK(AndroidPackage的缩写,即Android安装包),则只能先经过启动launcher的过程,launcher启动后发出BOOT_COMPLETE广播后,才能启动对应的APK。即如果希望Android电视开机自启动对应的APK,那就需要等进入Launcher后,对应APK的onReceive()函数接收到BOOT_COMPLETE广播后,该APK才启动。这样给用户造成的影响包括:一定要闪现一下Launcher界面后才能打开对应APK,用户需要等待一定的时间;或者当进入Launcher时出错,等待的时间就会很久,甚至导致APK打开受阻,影响用户体验。
为了克服该缺陷,现有技术通过修改Android源码里面的Provision.APK源码,以定制开机向导实现在Launcher之前启动对应的APK。然而由于默认情况下Provision.apk只会在系统第一次开机(或者用户复位系统后)才会被加载,后续开机时系统就不会再加载Provision.apk,而是直接进入Launcher。因此,通过该方式用户无法在下次开机或者第N次开机的时候在Launcher之前启动对应的APK。
发明内容
本发明的目的在于提出一种基于安卓平台的开机自启动APK的方法及终端,能够实现Android系统开机的时候在Launcher之前启动对应的APK。
为达此目的,本发明采用以下技术方案:
一种基于安卓平台的开机自启动APK的方法,包括:
预先定制开机自启动的APK;
开机时,在等待系统主要服务加载完成后、Launcher加载前判断是否有定制的开机自启动APK需启动;
若是,启动所述开机自启动APK,并阻塞Launcher的加载。
其中,所述启动所述开机自启动APK,阻塞Launcher的加载之后,包括:
当所述开机自启动APK退出时,启动Launcher的加载。
其中,所述当所述开机自启动APK退出时,启动Launcher的加载,包括:
当所述定制的APK退出时,若系统为首次启动,加载Provision.APK之后,启动Launcher的加载。
其中,所述判断是否有定制的APK需启动之前,还包括:
修改Android源码中framework文件夹里面的SystemServer.java文件,在ActivityManagerService.self().systemReady(new Runnable(){})的方法里面,Watchdog.getInstance().start()启动之后,添加判断条件以判断是否有定制的APK需在Launcher加载前启动。
其中,所述添加判断条件以判断是否有定制的APK需在Launcher加载前启动,包括:
添加PackageManager以判断是否存在定制的APK;
若是,通过cursor读取该定制的APK的信息,判断该APK是否需在Launcher加载前启动。
其中,所述启动所述开机自启动APK之后,包括:
将该APK对应的设置参数以SQLite方式写入指定的数据库中,为该数据库创建一个对外共享数据的ContentProvider类接口。
其中,所述开机时,在等待系统主要服务加载完成后、Launcher加载前判断是否有定制的APK需启动,包括:
开机时,若为首次开机,在等待系统主要服务加载完成后、Launcher加载前,通过PackageManager判断是否存在定制的开机自启动APK,若是,通过cursor读取该APK的信息,判断该APK是否需在Launcher加载前启动;若非首次开机,在等待系统主要服务加载完成后、Launcher加载前,在开机加载SystemServer时,利用Cursor通过所述ContentProvider类接口来读取所述指定数据库中该APK对应的设置数值,判断该APK是否允许在Launcher加载前启动。
其中,所述启动所述开机自启动APK,阻塞Launcher的加载,包括:
通过ActivityRecord实例的对象堆栈记录开机时每个Activity的情况,启动所述开机自启动APK时,该ActivityRecord实例的对象堆栈记录该APK的数据,该APK退出之前,该ActivityRecord实例的对象堆栈不为空,使得Launcher的加载受到阻塞。
一种基于安卓平台的开机自启动APK的终端,包括:
定制单元,用于预先定制开机自启动的APK;
判断单元,用于开机时在等待系统主要服务加载完成后、Launcher加载前,判断是否需启动定制的开机自启动APK;
APK启动单元,用于若判断单元判断出需启动定制的开机自启动APK时,启动所述开机自启动APK,并阻塞Launcher的加载。
其中,还包括:
桌面启动单元,用于当所述开机自启动APK退出时,启动Launcher的加载。实施本发明实施例,具有如下有益效果:
本发明实施例通过修改Android源码中framework文件夹里面的SystemServer.java文件,使得开机时在等待系统主要服务加载完成后、Launcher加载前判断是否需启动定制的开机自启动APK;若是,启动开机自启动APK,并阻塞Launcher的加载。通过本发明的方案,基于Android平台的设备开机时可在Launcher加载前启动定制的开机自启动APK,比如开机向导APK;或者酒店电视开机时直接进入TVSettings.APK来进入TV模式,减少用户的等待时间;另外还可在后续每次开机(或者第N次开机)时均在Launcher之前加载定制的开机自启动APK,无需用户多次手动设置,有利于提高用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有的基于安卓平台的开机自启动APK的方法的流程示意图。
图2是本发明第一实施例的一种基于安卓平台的开机自启动APK的方法的流程示意图。
图3是本发明第一实施例的一种基于安卓平台的开机自启动APK的方法的另一流程示意图。
图4是本发明第二实施例的一种基于安卓平台的开机自启动APK的方法流程示意图。
图5是本发明第三实施例的一种基于安卓平台的开机自启动APK的终端的结构示意图。
具体实施方式
下面结合本发明的附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
结合图2-4对本发明的第一实施例进行说明。
图2是本发明第一实施例的一种基于安卓平台的开机自启动APK的方法流程图,详述如下:
步骤101,预先定制开机自启动的APK。
在第一实施例中,可定制开机自启动的APK为开机向导APK,或者酒店电视机开机直接进入TV模式的TVSettings.APK。根据实际情况,用户还可定制其他开机自启动的APK。
步骤102,开机时,在等待系统主要服务加载完成后、Launcher加载前判断是否有定制的开机自启动APK需启动。
在本实施例中,需预先修改Android源码中framework文件夹里面的SystemServer.java文件,使得在等待系统各种主要服务(比如启动native服务、ServiceManager服务等)加载完成后,ActivityManagerService.self().systemReady(new Runnable(){})的方法里面的Watchdog.getInstance().start()方法运行之后,添加用于判断是否有定制的开机自启动APK需在Launcher加载前启动的判断条件。比如添加判断条件:(1)添加PackageManager以判断是否存在定制的APK信息;(2)通过cursor读取该定制的APK的信息,判断该APK是否需在Launcher加载前启动。修改好后,首次开机时,若同时满足两个条件,则在Launcher加载前启动对应的定制的APK。
步骤103,当需启动定制的开机自启动APK时,启动该APK,并阻塞Launcher的加载。
较佳的,本实施例中采用通过ActivityRecord实例的对象堆栈记录开机时每个Activity的情况,启动开机自启动APK时,该ActivityRecord实例的对象堆栈记录该APK的数据,该APK退出之前,该ActivityRecord实例的对象堆栈不为空,从而Launcher的加载受到阻塞,只有该APK退出后,该ActivityRecord实例的对象堆栈清空,才会重新加载Launcher,由此便实现定制的APK在Launcher还没启动前启动。
较佳的,本实施例中,首次开机时,通过PackageManager判断是否存在定制的APK,再通过cursor读取该定制的APK的信息,判断该APK是否需在Launcher加载前启动;且启动开机自启动APK时,还将该APK对应的设置参数以SQLite方式写入指定的数据库setup.db3中,为该数据库setup.db3创建一个ContentProvider类接口以对外共享数据。对应的,如图4所示,再次开机时,则在开机加载SystemServer时,利用Cursor通过所述ContentProvider类接口来读取数据库setup.db3中该APK对应的设置数值,判断该APK对应是否允许在Launcher加载前启动。
进一步的,当定制的开机自启动APK退出时,再启动Launcher的加载。
需要说明的是,如图3所示,当定制的开机自启动APK退出时,若系统为首次启动或复位后启动,则启动Launcher的加载之前,还需加载Provision.APK。
通过本发明上述实施例,基于Android平台的设备开机时可在Launcher加载前启动定制的APK,比如开机向导APK;或者酒店电视开机时直接进入TVSettings.APK来进入TV模式,减少用户的等待时间;另外还可在后续每次开机(或者第N次开机)时均在Launcher之前加载定制的APK,无需用户多次手动设置,有利于提高用户体验。
以下为本发明实施例提供的一种基于安卓平台的开机自启动APK的终端的实施例。所述终端的实施例与上述的方法实施例属于同一构思,终端的实施例中未详尽描述的细节内容,可以参考上述方法实施例。
图5示出了本发明第三实施例的一种基于安卓平台的开机自启动APK的终端的结构示意图,下面进行详细说明。
请参见图5,本实施例的基于安卓平台的开机自启动APK的终端,包括定制单元410、判断单元420和APK启动单元430;其中:
上述定制单元410,用于预先定制开机自启动的APK.例如定制开机向导APK,或者定制酒店电视机开机直接进入TV模式的TVSettings.APK。根据实际情况,用户还可定制其他开机自启动的APK。
上述判断单元420,用于开机时在等待系统主要服务加载完成后、Launcher加载前,判断是否需启动定制的APK。
上述APK启动单元430,用于若判断单元判断出需启动定制的开机自启动APK时,启动开机自启动APK,并阻塞Launcher的加载。
进一步的,本实施例的所述终端还包括桌面启动单元440,所述桌面启动单元440用于当所述定制的APK退出时,启动Launcher的加载。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利要求范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,仍属本发明所涵盖的范围。

Claims (9)

1.一种基于安卓平台的开机自启动APK的方法,其特征在于,包括:
预先定制开机自启动的APK;
修改Android源码中framework文件夹里面的SystemServer.java文件,在ActivityManagerService.self().systemReady(new Runnable(){})的方法里面,Watchdog.getInstance().start()启动之后,添加判断条件以判断是否有定制的APK需在Launcher加载前启动;
开机时,在等待系统主要服务加载完成后、Launcher加载前判断是否有定制的开机自启动APK需启动;
若是,启动所述开机自启动APK,并阻塞Launcher的加载。
2.根据权利要求1所述的基于安卓平台的开机自启动APK的方法,其特征在于,所述启动所述开机自启动APK,阻塞Launcher的加载之后,包括:
当所述开机自启动APK退出时,启动Launcher的加载。
3.根据权利要求2所述的基于安卓平台的开机自启动APK的方法,其特征在于,所述当所述开机自启动APK退出时,启动Launcher的加载,包括:
当所述定制的APK退出时,若系统为首次启动,加载Provision.APK之后,启动Launcher的加载。
4.根据权利要求1所述的基于安卓平台的开机自启动APK的方法,其特征在于,所述添加判断条件以判断是否有定制的APK需在Launcher加载前启动,包括:
添加PackageManager以判断是否存在定制的APK;
若是,通过cursor读取该定制的APK的信息,判断该APK是否需在Launcher加载前启动。
5.根据权利要求1所述的基于安卓平台的开机自启动APK的方法,其特征在于,所述启动所述开机自启动APK之后,包括:
将该APK对应的设置参数以SQLite方式写入指定的数据库中,为该数据库创建一个对外共享数据的ContentProvider类接口。
6.根据权利要求5所述的基于安卓平台的开机自启动APK的方法,其特征在于,所述开机时,在等待系统主要服务加载完成后、Launcher加载前判断是否有定制的APK需启动,包括:
开机时,若为首次开机,在等待系统主要服务加载完成后、Launcher加载前,通过PackageManager判断是否存在定制的开机自启动APK,若是,通过cursor读取该APK的信息,判断该APK是否需在Launcher加载前启动;若非首次开机,在等待系统主要服务加载完成后、Launcher加载前,在开机加载SystemServer时,利用Cursor通过所述ContentProvider类接口来读取所述指定数据库中该APK对应的设置数值,判断该APK是否允许在Launcher加载前启动。
7.根据权利要求1所述的基于安卓平台的开机自启动APK的方法,其特征在于,所述启动所述开机自启动APK,阻塞Launcher的加载,包括:
通过ActivityRecord实例的对象堆栈记录开机时每个Activity的情况,启动所述开机自启动APK时,该ActivityRecord实例的对象堆栈记录该APK的数据,该APK退出之前,该ActivityRecord实例的对象堆栈不为空,使得Launcher的加载受到阻塞。
8.一种基于安卓平台的开机自启动APK的终端,其特征在于,包括:
定制单元,用于预先定制开机自启动的APK;
判断条件添加单元,用于修改Android源码中framework文件夹里面的SystemServer.java文件,在ActivityManagerService.self().systemReady(newRunnable(){})的方法里面,Watchdog.getInstance().start()启动之后,添加判断条件以判断是否有定制的APK需在Launcher加载前启动;
判断单元,用于开机时在等待系统主要服务加载完成后、Launcher加载前,判断是否需启动定制的开机自启动APK;
APK启动单元,用于若判断单元判断出需启动定制的开机自启动APK时,启动所述开机自启动APK,并阻塞Launcher的加载。
9.根据权利要求8所述的基于安卓平台的开机自启动APK的终端,其特征在于,还包括:
桌面启动单元,用于当所述开机自启动APK退出时,启动Launcher的加载。
CN201410416451.3A 2014-08-21 2014-08-21 一种基于安卓平台的开机自启动apk的方法及终端 Active CN104199691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410416451.3A CN104199691B (zh) 2014-08-21 2014-08-21 一种基于安卓平台的开机自启动apk的方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410416451.3A CN104199691B (zh) 2014-08-21 2014-08-21 一种基于安卓平台的开机自启动apk的方法及终端

Publications (2)

Publication Number Publication Date
CN104199691A CN104199691A (zh) 2014-12-10
CN104199691B true CN104199691B (zh) 2017-06-23

Family

ID=52084988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410416451.3A Active CN104199691B (zh) 2014-08-21 2014-08-21 一种基于安卓平台的开机自启动apk的方法及终端

Country Status (1)

Country Link
CN (1) CN104199691B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105245954B (zh) * 2015-10-12 2020-06-16 Tcl科技集团股份有限公司 一种智能电视开机启动方法和智能电视开机启动装置
CN106354537A (zh) * 2016-09-05 2017-01-25 Tcl集团股份有限公司 一种桌面启动器加速启动的方法及系统
CN106598600A (zh) * 2016-12-15 2017-04-26 青岛海信移动通信技术股份有限公司 开机向导信息显示方法及终端设备
CN110677732A (zh) * 2018-07-03 2020-01-10 深圳Tcl新技术有限公司 一种开机启动apk的方法、存储介质及智能电视
CN109117150B (zh) * 2018-07-17 2022-01-28 深圳市茁壮网络股份有限公司 一种定制home应用安装方法、装置及机顶盒
CN109739569A (zh) * 2018-12-20 2019-05-10 努比亚技术有限公司 移动终端启动方法、移动终端及计算机可读存储介质
CN113064636A (zh) * 2019-12-30 2021-07-02 深圳Tcl新技术有限公司 一种系统启动方法和计算机设备
CN112363772A (zh) * 2020-10-10 2021-02-12 福建联迪商用设备有限公司 一种开机启动服务可产品定制的方法及终端
CN114675900A (zh) * 2022-02-11 2022-06-28 深圳Tcl新技术有限公司 桌面启动器提前启动方法、显示终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117430B2 (en) * 2008-05-21 2012-02-14 Universal Scientific Industrial (Shanghai) Co., Ltd. Boot test system and method thereof
CN103853575A (zh) * 2012-12-06 2014-06-11 腾讯科技(深圳)有限公司 智能终端应用程序管理的配置方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117430B2 (en) * 2008-05-21 2012-02-14 Universal Scientific Industrial (Shanghai) Co., Ltd. Boot test system and method thereof
CN103853575A (zh) * 2012-12-06 2014-06-11 腾讯科技(深圳)有限公司 智能终端应用程序管理的配置方法和装置

Also Published As

Publication number Publication date
CN104199691A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN104199691B (zh) 一种基于安卓平台的开机自启动apk的方法及终端
CN102650947B (zh) 一种Android手持设备连续增量的空中升级方法
CN103399840B (zh) 一种计算机配置文件的带外修改方法及计算机
CN104133709B (zh) 嵌入式系统的升级方法和装置
CN102331947B (zh) 一种Android系统的重启方法
CN103164229A (zh) 一种清理移动终端进程的方法及装置
CN104899091B (zh) 一种智能嵌入式设备多操作系统切换方法
CN106648779A (zh) 一种智能终端悬浮窗权限设置方法
CN106933593B (zh) 一种基于移动终端的系统切换方法和装置
CN105159721A (zh) 一种多模式启动智能设备的方法及其系统
CN103136002B (zh) 一种基于UBoot的自动升级的控制方法及系统
CN103761088A (zh) 一种适用于arm架构移动设备的多操作系统切换方法
CN101645020A (zh) 虚拟操作系统创建方法
CN105607921B (zh) 一种基于Android系统的系统服务启动方法及系统
CN104503828A (zh) 一种进程管理方法及终端
CN103226491A (zh) 一种设置应用程序状态的方法及装置
CN104156252A (zh) 一种应用软件安装方法及装置
CN108282697A (zh) 一种智能电视启动方法、装置、电子设备及存储介质
CN109168088A (zh) 一种智能电视系统的启动方法、装置及智能电视
CN108874422B (zh) 一种冰箱电控板的软件在线升级方法、冰箱电控板和冰箱
CN113110860A (zh) 一种嵌入式终端远程软件更新方法
CN106569854A (zh) 一种设置设备固件和实现厂测的方法及系统
CN105652115A (zh) 主板测试方法及其系统、主板程序安装方法及其系统
CN110459260A (zh) 自动测试切换装置、方法和系统
CN102164314A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200628

Address after: 23 / F, Guangdong hi tech District

Patentee after: Shenzhen Konka Holding Group Co.,Ltd.

Address before: 518053 Nanshan District overseas Chinese town, Shenzhen City, Guangdong province Konka Group Limited by Share Ltd

Patentee before: KONKA GROUP Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220104

Address after: 518057 area a, 21 / F, Konka R & D building, 28 Keji South 12 road, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Easy city square network technology Co.,Ltd.

Address before: 518057 23rd floor, Konka R & D building, No. 28, Keji South 12th Road, high tech Zone, Yuehai street, Nanshan District, Shenzhen, Guangdong

Patentee before: Shenzhen Konka Holding Group Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 402760 no.1-10 Tieshan Road, Biquan street, Bishan District, Chongqing

Patentee after: Chongqing Yifang Technology Co.,Ltd.

Address before: 518057 area a, 21 / F, Konka R & D building, 28 Keji South 12 road, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Easy city square network technology Co.,Ltd.