AudioFlinger 类开始的时候定义了
friend class BinderService<AudioFlinger>,为啥要定义一个这个呢,后面有个注视
// for AudioFlinger()
原来binderservice初始化的时候会new AudioFlinger出来,而audioflinger的构造函数的private,友元类就可以使用当前类的private方法了
来说说为啥要把构造函数设成private的
我觉得
1 是实现单例的好的方法
构造函数是private,所以不能被构造对象,不能再栈上使用这个对象,类必须提供static 方法来使得外部能够得到这个对象,非常的像单例模式
2 可以控制构造和析构
增加了新的接口 可以保证在初始化类之前和之后完成一些其他的操作
暂时想到这么多。
这样就知道了
在binder service中还可以用SERVICE::getInstance()来构造这个函数,当然需要增加新的接口
本文深入探讨了AudioFlinger类中定义友元类BinderService的原因及其背后的实现机制,解释了构造函数设置为private的好处,并展示了如何在binderservice中通过特定接口获取AudioFlinger实例。

被折叠的 条评论
为什么被折叠?



