Android虚拟机加载方法及装置制造方法

文档序号:6503762阅读:174来源:国知局
Android虚拟机加载方法及装置制造方法
【专利摘要】一种Android虚拟机加载方法,包括:加载层级引导对象;通过所述层级引导对象加载虚拟机管理对象;通过所述虚拟机管理对象读取虚拟机配置;根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。此夕卜,还提供了一种Android虚拟机加载装置。上述Android虚拟机加载方法及装置能够提高虚拟机运行实例之间的切换速度。
【专利说明】Android虚拟机加载方法及装置

【技术领域】
[0001] 本发明涉及移动互联网【技术领域】,特别是涉及一种Android虚拟机加载方法及装 置。

【背景技术】
[0002] 目前Android移动设备上的安全问题越来越多,无论是病毒还是系统漏洞都一直 不断地在出现,而Android设备上的应用却越来越多,越来越重要,比如:移动支付,手机证 券等等。而目前的安全软件能提供的保护相当有限,因此用户非常希望有一个绝对干净安 全的环境来完成他重要的操作。
[0003] 要提供这样一个干净安全的环境,虚拟化或多操作系统显然是个比较好的解决方 案。
[0004] 然而,发明人经分析发现,传统技术中至少存在以下问题:现有技术中的Android 虚拟化方法为安装多个版本的操作系统,每个操作系统作为独立的虚拟机加载运行,若需 要在虚拟机之间切换时,只能通过重启后重新选择虚拟机来启动,也就是说,是一种冷切换 的方式,从而使得虚拟机之间的切换速度较慢。


【发明内容】

[0005] 基于此,有必要提供一种能提高虚拟机之间的切换速度的Android虚拟机加载方 法。
[0006] 一种Android虚拟机加载方法,包括:
[0007] 加载层级引导对象;
[0008] 通过所述层级引导对象加载虚拟机管理对象;
[0009] 通过所述虚拟机管理对象读取虚拟机配置;
[0010] 根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机创建函数创建虚拟机运 行实例。
[0011] 此外,还有必要提供一种能提高虚拟机之间的切换速度的Android虚拟机加载装 置。
[0012] 一种Android虚拟机加载装置,包括:
[0013] 引导对象加载模块,用于加载层级引导对象;
[0014] 管理对象加载模块,用于通过所述层级引导对象加载虚拟机管理对象;
[0015] 配置读取模块,用于通过所述虚拟机管理对象读取虚拟机配置;
[0016] 虚拟机初始化模块,用于根据所述虚拟机配置调用所述虚拟机管理对象的虚拟机 创建函数创建虚拟机运行实例。
[0017] 上述Android虚拟机加载方法及装置,由层级引导对象引导记载虚拟机管理对 象,然后由虚拟机管理对象加载多个虚拟机运行实例,使得在虚拟机运行实例之间进行切 换时,可通过虚拟机管理对象在其加载的多个虚拟机运行实例之间进行切换,而不需要重 启Android设备,重新在Bootloader引导时选择相应的虚拟机进行加载,使得虚拟机运行 实例之间的切换为热切换,从而提高了切换速度。

【专利附图】

【附图说明】
[0018] 图1为一个实施例中Android虚拟机加载方法的流程图;
[0019] 图2为一个实施例中Android系统层级架构示意图;
[0020] 图3为一个实施例中基于Bootloader层引导的虚拟机层级架构示意图;
[0021] 图4为一个实施例中基于Linux kernel层引导的虚拟机层级架构示意图;
[0022] 图5为一个实施例中Android虚拟机加载装置的结构示意图;
[0023] 图6为另一个实施例中Android虚拟机加载装置的结构示意图;
[0024] 图7为另一个实施例中Android虚拟机加载装置的结构示意图。

【具体实施方式】
[0025] 在一个实施例中,如图1所示,一种Android虚拟机加载方法,该方法完全依赖于 计算机程序,该计算机程序可运行于基于Android系统的移动设备上,例如Android智能手 机、Android平板电脑、Android智能眼镜等。
[0026] 如图2所示,Android系统为多层结构,自下而上依次包括:Bootloader层、Linux Kernel 层、Android Runtime 层、Application Framework 层和 Application 层。
[0027] 其中,Bootloader层为引导层,用于初始化硬件设备、建立内存空间映射表,将系 统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
[0028] Linux Kernel层即为Linux Kernel实例,为运行于Android操作系统底层的用于 将代码解析成机器语言的Linux层内核,其中包含硬件设备的驱动程序,例如摄像头驱动、 蓝牙适配器驱动、触摸屏驱动和USB驱动等。
[0029] Andro i d Runt ime层用于解释执行Andro i d代码的Andro id层内核,且包含有 Android系统函数运行库,例如WebKit库、SSL库和SQLite库等。
[0030] Application Framework层为应用程序框架层,用于控制上层应用的加载、运行 和注销,并为上层应用提供多种服务。例如Location Manager组件、XMPPService组件和 Activity Manager 组件等。
[0031] Application层即为应用软件层,为具体的应用程序,例如手机浏览器、微信和联 系人管理应用等。
[0032] 在本实施例中,该方法包括以下步骤:
[0033] 步骤S102,加载层级引导对象。
[0034] 层级引导对象即用于加载Android操作系统内核的程序运行单元。
[0035] 在本实施例中,层级引导对象可以是Bootloader层对象,如前所述Bootloader层 对象可用于加载Linux层内核。也就是说,在Linux Kernel层实现虚拟,由Bootloader层 对象引导创建多个Linux Kernel层的虚拟机运行实例。
[0036] 在本实施例中,Android设备基于ARM处理器,在其嵌入式系统中,BootLoader程 序通常占据在嵌入式系统的内存地址的0x00000000处,Android设备在上电或复位时均从 该地址0x00000000处开始执行,从而加载层级引导对象。
[0037] 步骤S104,通过层级引导对象加载虚拟机管理对象。
[0038] 虚拟机管理对象为用于创建、配置和注销虚拟机运行实例的程序单元。在本实施 例中,可通过Boot loader层对象加载虚拟机管理对象对应的程序单元。
[0039] 步骤S106,通过虚拟机管理对象读取虚拟机配置。
[0040] 虚拟机配置即需要加载的虚拟机运行实例的配置文件,可包括虚拟机的个数、虚 拟机标识、虚拟机运行实例对应的程序文件的文件清单以及对应的存储位置。
[0041] 在本实施例中,虚拟机配置还包括与虚拟机运行实例对应的处理器状态寄存器指 令集(PSR,Processor state Register)。在通过虚拟机管理对象读取处理器状态寄存器指 令集后,还可通过调用虚拟机管理对象的指令编码函数对PSR指令集进行编码。
[0042] 在本实施例中,由于需要对每个虚拟机运行实例提供不同的处理器运行状态,而 访问处理器状态寄存器(CPSR)的指令是固定的:比如MRS、MSR、ADDS等,因此,在本实施例 中,可通过对与虚拟机运行实例对应的PSR指令集进行编码实现不同虚拟机运行实例具有 各自的处理器运行状态。
[0043] 例如,可将与虚拟机运行实例对应的PSR指令集替换为swi XXX,XXX为各个指令 的重新编码,比如MRS指令可编码为0x1000,而MSR为0x1001,但需与虚拟机运行实例对应 的软中断编号不一致。按照上述方式对PSR指令集编码后,即可通过软中断指令swi实现 处理器状态的虚拟,从而使得后期创建的虚拟机运行实例对应各自独立的处理器状态。
[0044] 步骤S108,根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建虚拟机运 行实例。
[0045] 在本实施例中,虚拟机管理对象的虚拟机创建函数即可根据虚拟机配置中定义的 虚拟机的个数以及虚拟机运行实例对应的程序文件清单将虚拟机运行实例加载到内存中。
[0046] 进一步的,还可将前述编码后的PSR指令集设置为与其对应的虚拟机运行实例 PSR指令集。
[0047] 在本实施例中,还可通过虚拟机管理对象拦截中断指令和/或异常指令;获取中 断指令和/或异常指令对应的内存地址;根据内存地址将中断指令和/或异常指令传递给 对应的虚拟机运行实例的中断处理函数和/或异常处理函数。
[0048] 由于各个虚拟机运行实例对应的中断表和异常表在内存中位置固定。因此可根据 内存地址判断中断指令和/或异常指令所属的虚拟机运行实例,从而将各个虚拟机运行实 例各自的中断和/或异常交由其自身的中断处理函数和/或异常处理函数处理。
[0049] 在本实施例中,基于Bootloader层级引导对象的虚拟机系统架构即如图3所示。
[0050] 在另一个实施例中,层级引导对象为Linux Kernel层对象,Linux Kernel层对象 可用于加载Android Runtime层即Android内核。也就是说,在Android Runtime层实现虚 拟,由Linux Kernel层对象引导创建多个Android Runtime层的虚拟机运行实例。例如, 可预先在系统init. rc配置中移除zygote进程的启动而加入虚拟机管理对象的启动,从而 由Linux Kernel层对象引导创建虚拟机管理对象。
[0051] 在本实施例中,根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建虚拟 机运行实例的步骤可具体为:
[0052] 根据虚拟机配置调用虚拟机管理对象的虚拟机创建函数创建zygote进程,通过 zygote进程创建基于Android Runtime层的虚拟机运行实例。
[0053] 也就是说,可通过Linux Kernel层对象加载虚拟机管理对象,然后由虚拟机管 理对象根据虚拟机配置中定义的虚拟机运行实例的个数以及各自的虚拟机标识创建多个 zygote进程(也叫种子进程),然后由每个种子进程创建各自的虚拟机运行实例。在本实施 例中,基于Linux Kernel层级引导对象的虚拟机系统架构可如图4所示。
[0054] 基于Linux Kernel层对象引导的方式加载的虚拟机运行实例共用同一个Linux Kernel层,因此在内存中只占据一块区域,使得内存占用较小,从而提高了内存利用率。
[0055] 在一个实施例中,还可获取虚拟机切换指令,根据虚拟机切换指令调用虚拟机管 理对象的虚拟机切换函数切换虚拟机运行实例。
[0056] 在本实施例对应的应用场景中,用户可通过点击Android设备上的按钮输入虚拟 机切换指令,优选地,虚拟机切换指令中可包含用户选择的目标切换的虚拟机运行实例的 虚拟机标识。该虚拟机切换指令作为函数参数传递给虚拟机管理对象的虚拟机切换函数, 虚拟机切换函数根据该虚拟机标识获取到相应的虚拟机运行实例的内存区域,并将该虚拟 机运行实例激活。在显示界面上,用户则无需重启即可快速切换到目标虚拟机运行实例上。
[0057] 在一个实施例中,还可获取虚拟机创建指令,根据虚拟机创建指令调用虚拟机管 理对象的虚拟机创建函数创建虚拟机运行实例。
[0058] 也就是说,用户可在Android设备开机使用中随时创建新的虚拟机运行实例。优 选地,虚拟机创建指令中还可包括用户输入的虚拟机创建参数,例如虚拟机标识等参数信 息。虚拟机创建函数则可根据该参数创建虚拟机运行实例。
[0059] 在一个实施例中,如图5所示,一种Android虚拟机加载装置,包括:
[0060] 引导对象加载模块102,用于加载层级引导对象。
[0061] 管理对象加载模块104,用于通过所述层级引导对象加载虚拟机管理对象。
[0062] 配置读取模块106,用于通过所述虚拟机管理对象读取虚拟机配置。
[0063] 虚拟机初始化模块108,用于根据所述虚拟机配置调用所述虚拟机管理对象的虚 拟机创建函数创建虚拟机运行实例。
[0064] 在一个实施例中,层级引导对象为Bootloader层对象。
[0065] 虚拟机初始化模块108还用于根据虚拟机配置调用所述虚拟机管理对象的虚拟 机创建函数创建基于Linux Kernel层的虚拟机运行实例。
[0066] 在一个实施例中,虚拟机配置还包括与虚拟机运行实例对应的处理器状态寄存器 指令集。
[0067] 配置读取模块还用于通过调用虚拟机管理对象的指令编码函数对处理器状态寄 存器指令集进行编码。
[0068] 在一个实施例中,如图6所示,Android虚拟机加载装置还包括指令调度模块110, 用于通过虚拟机管理对象拦截中断指令和/或异常指令;获取中断指令和/或异常指令对 应的内存地址;根据内存地址将中断指令和/或异常指令传递给对应的虚拟机运行实例的 中断处理函数和/或异常处理函数。
[0069] 在一个实施例中,层级引导对象为Linux Kernel层对象。
[0070] 虚拟机初始化模块108还用于根据虚拟机配置调用虚拟机管理对象的虚拟机创 建函数创建zygote进程,通过zygote进程创建基于Android Runtime层的虚拟机运行实 例。
[0071] 在一个实施例中,如图6所示,Android虚拟机加载装置还包括虚拟机切换模块 112,用于获取虚拟机切换指令,根据虚拟机切换指令调用虚拟机管理对象的虚拟机切换函 数切换虚拟机运行实例。
[0072] 在一个实施例中,如图6所示,Android虚拟机加载装置还包括虚拟机创建模块 114,用于获取虚拟机创建指令,根据虚拟机创建指令调用虚拟机管理对象的虚拟机创建函 数创建虚拟机运行实例。
[0073] 上述Android虚拟机加载方法和装置,由层级引导对象引导记载虚拟机管理对 象,然后由虚拟机管理对象加载多个虚拟机运行实例,使得在虚拟机运行实例之间进行切 换时,可通过虚拟机管理对象在其加载的多个虚拟机运行实例之间进行切换,而不需要重 启Android设备,重新在Bootloader引导时选择相应的虚拟机进行加载,使得虚拟机运行 实例之间的切换为热切换,从而提高了切换速度。
[0074] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0075] 本发明实施例还提供了另一种Android虚拟机加载装置,如图7所示,为了便于说 明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方 法部分。该终端可以为包括手机、平板电脑、PDA (Personal Digital Assistant,个人数字 助理)、P0S (Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0076] 图7示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图 7,手机包括:射频(Radio Frequency,RF)电路1110、存储器1120、输入单元1130、显示单 元1140、传感器1150、音频电路1160、无线保真(wireless fidelity, WiFi)模块1170、处 理器1180、以及电源1190等部件。本领域技术人员可以理解,图7中示出的手机结构并不 构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部 件布置。
[0077] 下面结合图7对手机的各个构成部件进行具体的介绍:
[0078] RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将 基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通 常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其 他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通 讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽 带码分多址(Wideband Code Division Multiple Access, WCDMA)、长期演进(Long Term Evolution, LTE))、电子邮件、短消息服务(Short Messaging Service, SMS)等。
[0079] 存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器 1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主 要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的 应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所 创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储 器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固 态存储器件。
[0080] 输入单元1130可用于接收输入的数字或字符信息,以及产生与手机1100的用户 设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及 其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作 (比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131 附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1131可包括 触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触 摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信 息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以 执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。 除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备 1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、 操作杆等中的一种或多种。
[0081] 显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的 各种菜单。显示单元1140可包括显示面板1141,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode, 0LED)等形式 来配置显示面板1141。进一步的,触控面板1131可覆盖显示面板1141,当触控面板1131 检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理 器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图7中,触 控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是 在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功 能。
[0082] 手机1100还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传 感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环 境光线的明暗来调节显示面板1141的亮度,接近传感器可在手机移动到耳边时,关闭显示 面板1141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为 三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用α匕 如横坚屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至 于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再 赘述。
[0083] 音频电路1160、扬声器1161,传声器1162可提供用户与手机之间的音频接口。音 频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转 换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路 1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以发 送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。
[0084] WiFi属于短距离无线传输技术,手机通过WiFi模块1170可以帮助用户收发电子 邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出 了 WiFi模块1170,但是可以理解的是,其并不属于手机1100的必须构成,完全可以根据需 要在不改变发明的本质的范围内而省略。
[0085] 处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分, 通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120 内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器 1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理 器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处 理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
[0086] 手机1100还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过 电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及 功耗管理等功能。
[0087] 尽管未示出,手机1100还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0088] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
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进程创建基于Android Runtime层的虚拟机运 行实例。
13. 根据权利要求8至12任一项所述的Android虚拟机加载装置,其特征在于,所述装 置还包括虚拟机切换模块,用于获取虚拟机切换指令;根据所述虚拟机切换指令调用所述 虚拟机管理对象的虚拟机切换函数切换虚拟机运行实例。
14. 根据权利要求8至12任一项所述的Android虚拟机加载装置,其特征在于,所述装 置还包括虚拟机创建模块,用于获取虚拟机创建指令;根据所述虚拟机创建指令调用所述 虚拟机管理对象的虚拟机创建函数创建虚拟机运行实例。
【文档编号】G06F9/445GK104216726SQ201310219141
【公开日】2014年12月17日 申请日期:2013年6月4日 优先权日:2013年6月4日
【发明者】陈树华, 戴云峰 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1