CN111026449B - 一种在安卓系统上运行虚拟安卓系统的方法 - Google Patents

一种在安卓系统上运行虚拟安卓系统的方法 Download PDF

Info

Publication number
CN111026449B
CN111026449B CN201911260873.5A CN201911260873A CN111026449B CN 111026449 B CN111026449 B CN 111026449B CN 201911260873 A CN201911260873 A CN 201911260873A CN 111026449 B CN111026449 B CN 111026449B
Authority
CN
China
Prior art keywords
android system
virtual
main
android
linux kernel
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.)
Active
Application number
CN201911260873.5A
Other languages
English (en)
Other versions
CN111026449A (zh
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.)
Shenzhen Zhiduo Interactive Technology Co ltd
Original Assignee
Shenzhen Zhiduo Interactive Technology Co ltd
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 Shenzhen Zhiduo Interactive Technology Co ltd filed Critical Shenzhen Zhiduo Interactive Technology Co ltd
Priority to CN201911260873.5A priority Critical patent/CN111026449B/zh
Publication of CN111026449A publication Critical patent/CN111026449A/zh
Application granted granted Critical
Publication of CN111026449B publication Critical patent/CN111026449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/4401Bootstrapping
    • G06F9/4406Loading of 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及计算机和移动计算技术领域,具体涉及一种在安卓系统上运行虚拟安卓系统的方法。包括以下步骤:S1、在主安卓系统中安装虚拟安卓系统,基于主安卓系统的linux内核构建虚拟安卓系统运行环境;S2、在主安卓系统上切入虚拟安卓系统,完成虚拟安卓系统的初始化;S3、在虚拟安卓系统内下载、安装并启用安卓应用程序;S4、虚拟安卓系统运行安卓应用程序,并解析安卓应用程序的请求指令;S5、虚拟安卓系统根据解析到的请求指令调用主安卓系统的linux内核和硬件功能单元完成请求指令的相应处理。本发明可以在已有安卓系统中运行虚拟安卓系统来实现系统切换和一机多开的目的,同时有效解决虚拟安卓系统的兼容性、执行效率和安全性问题。

Description

一种在安卓系统上运行虚拟安卓系统的方法
技术领域
本发明涉及计算机和移动计算技术领域,具体涉及一种在安卓系统上运行虚拟安卓系统的方法。
背景技术
安卓(Android)系统由于其开源的特性,得到了较为广泛的应用,各大手机厂商均投入生产、设计自己的安卓系统,安卓系统已成为最具影响力的手机操作系统。随着移动互联网技术的高速发展,人与手机的关系更是密不可分,甚至很多人由于有不同场景的需要、隐私保障的需要,或者由于有手机系统和应用的多开需求等,需要拥有两部以及多部手机,或者在其他终端系统中模拟安卓系统来满足需求。如果使用两部以及多部手机会造成携带的不便,显得十分累赘,如果采用在其他终端系统中模拟安卓系统的方法(即利用虚拟技术跨系统运行安卓应用),又会存在兼容性问题、执行效率问题和安全性问题,影响使用效果。因此急需一种可以在已有安卓系统中运行另一种安卓系统的方法,来实现系统切换、一机多开的目的,同时解决兼容性、执行效率和安全性的问题。
发明内容
针对现有技术存在的不足,本发明提供了一种在安卓系统上运行虚拟安卓系统的方法,其应用时,可以在已有安卓系统中运行虚拟安卓系统来实现系统切换和一机多开的目的,同时有效解决虚拟安卓系统的兼容性、执行效率和安全性问题。
本发明所采用的技术方案为:
一种在安卓系统上运行虚拟安卓系统的方法,包括以下步骤:
S1、在主安卓系统中安装虚拟安卓系统,基于主安卓系统的linux内核构建虚拟安卓系统运行环境;
S2、在主安卓系统上切入虚拟安卓系统,完成虚拟安卓系统的初始化;
S3、在虚拟安卓系统内下载、安装并启用安卓应用程序;
S4、虚拟安卓系统运行安卓应用程序,并解析安卓应用程序的请求指令;
S5、虚拟安卓系统根据解析到的请求指令调用主安卓系统的linux内核和硬件功能单元完成请求指令的相应处理。
作为上述技术方案的优选,在步骤S1中,在主安卓系统中安装虚拟安卓系统的过程包括:
S11、在主安卓系统中下载包含虚拟安卓系统的代理app;
S12、运行代理app,将虚拟安卓系统安装于主安卓系统的设定位置;
S13、建立虚拟安卓系统与主安卓系统的协议对接,完成虚拟安卓系统的安装。
作为上述技术方案的优选,在虚拟安卓系统的安装过程中,代理app和虚拟安卓系统同时构建用于进行主安卓系统和虚拟安卓系统切换的系统切换单元,两边系统切换单元相互关联,同时代理app构建Hardwareproxy单元,Hardwareproxy单元与主安卓系统的硬件功能单元对接。
作为上述技术方案的优选,在步骤S2中,虚拟安卓系统的初始化过程包括:
S21、启动虚拟安卓系统,构建虚拟安卓系统的Applications层、Framework层、Native library层和模拟linux内核;
S22、构建虚拟安卓系统的模拟硬件抽象层和虚拟libc库;
S23、模拟硬件抽象层与代理app的Hardwareproxy单元对接,虚拟libc库与主安卓系统的libc库对接;
S24、虚拟安卓系统启动系统主进程,所述系统主进程包括init、zygote和systemserver进程。
作为上述技术方案的优选,在步骤S21中,所构建的模拟linux内核包括进程管理单元、内存管理单元和文件系统管理单元,Native library层包括Android runtime单元。
作为上述技术方案的优选,在步骤S4中,虚拟安卓系统运行安卓应用程序时,安卓应用程序通过虚拟安卓系统的Framework层、Native library层和模拟linux内核实现相应运行功能。
作为上述技术方案的优选,在步骤S5中,虚拟安卓系统调用主安卓系统的linux内核的过程包括:
S511、虚拟安卓系统根据请求指令的C库函数需求调用虚拟libc库;
S512、虚拟libc库通过调用模拟linux内核完成相应内核功能,再对接并调用主安卓系统的libc库;
S513、主安卓系统的libc库通过调用主安卓系统的硬件抽象层进入主安卓系统的linux内核,通过主安卓系统的linux内核完成请求指令的相应处理。
作为上述技术方案的优选,在步骤S5中,虚拟安卓系统调用主安卓系统硬件功能单元的过程包括:
S521、虚拟安卓系统根据请求指令的硬件功能需求调用模拟硬件抽象层;
S522、模拟硬件抽象层与代理app的Hardwareproxy单元进行对接;
S523、代理app的Hardwareproxy单元调用主安卓系统的硬件功能单元完成请求指令的相应处理。
作为上述技术方案的优选,所述系统切换单元包含安卓悬浮窗,主安卓系统可通过安卓悬浮窗进入虚拟安卓系统,虚拟安卓系统可通过安卓悬浮窗进入主安卓系统
本发明的有益效果为:
本发明通过在主安卓系统中切入虚拟安卓系统就可以在虚拟安卓系统中下载、安装并使用安卓应用程序,简单高效地实现系统切换和一机多开的目的,同时由于是在原有安卓系统中装入的虚拟安卓系统,两边系统架构一致,可以通过虚拟安卓系统直接调用主安卓系统的内核和硬件功能单元来完成虚拟安卓系统内的程序请求,有效地解决了解决兼容性、执行效率和安全性的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的步骤示意框图;
图2为实施例2中虚拟安卓系统的安装过程示意图;
图3为实施例2中主安卓系统与虚拟安卓系统的交互过程示意图;
图4为实施例3中主安卓系统的架构示意图;
图5为实施例3中主安卓系统安装虚拟安卓系统后的架构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,术语第一、第二等仅用于区分描述,而不能理解为指示或暗示相对重要性。尽管本文可以使用术语第一、第二等等来描述各种单元,这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况,本文中术语“/和”是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况,另外,本文中字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本发明的描述中,术语“上”、“竖直”、“内”、“外”等指示的方位或位置关系,是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
应当理解,当将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,当将单元称作与另一个单元“直接相连”或“直接耦合”时,不存在中间单元。应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本文使用的术语仅用于描述特定实施例,并且不意在限制本发明的示例实施例。如本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解术语“包括”、“包括了”、“包含”、和/或“包含了”当在本文中使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
还应当注意到在一些备选实施例中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实施例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
实施例1:
本实施例提供了一种在安卓系统上运行虚拟安卓系统的方法,如图1:
包括以下步骤:
S1、在主安卓系统中安装虚拟安卓系统,基于主安卓系统的linux内核构建虚拟安卓系统运行环境;
S2、在主安卓系统上切入虚拟安卓系统,完成虚拟安卓系统的初始化;
S3、在虚拟安卓系统内下载、安装并启用安卓应用程序;
S4、虚拟安卓系统运行安卓应用程序,并解析安卓应用程序的请求指令;
S5、虚拟安卓系统根据解析到的请求指令调用主安卓系统的linux内核和硬件功能单元完成请求指令的相应处理。
具体实施时,通过在主安卓系统中切入虚拟安卓系统就可以在虚拟安卓系统中下载、安装并使用安卓应用程序,简单高效地实现系统切换和一机多开的目的,同时由于是在原有安卓系统中装入的虚拟安卓系统,两边系统架构一致,可以通过虚拟安卓系统直接调用主安卓系统的内核和硬件功能单元来完成虚拟安卓系统内的程序请求,有效地解决了解决兼容性、执行效率和安全性的问题。
实施例2:
作为对上述实施例的优化,如图2所示,在步骤S1中,在主安卓系统中安装虚拟安卓系统的过程包括:
S11、在主安卓系统中下载包含虚拟安卓系统的代理app;
S12、运行代理app,将虚拟安卓系统安装于主安卓系统的设定位置;
S13、建立虚拟安卓系统与主安卓系统的协议对接,完成虚拟安卓系统的安装。
在虚拟安卓系统的安装过程中,代理app和虚拟安卓系统同时构建用于进行主安卓系统和虚拟安卓系统切换的系统切换单元,两边系统切换单元相互关联,同时代理app构建Hardwareproxy单元,Hardwareproxy单元与主安卓系统的硬件功能单元对接。
如图3所示,系统切换单元可以以悬浮窗的形式进行操作,主安卓系统(图中主机系统)与虚拟安卓系统(图中虚拟系统)的交互流程说明:
启动虚拟安卓系统后,虚拟安卓系统内部包含悬浮窗,是虚拟安卓系统与主安卓系统交互的入口。
点击悬浮窗,会展开功能菜单,包含回主安卓系统功能(回真机功能)以及其他功能。
点击主安卓系统,虚拟安卓系统切回到主安卓系统,显示悬浮窗。
点击悬浮窗,会展开功能菜单,包含回虚拟安卓系统以及其他功能。
主机系统与虚拟系统通过悬浮小窗的交互流程还可以包括:
点击悬浮窗,会展开功能菜单,包含回主安卓系统、小窗功能以及其他功能。
点击小窗,虚拟安卓系统以小窗口的方式显示在真机系统上,小窗口顶部有关闭按钮和其他功能。
点击关闭按钮,回到悬浮窗模式。
实施例3:
作为对上述实施例的优化,在步骤S2中,虚拟安卓系统的初始化过程包括:
S21、启动虚拟安卓系统,构建虚拟安卓系统的Applications层、Framework层、Native library层和模拟linux内核,所构建的模拟linux内核包括进程管理单元、内存管理单元和文件系统管理单元,Native library层包括Android runtime单元;
S22、构建虚拟安卓系统的模拟硬件抽象层和虚拟libc库;
S23、模拟硬件抽象层与代理app的Hardwareproxy单元对接,虚拟libc库与主安卓系统的libc库对接;
S24、虚拟安卓系统启动系统主进程,所述系统主进程包括init、zygote和systemserver进程。
虚拟安卓系统运行安卓应用程序时,安卓应用程序通过虚拟安卓系统的Framework层、Native library层和模拟linux内核实现相应运行功能。
如图4所示为主安卓系统的架构示意图,如图5所示为在主安卓系统中安装虚拟安卓系统的架构示意图。主安卓系统架构包括Applications层、Framework层、Nativelibrary层、硬件抽象层和linux内核,其中:
Applications层:应用程序层,Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
Framework层:应用程序框架层,开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括:丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons),甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和布局文件(Layout files)。通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
Native library层:包含安卓运行时(ART)和一些C/C++库。ART的机制与Dalvik不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用,这个过程叫做预编译(AOT,Ahead-Of-Time),这样的话,应用的启动(首次)和执行都会变得更加快速。这些C/C++库库能被Android系统中不同的组件使用,它们通过Android应用程序框架为开发者提供服务,以下是一些核心库:libc库,一个从BSD继承来的标准C系统函数库了libc,是专门为基于Embedded linux的设备定制的。媒体库,基于PacketVideo OpenCORE,该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。SurfaceManager,对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。LibWebCore,一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
硬件抽象层(HAL):HAL是能以封闭源码形式提供硬件驱动模块。HAL的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成Kernel independent的概念,也让Android framework的开发能在不考量驱动程序实现的前提下进行发展。HAL stub是一种代理(Proxy)的概念,Stub是以.so档的形式存在。Stub向HAL“提供”操作函数(Operations),并由Android runtime向HAL取得Stub的Operations,再Callback这些操作函数。HAL里包含了许多的Stub。Runtime只要说明“类型”,即ModuleID,就可以取得操作函数。
linux内核:Android运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linux driver与Linux kernel彻底分开。Bionic/Libc/Kernel/并非标准的Kernel header files。Android的Kernel header是利用工具由Linux Kernel header所产生的,这样做是为了保留常数、数据结构与宏。Android的Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo是Android用来辅助Git工作的一个工具。
实施例4:
作为对上述实施例的优化,在步骤S5中,虚拟安卓系统调用主安卓系统的linux内核的过程包括:
S511、虚拟安卓系统根据请求指令的C库函数需求调用虚拟libc库;
S512、虚拟libc库通过调用模拟linux内核完成相应内核功能,再对接并调用主安卓系统的libc库;
S513、主安卓系统的libc库通过调用主安卓系统的硬件抽象层进入主安卓系统的linux内核,通过主安卓系统的linux内核完成请求指令的相应处理。
在步骤S5中,虚拟安卓系统调用主安卓系统硬件功能单元的过程包括:
S521、虚拟安卓系统根据请求指令的硬件功能需求调用模拟硬件抽象层;
S522、模拟硬件抽象层与代理app的Hardwareproxy单元进行对接;
S523、代理app的Hardwareproxy单元调用主安卓系统的硬件功能单元完成请求指令的相应处理。
本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。

Claims (1)

1.一种在安卓系统上运行虚拟安卓系统的方法,其特征在于,包括以下步骤:
S1、在主安卓系统中安装虚拟安卓系统,基于主安卓系统的linux内核构建虚拟安卓系统运行环境;
S2、在主安卓系统上切入虚拟安卓系统,完成虚拟安卓系统的初始化;
S3、在虚拟安卓系统内下载、安装并启用安卓应用程序;
S4、虚拟安卓系统运行安卓应用程序,并解析安卓应用程序的请求指令;
S5、虚拟安卓系统根据解析到的请求指令调用主安卓系统的linux内核和硬件功能单元完成请求指令的相应处理;
在步骤S1中,在主安卓系统中安装虚拟安卓系统的过程包括:
S11、在主安卓系统中下载包含虚拟安卓系统的代理app;
S12、运行代理app,将虚拟安卓系统安装于主安卓系统的设定位置;
S13、建立虚拟安卓系统与主安卓系统的协议对接,完成虚拟安卓系统的安装;
在虚拟安卓系统的安装过程中,代理app和虚拟安卓系统同时构建用于进行主安卓系统和虚拟安卓系统切换的系统切换单元,两边系统切换单元相互关联,同时代理app构建Hardwareproxy单元,Hardwareproxy单元与主安卓系统的硬件功能单元对接;
在步骤S2中,虚拟安卓系统的初始化过程包括:
S21、启动虚拟安卓系统,构建虚拟安卓系统的Applications层、Framework层、Nativelibrary层和模拟linux内核;
S22、构建虚拟安卓系统的模拟硬件抽象层和虚拟libc库;
S23、模拟硬件抽象层与代理app的Hardwareproxy单元对接,虚拟libc库与主安卓系统的libc库对接;
S24、虚拟安卓系统启动系统主进程,所述系统主进程包括init、zygote和systemserver进程;
在步骤S21中,所构建的模拟linux内核包括进程管理单元、内存管理单元和文件系统管理单元,Nativelibrary层包括Android runtime单元;
在步骤S4中,虚拟安卓系统运行安卓应用程序时,安卓应用程序通过虚拟安卓系统的Framework层、Native library层和模拟linux内核实现相应运行功能;
在步骤S5中,虚拟安卓系统调用主安卓系统的linux内核的过程包括:
S511、虚拟安卓系统根据请求指令的C库函数需求调用虚拟libc库;
S512、虚拟libc库通过调用模拟linux内核完成相应内核功能,再对接并调用主安卓系统的libc库;
S513、主安卓系统的libc库通过调用主安卓系统的硬件抽象层进入主安卓系统的linux内核,通过主安卓系统的linux内核完成请求指令的相应处理;
在步骤S5中,虚拟安卓系统调用主安卓系统硬件功能单元的过程包括:
S521、虚拟安卓系统根据请求指令的硬件功能需求调用模拟硬件抽象层;
S522、模拟硬件抽象层与代理app的Hardwareproxy单元进行对接;
S523、代理app的Hardwareproxy单元调用主安卓系统的硬件功能单元完成请求指令的相应处理;
所述系统切换单元包含安卓悬浮窗,主安卓系统可通过安卓悬浮窗进入虚拟安卓系统,虚拟安卓系统可通过安卓悬浮窗进入主安卓系统;具体包括:
启动虚拟安卓系统后,虚拟安卓系统内部包含悬浮窗,是虚拟安卓系统与主安卓系统交互的入口;
点击悬浮窗,会展开功能菜单,包含回主安卓系统功能以及其他功能;
点击主安卓系统,虚拟安卓系统切回到主安卓系统,显示悬浮窗;
点击悬浮窗,会展开功能菜单,包含回虚拟安卓系统以及其他功能;
主机系统与虚拟系统通过悬浮窗的交互流程还包括:
点击悬浮窗,会展开功能菜单,包含回主安卓系统、小窗功能以及其他功能;
点击小窗,虚拟安卓系统以小窗口的方式显示在真机系统上,小窗口顶部有关闭按钮和其他功能;
点击关闭按钮,回到悬浮窗模式。
CN201911260873.5A 2019-12-10 2019-12-10 一种在安卓系统上运行虚拟安卓系统的方法 Active CN111026449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911260873.5A CN111026449B (zh) 2019-12-10 2019-12-10 一种在安卓系统上运行虚拟安卓系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911260873.5A CN111026449B (zh) 2019-12-10 2019-12-10 一种在安卓系统上运行虚拟安卓系统的方法

Publications (2)

Publication Number Publication Date
CN111026449A CN111026449A (zh) 2020-04-17
CN111026449B true CN111026449B (zh) 2024-04-19

Family

ID=70208662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911260873.5A Active CN111026449B (zh) 2019-12-10 2019-12-10 一种在安卓系统上运行虚拟安卓系统的方法

Country Status (1)

Country Link
CN (1) CN111026449B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988675B (zh) * 2021-03-12 2023-02-21 麒麟软件有限公司 一种基于Linux文件管理器的Android文件分类显示方法
CN113296890B (zh) * 2021-05-21 2023-09-26 南京大学 一种基于系统调用代理的安卓虚拟化方法及系统
CN113672412A (zh) * 2021-08-31 2021-11-19 杭州安恒信息安全技术有限公司 linux应用libc库调用方法、系统、装置及存储介质
CN113835838A (zh) * 2021-09-27 2021-12-24 湖南小算科技信息有限公司 一种真机系统与虚拟机系统快速切换的方法
CN114035863A (zh) * 2021-11-11 2022-02-11 北京鲸鲮信息系统技术有限公司 在Linux系统中操作安卓应用的方法、装置和设备
CN113835768B (zh) * 2021-11-29 2022-08-16 北京字节跳动网络技术有限公司 一种Android混合HAL的管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092675A (zh) * 2012-12-24 2013-05-08 北京伸得纬科技有限公司 一种虚拟环境的构建方法
WO2019051670A1 (zh) * 2017-09-13 2019-03-21 深圳传音通讯有限公司 一种基于智能终端的虚拟系统运行方法及虚拟系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9218103B2 (en) * 2012-09-19 2015-12-22 Shenzhen Coocaa Network Technology Co. Ltd. 3D interface implementation method and system based on the android system
TWI499918B (zh) * 2014-05-21 2015-09-11 Nat Univ Tsing Hua 執行應用於安卓系統之應用程式之雲端管理系統及其方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092675A (zh) * 2012-12-24 2013-05-08 北京伸得纬科技有限公司 一种虚拟环境的构建方法
WO2019051670A1 (zh) * 2017-09-13 2019-03-21 深圳传音通讯有限公司 一种基于智能终端的虚拟系统运行方法及虚拟系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Android框架层完整性度量方案;周星锦 等;《计算机系统应用》;第28卷(第8期);第1-9页 *
基于Android平台的应用开发研究;宋小倩 等;《软件导刊》;第10卷(第2期);第104-106页 *
基于Android的手机定位程序设计;缪利道 等;《福建电脑》(第8期);第12-14页 *

Also Published As

Publication number Publication date
CN111026449A (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
CN111026449B (zh) 一种在安卓系统上运行虚拟安卓系统的方法
CN111026396B (zh) 页面渲染方法、装置、电子设备及存储介质
US20150169318A1 (en) Method and system for modifying deployed applications
KR20060047321A (ko) 서식 유형들을 사용하여 서식을 생성하기 위한 방법 및장치
WO2010113160A1 (en) A method and system for emulating desktop software applications in a mobile communication network
CN106897081A (zh) 应用的引导方法及装置、终端
CN111026490B (zh) 页面渲染方法、装置、电子设备及存储介质
CN111338925A (zh) 小程序测试方法及装置、系统、电子设备和存储介质
CN111176629A (zh) 一种应用开发的方法和装置
CN113419710B (zh) 小程序的开发方法、装置、电子设备和介质
KR20130017337A (ko) 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
CN103092654A (zh) 一种基于WebKit的WebOS实现方法和系统
CN111221626B (zh) 一种沙盒系统环境的创建方法、装置、介质和电子设备
CN114253537A (zh) 表单生成方法及装置、电子设备和存储介质
CN107168738A (zh) 一种应用工具的管理方法、装置、设备和存储介质
CN109857537A (zh) 后台服务启动方法、装置、介质及电子设备
CN104133706A (zh) 固件修改方法及固件修改装置
CN109255063A (zh) 一种爬取网页内容的方法和装置
Amatya Cross-platform mobile development: An alternative to native mobile development
CN116232910A (zh) 开放云平台及其构建方法、存储介质
CN114995790A (zh) 一种组件开发方法、装置、计算机可读介质及电子设备
CN114905501A (zh) 一种机器人模拟器的生成方法、应用方法及装置
EP3834080B1 (en) Static reconcilliation of application view hierarchies
CN111782196A (zh) 基于mvp架构的开发方法及装置
CN114115855A (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
GR01 Patent grant
GR01 Patent grant