multimedia, 包含了audio的AudioFlinger, video的mediaservice 和 camera的cameraservice. 他们在frameworks层最上面起始调用位于:
frameworks/base/media/mediaserver/main_mediaserver.cp
代码如下:
/*
**
** Copyright 2008, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// System headers required for setgroups, etc.
#include <sys/types.h>
#include <unistd.h>
#include <grp.h>
#include <binder/IPCThreadState.h>
#include <binder/ProcessState.h>
#include <binder/IServiceManager.h>
#include <utils/Log.h>
#include <AudioFlinger.h>
#include <CameraService.h>
#include <MediaPlayerService.h>
#include <AudioPolicyService.h>
#include <private/android_filesystem_config.h>
using namespace android;
int main(int argc, char** argv)
{
sp<ProcessState> proc(ProcessState::self());
sp<IServiceManager> sm = defaultServiceManager();
LOGI("ServiceManager: %p", sm.get()); //下面这几个service,统称为ServiceManager.
// AudioFlinger::instantiate();
// MediaPlayerService::instantiate();
// CameraService::instantiate();
// AudioPolicyService::instantiate();
// ProcessState::self()->startThreadPool();
// IPCThreadState::self()->joinThreadPool();
}因为要调试audio驱动, 所以在这里把AudioFlinger, MediaPlayerService, CameraService, AudioPolicyService 都关掉了。
多媒体服务启动与调试
本文详细介绍了多媒体服务在Android框架中的启动过程,包括AudioFlinger、MediaPlayerService、CameraService和AudioPolicyService的初始化,以及如何在调试环境中关闭这些服务。
1054

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



