<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
在init.rc文件里,可以看到加载下面的服务:
service media /system/bin/mediaserver
user media
group system audio camera graphics inet net_bt net_bt_admin
mediaserver服务的代码在目录:
Android-2.0/frameworks/base/media/mediaserver
mediaserver服务是多媒体服务的守护进程,负责多媒体/照相机/音频等三项服务。
它的主要入口函数代码如下:
using namespace android;
int main(int argc, char** argv)
{
sp<ProcessState> proc(ProcessState::self());
这行代码获取进程状态。
sp<IServiceManager> sm = defaultServiceManager();
获取服务管理器。
LOGI("ServiceManager: %p", sm.get());
AudioFlinger::instantiate();
这行代码创建音频实例。
MediaPlayerService::instantiate();
这行代码创建多媒体播放实例。
CameraService::instantiate();
这行代码创建照相机实例。
AudioPolicyService::instantiate();
下面开始启动线程池。
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}