`
yidongkaifa
  • 浏览: 4071408 次
文章分类
社区版块
存档分类
最新评论

AudioFlinger 的一个小问题

 
阅读更多

AudioFlinger 类开始的时候定义了

friend class BinderService<AudioFlinger>,为啥要定义一个这个呢,后面有个注视

// for AudioFlinger()

原来binderservice初始化的时候会new AudioFlinger出来,而audioflinger的构造函数的private,友元类就可以使用当前类的private方法了

来说说为啥要把构造函数设成private的

我觉得

1 是实现单例的好的方法

构造函数是private,所以不能被构造对象,不能再栈上使用这个对象,类必须提供static 方法来使得外部能够得到这个对象,非常的像单例模式

2 可以控制构造和析构

增加了新的接口 可以保证在初始化类之前和之后完成一些其他的操作

暂时想到这么多。

这样就知道了

在binder service中还可以用SERVICE::getInstance()来构造这个函数,当然需要增加新的接口


分享到:
评论

相关推荐

    Android P Audio系统笔记:AudioPolicy&AudioFlinger初始化

    AudioFlinger和AudioPolicy两者是Android Audio框架层最主要的两个服务,他们两个是Android框架层的本地服务,在init.rc中启动; AudioPolicyManager负责音频策略定制者,说白了就相当于Audio系统的司令。 Audio...

    Android 12 AudioFlinger 分析(RK3588)

    Android 12 AudioFlinger 分析(RK3588)

    AudioFlinger.svg

    AudioFlinger.svg UML顺序图

    android audioflinger.pdf

    android audioflinger.pdf

    Jelly Bean AudioFlinger introduction

    不错的介绍AudioFlinger Jelly Bean的资料

    Android深入浅出之Audio 第二部分 AudioFlinger分析

    NULL博文链接:https://innost.iteye.com/blog/875435

    Android深入浅出之AudioFlinger

    android音频子系统之AudioFlinger深入分析

    安卓audio-audioflinger、audiopolicy策略加载

    最全策略加载,一片文档让你熟悉整个安卓audio framework

    audio上层框架介绍

    IAudioFlinger.cpp是AudioFlinger.cpp给上层提供的接口,降低了耦合性,同样对于AudioPolicyService也是如此。即使AudioFlinger.cpp里面的内容发生变化,只要与IAudioFlinger.cpp预留的接口保持一致,上层的代码就不...

    Android 9 Audio系统笔记:音频路由实现——从AudioTrack到audiohal

    上一篇介绍了AudioFlinger的初始化,接下来对音频路由进行介绍。注意,本文主要介绍动态路由,即汽车音频路由的常规方式。针对Android原生路由策略不做深入分析。 什么是音频路由?如何实现音频路由?如何定制音频...

    Audio Framework.vsdx

    AudioPolicyService和AudioFLinger、AudioPolicyManager、AudioPolicyClient之间的调用关系

    android audio system

    (2)AudioFlinger 作为 Audio 系统的中间层; (3)Audio 的硬件抽象层提供底层支持; (4)Audio 接口通过 JNI 和 Java 框架提供给上层。 Audio 系统的各个层次接口主要提供了两方面功能:放音(Track)和录音(Recorder) 。

    Android端AudioTrack以及OpenSL ES结合ffmpeg播放mp3文件

    使用Android端AudioTrack以及OpenSL ES结合ffmpeg播放mp3文件

    Android音频详解.pdf

    这个文档是我整理别人博客的,写的非常的不错,通俗易懂,相对来说还是比较全面,讲了linux下的声卡,Android音频 , AudioPolicyService, AudioFlinger, AudioTrack这些都有详细的讲解,然后我也做了书签,方便...

    android Audio ALSA框架分析

    从框图中可以看出 android 对于 java 层一共提供 3 个接口,分别 ...AudioFlinger 层相同步,之后调用到 AudioHardware ,其中提供的接口主要 AudioStreamOut以及AudioStreamin。最终将进入Linux内核调用到ALSA。

    《深入理解Android》卷Ⅰ

    7.3.2 通过流程分析AudioFlinger 7.3.3 audio_track_cblk_t分析 7.3.4 关于AudioFlinger的总结 7.4 AudioPolicyService的破解 7.4.1 AudioPolicyService的创建 7.4.2 重回AudioTrack 7.4.3 声音路由切换实例分析 ...

    MediaRecorder_AudioRecorder录制播放的比较Dome

    MediaRecorder和AudioRecord都可以录制音频,区别是MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器。...在用MediaRecorder进行录制音视频时,最终还是会创建AudioRecord用来与AudioFlinger进行交互。

    Android音频开发之音频采集的实现示例

    AudioRecord 是一个比较偏底层的API,它可以获取到一帧帧 PCM 数据,之后可以对这些数据进行处理。 而 MediaRecorder 是基于 AudioRecorder 的 API(最终还是会创建AudioRecord用来与AudioFlinger进行交互) ,它可以...

    深入理解Android卷1全

    7.3.2 通过流程分析AudioFlinger / 204 7.3.3 audio_track_cblk_t分析 / 230 7.3.4 关于AudioFlinger的总结 / 234 7.4 AudioPolicyService的破解 / 234 7.4.1 AudioPolicyService的创建 / 235 7.4.2 重回AudioTrack ...

    android多媒体框架

    android体系结构 媒体层结构 Android-MediaPlayer上层应用程序使用JAVA语言编写,实现逻辑处理;JAVA程序通过调用底层媒体库来实现具体的音视频文件和网络视频播放...通过调用AudioFlinger的接口来实现音频数据的回放;

Global site tag (gtag.js) - Google Analytics