CN110018894A - 一种基于Android容器的多***与单***切换方法及装置 - Google Patents

一种基于Android容器的多***与单***切换方法及装置 Download PDF

Info

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
Application number
CN201910281473.6A
Other languages
English (en)
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.)
Xian International University
Original Assignee
Xian International University
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 Xian International University filed Critical Xian International University
Priority to CN201910281473.6A priority Critical patent/CN110018894A/zh
Publication of CN110018894A publication Critical patent/CN110018894A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation 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移动***控制技术领域,特别是一种基于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时,由单***模式切换为多***模式。
CN201910281473.6A 2019-04-09 2019-04-09 一种基于Android容器的多***与单***切换方法及装置 Pending CN110018894A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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***的智能终端显示虚拟化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
张少鑫,: "移动终端语音与数据通信虚拟化技术的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
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