自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Audio Effect

关系图。

2024-11-23 23:36:35 1941

原创 Android APEX 和 Android.bp

APEX是Google继Project Treble后的又一重大举措,它是Android Q的系统组件更新机制。APEX的想法在GNU/Linux发行版中非常普遍:针对Linux库集合中的特定部分的包更新。但这是Google从未尝试过的事情,因为Android中使用了一个ro(只读)分区,在其中存储了所有系统库和框架,而不是大多数Linux发行版中通常使用的rw(读写)分区,从而使得其难以实现标准升级过程。库是预编译的代码,可以在其它程序中使用。

2024-11-23 22:57:22 1108

原创 pthread的锁

• `pthread_spinlock_t`:适用于锁持有时间非常短的情况,线程在尝试获取锁时会忙等(自旋),而不是进入休眠状态。• `pthread_mutex_t`:最基本的互斥锁类型,用于保护共享资源不被多个线程同时访问。• `pthread_cond_t`:用于线程间的同步,允许一个或多个线程等待某个条件成立。• `pthread_cond_broadcast()`:发送信号给所有等待条件变量的线程。• `pthread_cond_signal()`:发送信号给一个等待条件变量的线程。

2024-11-23 10:50:12 275

原创 音频hwdep音频设备的framework及应用

=================hwdep framework===音频hwdep设备的注册框架==sound\soc\mediatek\core\hwdep.c=======================&snd_hwdep_f_ops, hwdep, &hwdep->dev);static const struct snd_hwdep_ops ops = { // 音频hwdep设备的回调函数。====================hwdep音频设备的应用==================

2024-11-10 21:30:04 504

原创 SPRD alsa platform DMA driver show

void *virt;return ret;return ret;return ret;if (!for (i = 0;i++) {if (!goto error;return 0;error:for (i = 0;i++) {return ret;int i;

2024-11-03 19:38:53 565

原创 android audio framework 数据流的脉络

MediaPlayer 可以播放多种格式的音源,如 mp3、flac、wma、ogg、wav 等,而 AudioTrack 只能播放解码后的 PCM 数据流。与 Audio 强相关的有 MultiMedia,MultiMedia 负责音视频的编解码,MultiMedia 将解码后的数据通过 AudioTrack 输出,而 AudioRecord 采集的录音数据交由 MultiMedia 进行编码。AudioFlinger:音频策略的执行者,负责输入输出流设备的管理及音频流数据的处理传输。

2024-10-19 18:52:57 893

原创 pixel 8 的音频配置 media.audio_flinger media.audio_policy

Primary:Secondary:Primary:Secondary:Primary:Secondary:Primary:Secondary:

2024-09-26 09:44:15 1619

原创 AudioPolicyManager使用std::lexicographical_compare去选择最优的输出output

这个算法通常用于比较两个容器(如 std::vector 、 std::string 等)中的元素,或者直接比较两个迭代器所指向的元素。std::lexicographical_compare 的基本原理是逐个比较两个范围中的元素,直到找到不相等的元素为止,或者其中一个范围的元素全部比较完毕。- 如果两个范围的元素完全相同,但第一个范围的元素数量少于第二个范围的元素数量,则返回 true ,表示第一个范围小于第二个范围。1. **逐个比较**:从两个范围的第一个元素开始,逐个进行比较。

2024-09-25 18:57:13 623

原创 android framework AV 变化历程

1.1,增加了重采样 libaudioresampler,libserviceutility。1,Android 4 到 android 5。2,Android 5 到 android 6。1.3 将audiopolicy独立出去。// 多个track会共享一个。Android av变化,

2024-09-22 19:13:56 878

原创 C++语言基础

https://www.cnblogs.com/lsgxeva/p/7787438.html/ "=default"函数既可以在类体里(inline)定义,也可以在类体外(out-of-line)定义。4,c++ C11标准类默认4个特殊成员函数(构造函数,析构函数,拷贝构造函数,拷贝赋值构造运算符operate=)的控制,= default;::在最开头开始,表示顶层命名空间(全局变量) 等同 std::string ::std::string。// (3) 直接初始化, 推荐方式。

2024-09-21 22:30:41 1366

转载 Android 堆栈打印方法

在Android.mk里源文件列表LOCAL_SRC_FILES里加入callstack.cpp,并确保libutilscallstack在依赖列表里。在native C里include callstack.h后直接调用dumping_callstack()就可以了。WARN_ON(x) 这个函数跟dump_stack很像,它有个条件,如果条件满足了就把stack打出来。一个简单方法是用C语言调C++的函数,对,就是extern “C”。log在logcat里看以看到。

2024-09-21 17:12:59 554

原创 aosp 录屏

/break;});

2024-09-20 13:45:34 840

webkit_and_the_browser

国外对介绍webkit原理的文章,不错,整体上介绍了webkit原理,parse loading layout等原理

2014-01-21

android手机抓取数据包工具

android手机抓取数据包工具 抓取tcpdump

2014-01-21

android 4.0 原生gallery2代码

android 4.0 完整的原生gallery2代码 包括所有的代码 资源。

2012-11-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除