基于双系统的应用安装方法、终端设备及存储介质与流程

文档序号:30515693发布日期:2022-06-25 03:14阅读:169来源:国知局
基于双系统的应用安装方法、终端设备及存储介质与流程

1.本技术涉及终端技术领域,特别涉及一种基于双系统的应用安装方法、终端设备及存储介质。


背景技术:

2.随着终端设备的日渐普及,双系统的应用场景也越来越多。双系统本身具有的数据隔离的特性,使得终端设备的数据的安全性得到了进一步提升,但相对的,使得操作的便捷性降低。
3.相关技术中,双系统在安装同一个应用时需要消耗双倍的数据流量和双倍的存储空间来下载和存放安装包,且需要操作两次安装流程才能完成在双系统上同一个应用的安装流程,使得安装同一个应用的过程复杂低效,极大的降低了用户的使用体验。


技术实现要素:

4.本技术的目的是提供一种基于双系统的应用安装方法、终端设备及存储介质,用以解决相关技术中在双系统中安装同一个应用的过程复杂低效的问题。
5.第一方面,本技术提供一种基于双系统的应用安装方法,所述双系统中包括第一系统和第二系统,前台系统为第一系统,所述方法包括:
6.第一系统响应于对目标应用的安装请求,从所述安装请求中获取安装参数;
7.若所述安装参数为指示在所述第二系统中安装所述目标应用的第一安装参数,则将所述目标应用的安装包存储在所述第一系统和所述第二系统的共享目录中;
8.通知所述第二系统从所述共享目录中读取安装包并执行对所述目标应用的安装操作;
9.接收所述第二系统反馈的所述目标应用的安装进度并输出显示。
10.在一种可能的实施方式中,所述方法还包括:
11.在创建完成所述第一系统的数据目录以及所述第二系统的数据目录之后,且在通过命名空间机制隔离所述第一系统的数据目录以及所述第二系统的数据目录之前,所述第一系统和所述第二系统分别将各自的数据目录通过挂载管理的方式绑定到所述共享目录中。
12.在一种可能的实施方式中,将所述目标应用的安装包存储到所述共享目录之后,所述方法还包括:
13.通过写第一节点的方式触发底层驱动上报第一事件给所述第二系统;所述第一事件用于指示所述目标应用的安装包已存储至所述共享目录;
14.所述接收所述第二系统反馈的所述目标应用的安装进度,包括:
15.监听所述底层驱动发送的第二事件,所述第二事件用于指示在所述第二系统中所述目标应用的安装进度;所述第二事件是所述第二系统通过写第二节点的方式触发所述底层驱动生成的。
16.在一种可能的实施方式中,所述方法还包括:
17.显示针对所述目标应用的安装引导界面,所述安装引导界面中包括用于选择安装系统的选项;
18.响应于对所述选项的选择操作,生成携带所述安装参数的安装请求;
19.其中,若单一选择了所述第一系统,则生成用于指示在所述第一系统安装所述目标应用的第二安装参数;
20.若单一选择了所述第二系统,则生成用于指示在所述第二系统安装所述目标应用的所述第一安装参数;
21.若选择了所述第一系统和所述第二系统,则生成用于指示在所述第一系统和所述第二系统安装所述目标应用的第三安装参数。
22.在一种可能的实施方式中,若所述安装参数为所述第三安装参数,所述方法还包括:
23.通知所述第二系统从所述共享目录中读取安装包并执行对所述目标应用的安装操作;
24.接收所述第二系统反馈的所述目标应用的安装进度并输出显示;
25.确定所述第二系统成功安装所述目标应用后,所述第一系统从所述共享目录获取所述目标应用的安装包并执行对所述目标应用的安装操作,并输出显示所述第一系统的所述目标应用的安装进度;
26.所述第一系统将所述目标应用安装成功后,显示安装结果。
27.在一种可能的实施方式中,所述方法还包括:
28.若所述安装参数为所述第一安装参数,则显示所述第二系统对所述目标应用的安装进度和安装结果;
29.若所述安装参数为所述第二安装参数,则显示所述第一系统对所述目标应用的安装进度和安装结果;
30.若所述安装参数为所述第三安装参数,则同时显示所述目标应用分别在所述第一系统和所述第二系统中的安装进度和安装结果。
31.在一种可能的实施方式中,所述方法还包括:
32.在所述目标应用安装完成且所述第一系统和所述第二系统均无需安装所述目标应用时,删除所述共享目录中的所述目标应用的安装包。
33.第二方面,本技术提供一种终端设备,包括:
34.显示器、处理器和存储器;
35.所述显示器用于显示屏幕显示区域;
36.所述存储器,用于存储所述处理器可执行指令;
37.所述处理器被配置为执行所述指令以实现如上述第一方面中任一项所述的基于双系统的应用安装方法。
38.第三方面,本技术提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由终端设备执行时,使得所述终端设备能够执行如上述第一方面中任一项所述的基于双系统的应用安装方法。
39.第四方面,本技术提供一种计算机程序产品,包括计算机程序:
40.所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的基于双系统的应用安装方法。
41.本技术的实施例提供的技术方案至少带来以下有益效果:
42.本技术实施例中双系统包括第一系统和第二系统,前台系统为第一系统,第一系统响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二系统中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一系统和第二系统的共享目录中;通知第二系统从共享目录中读取安装包并执行对目标应用的安装操作;接收第二系统反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双系统上同时安装目标应用,提高在双系统上同时安装目标应用的效率。
43.由此,将目标应用的安装包存储在第一系统和第二系统的共享目录中,实现了仅在第一系统下载一次目标应用的安装包,就可以在双系统上同时安装目标应用,不需要在第二系统重新下载目标应用的安装包,提高了在双系统上同时安装目标应用的效率,使得在双系统上安装同一个目标应用的过程简单高效,增加了用户的使用体验。
44.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
45.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本技术实施例提供的一种终端设备的结构示意图;
47.图2为本技术实施例提供的终端设备的软件结构框图;
48.图3为本技术实施例提供的基于双系统的应用安装方法的流程示意图;
49.图4为现有技术中的安装引导界面的示意图;
50.图5为本技术实施例提供的安装引导界面的示意图;
51.图6为本技术实施例提供的第一系统的管理应用程序服务在安装过程中的执行过程的流程示意图;
52.图7为本技术实施例提供的第一系统的安装应用程序服务在安装过程中的执行过程的流程示意图;
53.图8为本技术实施例提供的后台安装流程的流程示意图;
54.图9为本技术实施例提供的第一系统和第二系统中任意一个系统对目标应用的安装进度界面和安装结果界面的示意图;
55.图10为本技术实施例提供的同时显示目标应用分别在第一系统和第二系统中的安装进度界面和安装结果界面的示意图。
具体实施方式
56.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
57.并且,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
58.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
59.下文中,前台系统为用户当前正在使用的终端设备的系统;后台系统为用户当前无法直接使用的终端设备的系统。
60.随着终端设备的日渐普及,双系统的应用场景也越来越多。双系统本身具有的数据隔离的特性,使得终端设备的数据的安全性得到了进一步提升,但相对的,使得操作的便捷性降低。
61.相关技术中,双系统在安装同一个应用时需要消耗双倍的数据流量和双倍的存储空间来下载和存放安装包,且需要操作两次安装流程才能完成在双系统上同一个应用的安装流程,使得安装同一个应用的过程复杂低效,极大的降低了用户的使用体验。
62.例如,当用户想在双系统的两个系统上都安装一个微信,需要首先进入第一个系统进行下载微信和安装微信的过程。然后因为双系统的数据隔离特点,使得下载的微信安装包,只有第一个系统可以看到,而第二个系统无法访问第一个系统下载的微信安装包,而且安装过程是第一个系统的packagemanager service(管理应用程序服务)进行处理的,而双系统每个系统下的packagemanager service流程都是独立进行的,互相之间并无交流,因此第一个系统下的应用安装并不会影响第二个系统的应用状态,因此还需要进入第二个系统进行下载微信和安装微信的过程,操作繁琐,极大的降低了用户体验。
63.有鉴于此,本技术提供了一种基于双系统的应用安装方法、终端设备及存储介质,用以解决相关技术中在双系统中安装同一个应用的过程复杂低效的问题。
64.本技术的发明构思可概括为:本技术实施例中双系统包括第一系统和第二系统,前台系统为第一系统,第一系统响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二系统中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一系统和第二系统的共享目录中;通知第二系统从共享目录中读取安装包并执行对目标应用的安装操作;接收第二系统反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双系统上同时安装目标应用,提高在双系统上同时安装目标应用的效率。
65.由此,将目标应用的安装包存储在第一系统和第二系统的共享目录中,实现了仅在第一系统下载一次目标应用的安装包,就可以在双系统上同时安装目标应用,不需要在
第二系统重新下载目标应用的安装包,提高了在双系统上同时安装目标应用的效率,使得在双系统上安装同一个目标应用的过程简单高效,增加了用户的使用体验。
66.在介绍完本技术的发明构思之后,下面先对本技术提供的终端设备进行说明。
67.图1示出了一种终端设备100的结构示意图。应该理解的是,图1所示终端设备100仅是一个范例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
68.图1中示例性示出了根据示例性实施例中终端设备100的硬件配置框图。如图1所示,终端设备100包括:射频(radio frequency,rf)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(wireless fidelity,wi-fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
69.rf电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
70.存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作系统。本技术中存储器120可以存储操作系统及各种应用程序,还可以存储执行本技术实施例所述基于双系统的应用安装方法的程序代码。
71.显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮。
72.显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical user interface,gui)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本技术中终端设备的屏幕显示区域。
73.其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本技术中显示单元130可以显示应用程序以及对应的操作步骤。
74.摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
75.终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
76.音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换
为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量,还可以用于组合其他按钮,调整封闭区域。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至rf电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。
77.wi-fi属于短距离无线传输技术,终端设备100可以通过wi-fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
78.处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本技术中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例所述的基于双系统的应用安装方法。另外,处理器180与显示单元130耦接。
79.蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
80.终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。
81.图2是本技术实施例的终端设备100的软件结构框图。
82.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。如图2所示,在本技术中,双系统的每个系统分别拥有各自对应的应用程序层和应用程序框架层,且双系统共用同一个系统库以及共用同一个内核层。
83.应用程序层可以包括一系列应用程序包。
84.如图2所示,应用程序包可以包括应用市场,文件管理,设置,微信,信息,闹钟,图库,日历,wlan等应用程序。在本技术实施例中,第一系统的应用程序层还包括第一系统的安装应用程序服务(packageinstaller),第二系统的应用程序层还包括第二系统的安装应用程序服务(packageinstaller)。
85.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
86.如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
87.其中,在本技术实施例中,第一系统的应用程序框架层还包括第一系统的管理应用程序服务(packagemanager),第二系统的应用程序框架层还包括第二系统的管理应用程序服务(packagemanager)。
88.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状
态栏,锁定屏幕,截取屏幕等。
89.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。
90.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信息通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
91.电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
92.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
93.通知管理器使应用程序可以在状态栏中显示通知信息(例如短信息的消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
94.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
95.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
96.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
97.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。系统库还包括本技术实施例提供的第一系统和第二系统的共享目录。
98.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
99.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
100.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
101.2d(一种动画方式)图形引擎是2d绘图的绘图引擎。
102.其中,在本技术实施例中,系统库中的共享目录以及表面管理器为双系统共同使用,而媒体库、三维图形处理库、2d图形引擎为双系统中两个系统各自使用。
103.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动以及本技术实施例中的底层驱动。
104.本技术实施例中的终端设备100可以为包括但不限于智能手机、平板电脑、智能作业记录仪、可穿戴电子设备(例如智能手表)、笔记本电脑等电子设备。
105.为了便于理解本技术实施例提供的基于双系统的应用安装方法,下面结合附图对
此进行进一步说明。
106.需要说明的是,本技术实施例中双系统中包括第一系统和第二系统。用户当前操作的系统是前台系统,未操作的系统是后台系统。若本技术实施例中双系统均有权限往其他系统安装应用,则前台系统为第一系统,后台系统为第二系统。若双系统中仅有一个系统具有权限向其他系统安装应用,则定义具有该权限的系统为第一系统,且该第一系统为前台系统时,可实现向其他系统安装应用。
107.图3为本技术实施例提供的基于双系统的应用安装方法的流程示意图。如图3所示,该方法包括以下步骤:
108.在步骤301中,第一系统响应于对目标应用的安装请求,从安装请求中获取安装参数。
109.在一种可能的实施方式中,本技术实施例中会显示针对目标应用的安装引导界面,安装引导界面中包括用于选择安装系统的选项;响应于对选项的选择操作,生成携带安装参数的安装请求。
110.示例性的,相关技术中当用户安装目标应用时,根据当前的系统给予用户对应的选择,如图4所示,当前的系统为第一系统时,只给出图4所示的安装引导界面,目标应用只能安装到第一系统,没有权限安装到第二系统中。而如图5所示,为本技术实施例提供的针对目标应用的安装引导界面,用户可以根据自己的需求在第一系统的安装引导界面选择任意一个选择安装系统的选项,例如点击安装到第一系统的选项,则会生成用于指示在第一系统安装目标应用的第二安装参数;点击安装到第二系统的选项,则会生成用于指示在第二系统安装目标应用的第一安装参数;点击安装到所有系统的选项,则会生成用于指示在第一系统和第二系统安装目标应用的第三安装参数。点击安装到第二系统的选项和安装到所有系统的选项,实现当前的系统为第一系统时,可以将目标应用安装到第二系统中。
111.在一种可能的实施方式中,本技术实施例在安装目标应用时若单一选择了第一系统,则生成用于指示在第一系统安装目标应用的第二安装参数;若单一选择了第二系统,则生成用于指示在第二系统安装目标应用的第一安装参数;若选择了第一系统和第二系统,则生成用于指示在第一系统和第二系统安装目标应用的第三安装参数。
112.其中,本技术实施例中第一系统的安装流程涉及到第一系统的安装应用程序服务(packageinstaller)和第一系统的管理应用程序服务(packagemanager);第二系统的安装流程涉及到第二系统的安装应用程序服务和第二系统的管理应用程序服务。其中,packageinstaller负责安装流程的发起与ui(user interface,用户界面)的回馈显示。本技术中涉及到的所有用户交互界面均是由packageinstaller显示的。packagemanager负责安装流程的实际执行。
113.因此,在本技术实施例中,第一系统响应于对目标应用的安装请求,从安装请求中获取安装参数可以具体实施为:响应于对目标应用的安装请求,第一系统的packageinstaller会发送一个携带有安装参数的安装请求,然后第一系统的packagemanager接收到安装请求后,会获取安装请求中的安装参数并进行检测。例如,若在图5中点击安装到所有系统的选项,安装请求中携带的第三安装参数为install_for_all;若在图5中点击安装到第一系统的选项,安装请求中携带的第二安装参数为install_for_current;若在图5中点击安装到第二系统的选项,安装请求中携带的第一安装参数为
install_for_back。
114.而第一系统的packagemanager接收到安装请求后,会获取安装请求中的安装参数并进行检测,若安装参数为第三安装参数install_for_all,则指示在第一系统和第二系统中安装目标应用,若安装参数为第一安装参数install_for_back,则指示在第二系统中安装目标应用,若安装参数为第二安装参数install_for_current,则指示在第一系统中安装目标应用。本技术中的前台系统为第一系统,packagemanager负责安装流程的实际执行,因此第一系统的packagemanager在安装过程中的执行过程可以概括为如图6所示的步骤:
115.在步骤601中,接收到安装请求并检测安装请求中的安装参数。
116.若在步骤602中,检测出来的安装参数为第三安装参数install_for_all,则在步骤603中,创建并启动后台系统(第二系统)安装流程,然后在步骤604中,执行前台系统(第一系统)安装流程,最后在步骤605中,向第一系统的packageinstaller反馈第二系统和第一系统的安装进度和安装结果,直至步骤610安装结束。
117.若在步骤602中,检测出来的安装参数为第一安装参数install_for_back,则在步骤606中,创建并启动后台系统(第二系统)安装流程,然后在步骤607中,向第一系统的packageinstaller反馈第二系统的安装进度和安装结果,直至步骤610安装结束。
118.若在步骤602中,检测出来的安装参数为第二安装参数install_for_current,则在步骤608中,执行前台系统(第一系统)安装流程,然后在步骤609中,向第一系统的packageinstaller反馈第一系统的安装进度和安装结果,直至步骤610安装结束。
119.在一种可能的实施方式中,packageinstaller负责安装流程的发起与ui的回馈显示,因此第一系统的packageinstaller在安装过程中的执行过程可以概括为如图7所示的步骤:
120.若在步骤701中,在第一系统和第二系统安装目标应用;则在步骤702中,发起带有第三安装参数install_for_all的安装请求;然后在步骤703中,等待第二系统的安装结果,在步骤704中,判断是否收到第二系统的安装结果;若没有收到第二系统的安装结果,则继续执行步骤703,若收到第二系统的安装结果,在步骤705中,等待第一系统的安装结果;在步骤706中,判断是否收到第一系统的安装结果;若没有收到第一系统的安装结果,则继续执行步骤705,若收到第一系统的安装结果,在步骤713中,更新界面,显示安装结果,直至在步骤714中,安装结束。
121.若在步骤701中,在第二系统安装目标应用;则在步骤707中,发起带有第一安装参数install_for_back的安装请求;然后在步骤708中,等待第二系统的安装结果,在步骤709中,判断是否收到第二系统的安装结果;若没有收到第二系统的安装结果,则继续执行步骤708,若收到第二系统的安装结果,则在步骤713中,更新界面,显示安装结果,直至在步骤714中,安装结束。
122.若在步骤701中,在第一系统安装目标应用;则在步骤710中,发起带有第二安装参数install_for_current的安装请求;然后在步骤711中,等待第一系统的安装结果,在步骤712中,判断是否收到第一系统的安装结果;若没有收到第一系统的安装结果,则继续执行步骤711,若收到第一系统的安装结果,则在步骤713中,更新界面,显示安装结果,直至在步骤714中,安装结束。
123.其中前台安装流程可以执行为现有技术中任意一种安装应用的安装流程,本技术
实施例对此不做限制。后台安装流程为步骤302,步骤303和步骤304的内容,为了进一步理解本技术实施例提供的基于双系统的应用安装方法,下面对前文中描述的后台安装流程进行详细介绍。
124.在步骤302中,若安装参数为指示在第二系统中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一系统和第二系统的共享目录中。
125.在步骤303中,通知第二系统从共享目录中读取安装包并执行对目标应用的安装操作。
126.在步骤304中,接收第二系统反馈的目标应用的安装进度并输出显示。
127.在一种可能的实施方式中,若安装参数为第三安装参数,则指示在第一系统和第二系统中均安装目标应用,因此在本技术实施例中还包括:通知第二系统从共享目录中读取安装包并执行对目标应用的安装操作;接收第二系统反馈的目标应用的安装进度并输出显示;同时在确定第二系统成功安装目标应用后,第一系统从共享目录获取目标应用的安装包并执行对目标应用的安装操作,并输出显示第一系统的目标应用的安装进度;第一系统将目标应用安装成功后,显示安装结果。
128.在一种可能的实施方式中,双系统为了隔离数据,实现数据隔离特性,在终端设备开机后,会创建第一系统和第二系统各自专有的数据目录,各自的数据目录创建完成后通过命名空间机制隔离第一系统的数据目录以及第二系统的数据目录,将对应的数据目录隔离给对应的系统使用,所以数据目录中的数据是不互通的。因此为了解决这一问题,在本技术实施例中若安装参数为指示在第二系统中安装目标应用的第一安装参数或者安装参数为指示在第一系统和第二系统中安装目标应用的第三安装参数,需要在创建完成第一系统的数据目录以及第二系统的数据目录之后,且在通过命名空间机制隔离第一系统的数据目录以及第二系统的数据目录之前,第一系统和第二系统分别将各自的数据目录通过挂载管理的方式绑定到共享目录中。
129.示例性的,在双系统中,若将数据目录命名为/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,也就实现了本技术中第一系统和第二系统之间数据交互的方式。
130.在一种可能的实施方式中,因为基于双系统的终端设备的底层驱动的事件是同一
事件,上层有两个系统,只是通知系统的时候可以根据需求控制发送给对应需要的系统而已。因此为了实现通知第二系统从共享目录中读取安装包并执行对目标应用的安装操作,并接收第二系统反馈的目标应用的安装进度并输出显示,本技术实施例中将目标应用的安装包存储到共享目录之后,还通过写第一节点的方式触发底层驱动上报第一事件给第二系统;第一事件用于指示目标应用的安装包已存储至共享目录。并且监听底层驱动发送的第二事件,第二事件用于指示在第二系统中目标应用的安装进度;第二事件是第二系统通过写第二节点的方式触发底层驱动生成的。因此后台安装流程具体可以实施为如图8所示的步骤:
131.在步骤801中,启动后台安装流程。
132.在步骤802中,第一系统将目标应用的安装包存储到共享目录,并在存储完成后写入第一节点。
133.具体实施为,第一系统的packagemanger将目标应用的安装包存储到共享目录,并在存储完成后将存储完成的消息写入第一节点。例如,约定的第一节点为a,存储完成的消息为消息1,则将目标应用的安装包存储到共享目录之后,将消息1写入节点a中。
134.在步骤803中,底层驱动收到第一节点的变化,上报第一事件给第二系统。
135.具体实施为,当底层驱动接收到第一节点的变化,即接收到第一节点中写入存储完成的消息后,会上报第一事件给需要处理第一事件的第二系统。其中第一事件用于指示目标应用的安装包已存储至共享目录。例如,在底层驱动获得消息1后,会上报一个事件e1给第二系统的packagemanger。
136.在步骤804中,第二系统接收到第一事件。
137.具体实施为,第二系统在开机流程中,预先在第二系统的packagemanger中注册对第一事件的监听,以便第二系统的packagemanger接收第一事件。例如,第二系统在开机流程中,预先在第二系统的packagemanger中注册对事件e1的监听,在监听到底层驱动上报事件e1后,第二系统的packagemanger立即接收第一事件e1。
138.在步骤805中,第二系统从共享目录中读取安装包并执行对目标应用的安装操作,并将安装进度写入第二节点。
139.具体实施为,第二系统的packagemanger接收到底层驱动上报的第一事件并确定是第一系统请求第二系统安装目标应用后,就会从共享目录中读取安装包,在获取安装包后直接执行对目标应用的安装操作。同时在第二系统的安装过程中,可以将安装进度通知给第一系统,通知方式可以参考第一系统通知第二系统的方式,首先约定一个第二节点,将安装进度写入第二节点,以此触发底层驱动上报第二事件给第一系统。例如约定一个第二节点为b,安装进度为消息2,不断地将消息2写入节点b,使得节点b触发底层驱动。
140.在步骤806中,底层驱动收到第二节点的变化,上报第二事件给第一系统。
141.具体实施为,当底层驱动接收到第二节点的变化,即接收到第二节点中写入第二系统的安装进度的消息后,会上报第二事件给需要处理第二事件的第一系统。其中第二事件用于指示在第二系统中目标应用的安装进度。例如,在底层驱动获得消息2后,会上报一个事件e2给第一系统的packagemanger。
142.在步骤807中,第一系统接收到第二事件。
143.具体实施为,第一系统在开机流程中,预先在第一系统的packagemanger中注册对
第二事件的监听,以便第一系统的packagemanger接收到第二事件。例如,第一系统在开机流程中,预先在第一系统的packagemanger中注册对事件e2的监听,在监听到底层驱动上报事件e2后,第二系统的packagemanger立即接收第二事件e2。
144.在步骤808中,第一系统更新第二系统对目标应用的安装进度。
145.具体实施为,第一系统的packagemanger在接收到底层驱动上报的第二事件e2后,可以根据第二事件e2的值通知第一系统的packageinstaller更新并显示第二系统对目标应用的安装进度。
146.在步骤809中,在第二系统对目标应用安装完成后,第一系统更新第二系统对目标应用的安装结果。
147.具体实施为,在第一系统的packagemanger在接收到底层驱动上报的第二事件e2后,若第二事件e2的值表示安装进度以显示为安装完成,则第一系统的packagemanger通知第一系统的packageinstaller更新第二系统对目标应用的安装结果。例如,第一系统可以根据第二事件的值显示安装进度,安装进度使用-1-100表示,其中-1表示安装异常,0表示未开始安装,100表示安装完成。当第二事件的值为100时,第一系统认为第二系统安装成功,通知第一系统的packageinstaller更新安装结果为安装成功。当第二事件的值为-1时,第一系统认为第二系统安装过程出现异常,通知第一系统的packageinstaller更新安装结果为安装失败。
148.在步骤810中,第二系统对目标应用的安装流程结束后,发送安装完成通知。
149.其中,第二系统在安装完成后,可以立刻给自己发一个安装完成通知,供下次使用第二系统时提醒用户已安装目标应用。
150.在步骤811中,第二系统流程结束。
151.在步骤812中,第一系统删除共享目录中的目标应用的安装包。
152.在一种可能的实施方式中,为了节省空间,本技术实施例中在目标应用安装完成且第一系统和第二系统均无需安装目标应用时,删除共享目录中的目标应用的安装包。
153.在步骤813中,第一系统流程结束。
154.其中,第一节点和第二节点对于上层的系统而言,可以看作是一个文件,可以写文件内容,只要文件内容改变,底层驱动就能获得消息。
155.在一种可能的实施方式中,本技术实施例中还可以显示对目标应用的安装进度和安装结果的界面:若安装参数为第一安装参数,则显示第二系统对目标应用的安装进度和安装结果;若安装参数为第二安装参数,则显示第一系统对目标应用的安装进度和安装结果;若安装参数为第三安装参数,则同时显示目标应用分别在第一系统和第二系统中的安装进度和安装结果。如图9所示为只显示第一系统和第二系统中任意一个系统对目标应用的安装进度界面和安装结果界面,如图9中的a所示,为任意一个系统对目标应用的安装进度界面,在此界面中会显示在安装目标应用的过程中,任意一个系统对目标应用的安装进度,而如图9中的b所示,为任意一个系统对目标应用的安装结果界面,在此界面中会显示任意一个系统安装目标应用完成,并指示用户可以点击打开按钮打开目标应用或者点击完成按钮退出安装流程。如图10所示为同时显示目标应用分别在第一系统和第二系统中的安装进度界面和安装结果界面,如图10中的a所示,为同时显示目标应用分别在第一系统和第二系统中的安装进度界面,在此界面中会显示在安装目标应用的过程中,第一系统和第二系
统对目标应用的安装进度,而如图10中的b所示,同时显示目标应用分别在第一系统和第二系统中的安装结果界面,在此界面中会显示第一系统和第二系统均安装目标应用完成,并指示用户可以点击打开按钮打开目标应用或者点击完成按钮退出安装流程。
156.基于前文的描述,本技术实施例中双系统包括第一系统和第二系统,前台系统为第一系统,第一系统响应于对目标应用的安装请求,从安装请求中获取安装参数;若安装参数为指示在第二系统中安装目标应用的第一安装参数,则将目标应用的安装包存储在第一系统和第二系统的共享目录中;通知第二系统从共享目录中读取安装包并执行对目标应用的安装操作;接收第二系统反馈的目标应用的安装进度并输出显示。由此,将安装包存储在共享目录中,实现了仅下载一次安装包,就可以在双系统上同时安装目标应用,提高在双系统上同时安装目标应用的效率。
157.由此,将目标应用的安装包存储在第一系统和第二系统的共享目录中,实现了仅在第一系统下载一次目标应用的安装包,就可以在双系统上同时安装目标应用,不需要在第二系统重新下载目标应用的安装包,提高了在双系统上同时安装目标应用的效率,使得在双系统上安装同一个目标应用的过程简单高效,增加了用户的使用体验。
158.在示例性实施例中,本技术还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器120,上述指令可由终端设备100的处理器180执行以完成上述基于双系统的应用安装方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
159.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器180执行时实现如本技术提供的基于双系统的应用安装方法。
160.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
161.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
162.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
163.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
164.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1