CN104216726A - Android虚拟机加载方法及装置 - Google Patents
Android虚拟机加载方法及装置 Download PDFInfo
- Publication number
- CN104216726A CN104216726A CN201310219141.8A CN201310219141A CN104216726A CN 104216726 A CN104216726 A CN 104216726A CN 201310219141 A CN201310219141 A CN 201310219141A CN 104216726 A CN104216726 A CN 104216726A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- android
- running example
- configuration
- manager object
- 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.)
- Granted
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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- 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/45562—Creating, deleting, cloning 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/4401—Bootstrapping
Abstract
一种Android虚拟机加载方法,包括:加载层级引导对象;通过所述层级引导对象加载虚拟机管理对象;通过所述虚拟机管理对象读取虚拟机配置;根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。此外,还提供了一种Android虚拟机加载装置。上述Android虚拟机加载方法及装置能够提高虚拟机运行实例之间的切换速度。
Description
技术领域
本发明涉及移动互联网技术领域,特别是涉及一种Android虚拟机加载方法及装置。
背景技术
目前Android移动设备上的安全问题越来越多,无论是病毒还是系统漏洞都一直不断地在出现,而Android设备上的应用却越来越多,越来越重要,比如:移动支付,手机证券等等。而目前的安全软件能提供的保护相当有限,因此用户非常希望有一个绝对干净安全的环境来完成他重要的操作。
要提供这样一个干净安全的环境,虚拟化或多操作系统显然是个比较好的解决方案。
然而,发明人经分析发现,传统技术中至少存在以下问题:现有技术中的Android虚拟化方法为安装多个版本的操作系统,每个操作系统作为独立的虚拟机加载运行,若需要在虚拟机之间切换时,只能通过重启后重新选择虚拟机来启动,也就是说,是一种冷切换的方式,从而使得虚拟机之间的切换速度较慢。
发明内容
基于此,有必要提供一种能提高虚拟机之间的切换速度的Android虚拟机加载方法。
一种Android虚拟机加载方法,包括:
加载层级引导对象;
通过所述层级引导对象加载虚拟机管理对象;
通过所述虚拟机管理对象读取虚拟机配置;
根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
此外,还有必要提供一种能提高虚拟机之间的切换速度的Android虚拟机加载装置。
一种Android虚拟机加载装置,包括:
引导对象加载模块,用于加载层级引导对象;
管理对象加载模块,用于通过所述层级引导对象加载虚拟机管理对象;
配置读取模块,用于通过所述虚拟机管理对象读取虚拟机配置;
虚拟机初始化模块,用于根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
上述Android虚拟机加载方法及装置,由层级引导对象引导记载虚拟机管理对象,然后由虚拟机管理对象加载多个虚拟机运行实例,使得在虚拟机运行实例之间进行切换时,可通过虚拟机管理对象在其加载的多个虚拟机运行实例之间进行切换,而不需要重启Android设备,重新在Bootloader引导时选择相应的虚拟机进行加载,使得虚拟机运行实例之间的切换为热切换,从而提高了切换速度。
附图说明
图1为一个实施例中Android虚拟机加载方法的流程图;
图2为一个实施例中Android系统层级架构示意图;
图3为一个实施例中基于Bootloader层引导的虚拟机层级架构示意图;
图4为一个实施例中基于Linux kernel层引导的虚拟机层级架构示意图;
图5为一个实施例中Android虚拟机加载装置的结构示意图;
图6为另一个实施例中Android虚拟机加载装置的结构示意图;
图7为另一个实施例中Android虚拟机加载装置的结构示意图。
具体实施方式
在一个实施例中,如图1所示,一种Android虚拟机加载方法,该方法完全依赖于计算机程序,该计算机程序可运行于基于Android系统的移动设备上,例如Android智能手机、Android平板电脑、Android智能眼镜等。
如图2所示,Android系统为多层结构,自下而上依次包括:Bootloader层、Linux Kernel层、Android Runtime层、Application Framework层和Application层。
其中,Bootloader层为引导层,用于初始化硬件设备、建立内存空间映射表,将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
Linux Kernel层即为Linux Kernel实例,为运行于Android操作系统底层的用于将代码解析成机器语言的Linux层内核,其中包含硬件设备的驱动程序,例如摄像头驱动、蓝牙适配器驱动、触摸屏驱动和USB驱动等。
Android Runtime层用于解释执行Android代码的Android层内核,且包含有Android系统函数运行库,例如WebKit库、SSL库和SQLite库等。
Application Framework层为应用程序框架层,用于控制上层应用的加载、运行和注销,并为上层应用提供多种服务。例如Location Manager组件、XMPPService组件和Activity Manager组件等。
Application层即为应用软件层,为具体的应用程序,例如手机浏览器、微信和联系人管理应用等。
在本实施例中,该方法包括以下步骤:
步骤S102,加载层级引导对象。
层级引导对象即用于加载Android操作系统内核的程序运行单元。
在本实施例中,层级引导对象可以是Bootloader层对象,如前所述Bootloader层对象可用于加载Linux层内核。也就是说,在Linux Kernel层实现虚拟,由Bootloader层对象引导创建多个Linux Kernel层的虚拟机运行实例。
在本实施例中,Android设备基于ARM处理器,在其嵌入式系统中,BootLoader程序通常占据在嵌入式系统的内存地址的0x00000000处,Android设备在上电或复位时均从该地址0x00000000处开始执行,从而加载层级引导对象。
步骤S104,通过层级引导对象加载虚拟机管理对象。
虚拟机管理对象为用于创建、配置和注销虚拟机运行实例的程序单元。在本实施例中,可通过Bootloader层对象加载虚拟机管理对象对应的程序单元。
步骤S106,通过虚拟机管理对象读取虚拟机配置。
虚拟机配置即需要加载的虚拟机运行实例的配置文件,可包括虚拟机的个数、虚拟机标识、虚拟机运行实例对应的程序文件的文件清单以及对应的存储位置。
在本实施例中,虚拟机配置还包括与虚拟机运行实例对应的处理器状态寄存器指令集(PSR,Processor state Register)。在通过虚拟机管理对象读取处理器状态寄存器指令集后,还可通过调用虚拟机管理对象的指令编码函数对PSR指令集进行编码。
在本实施例中,由于需要对每个虚拟机运行实例提供不同的处理器运行状态,而访问处理器状态寄存器(CPSR)的指令是固定的:比如MRS、MSR、ADDS等,因此,在本实施例中,可通过对与虚拟机运行实例对应的PSR指令集进行编码实现不同虚拟机运行实例具有各自的处理器运行状态。
例如,可将与虚拟机运行实例对应的PSR指令集替换为swi xxx,xxx为各个指令的重新编码,比如MRS指令可编码为0x1000,而MSR为0x1001,但需与虚拟机运行实例对应的软中断编号不一致。按照上述方式对PSR指令集编码后,即可通过软中断指令swi实现处理器状态的虚拟,从而使得后期创建的虚拟机运行实例对应各自独立的处理器状态。
步骤S108,根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
在本实施例中,虚拟机管理对象的虚拟机创建函数即可根据虚拟机配置中定义的虚拟机的个数以及虚拟机运行实例对应的程序文件清单将虚拟机运行实例加载到内存中。
进一步的,还可将前述编码后的PSR指令集设置为与其对应的虚拟机运行实例PSR指令集。
在本实施例中,还可通过虚拟机管理对象拦截中断指令和/或异常指令;获取中断指令和/或异常指令对应的内存地址;根据内存地址将中断指令和/或异常指令传递给对应的虚拟机运行实例的中断处理函数和/或异常处理函数。
由于各个虚拟机运行实例对应的中断表和异常表在内存中位置固定。因此可根据内存地址判断中断指令和/或异常指令所属的虚拟机运行实例,从而将各个虚拟机运行实例各自的中断和/或异常交由其自身的中断处理函数和/或异常处理函数处理。
在本实施例中,基于Bootloader层级引导对象的虚拟机系统架构即如图3所示。
在另一个实施例中,层级引导对象为Linux Kernel层对象,Linux Kernel层对象可用于加载Android Runtime层即Android内核。也就是说,在AndroidRuntime层实现虚拟,由Linux Kernel层对象引导创建多个Android Runtime层的虚拟机运行实例。例如,可预先在系统init.rc配置中移除zygote进程的启动而加入虚拟机管理对象的启动,从而由Linux Kernel层对象引导创建虚拟机管理对象。
在本实施例中,根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例的步骤可具体为:
根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建zygote进程,通过zygote进程创建基于Android Runtime层的虚拟机运行实例。
也就是说,可通过Linux Kernel层对象加载虚拟机管理对象,然后由虚拟机管理对象根据虚拟机配置中定义的虚拟机运行实例的个数以及各自的虚拟机标识创建多个zygote进程(也叫种子进程),然后由每个种子进程创建各自的虚拟机运行实例。在本实施例中,基于Linux Kernel层级引导对象的虚拟机系统架构可如图4所示。
基于Linux Kernel层对象引导的方式加载的虚拟机运行实例共用同一个Linux Kernel层,因此在内存中只占据一块区域,使得内存占用较小,从而提高了内存利用率。
在一个实施例中,还可获取虚拟机切换指令,根据虚拟机切换指令调用虚拟机管理对象的虚拟机切换函数切换虚拟机运行实例。
在本实施例对应的应用场景中,用户可通过点击Android设备上的按钮输入虚拟机切换指令,优选地,虚拟机切换指令中可包含用户选择的目标切换的虚拟机运行实例的虚拟机标识。该虚拟机切换指令作为函数参数传递给虚拟机管理对象的虚拟机切换函数,虚拟机切换函数根据该虚拟机标识获取到相应的虚拟机运行实例的内存区域,并将该虚拟机运行实例激活。在显示界面上,用户则无需重启即可快速切换到目标虚拟机运行实例上。
在一个实施例中,还可获取虚拟机创建指令,根据虚拟机创建指令调用虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
也就是说,用户可在Android设备开机使用中随时创建新的虚拟机运行实例。优选地,虚拟机创建指令中还可包括用户输入的虚拟机创建参数,例如虚拟机标识等参数信息。虚拟机创建函数则可根据该参数创建虚拟机运行实例。
在一个实施例中,如图5所示,一种Android虚拟机加载装置,包括:
引导对象加载模块102,用于加载层级引导对象。
管理对象加载模块104,用于通过所述层级引导对象加载虚拟机管理对象。
配置读取模块106,用于通过所述虚拟机管理对象读取虚拟机配置。
虚拟机初始化模块108,用于根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
在一个实施例中,层级引导对象为Bootloader层对象。
虚拟机初始化模块108还用于根据虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建基于Linux Kernel层的虚拟机运行实例。
在一个实施例中,虚拟机配置还包括与虚拟机运行实例对应的处理器状态寄存器指令集。
配置读取模块还用于通过调用虚拟机管理对象的指令编码函数对处理器状态寄存器指令集进行编码。
在一个实施例中,如图6所示,Android虚拟机加载装置还包括指令调度模块110,用于通过虚拟机管理对象拦截中断指令和/或异常指令;获取中断指令和/或异常指令对应的内存地址;根据内存地址将中断指令和/或异常指令传递给对应的虚拟机运行实例的中断处理函数和/或异常处理函数。
在一个实施例中,层级引导对象为Linux Kernel层对象。
虚拟机初始化模块108还用于根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建zygote进程,通过zygote进程创建基于Android Runtime层的虚拟机运行实例。
在一个实施例中,如图6所示,Android虚拟机加载装置还包括虚拟机切换模块112,用于获取虚拟机切换指令,根据虚拟机切换指令调用虚拟机管理对象的虚拟机切换函数切换虚拟机运行实例。
在一个实施例中,如图6所示,Android虚拟机加载装置还包括虚拟机创建模块114,用于获取虚拟机创建指令,根据虚拟机创建指令调用虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
上述Android虚拟机加载方法和装置,由层级引导对象引导记载虚拟机管理对象,然后由虚拟机管理对象加载多个虚拟机运行实例,使得在虚拟机运行实例之间进行切换时,可通过虚拟机管理对象在其加载的多个虚拟机运行实例之间进行切换,而不需要重启Android设备,重新在Bootloader引导时选择相应的虚拟机进行加载,使得虚拟机运行实例之间的切换为热切换,从而提高了切换速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本发明实施例还提供了另一种Android虚拟机加载装置,如图7所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(PersonalDigital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图7示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图7,手机包括:射频(Radio Frequency,RF)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(wirelessfidelity,WiFi)模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图7对手机的各个构成部件进行具体的介绍:
RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、长期演进(Long TermEvolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1130可用于接收输入的数字或字符信息,以及产生与手机1100的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1140可包括显示面板1141,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1141。进一步的,触控面板1131可覆盖显示面板1141,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图7中,触控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功能。
手机1100还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1160、扬声器1161,传声器1162可提供用户与手机之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以发送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块1170,但是可以理解的是,其并不属于手机1100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
手机1100还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机1100还可以包括摄像头、蓝牙模块等,在此不再赘述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种Android虚拟机加载方法,包括:
加载层级引导对象;
通过所述层级引导对象加载虚拟机管理对象;
通过所述虚拟机管理对象读取虚拟机配置;
根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
2.根据权利要求1所述的Android虚拟机加载方法,其特征在于,所述层级引导对象为Bootloader层对象;
所述根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例的步骤为:
根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建基于Linux Kernel层的虚拟机运行实例。
3.根据权利要求2所述的Android虚拟机加载方法,其特征在于,所述虚拟机配置还包括与虚拟机运行实例对应的处理器状态寄存器指令集;
所述通过虚拟机管理对象读取虚拟机配置的步骤之后还包括:
通过调用虚拟机管理对象的指令编码函数对所述处理器状态寄存器指令集进行编码。
4.根据权利要求2所述的Android虚拟机加载方法,其特征在于,所述方法还包括:
通过所述虚拟机管理对象拦截中断指令和/或异常指令;
获取所述中断指令和/或异常指令对应的内存地址;
根据所述内存地址将所述中断指令和/或异常指令传递给对应的虚拟机运行实例的中断处理函数和/或异常处理函数。
5.根据权利要求1所述的Android虚拟机加载方法,其特征在于,所述层级引导对象为Linux Kernel层对象;
所述根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例的步骤为:
根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建zygote进程;
通过zygote进程创建基于Android Runtime层的虚拟机运行实例。
6.根据权利要求1至5任一项所述的Android虚拟机加载方法,其特征在于,所述方法还包括:
获取虚拟机切换指令;
根据所述虚拟机切换指令调用所述虚拟机管理对象的虚拟机切换函数切换虚拟机运行实例。
7.根据权利要求1至5任一项所述的Android虚拟机加载方法,其特征在于,所述方法还包括:
获取虚拟机创建指令;
根据所述虚拟机创建指令调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
8.一种Android虚拟机加载装置,其特征在于,包括:
引导对象加载模块,用于加载层级引导对象;
管理对象加载模块,用于通过所述层级引导对象加载虚拟机管理对象;
配置读取模块,用于通过所述虚拟机管理对象读取虚拟机配置;
虚拟机初始化模块,用于根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
9.根据权利要求8所述的Android虚拟机加载装置,其特征在于,所述层级引导对象为Bootloader层对象;
所述虚拟机初始化模块还用于根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建基于Linux Kernel层的虚拟机运行实例。
10.根据权利要求9所述的Android虚拟机加载装置,其特征在于,所述虚拟机配置还包括与虚拟机运行实例对应的处理器状态寄存器指令集;
所述配置读取模块还用于通过调用虚拟机管理对象的指令编码函数对所述处理器状态寄存器指令集进行编码。
11.根据权利要求9所述的Android虚拟机加载装置,其特征在于,所述装置还包括指令调度模块,用于通过所述虚拟机管理对象拦截中断指令和/或异常指令;获取所述中断指令和/或异常指令对应的内存地址;根据所述内存地址将所述中断指令和/或异常指令传递给对应的虚拟机运行实例的中断处理函数和/或异常处理函数。
12.根据权利要求8所述的Android虚拟机加载装置,其特征在于,所述层级引导对象为Linux Kernel层对象;
所述虚拟机初始化模块还用于根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建zygote进程;通过zygote进程创建基于AndroidRuntime层的虚拟机运行实例。
13.根据权利要求8至12任一项所述的Android虚拟机加载装置,其特征在于,所述装置还包括虚拟机切换模块,用于获取虚拟机切换指令;根据所述虚拟机切换指令调用所述虚拟机管理对象的虚拟机切换函数切换虚拟机运行实例。
14.根据权利要求8至12任一项所述的Android虚拟机加载装置,其特征在于,所述装置还包括虚拟机创建模块,用于获取虚拟机创建指令;根据所述虚拟机创建指令调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310219141.8A CN104216726B (zh) | 2013-06-04 | 2013-06-04 | Android虚拟机加载方法及装置 |
PCT/CN2013/088550 WO2014194619A1 (en) | 2013-06-04 | 2013-12-04 | Method and device for loading android virtual machine application |
US14/478,030 US9354919B2 (en) | 2013-06-04 | 2014-09-05 | Method and device for loading android virtual machine application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310219141.8A CN104216726B (zh) | 2013-06-04 | 2013-06-04 | Android虚拟机加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216726A true CN104216726A (zh) | 2014-12-17 |
CN104216726B CN104216726B (zh) | 2016-08-10 |
Family
ID=52007479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310219141.8A Active CN104216726B (zh) | 2013-06-04 | 2013-06-04 | Android虚拟机加载方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9354919B2 (zh) |
CN (1) | CN104216726B (zh) |
WO (1) | WO2014194619A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293880A (zh) * | 2016-08-10 | 2017-01-04 | 北京奇虎科技有限公司 | 在Windows系统上运行Android应用程序的方法及装置 |
CN107491340A (zh) * | 2017-07-31 | 2017-12-19 | 上海交通大学 | 跨物理机的巨型虚拟机实现方法 |
CN108124475A (zh) * | 2017-12-29 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 |
CN110688198A (zh) * | 2019-09-24 | 2020-01-14 | 网易(杭州)网络有限公司 | 系统调用方法、装置和电子设备 |
WO2019170176A3 (en) * | 2019-06-28 | 2020-04-30 | Alibaba Group Holding Limited | System and method for data processing |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10685142B2 (en) | 2015-02-02 | 2020-06-16 | Indiana University Research And Technology Corporation | External resource control of mobile devices |
US10133868B2 (en) | 2016-01-10 | 2018-11-20 | Apple Inc. | Switching users and sync bubble for EDU mode |
US10192055B2 (en) * | 2016-01-10 | 2019-01-29 | Apple Inc. | Log in/log out process for EDU mode |
CN106126260A (zh) * | 2016-07-01 | 2016-11-16 | 深圳云之家网络有限公司 | 一种数据延迟加载方法及装置 |
CN111078104B (zh) * | 2019-10-21 | 2023-08-08 | 福建升腾资讯有限公司 | 一种云桌面上的多点触控设备的重定向方法及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162901A1 (en) * | 2006-01-12 | 2007-07-12 | Samsung Electronics Co., Ltd. | Operating system switching device and operating system switching method |
CN101383688A (zh) * | 2007-09-06 | 2009-03-11 | 凹凸科技(中国)有限公司 | 数据通信装置及保持数据通信装置高可用性的方法 |
CN101493781A (zh) * | 2008-01-24 | 2009-07-29 | 中国长城计算机深圳股份有限公司 | 一种虚拟机系统及其启动方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152582B2 (en) * | 2010-10-01 | 2015-10-06 | Z124 | Auto-configuration of a docked system in a multi-OS environment |
US7370324B2 (en) * | 2003-09-30 | 2008-05-06 | Intel Corporation | Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment |
WO2007036072A1 (en) * | 2005-09-29 | 2007-04-05 | Intel Corporation | Apparatus and method for expedited virtual machine (vm) launch in vm cluster environment |
US8468533B2 (en) * | 2008-04-28 | 2013-06-18 | Panasonic Corporation | Virtual machine control device, method, and program wherein a switching task used to switch to the highest priority virtual machines is the highest priority task in the current virtual machine and the virtual machine that is the switching target |
US8775781B2 (en) * | 2010-03-25 | 2014-07-08 | Microsoft Corporation | Intelligent boot device selection and recovery |
US8943259B2 (en) * | 2010-11-16 | 2015-01-27 | Vmware, Inc. | Relieving memory pressure in a host using database memory management |
US20140053272A1 (en) * | 2012-08-20 | 2014-02-20 | Sandor Lukacs | Multilevel Introspection of Nested Virtual Machines |
-
2013
- 2013-06-04 CN CN201310219141.8A patent/CN104216726B/zh active Active
- 2013-12-04 WO PCT/CN2013/088550 patent/WO2014194619A1/en active Application Filing
-
2014
- 2014-09-05 US US14/478,030 patent/US9354919B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070162901A1 (en) * | 2006-01-12 | 2007-07-12 | Samsung Electronics Co., Ltd. | Operating system switching device and operating system switching method |
CN101383688A (zh) * | 2007-09-06 | 2009-03-11 | 凹凸科技(中国)有限公司 | 数据通信装置及保持数据通信装置高可用性的方法 |
CN101493781A (zh) * | 2008-01-24 | 2009-07-29 | 中国长城计算机深圳股份有限公司 | 一种虚拟机系统及其启动方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293880A (zh) * | 2016-08-10 | 2017-01-04 | 北京奇虎科技有限公司 | 在Windows系统上运行Android应用程序的方法及装置 |
CN106293880B (zh) * | 2016-08-10 | 2019-12-13 | 北京奇虎科技有限公司 | 在Windows系统上运行Android应用程序的方法及装置 |
CN107491340A (zh) * | 2017-07-31 | 2017-12-19 | 上海交通大学 | 跨物理机的巨型虚拟机实现方法 |
CN107491340B (zh) * | 2017-07-31 | 2020-07-14 | 上海交通大学 | 跨物理机的巨型虚拟机实现方法 |
CN108124475A (zh) * | 2017-12-29 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 |
WO2019127476A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 |
CN108124475B (zh) * | 2017-12-29 | 2022-05-20 | 达闼机器人股份有限公司 | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 |
WO2019170176A3 (en) * | 2019-06-28 | 2020-04-30 | Alibaba Group Holding Limited | System and method for data processing |
US10713176B2 (en) | 2019-06-28 | 2020-07-14 | Alibaba Group Holding Limited | System and method for data processing |
US10877899B2 (en) | 2019-06-28 | 2020-12-29 | Advanced New Technologies Co., Ltd. | System and method for data processing |
CN110688198A (zh) * | 2019-09-24 | 2020-01-14 | 网易(杭州)网络有限公司 | 系统调用方法、装置和电子设备 |
CN110688198B (zh) * | 2019-09-24 | 2021-03-02 | 网易(杭州)网络有限公司 | 系统调用方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2014194619A1 (en) | 2014-12-11 |
CN104216726B (zh) | 2016-08-10 |
US9354919B2 (en) | 2016-05-31 |
US20140380313A1 (en) | 2014-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216726B (zh) | Android虚拟机加载方法及装置 | |
CN103500002B (zh) | 应用程序管理的方法、装置及终端设备 | |
CN104134034B (zh) | 控制应用运行的方法和装置 | |
CN104252379B (zh) | 图片缩略图显示方法和装置 | |
CN103399633B (zh) | 一种无线遥控方法及移动终端 | |
CN103455407A (zh) | 一种移动终端cpu占用率监测方法、装置及移动终端 | |
CN104571787A (zh) | 一种消息显示方法和通信终端 | |
CN103310004A (zh) | 未读消息数目显示方法、装置和设备 | |
CN103488939A (zh) | 一种提示用户的方法、装置及终端 | |
CN103389863A (zh) | 一种显示控制方法和装置 | |
CN104636047A (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN105808060A (zh) | 一种播放动画的方法和装置 | |
CN104252341A (zh) | 应用程序的换肤方法、装置及应用程序的客户端设备 | |
CN104571908A (zh) | 一种对象选择的方法和装置 | |
CN103491525A (zh) | 一种实现无卡手机的方法、手机和服务器 | |
CN104850406A (zh) | 一种切换页面的方法和装置 | |
CN104915091A (zh) | 一种显示状态栏提示信息的方法和装置 | |
CN104077184A (zh) | 一种应用程序的进程控制方法及计算机系统 | |
CN103713943A (zh) | 基于终端原生操作系统的应用功能实现方法和装置 | |
CN104850274A (zh) | 一种通过红外感应实现按键功能的方法和装置 | |
CN104820546A (zh) | 功能信息展示方法和装置 | |
CN104699501A (zh) | 一种运行应用程序的方法及装置 | |
CN103533139B (zh) | 多卡用户的数据管理方法、装置及移动终端 | |
CN104133752A (zh) | 操作平台的监控方法和装置 | |
CN105739856A (zh) | 一种执行对象操作处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |