专利名称:一种应用启动方法、装置、投影设备及存储介质
专利类型:实用新型专利
专利申请号:CN202110643863.0
专利申请(专利权)人:深圳市火乐科技发展有限公司
权利人地址:广东省深圳市南山区科技园中区科苑路15号科兴科学园B栋4单元10层01号
专利发明(设计)人:张俊恒,张聪,胡震宇
专利摘要:本公开提供一种应用启动方法、装置、投影设备及存储介质。该方法在监测到目标应用被触发启动时获取目标应用的预设展示内容,并基于预设展示内容构建并展示目标应用对应的伪对话界面,之后向目标应用发送启动指令以启动目标应用,最后在检测到目标应用完成初始化后,基于目标应用初始化后的界面构建并展示目标应用对应的真对话界面。本公开通过伪对话界面和真对话界面替代Activity来展示目标应用的展示内容,之前的应用依旧在原来的进程中继续运行,不会被Activity放入到系统进程中导致生命周期被结束,在下次切换到之前的应用时,不需要重新初始化,提升应用启动速度;同时,伪对话界面在展示的期间不会展示广告。
主权利要求:
1.一种应用启动方法,其特征在于,应用于智能设备中,所述方法包括:在监测到目标应用被触发启动时,获取所述目标应用的预设展示内容;
基于所述预设展示内容构建并展示所述目标应用对应的伪对话界面,所述伪对话界面定义为FakeDialog;
向所述目标应用发送启动指令,以启动所述目标应用;
在检测到所述目标应用完成初始化后,基于所述目标应用初始化后的界面,构建并展示所述目标应用对应的真对话界面,将真对话界面定义为TrueDialog;其中,所述FakeDialog与TrueDialog均为自定义Dialog;
其中,所述在监测目标应用被触发启动的步骤之前,还包括:接收显示层级配置指令;
根据所述显示层级配置指令,将所述伪对话界面的显示层级设置为高于其他应用的显示层级,以控制所述伪对话界面显示在所述其他应用的上层;所述控制所述伪对话界面显示在所述其他应用的上层的步骤同时,还包括:保持所述其他应用在各自原来的独立进程中继续运行;获取和存储所述其他应用的预设展示内容;
所述目标应用初始化完成后,向所述FakeDialog发送所述目标应用初始化已完成的信息,所述FakeDialog在接收到此信息后,销毁自己;
所述方法还包括:用户在所述智能设备上选择分屏模式,用户设置分屏显示区域个数,然后给每个显示区域分配一个显示控制单元,所述智能设备的每个显示控制单元控制一个显示区域;所述智能设备的处理器将用户设定的参数分别发送给每个对应的显示控制单元,每个显示控制单元根据设定参数控制其对应的显示区域的显示亮度、饱和度及灰度中的至少一个,用户还可以设定每一个显示区域显示指定的应用,并通过所述智能设备的处理器获取每个显示区域和应用的对应关系。
2.根据权利要求1所述的应用启动方法,其特征在于,在所述目标应用完成初始化的步骤之后,还包括:向所述伪对话界面发送所述目标应用已初始化完成的消息,使所述伪对话界面关闭;
基于所述目标应用对应的真对话界面,更新所述目标应用的预设展示内容。
3.根据权利要求2所述的应用启动方法,其特征在于,更新所述目标应用的预设展示内容的步骤具体包括:获取基于所述目标应用对应的真对话界面所获取的预设展示内容;
替换之前存储的所述目标应用的预设展示内容。
4.根据权利要求1所述的应用启动方法,其特征在于,监测所述目标应用被触发启动的步骤具体包括:通过桌面启动器接收启动所述目标应用的启动指令,监听所述桌面启动器的信息;
当所述桌面启动器的信息中包含所述目标应用的启动指令时,判定所述目标应用被触发启动。
5.根据权利要求1所述的应用启动方法,其特征在于,在监测到所述目标应用被触发启动的步骤之前,还包括:将显示屏幕分成多个显示区域;
将所述目标应用和所述其他应用分别配置不同的所述显示区域,所述显示区域用于显示所述目标应用或所述其他应用的展示内容。
6.一种应用启动装置,应用于智能设备,其特征在于,包括:
获取模块,用于在监测到目标应用被触发启动时,获取所述目标应用的预设展示内容;
伪对话模块,用于基于所述预设展示内容构建并展示所述目标应用对应的伪对话界面,所述伪对话界面定义为FakeDialog;
启动模块,用于向所述目标应用发送启动指令,以启动所述目标应用;
真对话模块,用于在检测到所述目标应用完成初始化后,基于所述目标应用初始化后的界面,构建并展示所述目标应用对应的真对话界面,将真对话界面定义为TrueDialog,其中,所述FakeDialog与TrueDialog均为自定义Dialog;
配置模块,用于接收显示层级配置指令;根据所述显示层级配置指令,将所述伪对话界面的显示层级设置为高于其他应用的显示层级,以控制所述伪对话界面显示在所述其他应用的上层;
其中,配置模块还用于保持所述其他应用在各自原来的独立进程中继续运行;获取和存储所述其他应用的预设展示内容;
其中,真对话模块还用于目标应用初始化完成后,向所述FakeDialog发送所述目标应用初始化已完成的信息,所述FakeDialog在接收到此信息后,销毁自己;
其中,所述配置模块还用于用户在所述智能设备上选择分屏模式,用户设置分屏显示区域个数,然后给每个显示区域分配一个显示控制单元,所述智能设备的每个显示控制单元控制一个显示区域;所述智能设备的处理器将用户设定的参数分别发送给每个对应的显示控制单元,每个显示控制单元根据设定参数控制其对应的显示区域的显示亮度、饱和度及灰度中的至少一个,用户还可以设定每一个显示区域显示指定的应用,并通过所述智能设备的处理器获取每个显示区域和应用的对应关系。
7.一种投影设备,包括存储介质和处理器,所述存储介质上存储有计算机程序,其特征在于,所述处理器调用并执行所述计算机程序时实现权利要求1‑5任一项所述的应用启动方法。
8.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的应用启动方法。 说明书 : 一种应用启动方法、装置、投影设备及存储介质技术领域[0001] 本公开属于计算机技术领域,尤其涉及一种应用启动方法、装置、投影设备及存储介质。背景技术[0002] 现在投影设备的使用越来越普及,而智能投影设备运用了智能操作系统,在功能和用户体验上比传统的投影设备更好。智能投影设备上可以安装有多个应用软件,通过智能投影设备可以直接启动和展示这些应用软件。但是,当启动某个应用软件时,显示屏幕上往往会先展示广告页面,在展示广告页面的期间,应用程序在后台进行初始化,完成启动后,再在显示屏幕上展示其应用内容。用户在等待应用启动的过程中,被强制观看广告页面,体验不好。发明内容[0003] 为了解决上述现有技术存在的问题和不足,本公开的目的是提供一种应用启动方法、装置、投影设备及存储介质,以提升应用启动速度。[0004] 为实现上述目的,本公开首先提供一种应用启动方法,包括:[0005] 在监测到目标应用被触发启动时,获取目标应用的预设展示内容;[0006] 基于预设展示内容构建并展示目标应用对应的伪对话界面;[0007] 向目标应用发送启动指令,以启动目标应用;[0008] 在检测到目标应用完成初始化后,基于目标应用初始化后的界面,构建并展示目标应用对应的真对话界面。[0009] 可选地,在监测目标应用被触发启动的步骤之前,还包括:[0010] 接收显示层级配置指令;[0011] 根据显示层级配置指令,将伪对话界面的显示层级设置为高于其他应用的显示层级,以控制伪对话界面显示在其他应用的上层。[0012] 可选地,控制伪对话界面显示在其他应用的上层的步骤同时,还包括:保持其他应用在各自原来的独立进程中继续运行,并获取和存储其他应用的预设展示内容。[0013] 可选地,在目标应用完成初始化的步骤之后,还包括:向伪对话界面发送目标应用已初始化完成的消息,使伪对话界面关闭,并基于目标应用对应的真对话界面,更新目标应用的预设展示内容。[0014] 可选地,更新目标应用的预设展示内容的步骤具体包括:获取基于目标应用对应的真对话界面所获取的预设展示内容,并替换之前存储的目标应用的预设展示内容。[0015] 可选地,监测目标应用被触发启动的步骤具体包括:通过桌面启动器接收启动目标应用的启动指令,监听桌面启动器的信息,当信息中包含目标应用的启动指令时,判定目标应用被触发启动。[0016] 可选地,在监测到所述目标应用被触发启动的步骤之前,还包括:将显示屏幕分成多个显示区域,将目标应用和其他应用分别配置不同的显示区域,显示区域用于显示目标应用或其他应用的展示内容。[0017] 本公开同时提供一种应用启动装置,包括:[0018] 获取模块,用于在监测到目标应用被触发启动时,获取目标应用的预设展示内容;[0019] 伪对话模块,用于基于预设展示内容构建并展示目标应用对应的伪对话界面;[0020] 启动模块,用于向目标应用发送启动指令,以启动目标应用;[0021] 真对话模块,用于在检测到目标应用完成初始化后,基于目标应用初始化后的界面,构建并展示目标应用对应的真对话界面。[0022] 本公开同时提供一种投影设备,包括存储介质和处理器,存储介质上存储有计算机程序,处理器调用并执行计算机程序时实现上述的应用启动方法。[0023] 本公开还提供一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的应用启动方法。[0024] 与现有技术相比,本公开的有益效果包括:在监测到目标应用被触发启动时,获取目标应用的预设展示内容;基于预设展示内容构建并展示目标应用对应的伪对话界面;向目标应用发送启动指令,以启动目标应用;在检测到目标应用完成初始化后,基于目标应用初始化后的界面,构建并展示目标应用对应的真对话界面。伪对话界面在展示的时候,目标应用继续初始化直至完成启动,这期间不会展示广告,并且伪对话界面可以让用户认为是已经完成启动的应用主页界面,待目标应用初始化完成后,替换成真对话界面。这样实现让用户感受到应用快速打开的效果。附图说明[0025] 图1是本公开实施例的方法步骤图;[0026] 图2是本公开实施例的方法流程图;[0027] 图3是本公开实施例的装置模块图;[0028] 图4是本公开实施例的投影屏幕焦点框在第一显示区域时的结构示意图;[0029] 图5是本公开实施例的投影屏幕焦点框在第二显示区域时的结构示意图;[0030] 图6是本公开实施例的投影屏幕焦点框在第三显示区域时的结构示意图;[0031] 图7是本公开实施例的投影屏幕焦点框在第四显示区域时的结构示意图;[0032] 图8是本公开实施例的投影设备的处理器和存储介质的连接示意图;[0033] 图9是本公开实施例的投影设备的分屏显示示意图。[0034] 附图标记说明:[0035] 101‑获取模块;102‑伪对话模块;103‑启动模块;104‑真对话模块;[0036] 201‑存储介质;202‑处理器;203‑用户交互单元;204‑显示屏幕;205‑影像输出单元;206‑显示控制单元。具体实施方式[0037] 以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。[0038] 需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。[0039] 还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。[0040] 另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。[0041] 本公开可以应用于多种智能显示装置中,例如智能投影设备、手机、平板电脑等用于显示的设备上,设备的操作系统包括但不限于iOS,Android、鸿蒙等。为了使本公开的技术方案更利于理解,本公开实施例选用基于Android操作系统的智能投影设备为例进行说明。[0042] 本公开实施例提供一种应用启动方法,如图1和2所示,包括:[0043] 步骤S1,在监测到目标应用被触发启动时,获取目标应用的预设展示内容。[0044] 本步骤可以为,当检测到对目标应用的图标的触控操作时,此时监测到该目标应用被触发启动,然后获取该目标应用的预设展示内容。其中,预设展示内容包括预先存储的该目标应用的主页截图。[0045] 步骤S2,基于预设展示内容构建并展示目标应用对应的伪对话界面。[0046] 本步骤可以为,构建一个伪对话界面,本实施例中伪对话界面可以定义为FakeDialog,在FakeDialog上展示之前存储的目标应用的主页截图。本实施例通过FakeDialog来展示目标应用的主页截图,替代应用启动时强制展示的广告页面,提升了用户体验。[0047] 步骤S3,向目标应用发送启动指令,以启动目标应用。[0048] 本步骤可以为,在FakeDialog上展示目标应用主页截图的时候,目标应用也根据启动指令,开始进行初始化,执行启动流程。因为这个期间,给用户展示的是目标应用的主页截图,用户的感知是目标应用已经启动完成并打开了主页,而不会感知到此时目标应用正在进行初始化加载。[0049] 步骤S4,在检测到目标应用完成初始化后,基于目标应用初始化后的界面,构建并展示目标应用对应的真对话界面。[0050] 本步骤可以为,目标应用初始化完成后,向FakeDialog发送目标应用初始化已完成的信息,FakeDialog在接收到此信息后,销毁自己。同时,构建目标应用的真对话界面,本实施例将真对话界面定义为TrueDialog,通过TrueDialog展示目标应用完成初始化后真正的可操作的主页界面。[0051] 在现有技术中,目前启动应用都是通过Activity(一种用来展示应用,用于与用户交互的组件)来进行,通过Activity来启动应用时,之前的应用会被放入到后台进程中。在后台进程中,应用的生命周期会随时被系统终止掉。因此当再重新切回到之前的应用时,该应用会出现又需要重新加载和初始化的情况,用户需要再次花费时间等待应用启动完成。[0052] 本实施例中,FakeDialog和TrueDialog都属于Android中的Dialog(对话框)组件。通过FakeDialog和TrueDialog替代Activity来启动目标应用,以及展示目标应用的内容。在目标应用启动时,之前的应用依旧在原来的进程中继续运行,不会被Activity放入到系统进程中导致应该用的生命周期被结束。在从当前的目标应用切换到之前的应用时,之前的应用不需要重新初始化来完成启动,从而达到不同应用之间快速切换的效果。[0053] Activity是本实施例的一个相关背景技术,为了使本实施例的技术方案更清楚,下面对Activity做一个具体的介绍说明。[0054] Activity是用户操作的可视化界面,它为用户提供了一个完成操作指令的窗口。在Android中会维持一个ActivityStack(Activity栈),当一个新的Activity创建时,它就会放到栈顶,这个Activity就处于运行状态。当再有一个新的Activity被创建后,会重新压入栈顶,而之前的Activity则会在这个新的Activity底下。而且之前的Activity就会进入后台。[0055] 一个Activity实质上有四种状态:[0056] 运行中(Running/Active):这时Activity位于栈顶,是可见的,并且可以用户交互。[0057] 暂停(Paused):当Activity失去焦点,不能跟用户交互了,但依然可见,就处于暂停状态。当一个新的非全屏的Activity或者一个透明的Activity放置在栈顶,Activity就处于暂停状态;这个时候Activity的各种数据还被保持着;只有在系统内存在极低的状态下,系统才会自动的去销毁Activity。[0058] 停止(Stoped):当一个Activity被另一个Activity完全覆盖,或者点击HOME键退入了后台,这时候Activity处于停止状态。这里有些是跟暂停状态相似的:这个时候Activity的各种数据还被保持着;当系统的别的地方需要用到内容时,系统会自动的去销毁Activity。[0059] 销毁(Detroyed):当点击返回键或者系统在内存不够用的情况下就会把Activity从栈里移除销毁,被系统回收,这时候,Activity处于销毁状态。[0060] 在Activity运行之前,会通过onCreate()、onStart()、onResume();当运行完onResume()之后,Activity就处于上述的Running/Active状态了。[0061] 当Activity处于暂停状态时,会调用onPause(),这个时候Activity还是可见的。当在这个时候Activity恢复到运行状态时,会重新调用onResume()。[0062] 当Activity处理停止状态时,会调用onStop(),这个时候如果要恢复到运行状态就会调用一个新的方法onRestart(),然后去调用onStart(),onResume()。[0063] 当Activity被销毁时,就会调用onDestroy(),那么如果要恢复Activity的显示就需要重新创建这个Activity;重新去走onCreate(),onStart(),onResume()这三个方法。[0064] 下面介绍它们的具体功能:[0065] onCreate:当Activity第一次被创建时调用,是生命周期开始的第一个方法。在这里可以做一些初始化的操作,比如:调用setContentView()方法去加载界面,绑定布局里的一些控件,初始化一些Activity需要用到的数据。之后会调用onStart方法。[0066] onStart:当Activity正在变为可见时调用。这个时候Activity已经可见了,但是还没有出现在前台还不能跟用户交互。可以简单理解为Actvity已经可见但是还没有出现在前台。之后会调用onResume。[0067] onResume:当Activity可以跟用户交互时调用,此时,这个Activity位于栈的顶部。跟onStart相比,它们都是表示Activity已经可见,但是onStart调用时Activity还在后台,而调用onResume时,Activity已经进入了前台,可以跟用户交互了。之后会调用onPause。[0068] onPause:当Activity暂停时调用这个方法;在这里可以用来保存数据,关闭动画和其它比较耗费CPU的操作;此处不能做耗时操作,因为如果当前Activity要启动一个新的Activity,这个新的Activity会在当前Activity执行完毕onPause之后才能进入可见状态。这个方法之后一般会调用的方法有onStop或者onResume。[0069] 下面总结一下Activity的生命周期:[0070] 正常情况下Activity的生命周期是,[0071] onCreate‑>onStart‑>onResume‑>onPause‑>onStop‑>onDestroy。[0072] 对于一个正常的Activity,第一次启动,会依次回调以下方法:[0073] onCreate‑>onStart‑>onResume。[0074] 当打开一个新的Activity或者点击Home键回到桌面后,会依次回调以下方法:[0075] onPause‑>onStop。[0076] 如果新的Activity是透明的(例如采用的透明主题),当前的Activity不会回调onStop。[0077] 当再次回到原Activity,会依次回调以下方法:[0078] onRestart‑>onStart‑>onResume。[0079] 当点击返回键后,会依次回调以下方法:[0080] onPause‑>onStop‑>onDestroy。[0081] 当Activity被系统回收后,再次被打开,会跟第一次启动的时回调生命周期方法一样(不包含onSaveInstanceState和onRestoreInstanceState)。[0082] 其中onCreate跟onDestroy是相对的。一个创建一个销毁。并且其只可能被调用一次。按照这种配对方式,也可以看出onStart跟onStop是配对的,这两个方法可以被多吃调用。onResume和onPause也是配对的,onResume是在Activity创建完,然后启动后,在Activity可见的时候运行从而获取焦点使得Activity可以进行操作。onPause正好相反,是在Activity没隐藏,即仍然是可见的状态下使Activity失去焦点不可操作。[0083] onStart和onResume,onPause和onStop,这两对方法在功能描述上比较相近,但是还是有不同之处。这两对方法分别代表不同的意义,onStart和onStop是Activity是否可见的标志,而onResume和onPause是从Activity是否位于前台的标志,它们针对的角度不同。[0084] 在onPause里不能做耗时操作,因为如果要启动一个新的Activity,新的Activit要在前一个Activity的onPause方法执行完毕之后才会启动的新的Activity。[0085] 上面是正常情况下的生命周期方法调用,下面介绍异常情况下Activity的生命周期:[0086] 一般情况下,在系统内存不够时会根据优先级杀死Activity。关于Activity的优先级判断方法包括:[0087] 最高的优先级:在前台显示并且跟用户交互的Activity,优先级最高。[0088] 暂停状态的Activity优先级次之:如果Activity没有在前台,但是可见,不可与用户交互,比如弹出一个对话框等。[0089] 处于后台Activity优先级最低:执行了onStop方法的Activity优先级最低。它不可见,并且无法跟用户交互。[0090] 当系统内存不足,就会按照优先级去销毁Activity,在销毁Activity时会额外的在onPause和onStop之间调用onSaveInstanceState;当要重新创建这个Activity时,会在onStart方法之后调用onRestoreInstanceState方法。[0091] 根据上面的介绍可以知道,通过Activity启动一个新的应用时,很有可能会导致系统内存不够用,这时Activity会进入销毁状态,之前的应用就可能会被系统进程杀掉,当再次切回原来的应用时,又需要再次进入到重新加载初始化的流程中。[0092] 而本实施例中通过Dialog组件来启动和展示应用,不需要经过Activity组件,因此应用不会被系统回收,生命周期不会被系统结束。[0093] 同时,通过FakeDialog在展示目标应用的主页截图的时候,目标应用继续初始化直至完成启动,这期间不会展示广告,并且FakeDialog所展示的目标应用的主页截图可以让用户认为是已经完成启动的应用主页界面,待目标应用初始化完成后,再将FakeDialog替换成TrueDialog。这样实现让用户感受到应用快速打开的效果。[0094] Dialog是Android开发中常用的UI组件,为了方便显示对话框,Dialog中较常使用的是AlertDialog(对话框),它提供了丰富的API,使用时只需要设置相应的属性即可。通常情况下,都会对AlertDialog的样式进行自定义,使其能够适用于各种设计风格。本实施例采用自定义Dialog,自定义Dialog通常使用以下三种方式:[0095] 通过AlertDialog提供的setView方法设置布局;[0096] 继承AlertDialog,在onCreate中调用setContentView加载布局;[0097] 继承DialogFragment,在onCreateView中加载布局。[0098] 以上是本实施例提供的Dialog的一种原理方法,本领域技术人员根据上述方法,实现FakeDialog和TrueDialog是不存在任何技术障碍的。[0099] 本实施例的一种实施方式中,在步骤S1的监测目标应用被触发启动的步骤之前,还包括:接收显示层级配置操作指令,根据显示层级配置操作指令,将伪对话界面的显示层级设置为高于其他应用的显示层级,以控制伪对话界面显示在其他应用的上层。[0100] 本步骤中,可以优选的将FakeDialog的显示层级设置为系统层级,这样可以让FakeDialog显示在所有应用的最上方,使用户第一时间能看到FakeDialog上展示的目标应用的主页截图,防止被其他应用的页面覆盖,例如广告页。[0101] 其中,控制伪对话界面显示在其他应用的上层的步骤同时,还包括:保持其他应用在各自原来的独立进程中继续运行,并获取和存储其他应用的预设展示内容。这样可以再切换到其他应用时,可以直接打开其他应用,而不需要重新加载初始化其他应用。并且获取和存储其他应用的预设展示内容,可以再在需要重新启动其他应用的时候,用于FakeDialog进行展示。[0102] 例如,当在手机上使用视频软件看视频时,打开购物软件,购物软件的FakeDialog显示在屏幕上,视频软件则继续在其原来的进程中运行,而没有被Activity组件安排到系统进程中去。[0103] 在本实施例的一种实施方式中,步骤S4中,在目标应用完成初始化的步骤之后,还包括:向伪对话界面发送目标应用已初始化完成的消息,使伪对话界面关闭,并基于目标应用对应的真对话界面,更新目标应用的预设展示内容。[0104] 本步骤可以为,向FakeDialog发送目标应用已完成初始化的消息,FakeDialog在接收到消息后,销毁自己。然后,基于TrueDialog,更新目标应用的预设展示内容。[0105] 其中,更新目标应用的预设展示内容的步骤具体包括:存储基于目标应用对应的真对话界面所获取的预设展示内容,并替换之前存储的目标应用的预设展示内容。在目标应用完成初始化后,删除之前存储的目标应用的主页截图,同时截取并存储目标应用的主页界面,并将此新的目标应用界面截图作为下次再启动时,在FakeDialog上进行展示。[0106] 本实施例中,通过桌面启动器接收启动目标应用的启动指令,监听桌面启动器的信息,当信息中包含目标应用的启动指令时,判定目标应用被触发启动。桌面启动器为Launcher,Launcher俗称HomeScreen,也就是我们启动Android设备,第一眼看到的应用程序,它负责除了应用本身操作以外的所有操作,例如,点击应用图标启动应用程序,长时间按桌面出现上下文菜单,长时间按桌面的图标出现垃圾箱,拖动应用图标重新定位等等,一系列的操作。[0107] 下面再介绍本实施例的一种较详细的实施方式,如下:[0108] 步骤S1,当Launcher界面上目标应用的图标被点击后,调取预先存储的该目标应用的主页截图。[0109] 步骤S2,通过FakeDialog展示该目标应用的主页截图,让用户认为此时应用已经启动完成打开了。同时,将伪FakeDialog的显示层级设置为系统层级,使FakeDialog显示在其他应用的上方,并保持其他应用在各自原来的独立进程中继续运行,再获取和存储其他应用的主页截图。[0110] 步骤S3,在FakeDialog上展示目标应用主页截图的时候,目标应用也根据启动指令,在独立进程中开始进行初始化,执行启动流程。[0111] 步骤S4,目标应用初始化完成后,向FakeDialog发送目标应用初始化已完成的信息,FakeDialog在接收到此信息后,销毁自己。同时,构建目标应用的TrueDialog,通过TrueDialog展示目标应用完成初始化后真正的可操作的主页界面。[0112] 上述方法步骤,也可以应用于智能手机,通过上述方法使用智能手机,可以让用户感受到应用快速打开的体验,并且没有广告页,同时,在应用切换时,也不会导致之前的应用的生命周期被后台进程强行结束。[0113] 在本实施例的一种应用场景中,通过智能投影设备显示应用内容时,智能投影设备的投影屏幕通常比较大,可以将目标应用和其他应用分别配置不同的显示区域,显示区域用于显示目标应用或其他应用的展示内容,并且智能投影设备的运行内存也足够大,可以同时装载和运行多个应用程序。本实施例中可以将投影屏幕分成四个显示区域,每个显示区域展示一个应用的内容,应用包括视频软件、购物软件、游戏软件、新闻软件等等。在其他的实施方式中,将投影屏幕分成两个、六个或其他个数,也都是可行的。智能投影设备可以装载这些应用,也可以是通过其他终端上装载这些应用,然后连接输出到智能投影设备上。[0114] 为了方便说明,假设第一显示区域展示视频软件,第二显示区域展示购物软件,第三显示区域展示游戏软件,第四显示区域展示新闻软件,当然每个显示区域展示的应用种类是可以任意调整的,这是显而易见的,本实施例此处不做一一列举。[0115] 当我们在第一显示区域看视频时,如果想使用购物软件,点开购物软件的图标后,在第二显示区域立马展示购物软件的主页界面(通过FakeDialog展示的之前存储的购物软件界面的截图,在购物软件初始化完成后,成功启动,再通过TrueDialog展示购物软件真正的主页界面),此时第一显示区域的视频应用并没有被放入到系统进程中交由系统近程管理其生命周期。同理,在第三显示区域或第四显示区域打开其他软件应用时,给用户的感觉是软件立马被打开了,并且之前已经打开的软件应用也不受影响。这样实现了应用的快速启动,并且多个应用之间的切换,也不影响各自的生命周期。[0116] 通过智能投影设备展示应用的操作方法,包括如下:[0117] 首先,第一显示区域上正在展示视频软件上的视频内容,用户在智能投影设备的桌面上点击购物软件图标,此时系统获取之前购物软件的应用主页截图。[0118] 然后,在第二显示区域上通过FakeDialog展示购物软件的应用主页截图。并且,显示焦点在第二显示区域上。[0119] 同时,购物软件在独立进程中进行初始化,视频软件也继续在自己的进程中继续正常运行。[0120] 最后,在购物软件初始化完成后,在第二显示区域上,FakeDialog销毁,并通过TrueDialog展示购物软件完成初始化后真正的可操作的主页界面。[0121] 整个过程,没有广告页展示,用户的感受是购物软件点开即马上打开,并且将焦点从第二显示区域的购物软件切回到第一显示区域的视频软件上时,视频软件也依旧正常播放视频,不需要重新加载初始化启动。[0122] 同理,在第三显示区域上打开游戏软件,第四显示区域上打开新闻软件,也都是同样的流程。[0123] 在四个应用中切换时,可以采用焦点切换的方法,如图4‑7所示,焦点框移动到哪个显示区域,该显示区域的应用软件是可以进行主动操作的,例如,将焦点框从第一显示区域的视频软件切换到第四区域的新闻软件上,可以在新闻软件上进行翻页、评论、转发等操作,再将焦点框从第四显示区域切换到第二显示区域上,可以在第二显示区域的购物软件上进行搜索商品,收藏、购买、支付等操作。[0124] 本实施例,同时提供将屏幕进行分区显示的方法,包括:[0125] 用户在投影设备上选择分屏模式,用户设置分屏显示区域个数,例如可设置成4个显示区域,然后给每个显示区域分配一个显示控制单元,投影设备的每个显示控制单元控制一个显示区域,第一显示控制单元控制第一显示区域的显示内容,第二显示控制单元控制第二显示区域的内容,第三显示控制单元控制第三显示区域的内容,第四显示控制单元控制第四显示区域显示内容。[0126] 在投影设备的用户操控区域,还可以对每一个显示区域的显示亮度、饱和度、灰度等参数进行单独设定。投影设备的处理器将这些用户设定的参数分别发送给每个对应的显示控制单元,每个显示控制单元根据设定参数控制其对应的显示区域的显示亮度、饱和度及灰度等。[0127] 同时,用户还可以设定每一个显示区域显示指定的应用,例如,可以设定第一显示区域展示视频软件,第二显示区域展示购物软件,第三显示区域展示游戏软件,第四显示区域展示新闻软件。同时,投影设备的处理器获取每个显示区域和应用的对应关系。[0128] 当视频软件启动运行时,处理器获取视频软件的内容数据,将其分发给第一显示控制单元的存储空间;当购物软件启动运行时,处理器获取购物软件的内容数据,将其分发给第二显示控制单元的存储空间;当游戏软件启动运行时,处理器获取游戏软件的内容数据,将其分发给第三显示控制单元的存储空间;当新闻软件启动运行时,处理器获取新闻软件的内容数据,将其分发给第四显示控制单元的存储空间。[0129] 之后,第一显示控制单元读取其存储空间内的视频软件内容数据,并传输到投影仪的影像输出端,投射到屏幕的第一显示区域上;第二显示控制单元读取其存储空间内的数据,并传输到投影仪的影像输出端,投射到屏幕的第二显示区域上;第三显示控制单元读取其存储空间内的数据,并传输到投影仪的影像输出端,投射到屏幕的第三显示区域上;第四显示控制单元读取其存储空间内的数据,并传输到投影仪的影像输出端,投射到屏幕的第四显示区域上。[0130] 这样,就实现了在屏幕上同时显示多个应用内容,并且各个应用内容的展示互不影响。[0131] 如图3所示,本实施例同时提供一种应用启动装置,采用上述介绍的应用启动方法,包括:获取模块101、伪对话模块102、启动模块103及真对话模块104。[0132] 获取模块101用于在监测到目标应用被触发启动时,获取目标应用的预设展示内容。具体地,在用户点击目标应用的图标时,获取模块101此时监测到该目标应用被触发启动,然后获取该目标应用的预设展示内容。其中,预设展示内容为预先存储的该目标应用的主页截图。[0133] 伪对话模块102用于基于预设展示内容构建并展示目标应用对应的伪对话界面。具体地,伪对话模块102构建一个伪对话界面,本实施例中伪对话界面可以定义为FakeDialog,在FakeDialog上展示之前存储的目标应用的主页截图。本实施例通过FakeDialog来展示目标应用的主页截图,替代应用启动时强制展示的广告页面,提升了用户体验。[0134] 启动模块103用于向目标应用发送启动指令,以启动目标应用。具体地,在FakeDialog上展示目标应用主页截图的时候,启动模块103向目标应用发送启动指令,目标应用开始进行初始化,执行启动流程。[0135] 真对话模块104用于在检测到目标应用完成初始化后,基于目标应用初始化后的界面,构建并展示目标应用对应的真对话界面。具体地,目标应用初始化完成后,向伪对话模块102发送目标应用初始化已完成的信息,伪对话模块102在接收到此信息后,销毁FakeDialog。同时,真对话模块104构建目标应用的真对话界面,本实施例将真对话界面定义为TrueDialog,通过TrueDialog展示目标应用完成初始化后真正的可操作的主页界面。[0136] 本实施例还包括配置模块,用于接收显示层级配置指令,并根据显示层级配置指令,将伪对话界面的显示层级设置为高于其他应用的显示层级,以控制伪对话界面显示在其他应用的上层。[0137] 本实施例通过伪对话界面和真对话界面替代Activity来展示目标应用的展示内容,之前的应用依旧在原来的进程中继续运行,不会被Activity放入到系统进程中导致生命周期被结束,再下次切换到之前的应用时,不需要重新初始化启动。同时,伪对话界面在展示的时候,目标应用继续初始化直至完成启动,这期间不会展示广告,并且伪对话界面可以让用户认为是已经完成启动的应用主页界面,待目标应用初始化完成后,替换成真对话界面。这样实现让用户感受到应用快速打开的效果。[0138] 如图8所示,本实施例同时提供一种投影设备,包括存储介质201和处理器202,存储介质201上存储有计算机程序,处理器202调用并执行计算机程序时实现上述的应用启动方法。[0139] 如图9所示,同时,本实施例的投影设备还包括用户交互单元203、显示屏幕204、影像输出单元205、显示控制单元206。[0140] 其中,用户交互单元203用于用户进行分屏设置、显示参数设置、应用操控等。显示控制单元206用于根据用户交互单元203的设置信息,控制显示屏幕204展示的内容。影像输出单元205用于根据显示控制单元206的信息,输出需要展示的内容;显示屏幕204用于显示影像输出单元205输出的内容。[0141] 显示控制单元206有多个,每个显示控制单元206对应一个显示屏幕204的显示区域。[0142] 本实施例的投影设备具体的工作方法如下:[0143] 用户在用户交互单元203上选择分屏模式,用户设置分屏显示区域个数,例如可设置成将显示屏幕204分成四个显示区域,再给每个显示区域分配一个显示控制单元206,投影设备的每个显示控制单元206控制一个显示区域,显示控制单元206可以包括第一显示控制单元、第二显示控制单元、第三显示控制单元及第四显示控制单元。第一显示控制单元控制第一显示区域的显示内容,第二显示控制单元控制第二显示区域的内容,第三显示控制单元控制第三显示区域的内容,第四显示控制单元控制第四显示区域显示内容。[0144] 在用户交互单元203上,还可以对每一个显示区域的显示亮度、饱和度、灰度等参数进行单独设定。投影设备的处理器202将这些用户设定的参数分别发送给每个对应的显示控制单元,每个显示控制单元206根据设定参数控制其对应的显示区域的显示亮度、饱和度及灰度等。[0145] 同时,用户还可以设定每一个显示区域显示指定的应用,例如,可以设定第一显示区域展示视频软件,第二显示区域展示购物软件,第三显示区域展示游戏软件,第四显示区域展示新闻软件。同时,投影设备的处理器202获取每个显示区域和应用的对应关系。[0146] 本实施例的投影设备还包括存储空间,每个显示控制单元206对应一个存储空间,处理器202将获取的展示内容数据传输至存储空间,显示控制单元206从对应的存储空间中获取展示内容数据,并传输至影像输出单元205。[0147] 当视频软件启动运行时,处理器202获取视频软件的内容数据,将其分发给第一显示控制单元的存储空间;当购物软件启动运行时,处理器202获取购物软件的内容数据,将其分发给第二显示控制单元的存储空间;当游戏软件启动运行时,处理器202获取游戏软件的内容数据,将其分发给第三显示控制单元的存储空间;当新闻软件启动运行时,处理器202获取新闻软件的内容数据,将其分发给第四显示控制单元的存储空间。[0148] 之后,第一显示控制单元读取其存储空间内的视频软件内容数据,并传输到投影仪的影像输出端,投射到屏幕的第一显示区域上;第二显示控制单元读取其存储空间内的数据,并传输到投影仪的影像输出单元205,投射到屏幕的第二显示区域上;第三显示控制单元读取其存储空间内的数据,并传输到投影仪的影像输出端,投射到屏幕的第三显示区域上;第四显示控制单元读取其存储空间内的数据,并传输到投影仪的影像输出单元205,投射到屏幕的第四显示区域上。[0149] 当用户需要启动视频软件时:用户在用户交互单元203上Launcher界面上点击视频软件应用的图标,然后调取预先存储的视频软件的主页截图。[0150] 在第一显示区域上,通过FakeDialog展示视频软件的主页截图,让用户认为此时视频软件已经启动完成打开了。同时,将伪FakeDialog的显示层级设置为系统层级,使FakeDialog显示在其他应用的上方,并保持其他应用在各自原来的独立进程中继续运行,再获取和存储其他应用的主页截图。[0151] 在FakeDialog上展示视频软件主页截图的时候,视频软件也根据启动指令,在独立进程中开始进行初始化,执行启动流程。[0152] 购物软件初始化完成后,向FakeDialog发送初始化已完成的信息,FakeDialog在接收到此信息后,销毁自己。同时,构建视频软件的TrueDialog,在第一显示区域上,通过TrueDialog展示视频软件完成初始化后真正的可操作的主页界面。[0153] 当用户需要启动购物软件时:用户在用户交互单元203上Launcher界面上点击购物软件应用的图标,然后调取预先存储的购物软件的主页截图。[0154] 在第二显示区域上,通过FakeDialog展示购物软件的主页截图,让用户认为此时购物软件已经启动完成打开了。同时,将伪FakeDialog的显示层级设置为系统层级,使FakeDialog显示在其他应用的上方,并保持其他应用在各自原来的独立进程中继续运行,再获取和存储其他应用的主页截图。[0155] 在FakeDialog上展示购物软件主页截图的时候,购物软件也根据启动指令,在独立进程中开始进行初始化,执行启动流程。[0156] 购物软件初始化完成后,向FakeDialog发送初始化已完成的信息,FakeDialog在接收到此信息后,销毁自己。同时,构建购物软件的TrueDialog,在第二显示区域上,通过TrueDialog展示购物软件完成初始化后真正的可操作的主页界面。[0157] 当用户需要启动游戏软件时:用户在用户交互单元203上Launcher界面上点击游戏软件应用的图标,然后调取预先存储的游戏软件的主页截图。[0158] 在第三显示区域上,通过FakeDialog展示游戏软件的主页截图,让用户认为此时游戏软件已经启动完成打开了。同时,将伪FakeDialog的显示层级设置为系统层级,使FakeDialog显示在其他应用的上方,并保持其他应用在各自原来的独立进程中继续运行,再获取和存储其他应用的主页截图。[0159] 在FakeDialog上展示游戏软件主页截图的时候,游戏软件也根据启动指令,在独立进程中开始进行初始化,执行启动流程。[0160] 购物软件初始化完成后,向FakeDialog发送初始化已完成的信息,FakeDialog在接收到此信息后,销毁自己。同时,构建游戏软件的TrueDialog,在第三显示区域上,通过TrueDialog展示游戏软件完成初始化后真正的可操作的主页界面。[0161] 当用户需要启动新闻软件时:用户在用户交互单元203上Launcher界面上点击新闻软件应用的图标,然后调取预先存储的新闻软件的主页截图。[0162] 在第四显示区域上,通过FakeDialog展示新闻软件的主页截图,让用户认为此时新闻软件已经启动完成打开了。同时,将伪FakeDialog的显示层级设置为系统层级,使FakeDialog显示在其他应用的上方,并保持其他应用在各自原来的独立进程中继续运行,再获取和存储其他应用的主页截图。[0163] 在FakeDialog上展示新闻软件主页截图的时候,新闻软件也根据启动指令,在独立进程中开始进行初始化,执行启动流程。[0164] 购物软件初始化完成后,向FakeDialog发送初始化已完成的信息,FakeDialog在接收到此信息后,销毁自己。同时,构建新闻软件的TrueDialog,在第四显示区域上,通过TrueDialog展示新闻软件完成初始化后真正的可操作的主页界面。[0165] 这样,就实现了在屏幕上同时显示多个应用内容,并且各个应用内容的展示互不影响。[0166] 本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(计算机程序)来完成,或通过指令(计算机程序)控制相关的硬件来完成,该指令可以存储于计算机可读存储介质201中,并由处理器202进行加载和执行。为此,本公开实施例的硬件设备的存储介质201中存储有多条指令,该指令能够被处理器202进行加载,以执行本公开实施例所提供的应用启动方法中任一实施例的步骤。[0167] 存储介质201和处理器202之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线电性连接,如可以通过总线连接。存储介质201中存储有实现数据访问控制方法的计算机执行指令,包括至少一个可以软件或固件的形式存储于存储介质201中的软件功能模块,处理器202通过运行存储在存储介质201内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储介质201可以是,但不限于,随机存取存储介质201(RandomAccessMemory,简称:RAM),只读存储介质201(ReadOnlyMemory,简称:ROM),可编程只读存储介质201(ProgrammableRead‑OnlyMemory,简称:PROM),可擦除只读存储介质201(ErasableProgrammableRead‑OnlyMemory,简称:EPROM),电可擦除只读存储介质201(ElectricErasableProgrammableRead‑OnlyMemory,简称:EEPROM)等。其中,存储介质201用于存储程序,处理器202在接收到执行指令后,执行程序。进一步地,上述存储介质201内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。处理器202可以是一种集成电路芯片,具有信号的处理能力。述的处理器202可以是通用处理器202,包括中央处理器202(CentralProcessingUnit,简称:CPU)、网络处理器202(NetworkProcessor,简称:NP)等。可以实现或者执行本实施例中公开的各方法、步骤及逻辑流程框图。通用处理器202可以是微处理器202或者该处理器202也可以是任何常规的处理器202等。[0168] 本公开实施例还提供一种计算机可读的存储介质201,存储有计算机程序,计算机程序被处理器202执行时实现上述的应用启动方法。所述存储介质201所在设备可以是智能投影设备、个人计算机、笔记本电脑、智能手机、平板电脑等电子设备。[0169] 以上所述,仅为本公开较佳的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应该以权利要求的保护范围为准。
专利地区:广东
专利申请日期:2021-06-09
专利公开日期:2024-07-26
专利公告号:CN113268286B