
虚拟化
文章平均质量分 58
hanpfei
实时音视频开发。
展开
-
一种 Android 用户事件的自适应分发方法
Android 设备的远程操作控制中,用户可以在控制端看到远程 Android 设备的屏幕,并通过在控制端执行操作,控制远端 Android 上应用程序及系统的行为。控制端可以是任意的系统及平台,如 Windows,Android 等。控制端捕获用户操作的事件,将事件传输到远端的 Android 系统中,控制远端的 Android 系统。控制端和远程 Android 设备之间的通信中,用户事件通过事件的类型和点击/触摸事件的归一化屏幕坐标描述。在控制端支持多点触控的情况下,用户事件可能同时产生于两个不同原创 2021-08-31 07:44:38 · 156 阅读 · 0 评论 -
Anbox LXC
Anbox LXC 编译安装在命令行中,通过 anbox 命令直接启动 Anbox 的容器管理器时,它将动态链接系统中安装的 liblxc。由 Anbox 项目的 snapcraft.yaml 文件,可以看到在创建 Anbox 的 snap 时,LXC 编译相关的选项: lxc: source: https://github.com/lxc/lxc source-type: git原创 2017-12-07 14:30:45 · 1005 阅读 · 0 评论 -
LXC C API 使用
LXC 提供了稳定的 C API 以及大量不同语言的绑定。LXC 版本中的 liblxc1 API 的接口可能会增加,但不会在不调用 liblxc2 的情况下删除或更改现有符号。与稳定的 API 一起发布的第一个 LXC 版本是 1.0.0。只有 lxccontainer.h 头文件中列出的符号是 API 的一部分,所有其它的都是 LXC 的内部符号,且可能在任何时间点改变。API 用法最好的示例是原创 2017-12-07 14:29:02 · 1632 阅读 · 0 评论 -
Ubuntu LXC
容器是轻量级的虚拟化技术。它们更像增强的 chroot,而不是完整的虚拟化,比如 Qemu 或 VMware,因为它们不仿真硬件,且由于容器与主机共享相同的操作系统。容器与 Solaris zones 或 BSD jails 类似。Linux-vserver 和 OpenVZ 是两种已经存在的,为 Linux 独立开发的类容器功能实现。事实上,容器是由 vserver 和 OpenVZ 功能升级的翻译 2017-12-07 14:27:31 · 3139 阅读 · 0 评论 -
运行 Anbox
概述Anbox 运行时主要由两个分开的实例构成:容器管理器会话管理器容器管理器的工作是管理容器的建立,并在它的生命周期内维护它。它的职责是启动我们用以运行 Android 系统的 LXC 环境。会话管理器运行于登录到 Linux 系统的用户的会话内。它将通过一些 sockets 与运行在容器内的 Android 实例通信,并提供与 Linux 系统的集成。它还扮演多路复用器的角色,将 Andr翻译 2017-11-30 17:09:22 · 2895 阅读 · 6 评论 -
Anbox
Anbox 是在像 Ubuntu 这样的普通 GNU/Linux 系统上,一个基于容器的启动完整 Android 系统的方法。换句话说:Android 将使你在你的 Linux 系统上运行 Android,而无需虚拟化的开销。概述Anbox 使用 Linux 命名空间机制(user,pid,uts,net,mount,ipc)在容器中运行完整的 Android 系统,并在任何基于 GNU/Linux翻译 2017-11-30 17:08:11 · 2035 阅读 · 2 评论 -
Anbox 实现分析之程序入口
Anbox 的总体架构如 运行 Anbox 一文的相关内容所述,其运行时主要由两个分开的实例构成,容器管理器和会话管理器。anbox 用同一个可执行文件,在启动时通过不同的参数实现运行时执行两块完全不同的逻辑,完成容器管理和会话管理的任务。在命令行中,为 anbox 可执行文件提供不同的 command 参数来确定具体执行什么样的实例。Anbox 通过同一个可执行文件,将多个功能完全不同的逻辑粘合起原创 2018-01-09 17:29:27 · 2773 阅读 · 0 评论 -
Anbox 实现分析 3:会话管理器与容器管理器的通信
Anbox 通过一个可执行文件,实现多个不同的应该用逻辑。在启动 Anbox 可执行文件时,通过为它提供不同的命令行参数来确定具体执行哪个命令。Anbox 中这些不同的命令实例之间,整体的通信架构如下图这样:这些不同的命令实例之间通信的过程大体如下:容器管理器实例首先运行起来,监听在特定位置的 Unix 域 Socket 上;随后会话管理器启动,监听在另外的一些 Unix 域 Socket 上;原创 2018-01-16 18:24:20 · 1633 阅读 · 0 评论 -
Anbox 和 LXC 代码规模
兵法云,知己知彼,百战不殆。对于使用开源项目的开发者而言,在掌握这些开源项目之前,它们就是作战的敌人。对于一个开源项目,可以从多个角度来认识它,如开源项目的整体设计框架,开源项目实现所基于的基本原理,开源项目所使用的编程语言及编程语言的版本,开源项目所使用的重要的它库及库的用法等。但关于开源项目最最基本的一项信息即是它的代码规模,代码规模常常与它的复杂度紧密相关。了解了一个开源项目的规模,常常原创 2018-01-31 12:18:40 · 1589 阅读 · 0 评论 -
Anbox 实现分析之 I/O 模型
Anbox 运行时主要由两个分开的实例构成,即容器管理器 ContainerManager 和会话管理器 SessionManager,但无论是 ContainerManager 还是 SessionManager,所做的最重要的事情就是处理网络 I/O 事件了。I/O 模型指一个应用处理 I/O 事件的整体框架设计,对于 Anbox 而言主要是处理各种网络 I/O 事务的整体框架设计。Contai原创 2018-01-11 19:37:18 · 2626 阅读 · 0 评论 -
如何预编译 Android 模拟器专用内核
I. 辅助脚本我们现在提供了一个辅助脚本来重新构建内核,其位于 $AOSP/prebuilts/qemu-kernel/build-kernel.sh。请确保使用了 aosp/master 的 checkout,而不是 aosp/studio-XXX 中的一个,后者不包含重新构建内核所需的预编译目标工具链二进制文件。你需要位于 android.googlesource.com/kernel/gold翻译 2017-12-27 09:47:07 · 1418 阅读 · 1 评论 -
QEMU 中音频模拟如何工作
事情有点棘手,但这里有一个粗略的描述:QEMUSoundCard:建模一个给定的模拟的声卡 SWVoiceOut:建模一个来自 QEMUSoundCard 的音频输出 SWVoiceIn:建模一个来自 QEMUSoundCard 的音频输入HWVoiceOut:建模一个主机端的音频输出(后端) HWVoiceIn:建模一个主机端的音频输入(后端)每个声音在采样大小,字节序,速率等方翻译 2017-12-27 09:45:43 · 1956 阅读 · 1 评论 -
QEMU 网络虚拟化
对于模拟器而言,让模拟器中的客户 Android 系统内的进程连接外部网络,与通过 adb forward 的方式,让外部网络的程序,连接模拟器的客户 Android 系统内的服务相比,网络拓扑结构有着非常大的不同。这种拓扑结构的差异,对模拟器内的客户 Android 系统中的进程与外部应用进程之间的网络连接的许多方面都有着非常大的影响,如连接的稳定性,性能等等。模拟器连接外部网络时的情况首先来看模原创 2017-12-27 09:44:08 · 703 阅读 · 0 评论 -
Android QEMU 高速管道
介绍Android 模拟器实现了一个特殊的虚拟设备,用于提供客户 Android 系统和模拟器本身 非常 快速的通信通道。在客户 Android 系统端,用法非常简单,如下:1/ 打开 /dev/qemu_pipe 设备文件来读和写 注意:自 Linux 3.10 开始,设备被重命名为了 /dev/goldfish_pipe,但行为完全一样。2/ 写入描述你想要连接的服务,且以 0 结束翻译 2017-12-27 09:42:38 · 2723 阅读 · 0 评论