CN114661310A - 基于双***的应用安装方法、终端设备及存储介质 - Google Patents
基于双***的应用安装方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114661310A CN114661310A CN202210188272.3A CN202210188272A CN114661310A CN 114661310 A CN114661310 A CN 114661310A CN 202210188272 A CN202210188272 A CN 202210188272A CN 114661310 A CN114661310 A CN 114661310A
- Authority
- CN
- China
- Prior art keywords
- installation
- target application
- application
- progress
- parameter
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于双***的应用安装方法、终端设备及存储介质,用以解决相关技术中在双***中安装同一个应用的过程复杂低效的问题。本申请中双***包括第一***和第二***,前台***为第一***,第一***响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二***中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一***和第二***的共享目录中;通知第二***从共享目录中读取安装包并执行对目标应用的安装操作;接收第二***反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双***上同时安装目标应用,提高在双***上同时安装目标应用的效率。
Description
技术领域
本申请涉及终端技术领域,特别涉及一种基于双***的应用安装方法、终端设备及存储介质。
背景技术
随着终端设备的日渐普及,双***的应用场景也越来越多。双***本身具有的数据隔离的特性,使得终端设备的数据的安全性得到了进一步提升,但相对的,使得操作的便捷性降低。
相关技术中,双***在安装同一个应用时需要消耗双倍的数据流量和双倍的存储空间来下载和存放安装包,且需要操作两次安装流程才能完成在双***上同一个应用的安装流程,使得安装同一个应用的过程复杂低效,极大的降低了用户的使用体验。
发明内容
本申请的目的是提供一种基于双***的应用安装方法、终端设备及存储介质,用以解决相关技术中在双***中安装同一个应用的过程复杂低效的问题。
第一方面,本申请提供一种基于双***的应用安装方法,所述双***中包括第一***和第二***,前台***为第一***,所述方法包括:
第一***响应于对目标应用的安装请求,从所述安装请求中获取安装参数;
若所述安装参数为指示在所述第二***中安装所述目标应用的第一安装参数,则将所述目标应用的安装包存储在所述第一***和所述第二***的共享目录中;
通知所述第二***从所述共享目录中读取安装包并执行对所述目标应用的安装操作;
接收所述第二***反馈的所述目标应用的安装进度并输出显示。
在一种可能的实施方式中,所述方法还包括:
在创建完成所述第一***的数据目录以及所述第二***的数据目录之后,且在通过命名空间机制隔离所述第一***的数据目录以及所述第二***的数据目录之前,所述第一***和所述第二***分别将各自的数据目录通过挂载管理的方式绑定到所述共享目录中。
在一种可能的实施方式中,将所述目标应用的安装包存储到所述共享目录之后,所述方法还包括:
通过写第一节点的方式触发底层驱动上报第一事件给所述第二***;所述第一事件用于指示所述目标应用的安装包已存储至所述共享目录;
所述接收所述第二***反馈的所述目标应用的安装进度,包括:
监听所述底层驱动发送的第二事件,所述第二事件用于指示在所述第二***中所述目标应用的安装进度;所述第二事件是所述第二***通过写第二节点的方式触发所述底层驱动生成的。
在一种可能的实施方式中,所述方法还包括:
显示针对所述目标应用的安装引导界面,所述安装引导界面中包括用于选择安装***的选项;
响应于对所述选项的选择操作,生成携带所述安装参数的安装请求;
其中,若单一选择了所述第一***,则生成用于指示在所述第一***安装所述目标应用的第二安装参数;
若单一选择了所述第二***,则生成用于指示在所述第二***安装所述目标应用的所述第一安装参数;
若选择了所述第一***和所述第二***,则生成用于指示在所述第一***和所述第二***安装所述目标应用的第三安装参数。
在一种可能的实施方式中,若所述安装参数为所述第三安装参数,所述方法还包括:
通知所述第二***从所述共享目录中读取安装包并执行对所述目标应用的安装操作;
接收所述第二***反馈的所述目标应用的安装进度并输出显示;
确定所述第二***成功安装所述目标应用后,所述第一***从所述共享目录获取所述目标应用的安装包并执行对所述目标应用的安装操作,并输出显示所述第一***的所述目标应用的安装进度;
所述第一***将所述目标应用安装成功后,显示安装结果。
在一种可能的实施方式中,所述方法还包括:
若所述安装参数为所述第一安装参数,则显示所述第二***对所述目标应用的安装进度和安装结果;
若所述安装参数为所述第二安装参数,则显示所述第一***对所述目标应用的安装进度和安装结果;
若所述安装参数为所述第三安装参数,则同时显示所述目标应用分别在所述第一***和所述第二***中的安装进度和安装结果。
在一种可能的实施方式中,所述方法还包括:
在所述目标应用安装完成且所述第一***和所述第二***均无需安装所述目标应用时,删除所述共享目录中的所述目标应用的安装包。
第二方面,本申请提供一种终端设备,包括:
显示器、处理器和存储器;
所述显示器用于显示屏幕显示区域;
所述存储器,用于存储所述处理器可执行指令;
所述处理器被配置为执行所述指令以实现如上述第一方面中任一项所述的基于双***的应用安装方法。
第三方面,本申请提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备执行时,使得所述终端设备能够执行如上述第一方面中任一项所述的基于双***的应用安装方法。
第四方面,本申请提供一种计算机程序产品,包括计算机程序:
所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的基于双***的应用安装方法。
本申请的实施例提供的技术方案至少带来以下有益效果:
本申请实施例中双***包括第一***和第二***,前台***为第一***,第一***响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二***中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一***和第二***的共享目录中;通知第二***从共享目录中读取安装包并执行对目标应用的安装操作;接收第二***反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双***上同时安装目标应用,提高在双***上同时安装目标应用的效率。
由此,将目标应用的安装包存储在第一***和第二***的共享目录中,实现了仅在第一***下载一次目标应用的安装包,就可以在双***上同时安装目标应用,不需要在第二***重新下载目标应用的安装包,提高了在双***上同时安装目标应用的效率,使得在双***上安装同一个目标应用的过程简单高效,增加了用户的使用体验。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种终端设备的结构示意图;
图2为本申请实施例提供的终端设备的软件结构框图;
图3为本申请实施例提供的基于双***的应用安装方法的流程示意图;
图4为现有技术中的安装引导界面的示意图;
图5为本申请实施例提供的安装引导界面的示意图;
图6为本申请实施例提供的第一***的管理应用程序服务在安装过程中的执行过程的流程示意图;
图7为本申请实施例提供的第一***的安装应用程序服务在安装过程中的执行过程的流程示意图;
图8为本申请实施例提供的后台安装流程的流程示意图;
图9为本申请实施例提供的第一***和第二***中任意一个***对目标应用的安装进度界面和安装结果界面的示意图;
图10为本申请实施例提供的同时显示目标应用分别在第一***和第二***中的安装进度界面和安装结果界面的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
并且,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下文中,前台***为用户当前正在使用的终端设备的***;后台***为用户当前无法直接使用的终端设备的***。
随着终端设备的日渐普及,双***的应用场景也越来越多。双***本身具有的数据隔离的特性,使得终端设备的数据的安全性得到了进一步提升,但相对的,使得操作的便捷性降低。
相关技术中,双***在安装同一个应用时需要消耗双倍的数据流量和双倍的存储空间来下载和存放安装包,且需要操作两次安装流程才能完成在双***上同一个应用的安装流程,使得安装同一个应用的过程复杂低效,极大的降低了用户的使用体验。
例如,当用户想在双***的两个***上都安装一个微信,需要首先进入第一个***进行下载微信和安装微信的过程。然后因为双***的数据隔离特点,使得下载的微信安装包,只有第一个***可以看到,而第二个***无法访问第一个***下载的微信安装包,而且安装过程是第一个***的PackageManager Service(管理应用程序服务)进行处理的,而双***每个***下的PackageManager Service流程都是独立进行的,互相之间并无交流,因此第一个***下的应用安装并不会影响第二个***的应用状态,因此还需要进入第二个***进行下载微信和安装微信的过程,操作繁琐,极大的降低了用户体验。
有鉴于此,本申请提供了一种基于双***的应用安装方法、终端设备及存储介质,用以解决相关技术中在双***中安装同一个应用的过程复杂低效的问题。
本申请的发明构思可概括为:本申请实施例中双***包括第一***和第二***,前台***为第一***,第一***响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二***中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一***和第二***的共享目录中;通知第二***从共享目录中读取安装包并执行对目标应用的安装操作;接收第二***反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双***上同时安装目标应用,提高在双***上同时安装目标应用的效率。
由此,将目标应用的安装包存储在第一***和第二***的共享目录中,实现了仅在第一***下载一次目标应用的安装包,就可以在双***上同时安装目标应用,不需要在第二***重新下载目标应用的安装包,提高了在双***上同时安装目标应用的效率,使得在双***上安装同一个目标应用的过程简单高效,增加了用户的使用体验。
在介绍完本申请的发明构思之后,下面先对本申请提供的终端设备进行说明。
图1示出了一种终端设备100的结构示意图。应该理解的是,图1所示终端设备100仅是一个范例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图1中示例性示出了根据示例性实施例中终端设备100的硬件配置框图。如图1所示,终端设备100包括:射频(radio frequency,RF)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(Wireless Fidelity,Wi-Fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
RF电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作***。本申请中存储器120可以存储操作***及各种应用程序,还可以存储执行本申请实施例所述基于双***的应用安装方法的程序代码。
显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮。
显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本申请中终端设备的屏幕显示区域。
其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元130可以显示应用程序以及对应的操作步骤。
摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量,还可以用于组合其他按钮,调整封闭区域。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。
Wi-Fi属于短距离无线传输技术,终端设备100可以通过Wi-Fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本申请中处理器180可以运行操作***、应用程序、用户界面显示及触控响应,以及本申请实施例所述的基于双***的应用安装方法。另外,处理器180与显示单元130耦接。
蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。
图2是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。如图2所示,在本申请中,双***的每个***分别拥有各自对应的应用程序层和应用程序框架层,且双***共用同一个***库以及共用同一个内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括应用市场,文件管理,设置,微信,信息,闹钟,图库,日历,WLAN等应用程序。在本申请实施例中,第一***的应用程序层还包括第一***的安装应用程序服务(PackageInstaller),第二***的应用程序层还包括第二***的安装应用程序服务(PackageInstaller)。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
其中,在本申请实施例中,第一***的应用程序框架层还包括第一***的管理应用程序服务(PackageManager),第二***的应用程序框架层还包括第二***的管理应用程序服务(PackageManager)。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信息通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
通知管理器使应用程序可以在状态栏中显示通知信息(例如短信息的消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。***库还包括本申请实施例提供的第一***和第二***的共享目录。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D(一种动画方式)图形引擎是2D绘图的绘图引擎。
其中,在本申请实施例中,***库中的共享目录以及表面管理器为双***共同使用,而媒体库、三维图形处理库、2D图形引擎为双***中两个***各自使用。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动以及本申请实施例中的底层驱动。
本申请实施例中的终端设备100可以为包括但不限于智能手机、平板电脑、智能作业记录仪、可穿戴电子设备(例如智能手表)、笔记本电脑等电子设备。
为了便于理解本申请实施例提供的基于双***的应用安装方法,下面结合附图对此进行进一步说明。
需要说明的是,本申请实施例中双***中包括第一***和第二***。用户当前操作的***是前台***,未操作的***是后台***。若本申请实施例中双***均有权限往其他***安装应用,则前台***为第一***,后台***为第二***。若双***中仅有一个***具有权限向其他***安装应用,则定义具有该权限的***为第一***,且该第一***为前台***时,可实现向其他***安装应用。
图3为本申请实施例提供的基于双***的应用安装方法的流程示意图。如图3所示,该方法包括以下步骤:
在步骤301中,第一***响应于对目标应用的安装请求,从安装请求中获取安装参数。
在一种可能的实施方式中,本申请实施例中会显示针对目标应用的安装引导界面,安装引导界面中包括用于选择安装***的选项;响应于对选项的选择操作,生成携带安装参数的安装请求。
示例性的,相关技术中当用户安装目标应用时,根据当前的***给予用户对应的选择,如图4所示,当前的***为第一***时,只给出图4所示的安装引导界面,目标应用只能安装到第一***,没有权限安装到第二***中。而如图5所示,为本申请实施例提供的针对目标应用的安装引导界面,用户可以根据自己的需求在第一***的安装引导界面选择任意一个选择安装***的选项,例如点击安装到第一***的选项,则会生成用于指示在第一***安装目标应用的第二安装参数;点击安装到第二***的选项,则会生成用于指示在第二***安装目标应用的第一安装参数;点击安装到所有***的选项,则会生成用于指示在第一***和第二***安装目标应用的第三安装参数。点击安装到第二***的选项和安装到所有***的选项,实现当前的***为第一***时,可以将目标应用安装到第二***中。
在一种可能的实施方式中,本申请实施例在安装目标应用时若单一选择了第一***,则生成用于指示在第一***安装目标应用的第二安装参数;若单一选择了第二***,则生成用于指示在第二***安装目标应用的第一安装参数;若选择了第一***和第二***,则生成用于指示在第一***和第二***安装目标应用的第三安装参数。
其中,本申请实施例中第一***的安装流程涉及到第一***的安装应用程序服务(PackageInstaller)和第一***的管理应用程序服务(PackageManager);第二***的安装流程涉及到第二***的安装应用程序服务和第二***的管理应用程序服务。其中,PackageInstaller负责安装流程的发起与UI(User Interface,用户界面)的回馈显示。本申请中涉及到的所有用户交互界面均是由PackageInstaller显示的。PackageManager负责安装流程的实际执行。
因此,在本申请实施例中,第一***响应于对目标应用的安装请求,从安装请求中获取安装参数可以具体实施为:响应于对目标应用的安装请求,第一***的PackageInstaller会发送一个携带有安装参数的安装请求,然后第一***的PackageManager接收到安装请求后,会获取安装请求中的安装参数并进行检测。例如,若在图5中点击安装到所有***的选项,安装请求中携带的第三安装参数为INSTALL_FOR_ALL;若在图5中点击安装到第一***的选项,安装请求中携带的第二安装参数为INSTALL_FOR_CURRENT;若在图5中点击安装到第二***的选项,安装请求中携带的第一安装参数为INSTALL_FOR_BACK。
而第一***的PackageManager接收到安装请求后,会获取安装请求中的安装参数并进行检测,若安装参数为第三安装参数INSTALL_FOR_ALL,则指示在第一***和第二***中安装目标应用,若安装参数为第一安装参数INSTALL_FOR_BACK,则指示在第二***中安装目标应用,若安装参数为第二安装参数INSTALL_FOR_CURRENT,则指示在第一***中安装目标应用。本申请中的前台***为第一***,PackageManager负责安装流程的实际执行,因此第一***的PackageManager在安装过程中的执行过程可以概括为如图6所示的步骤:
在步骤601中,接收到安装请求并检测安装请求中的安装参数。
若在步骤602中,检测出来的安装参数为第三安装参数INSTALL_FOR_ALL,则在步骤603中,创建并启动后台***(第二***)安装流程,然后在步骤604中,执行前台***(第一***)安装流程,最后在步骤605中,向第一***的PackageInstaller反馈第二***和第一***的安装进度和安装结果,直至步骤610安装结束。
若在步骤602中,检测出来的安装参数为第一安装参数INSTALL_FOR_BACK,则在步骤606中,创建并启动后台***(第二***)安装流程,然后在步骤607中,向第一***的PackageInstaller反馈第二***的安装进度和安装结果,直至步骤610安装结束。
若在步骤602中,检测出来的安装参数为第二安装参数INSTALL_FOR_CURRENT,则在步骤608中,执行前台***(第一***)安装流程,然后在步骤609中,向第一***的PackageInstaller反馈第一***的安装进度和安装结果,直至步骤610安装结束。
在一种可能的实施方式中,PackageInstaller负责安装流程的发起与UI的回馈显示,因此第一***的PackageInstaller在安装过程中的执行过程可以概括为如图7所示的步骤:
若在步骤701中,在第一***和第二***安装目标应用;则在步骤702中,发起带有第三安装参数INSTALL_FOR_ALL的安装请求;然后在步骤703中,等待第二***的安装结果,在步骤704中,判断是否收到第二***的安装结果;若没有收到第二***的安装结果,则继续执行步骤703,若收到第二***的安装结果,在步骤705中,等待第一***的安装结果;在步骤706中,判断是否收到第一***的安装结果;若没有收到第一***的安装结果,则继续执行步骤705,若收到第一***的安装结果,在步骤713中,更新界面,显示安装结果,直至在步骤714中,安装结束。
若在步骤701中,在第二***安装目标应用;则在步骤707中,发起带有第一安装参数INSTALL_FOR_BACK的安装请求;然后在步骤708中,等待第二***的安装结果,在步骤709中,判断是否收到第二***的安装结果;若没有收到第二***的安装结果,则继续执行步骤708,若收到第二***的安装结果,则在步骤713中,更新界面,显示安装结果,直至在步骤714中,安装结束。
若在步骤701中,在第一***安装目标应用;则在步骤710中,发起带有第二安装参数INSTALL_FOR_CURRENT的安装请求;然后在步骤711中,等待第一***的安装结果,在步骤712中,判断是否收到第一***的安装结果;若没有收到第一***的安装结果,则继续执行步骤711,若收到第一***的安装结果,则在步骤713中,更新界面,显示安装结果,直至在步骤714中,安装结束。
其中前台安装流程可以执行为现有技术中任意一种安装应用的安装流程,本申请实施例对此不做限制。后台安装流程为步骤302,步骤303和步骤304的内容,为了进一步理解本申请实施例提供的基于双***的应用安装方法,下面对前文中描述的后台安装流程进行详细介绍。
在步骤302中,若安装参数为指示在第二***中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一***和第二***的共享目录中。
在步骤303中,通知第二***从共享目录中读取安装包并执行对目标应用的安装操作。
在步骤304中,接收第二***反馈的目标应用的安装进度并输出显示。
在一种可能的实施方式中,若安装参数为第三安装参数,则指示在第一***和第二***中均安装目标应用,因此在本申请实施例中还包括:通知第二***从共享目录中读取安装包并执行对目标应用的安装操作;接收第二***反馈的目标应用的安装进度并输出显示;同时在确定第二***成功安装目标应用后,第一***从共享目录获取目标应用的安装包并执行对目标应用的安装操作,并输出显示第一***的目标应用的安装进度;第一***将目标应用安装成功后,显示安装结果。
在一种可能的实施方式中,双***为了隔离数据,实现数据隔离特性,在终端设备开机后,会创建第一***和第二***各自专有的数据目录,各自的数据目录创建完成后通过命名空间机制隔离第一***的数据目录以及第二***的数据目录,将对应的数据目录隔离给对应的***使用,所以数据目录中的数据是不互通的。因此为了解决这一问题,在本申请实施例中若安装参数为指示在第二***中安装目标应用的第一安装参数或者安装参数为指示在第一***和第二***中安装目标应用的第三安装参数,需要在创建完成第一***的数据目录以及第二***的数据目录之后,且在通过命名空间机制隔离第一***的数据目录以及第二***的数据目录之前,第一***和第二***分别将各自的数据目录通过挂载管理的方式绑定到共享目录中。
示例性的,在双***中,若将数据目录命名为/data/cross,虽然第一***和第二***的都是去同样名称的数据目录下访问同一个文件,但实际上,第一***的/data/cross和第二***的/data/cross是对应不同的目录结构的,原因主要是双***的数据隔离造成的。为了隔离数据,基于双***的终端设备一开始启动,会在data(数据)目录下创建第一***和第二***各自专有的data目录,比如/data/host代表第一***的数据目录,/data/child代表第二***的数据目录,第一***和第二***各自专有的data目录创建后会通过namespace(命名空间)机制将对应的数据目录完全隔离给对应的***使用,这样一来,各自互不影响,但在代码逻辑上使用的数据目录又是相同的,比如第一***看到的/data/cross,实际上是/data/host/data/cross,第二***看到的/data/cross,实际上是/data/child/data/cross,所以数据并不互通。为解决此问题,本申请中可以在/data/host和/data/child目录创建完成后,namespace隔离之前,再创建一个/data/crossReal目录(共享目录),然后通过mount bind(挂载管理)的方式,将/data/host/data/cross和/data/child/data/cross都bind(绑定)到/data/crossReal上,这样一来,第一***和第二***对各自/data/cross的操作,实际上就是第一***和第二***操作的都是/data/crossReal,也就实现了本申请中第一***和第二***之间数据交互的方式。
在一种可能的实施方式中,因为基于双***的终端设备的底层驱动的事件是同一事件,上层有两个***,只是通知***的时候可以根据需求控制发送给对应需要的***而已。因此为了实现通知第二***从共享目录中读取安装包并执行对目标应用的安装操作,并接收第二***反馈的目标应用的安装进度并输出显示,本申请实施例中将目标应用的安装包存储到共享目录之后,还通过写第一节点的方式触发底层驱动上报第一事件给第二***;第一事件用于指示目标应用的安装包已存储至共享目录。并且监听底层驱动发送的第二事件,第二事件用于指示在第二***中目标应用的安装进度;第二事件是第二***通过写第二节点的方式触发底层驱动生成的。因此后台安装流程具体可以实施为如图8所示的步骤:
在步骤801中,启动后台安装流程。
在步骤802中,第一***将目标应用的安装包存储到共享目录,并在存储完成后写入第一节点。
具体实施为,第一***的PackageManger将目标应用的安装包存储到共享目录,并在存储完成后将存储完成的消息写入第一节点。例如,约定的第一节点为A,存储完成的消息为消息1,则将目标应用的安装包存储到共享目录之后,将消息1写入节点A中。
在步骤803中,底层驱动收到第一节点的变化,上报第一事件给第二***。
具体实施为,当底层驱动接收到第一节点的变化,即接收到第一节点中写入存储完成的消息后,会上报第一事件给需要处理第一事件的第二***。其中第一事件用于指示目标应用的安装包已存储至共享目录。例如,在底层驱动获得消息1后,会上报一个事件E1给第二***的PackageManger。
在步骤804中,第二***接收到第一事件。
具体实施为,第二***在开机流程中,预先在第二***的PackageManger中注册对第一事件的监听,以便第二***的PackageManger接收第一事件。例如,第二***在开机流程中,预先在第二***的PackageManger中注册对事件E1的监听,在监听到底层驱动上报事件E1后,第二***的PackageManger立即接收第一事件E1。
在步骤805中,第二***从共享目录中读取安装包并执行对目标应用的安装操作,并将安装进度写入第二节点。
具体实施为,第二***的PackageManger接收到底层驱动上报的第一事件并确定是第一***请求第二***安装目标应用后,就会从共享目录中读取安装包,在获取安装包后直接执行对目标应用的安装操作。同时在第二***的安装过程中,可以将安装进度通知给第一***,通知方式可以参考第一***通知第二***的方式,首先约定一个第二节点,将安装进度写入第二节点,以此触发底层驱动上报第二事件给第一***。例如约定一个第二节点为B,安装进度为消息2,不断地将消息2写入节点B,使得节点B触发底层驱动。
在步骤806中,底层驱动收到第二节点的变化,上报第二事件给第一***。
具体实施为,当底层驱动接收到第二节点的变化,即接收到第二节点中写入第二***的安装进度的消息后,会上报第二事件给需要处理第二事件的第一***。其中第二事件用于指示在第二***中目标应用的安装进度。例如,在底层驱动获得消息2后,会上报一个事件E2给第一***的PackageManger。
在步骤807中,第一***接收到第二事件。
具体实施为,第一***在开机流程中,预先在第一***的PackageManger中注册对第二事件的监听,以便第一***的PackageManger接收到第二事件。例如,第一***在开机流程中,预先在第一***的PackageManger中注册对事件E2的监听,在监听到底层驱动上报事件E2后,第二***的PackageManger立即接收第二事件E2。
在步骤808中,第一***更新第二***对目标应用的安装进度。
具体实施为,第一***的PackageManger在接收到底层驱动上报的第二事件E2后,可以根据第二事件E2的值通知第一***的PackageInstaller更新并显示第二***对目标应用的安装进度。
在步骤809中,在第二***对目标应用安装完成后,第一***更新第二***对目标应用的安装结果。
具体实施为,在第一***的PackageManger在接收到底层驱动上报的第二事件E2后,若第二事件E2的值表示安装进度以显示为安装完成,则第一***的PackageManger通知第一***的PackageInstaller更新第二***对目标应用的安装结果。例如,第一***可以根据第二事件的值显示安装进度,安装进度使用-1-100表示,其中-1表示安装异常,0表示未开始安装,100表示安装完成。当第二事件的值为100时,第一***认为第二***安装成功,通知第一***的PackageInstaller更新安装结果为安装成功。当第二事件的值为-1时,第一***认为第二***安装过程出现异常,通知第一***的PackageInstaller更新安装结果为安装失败。
在步骤810中,第二***对目标应用的安装流程结束后,发送安装完成通知。
其中,第二***在安装完成后,可以立刻给自己发一个安装完成通知,供下次使用第二***时提醒用户已安装目标应用。
在步骤811中,第二***流程结束。
在步骤812中,第一***删除共享目录中的目标应用的安装包。
在一种可能的实施方式中,为了节省空间,本申请实施例中在目标应用安装完成且第一***和第二***均无需安装目标应用时,删除共享目录中的目标应用的安装包。
在步骤813中,第一***流程结束。
其中,第一节点和第二节点对于上层的***而言,可以看作是一个文件,可以写文件内容,只要文件内容改变,底层驱动就能获得消息。
在一种可能的实施方式中,本申请实施例中还可以显示对目标应用的安装进度和安装结果的界面:若安装参数为第一安装参数,则显示第二***对目标应用的安装进度和安装结果;若安装参数为第二安装参数,则显示第一***对目标应用的安装进度和安装结果;若安装参数为第三安装参数,则同时显示目标应用分别在第一***和第二***中的安装进度和安装结果。如图9所示为只显示第一***和第二***中任意一个***对目标应用的安装进度界面和安装结果界面,如图9中的a所示,为任意一个***对目标应用的安装进度界面,在此界面中会显示在安装目标应用的过程中,任意一个***对目标应用的安装进度,而如图9中的b所示,为任意一个***对目标应用的安装结果界面,在此界面中会显示任意一个***安装目标应用完成,并指示用户可以点击打开按钮打开目标应用或者点击完成按钮退出安装流程。如图10所示为同时显示目标应用分别在第一***和第二***中的安装进度界面和安装结果界面,如图10中的a所示,为同时显示目标应用分别在第一***和第二***中的安装进度界面,在此界面中会显示在安装目标应用的过程中,第一***和第二***对目标应用的安装进度,而如图10中的b所示,同时显示目标应用分别在第一***和第二***中的安装结果界面,在此界面中会显示第一***和第二***均安装目标应用完成,并指示用户可以点击打开按钮打开目标应用或者点击完成按钮退出安装流程。
基于前文的描述,本申请实施例中双***包括第一***和第二***,前台***为第一***,第一***响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二***中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一***和第二***的共享目录中;通知第二***从共享目录中读取安装包并执行对目标应用的安装操作;接收第二***反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双***上同时安装目标应用,提高在双***上同时安装目标应用的效率。
由此,将目标应用的安装包存储在第一***和第二***的共享目录中,实现了仅在第一***下载一次目标应用的安装包,就可以在双***上同时安装目标应用,不需要在第二***重新下载目标应用的安装包,提高了在双***上同时安装目标应用的效率,使得在双***上安装同一个目标应用的过程简单高效,增加了用户的使用体验。
在示例性实施例中,本申请还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器120,上述指令可由终端设备100的处理器180执行以完成上述基于双***的应用安装方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器180执行时实现如本申请提供的基于双***的应用安装方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于双***的应用安装方法,其特征在于,所述双***中包括第一***和第二***,前台***为第一***,所述方法包括:
第一***响应于对目标应用的安装请求,从所述安装请求中获取安装参数;
若所述安装参数为指示在所述第二***中安装所述目标应用的第一安装参数,则将所述目标应用的安装包存储在所述第一***和所述第二***的共享目录中;
通知所述第二***从所述共享目录中读取安装包并执行对所述目标应用的安装操作;
接收所述第二***反馈的所述目标应用的安装进度并输出显示。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在创建完成所述第一***的数据目录以及所述第二***的数据目录之后,且在通过命名空间机制隔离所述第一***的数据目录以及所述第二***的数据目录之前,所述第一***和所述第二***分别将各自的数据目录通过挂载管理的方式绑定到所述共享目录中。
3.根据权利要求1所述的方法,其特征在于,将所述目标应用的安装包存储到所述共享目录之后,所述方法还包括:
通过写第一节点的方式触发底层驱动上报第一事件给所述第二***;所述第一事件用于指示所述目标应用的安装包已存储至所述共享目录;
所述接收所述第二***反馈的所述目标应用的安装进度,包括:
监听所述底层驱动发送的第二事件,所述第二事件用于指示在所述第二***中所述目标应用的安装进度;所述第二事件是所述第二***通过写第二节点的方式触发所述底层驱动生成的。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
显示针对所述目标应用的安装引导界面,所述安装引导界面中包括用于选择安装***的选项;
响应于对所述选项的选择操作,生成携带所述安装参数的安装请求;
其中,若单一选择了所述第一***,则生成用于指示在所述第一***安装所述目标应用的第二安装参数;
若单一选择了所述第二***,则生成用于指示在所述第二***安装所述目标应用的所述第一安装参数;
若选择了所述第一***和所述第二***,则生成用于指示在所述第一***和所述第二***安装所述目标应用的第三安装参数。
5.根据权利要求4所述的方法,其特征在于,若所述安装参数为所述第三安装参数,所述方法还包括:
通知所述第二***从所述共享目录中读取安装包并执行对所述目标应用的安装操作;
接收所述第二***反馈的所述目标应用的安装进度并输出显示;
确定所述第二***成功安装所述目标应用后,所述第一***从所述共享目录获取所述目标应用的安装包并执行对所述目标应用的安装操作,并输出显示所述第一***的所述目标应用的安装进度;
所述第一***将所述目标应用安装成功后,显示安装结果。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述安装参数为所述第一安装参数,则显示所述第二***对所述目标应用的安装进度和安装结果;
若所述安装参数为所述第二安装参数,则显示所述第一***对所述目标应用的安装进度和安装结果;
若所述安装参数为所述第三安装参数,则同时显示所述目标应用分别在所述第一***和所述第二***中的安装进度和安装结果。
7.根据权利要求1-6中任一所述的方法,其特征在于,所述方法还包括:
在所述目标应用安装完成且所述第一***和所述第二***均无需安装所述目标应用时,删除所述共享目录中的所述目标应用的安装包。
8.一种终端设备,其特征在于,包括:
显示器、处理器和存储器;
所述显示器用于显示屏幕显示区域;
所述存储器,用于存储所述处理器可执行指令;
所述处理器被配置为执行所述指令以实现如权利要求1-7中任一项所述的基于双***的应用安装方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由终端设备执行时,使得所述终端设备能够执行如权利要求1-7中任一项所述的基于双***的应用安装方法。
10.一种计算机程序产品,其特征在于,包括计算机程序:
所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于双***的应用安装方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210188272.3A CN114661310A (zh) | 2022-02-28 | 2022-02-28 | 基于双***的应用安装方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210188272.3A CN114661310A (zh) | 2022-02-28 | 2022-02-28 | 基于双***的应用安装方法、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661310A true CN114661310A (zh) | 2022-06-24 |
Family
ID=82026622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210188272.3A Pending CN114661310A (zh) | 2022-02-28 | 2022-02-28 | 基于双***的应用安装方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661310A (zh) |
-
2022
- 2022-02-28 CN CN202210188272.3A patent/CN114661310A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111225108A (zh) | 一种通信终端及负屏界面的卡片显示方法 | |
CN111597000A (zh) | 一种小窗口管理方法及终端 | |
CN112114733B (zh) | 一种截屏、录屏方法、移动终端及计算机存储介质 | |
CN111367456A (zh) | 通信终端及多窗口模式下的显示方法 | |
CN110865837A (zh) | 一种进行***升级的方法和终端 | |
CN111857531A (zh) | 移动终端及其文件显示方法 | |
CN111597004A (zh) | 终端及应用中用户界面显示方法 | |
CN113709026B (zh) | 即时通信消息的处理方法、设备、存储介质和程序产品 | |
CN113593279B (zh) | 车辆及其交互参数调整方法、移动终端 | |
CN111246299A (zh) | 通信终端以及应用管理方法 | |
CN111158735B (zh) | 一种热补丁文件处理方法及通信终端 | |
CN113055585B (zh) | 拍摄界面的缩略图显示方法及移动终端 | |
CN113254132B (zh) | 一种应用显示方法及相关装置 | |
CN113014614A (zh) | 一种设备控制方法、控制设备及被控设备 | |
CN113253905B (zh) | 基于多指操作的触控方法及智能终端 | |
CN114595203A (zh) | 基于双***的文件同步方法、终端设备及存储介质 | |
CN114356559A (zh) | 一种多线程控制方法及终端设备 | |
CN111600862B (zh) | 一种用户账户管理方法及设备 | |
CN114675786A (zh) | 一种大容量存储挂载方法、装置、终端及介质 | |
CN114661310A (zh) | 基于双***的应用安装方法、终端设备及存储介质 | |
CN112000411A (zh) | 移动终端及其录音通道占用信息的显示方法 | |
CN111324255A (zh) | 一种基于双屏终端的应用处理方法及通信终端 | |
CN111225113A (zh) | 一种通信终端及通信终端的开机方法 | |
CN113642010A (zh) | 一种获取扩展存储设备数据的方法及移动终端 | |
CN113760164A (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 |