CN110018894A - 一种基于Android容器的多***与单***切换方法及装置 - Google Patents
一种基于Android容器的多***与单***切换方法及装置 Download PDFInfo
- Publication number
- CN110018894A CN110018894A CN201910281473.6A CN201910281473A CN110018894A CN 110018894 A CN110018894 A CN 110018894A CN 201910281473 A CN201910281473 A CN 201910281473A CN 110018894 A CN110018894 A CN 110018894A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual system
- switched
- switching
- mode
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于Android容器的多***与单***切换方法,使一个主***和多个虚拟***运行在智能终端上,使不同虚拟***挂载不同目录的数据区,切换为多***模式时,虚拟***开始运行,且只有一个虚拟***进入前台,其他***均在后台运行;切换为单***模式时,主***进入前台,虚拟***停止运行。与现有技术相比,本发明能够为智能终端提供多***与单***共存和切换的解决方案,使用户在场景兼容和功能需求上可以灵活选择,既可以让用户在安全性较高的场景下切换为多***模式,也可以在智能终端的CPU、内存等性能指标不佳的情况下切换为单***模式,整个切换过程中不会引起数据的丢失。
Description
技术领域
本发明涉及Android移动***控制技术领域,特别是一种基于Android容器的多***与单***切换方法及装置。
背景技术
当前移动智能终端已经非常普及,智能终端的功能和性能也日益完善,用户在方便地进行通信、流媒体、文档处理、移动支付及各种专业应用时,会产生很多需要保密的数据,从而在数据安全上提出了更高的要求。
目前移动智能终端主流是单***方案,个别智能终端针对安全性较高的需求采用多***方案,但无论是哪一种智能终端,都只支持一种方案,在场景兼容和功能需求上不能由用户灵活选择。多***的运行对智能终端的CPU、内存等性能指标都有较高的要求,一旦达不到,在切换过程中会引起数据的丢失。
发明内容
本发明的目的是要提供一种基于Android容器的多***与单***切换方法及装置。
为达到上述目的,本发明是按照以下技术方案实施的:
一种基于Android容器的多***与单***切换方法,使一个主***和多个虚拟***运行在智能终端上,使不同虚拟***挂载不同目录的数据区,切换为多***模式时,虚拟***开始运行,且只有一个虚拟***进入前台,其他***均在后台运行;切换为单***模式时,主***进入前台,虚拟***停止运行。
进一步,所述多***与单***切换方法包括主动切换和监听切换两种模式,所述主动切换是:在智能终端上设置主动切换接口,当用户触发了***切换操作时,在cells中启动线程创建Socket通信监听persist.sys.stop.vpsystem***属性,当属性值为TRUE时,切换为单***模式;当属性值为FALSE时,切换为多***模式;所述监听切换是:当自动切换标志autoSwitch打开时,在cells中启动线程创建Socket通信实时监测CPU、内存指标,当CPU使用率超过阈值Cmax或内存占有率超过阈值Mmax时,多***模式切换为单***模式,当CPU使用率没有超过阈值Cmax且内存占有率没有超过阈值Mmax时,由单***模式切换为多***模式。
进一步,所述主动切换接口为桌面按钮、快捷键或手势。
另外,本发明还提供了一种基于Android容器的多***与单***切换装置,包括:
配置模块,用于初始化cells架构,具体包括:初始化虚拟***ID、进程标识符PID、自动切换标志autoSwitch,初始化虚拟***rc文件,创建虚拟***配置文件、数据路径,挂载数据区及文件***,创建虚拟***列表;
主调度模块,该模块为cells架构中的核心模块,cells通过不同的命名空间将虚拟***相互隔离,不同的虚拟***拥有不同的ID、不同的进程标识符PID和Context,确保在一个虚拟***中运行的Bug或恶意应用程序不会对其他虚拟***产生负面影响,每个虚拟***维护各自独立的数据区,即使在虚拟***停止运行的状态下,数据区的挂载点也不会unMount;通过维护虚拟***的前后台运行状态,实现对硬件设备的共享访问,硬件资源由当前运行的前台虚拟***所拥有;cells同步维护Kernel中的虚拟***进程PID和Framework中的Context;多个虚拟***通过Socket通道进行通信,Socket通信中采用消息队列的入栈出栈机制;所述主调度模块主要用于获取虚拟***列表,增加、删除、启动、停止指定虚拟***,根据虚拟***ID、进程标识符PID或Name切换到指定***,并维护虚拟***的状态。
***切换模块,用于在智能终端上提供主动切换接口,当用户触发了主动切换接口时,persist.sys.stop.vpsystem***属性值发生改变,当属性值为TRUE时,切换为单***模式;当属性值为FALSE时,切换为多***模式;或当自动切换标志autoSwitch打开时,主***会实时监测CPU、内存等性能指标,当CPU使用率超过阈值Cmax或内存占有率超过阈值Mmax时,多***模式切换为单***模式,当CPU使用率没有超过阈值Cmax且内存占有率没有超过阈值Mmax时,由单***模式切换为多***模式。
与现有技术相比,本发明能够为智能终端提供多***与单***共存和切换的解决方案,使用户在场景兼容和功能需求上可以灵活选择,既可以让用户在安全性较高的场景下切换为多***模式,也可以在智能终端的CPU、内存等性能指标不佳的情况下切换为单***模式,整个切换过程中不会引起数据的丢失。
附图说明
图1为本发明实施例的一种基于Android容器的多***与单***切换装置的结构框图。
图2为本发明实施例的一种基于Android容器的多***与单***切换方法的原理图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步的详细说明。此处所描述的具体实施例仅用于解释本发明,并不用于限定发明。
如图1所示,本实施例的一种基于Android容器的多***与单***切换装置,包括:
配置模块1,用于初始化cells架构,具体包括:初始化虚拟***ID、进程标识符PID、自动切换标志autoSwitch,初始化虚拟***rc文件,创建虚拟***配置文件、数据路径,挂载数据区及文件***,创建虚拟***列表;
主调度模块2,该模块为cells架构中的核心模块,cells通过不同的命名空间将虚拟***相互隔离,不同的虚拟***拥有不同的ID、不同的进程标识符PID和Context,确保在一个虚拟***中运行的Bug或恶意应用程序不会对其他虚拟***产生负面影响,每个虚拟***维护各自独立的数据区,即使在虚拟***停止运行的状态下,数据区的挂载点也不会unMount;通过维护虚拟***的前后台运行状态,实现对硬件设备的共享访问,硬件资源由当前运行的前台虚拟***所拥有;cells同步维护Kernel中的虚拟***进程PID和Framework中的Context;多个虚拟***通过Socket通道进行通信,Socket通信中采用消息队列的入栈出栈机制;所述主调度模块主要用于获取虚拟***列表,增加、删除、启动、停止指定虚拟***,根据虚拟***ID、进程标识符PID或Name切换到指定***,并维护虚拟***的状态。
***切换模块3,用于在智能终端上提供主动切换接口,当用户触发了主动切换接口时,persist.sys.stop.vpsystem***属性值发生改变,当属性值为TRUE时,切换为单***模式;当属性值为FALSE时,切换为多***模式;或当自动切换标志autoSwitch打开时,主***会实时监测CPU、内存等性能指标,当CPU使用率超过阈值Cmax或内存占有率超过阈值Mmax时,多***模式切换为单***模式,当CPU使用率没有超过阈值Cmax且内存占有率没有超过阈值Mmax时,由单***模式切换为多***模式。
如图2所示,使用上述装置进行多***与单***切时,具体步骤如下:
(1)智能终端开机后,在***init.rc文件中启动cells运行,配置模块1启动初始化cells架构,包括初始化自动切换标志autoSwitch,创建并初始化虚拟***配置文件和rc文件,创建虚拟***列表。虚拟***列表中的每个虚拟***包含***ID、进程标识符PID、运行状态等信息。虚拟***的运行状态包括启动START、运行RUNNING、激活ACTIVE、停止STOP等状态。
(2)读取虚拟***列表,循环读取每个虚拟***的配置文件,根据获取到的虚拟***ID、进程标识符PID等配置信息启动线程创建虚拟***节点Node,挂载数据区及文件***,运行状态置为START。虚拟***的数据区和文件***挂载在目录data/cells/虚拟***ID/路径下。
(3)启动线程thread1创建Socket实时监听switch切换指令,根据在主调度模块2中接收到的指令执行相应的创建create/销毁destroy、启动start/停止stop、切换switch、设置/获取ID、Mount/UnMount等操作。其中,创建create指令为创建一个新的虚拟***,销毁destroy指令为销毁指定的虚拟***。启动start指令为启动一个指定的虚拟***,虚拟***状态为由START变为RUNNING,停止stop指令为停止一个指定的虚拟***,虚拟***状态由RUNNING变为STOP。切换switch指令为将当前处于ACTIVE状态的前台虚拟***置于后台运行,运行状态由ACTIVE变为RUNNING;将处于指定的RUNNING运行状态的后台虚拟***置于前台运行,运行状态由RUNNING变为ACTIVE。虚拟***切换时同步维护Kernel中的虚拟***进程PID和Framework中的Context。
(4)启动线程thread2创建Socket实时监听persist.sys.stop.vpsystem***属性,当属性值为TRUE时,启动用户切换模块3,将当前运行状态为ACTIVE的虚拟***ID保存,并向主调度模块发送停止stop虚拟***和切换switch主***的指令,所有虚拟***的运行状态变为STOP,主***的运行状态变为ACTIVE。当属性值为FALSE时,启动用户切换模块3,向主调度模块发送启动start虚拟***和切换switch虚拟***的指令,主***运行状态变为STOP,保存的虚拟***运行状态变为ACTIVE,其余虚拟***运行状态变为RUNNING。
(5)当自动切换标志autoSwitch为TRUE时,启动线程thread3创建Socket实时监测CPU、内存等性能指标。当当前为多***运行且CPU使用率超过阈值Cmax或内存占有率超过阈值Mmax时,将当前运行状态为ACTIVE的虚拟***ID保存,并向主调度模块发送停止stop虚拟***和切换switch主***的指令,所有虚拟***的运行状态变为STOP,主***的运行状态变为ACTIVE。当当前为单***且CPU使用率低于阈值Cmax且内存占有率低于阈值Mmax时,向主调度模块发送启动start虚拟***和切换switch虚拟***的指令,主***运行状态变为STOP,保存的虚拟***运行状态变为ACTIVE,其余虚拟***运行状态变为RUNNING。其中Cmax和Mmax可通过***属性配置。
综述,本发明能为智能终端提供多***/单***共存和切换的解决方案,使用户在场景兼容和功能需求上可以灵活选择,既可以让用户在安全性较高的场景下切换为多***模式,也可以在智能终端的CPU、内存等性能指标不佳的情况下切换为单***模式,整个切换过程中不会引起数据的丢失。
本发明的技术方案不限于上述具体实施例的限制,凡是根据本发明的技术方案做出的技术变形,均落入本发明的保护范围之内。
Claims (4)
1.一种基于Android容器的多***与单***切换方法,其特征在于,使一个主***和多个虚拟***运行在智能终端上,使不同虚拟***挂载不同目录的数据区,切换为多***模式时,虚拟***开始运行,且只有一个虚拟***进入前台,其他***均在后台运行;切换为单***模式时,主***进入前台,虚拟***停止运行。
2.根据权利要求1所述的基于Android容器的多***与单***切换方法,其特征在于:所述多***与单***切换方法包括主动切换和监听切换两种模式,所述主动切换是:在智能终端上设置主动切换接口,当用户触发了***切换操作时,在cells中启动线程创建Socket通信监听persist.sys.stop.vpsystem***属性,当属性值为TRUE时,切换为单***模式;当属性值为FALSE时,切换为多***模式;所述监听切换是:当自动切换标志autoSwitch打开时,在cells中启动线程创建Socket通信实时监测CPU、内存指标,当CPU使用率超过阈值Cmax或内存占有率超过阈值Mmax时,多***模式切换为单***模式,当CPU使用率没有超过阈值Cmax且内存占有率没有超过阈值Mmax时,由单***模式切换为多***模式。
3.根据权利要求1所述的基于Android容器的多***与单***切换方法,其特征在于:所述主动切换接口为桌面按钮、快捷键或手势。
4.一种基于Android容器的多***与单***切换装置,其特征在于,包括:
配置模块,用于初始化cells架构,具体包括:初始化虚拟***ID、进程标识符PID、自动切换标志autoSwitch,初始化虚拟***rc文件,创建虚拟***配置文件、数据路径,挂载数据区及文件***,创建虚拟***列表;
主调度模块,该模块为cells架构中的核心模块,cells通过不同的命名空间将虚拟***相互隔离,不同的虚拟***拥有不同的ID、不同的进程标识符PID和Context,确保在一个虚拟***中运行的Bug或恶意应用程序不会对其他虚拟***产生负面影响,每个虚拟***维护各自独立的数据区,即使在虚拟***停止运行的状态下,数据区的挂载点也不会unMount;通过维护虚拟***的前后台运行状态,实现对硬件设备的共享访问,硬件资源由当前运行的前台虚拟***所拥有;cells同步维护Kernel中的虚拟***进程PID和Framework中的Context;多个虚拟***通过Socket通道进行通信,Socket通信中采用消息队列的入栈出栈机制;所述主调度模块主要用于获取虚拟***列表,增加、删除、启动、停止指定虚拟***,根据虚拟***ID、进程标识符PID或Name切换到指定***,并维护虚拟***的状态。
***切换模块,用于在智能终端上提供主动切换接口,当用户触发了主动切换接口时,persist.sys.stop.vpsystem***属性值发生改变,当属性值为TRUE时,切换为单***模式;当属性值为FALSE时,切换为多***模式;或当自动切换标志autoSwitch打开时,主***会实时监测CPU、内存等性能指标,当CPU使用率超过阈值Cmax或内存占有率超过阈值Mmax时,多***模式切换为单***模式,当CPU使用率没有超过阈值Cmax且内存占有率没有超过阈值Mmax时,由单***模式切换为多***模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281473.6A CN110018894A (zh) | 2019-04-09 | 2019-04-09 | 一种基于Android容器的多***与单***切换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281473.6A CN110018894A (zh) | 2019-04-09 | 2019-04-09 | 一种基于Android容器的多***与单***切换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110018894A true CN110018894A (zh) | 2019-07-16 |
Family
ID=67190808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910281473.6A Pending CN110018894A (zh) | 2019-04-09 | 2019-04-09 | 一种基于Android容器的多***与单***切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110018894A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447692A (zh) * | 2019-01-16 | 2020-07-24 | 成都鼎桥通信技术有限公司 | 多***终端的通话方法、装置、电子设备及存储介质 |
CN113900754A (zh) * | 2021-10-09 | 2022-01-07 | 深圳技德智能科技研究院有限公司 | 共享桌面方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677989A (zh) * | 2013-12-13 | 2014-03-26 | Tcl集团股份有限公司 | 一种利用linux内核实现多***的装置及方法 |
US20140359445A1 (en) * | 2013-06-03 | 2014-12-04 | Shanghai Powermo Information Tech. Co. Ltd. | Audio Management Method for a Multiple-Window Electronic Device |
CN104516782A (zh) * | 2014-12-26 | 2015-04-15 | 上海迈微软件科技有限公司 | 用于进行智能***运行环境切换的方法及其设备 |
CN105183551A (zh) * | 2015-09-10 | 2015-12-23 | 电子科技大学 | 基于Linux容器技术的多Android***之间切换方法 |
CN108279963A (zh) * | 2018-01-05 | 2018-07-13 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android***的智能终端显示虚拟化方法 |
-
2019
- 2019-04-09 CN CN201910281473.6A patent/CN110018894A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359445A1 (en) * | 2013-06-03 | 2014-12-04 | Shanghai Powermo Information Tech. Co. Ltd. | Audio Management Method for a Multiple-Window Electronic Device |
CN103677989A (zh) * | 2013-12-13 | 2014-03-26 | Tcl集团股份有限公司 | 一种利用linux内核实现多***的装置及方法 |
CN104516782A (zh) * | 2014-12-26 | 2015-04-15 | 上海迈微软件科技有限公司 | 用于进行智能***运行环境切换的方法及其设备 |
CN105183551A (zh) * | 2015-09-10 | 2015-12-23 | 电子科技大学 | 基于Linux容器技术的多Android***之间切换方法 |
CN108279963A (zh) * | 2018-01-05 | 2018-07-13 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android***的智能终端显示虚拟化方法 |
Non-Patent Citations (1)
Title |
---|
张少鑫,: "移动终端语音与数据通信虚拟化技术的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447692A (zh) * | 2019-01-16 | 2020-07-24 | 成都鼎桥通信技术有限公司 | 多***终端的通话方法、装置、电子设备及存储介质 |
CN113900754A (zh) * | 2021-10-09 | 2022-01-07 | 深圳技德智能科技研究院有限公司 | 共享桌面方法、装置、计算机设备和存储介质 |
CN113900754B (zh) * | 2021-10-09 | 2023-10-31 | 深圳技德智能科技研究院有限公司 | 共享桌面方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100517236C (zh) | 智能卡嵌入式操作***及其控制方法 | |
CN103154922B (zh) | 虚拟usb复合装置枚举 | |
EP3166254B1 (en) | Virtual-operation administration and maintenance deployment method, device and virtual network system | |
US10623415B2 (en) | Virtual network function (VNF) hardware trust in a network function virtualization (NFV) software defined network (SDN) | |
CN110018894A (zh) | 一种基于Android容器的多***与单***切换方法及装置 | |
CN103530193A (zh) | 用于调节应用进程的方法和设备 | |
US20150223252A1 (en) | Resource Allocation Method and Device | |
WO2015027771A1 (zh) | 一种虚拟机的资源配置方法和通信设备 | |
CN106888111B (zh) | 一种解决双机集群fc-san切换的方法 | |
CN106031227A (zh) | 一种数据流量管理方法及装置 | |
EP2466943B1 (en) | Method and device for monitoring running state of card | |
CN102710486B (zh) | S通道状态通告方法和设备 | |
CN106462455B (zh) | 进程接替的方法和装置 | |
CN102497288A (zh) | 一种双机备份方法和双机***实现装置 | |
CN108345490B (zh) | 一种nfv中部署虚拟机的方法和*** | |
EP4068708A1 (en) | Network operation method, apparatus, and device and storage medium | |
CN106888475B (zh) | 无线制式的处理方法、装置及基站 | |
CN106557404B (zh) | 一种应用控制的方法及移动终端 | |
CN109673027B (zh) | 多集中单元cu融合方法、相应设备及*** | |
CN103914335A (zh) | 一种后台服务的调用方法、设备和*** | |
WO2020108537A1 (zh) | 一种基于软件定义的虚拟网络资源分配*** | |
CN112363836A (zh) | 一种Android***相机资源管控的方法 | |
CN110333973A (zh) | 一种多机热备的方法和*** | |
CN105338077A (zh) | 一种智能家居管理方法及终端 | |
CN112015515B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |
|
RJ01 | Rejection of invention patent application after publication |