logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Android 中的混音器 AudioMixer 实现分析

Android 混音器 AudioMixer 实现分析。

文章图片
#android
Android AAudio 的实现分析

AAudio 是一个自 Android O 引入的新的 Android C API。它主要是为需要低延迟的高性能音频应用设计的。应用程序通过直接从流中读取或向流中写入数据来与 AAudio 通信,但它只包含基本的音频输入输出能力。Android 的官方文档对 AAudio 的 API 及设计思想做了良好的介绍,这里来看一下 AAudio 的实现。后面的代码分析基于 android-12.1.0_r

文章图片
#android#java#开发语言
深入浅出 Linux 中的 ARM IOMMU SMMU I

在计算机系统架构中,与传统的用于 CPU 访问内存的管理的 MMU 类似,IOMMU (Input Output Memory Management Unit) 将来自系统 I/O 设备的 DMA 请求传递到系统互连之前,它会先转换请求的地址,并对系统 I/O 设备的内存访问事务进行管理和限制。IOMMU 将设备可见的虚拟地址 (IOVA) 映射到物理内存地址。不同的硬件体系结构有不同的 IOMM

文章图片
#linux#arm开发#运维
Anbox 容器管理服务

Anbox 安装过程分析Anbox 是在像 Ubuntu 这样的普通 GNU/Linux 系统上,基于容器启动完整 Android 系统的方案。当前安装过程由多个步骤组成,这些步骤将向主机系统中添加额外的组件,这些组件包括:由于没有发行版内核同时启用 binder 和 ashmem,因此需要它们的源码树之外的内核模块为 /dev/binder 和 /dev/ashmem 设置正确权限的 udev

#android#ubuntu
Linux 下的 AddressSanitizer

AddressSanitizer 是一个性能非常好的 C/C++ 内存错误探测工具。它由编译器的插桩模块(目前,LLVM 通过)和替换了 malloc 函数的运行时库组成。这个工具可以探测如下这些类型的错误:对堆,栈和全局内存的访问越界(堆缓冲区溢出,栈缓冲区溢出,和全局缓冲区溢出)UAP(Use-after-free,悬挂指针的解引用,或者说野指针)Use-after-return(无效...

Anbox

Anbox 是在像 Ubuntu 这样的普通 GNU/Linux 系统上,一个基于容器的启动完整 Android 系统的方法。换句话说:Android 将使你在你的 Linux 系统上运行 Android,而无需虚拟化的开销。概述Anbox 使用 Linux 命名空间机制(user,pid,uts,net,mount,ipc)在容器中运行完整的 Android 系统,并在任何基于 GNU/Linu

#android#ubuntu
GitLab 自动触发 Jenkins 构建

GitLab 是当前应用非常广泛的 Git Hosting 工具,Jenkins 是非常牛逼的持续集成工具。尽管 GitLab 有内建的 GitLab CI,但它远没有Jenkins 那么强大好用。Jenkins 和 GitLab 在两者的结合上,都提供了非常方便的工具。在我们向 GitLab push 代码,或执行其它一些操作时,GitLab 可以将这些时间通知给 Jenkins,trigg..

运行 Anbox

概述Anbox 运行时主要由两个分开的实例构成:容器管理器会话管理器容器管理器的工作是管理容器的建立,并在它的生命周期内维护它。它的职责是启动我们用以运行 Android 系统的 LXC 环境。会话管理器运行于登录到 Linux 系统的用户的会话内。它将通过一些 sockets 与运行在容器内的 Android 实例通信,并提供与 Linux 系统的集成。它还扮演多路复用器的角色,将 Andr

#android
PulseAudio 设计和实现浅析

PulseAudio 是一个 POSIX 操作系统的音频服务器系统,它是我们的音频应用程序访问系统音频设备的代理。它是所有相关的现代 Linux 发行版的组成部分,并被多个供应商用在了各种各样的移动设备中。它在应用程序和硬件设备间传递音频数据时,可以对音频数据执行一些高级操作。比如,把音频数据传给不同的机器,修改样本格式或通道数,或者混音多路音频到一路输入/输出,这些用 PulseAudio 实现

#音视频#c++#linux
    共 21 条
  • 1
  • 2
  • 3
  • 请选择