当前位置:网站首页>mediaserver创建
mediaserver创建
2022-08-10 03:12:00 【木希】
在前面我们说过安卓的开机流程,在内核初始化完成后,init 进程创建后会根据/system/etc/init 目录下的.rc文件进行创建服务,今天介绍下mediaserver的创建,跟实现的对应的功能。
我们先看看framework/av/media/mediaserver/mediaserver.rc,这个很简单就起mediaserver
on property:init.svc.media=*
setprop init.svc.mediadrm ${init.svc.media}
service media /system/bin/mediaserver
class main
user media
group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm
ioprio rt 4
task_profiles ProcessCapacityHigh HighPerformance
服务。看看mediaserver的main函数framework/av/media/mediaserver/main_mediaserver.cpp
int main(int argc __unused, char **argv __unused)
{
signal(SIGPIPE, SIG_IGN);
//打开/dev/binder设备,得到binder设备的fd
//将bidner设备fd映射到当前进程虚拟地址空间建立交互的通道;
sp<ProcessState> proc(ProcessState::self());
///获取ServiceManager的代理对象
sp<IServiceManager> sm(defaultServiceManager());
ALOGI("ServiceManager: %p", sm.get());
//将MediaPlayerService加入到ServiceManager中,BpServiceManager的AddService将数据写入到
//Binder设备传递给ServiceManager。
MediaPlayerService::instantiate();
ResourceManagerService::instantiate();
registerExtensions();
::android::hardware::configureRpcThreadpool(16, false);
//启动进程的线程池
ProcessState::self()->startThreadPool();
//执行线程消息循环
IPCThreadState::self()->joinThreadPool();
::android::hardware::joinRpcThreadpool();
}
这里mediaserver服务器就起来了,等待mediaplayer 同mediaserver的通信。
安卓mediaplayer的启动会比较简单MediaPlayer.java 提供API接口---> android_media_MediaPlayer.cpp对应jni接口--->MediaPlayer.cpp调用MediaPlayerService接口,创建binder client 同MediaPlayerService 进行消息交互。
边栏推荐
猜你喜欢
随机推荐
是什么让训练综合分类网络艰苦?
js阻止事件冒泡方案
Mini Program Navigation and Navigation Parameters
[Red Team] ATT&CK - Auto Start - Registry Run Key, Startup Folder
Web mining traceability?Browser browsing history viewing tool Browsinghistoryview
网路编程_调试accept
使用curl指令发起websocket请求
flutter 每天一背,需要掌握
NFG电商系统在元宇宙趋势下做什么?
Arrays类
小程序导航及导航传参
goland console shows overlapping problem solution
Example 047: Functions Swap Variables
matlab simulink响应谱计算
元宇宙+NFT是“宝”还是“炒”
一个刚入行的测试员怎么样做好功能测试?测试思维真的很重要
charles的功能操作
获取属性特性几种方法
书法家唐效奇
有关视频传输时粘包问题的一些解决方法









