- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 音频播放不能深度睡眠のAudioOutLock
android流程中,在AudioHardware::AudioStreamOutALSA::write的时候,会acquire_wake_lock (PARTIAL_WAKE_LOCK, "AudioOutLock"),这个锁如果没有释放,在睡眠前的检测环节中,将导致不能进入深
2011-09-16 00:41:48 3067 1
转载 工作队列分析 queue_work
一、用法 struct cpu_workqueue_struct { spinlock_t lock; long remove_sequence; /* Least-recently added (next to run) */ long insert_s
2011-09-15 15:35:55 12477
原创 android device 注册、添加、管理
注册:函数调用 设备挂到电源管理的函数调用关系是(依次往下调用) audio_card_init (函数类型包含__init 初始化调用) platform_device_add device_add device_pm_add list_add_tail(最直接的链
2011-09-15 00:11:00 3297
转载 kernel barrier 定义说明
#ifndef barrier # define barrier() __memory_barrier() #endif 这里表示如果没有定义barrier函数,则定义barrier()函数为__memory_barrier()。但在内核
2011-09-09 10:00:27 2070
原创 Android音频流程三(各种类及主要方法)
AudioTrack 音轨创建: AudioTrack::createTrack 1)AudioSystem::get_audio_flinger 2)AudioSystem::getOutputSamplingRate 3)AudioSystem::getOutp
2011-09-06 21:13:44 5408 1
原创 Android音频流程二(Binder部分)
2、libmedia MediaPlayer至MediaPlayerService (binder) client和service之间的通信通过android binder机制,只是对于用户而言是透明的。 继续按照上面play调用流程,上面已经调用到了framewor
2011-09-06 21:09:48 3336 1
原创 Android音频流程一(JNI部分)
1、Music.apk至java MediaPlayer 至 libmedia MediaPlayer (JNI) Start是Java空间代码,在框架层的frameworks/base/media/java/android/media/mediaPlayer.java中,
2011-09-06 21:05:44 6031
原创 AudioHardware::AudioStreamOutALSA::write
以数据为导向,分析代码,音频流程 ssize_t AudioHardware::AudioStreamOutALSA::write(const void* buffer, size_t bytes) { // LOGV("AudioStreamOutALS
2011-09-06 15:30:42 3843
原创 AudioFlinger::MixerThread::threadLoop
1、进程的创建 int AudioFlinger::openOutput(uint32_t *pDevices, uint32_t *pSamplingRate,
2011-09-05 19:57:59 7676 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人