当前位置:网站首页>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 进行消息交互。
边栏推荐
- matlab simulink响应谱计算
- Shell 文本三剑客 awk
- C - The Battle of Chibi (dp加树状数组前缀和优化)
- uva1392
- Excel Advanced Drawing Skills 100 Lectures (23) - Countdown Counting in Excel
- 10个超赞的C语言开源项目,值得学习
- program internationalization
- “双枪”木马病毒的进化史
- Take you to an in-depth understanding of the version update of 3.4.2, what does it bring to users?
- 盘式导电滑环的优点和缺点
猜你喜欢
随机推荐
Difference between netstat and ss command
使用flink-sql写入mysql的时候,只指定插入的字段,但是会报错id字段错误,没有默认值,创
量化投资学习——在FPGA上运行高频交易策略
小程序wxs
Example 044: Matrix Addition
小程序导航及导航传参
Small program subcontracting and subcontracting pre-download
第三章 搜索与图论(二)
中国人保为德科康材承保产品责任险,为消费者权益保驾护航!
维度表设计
Camera partial update
文本编辑器vim
Flink CDC 2.0及其他数据同步工具对比
元宇宙+NFT是“宝”还是“炒”
“双枪”木马病毒的进化史
[Red Team] ATT&CK - Auto Start - Registry Run Key, Startup Folder
关于redis在业务中的应用问题,如何解决?
【单调栈】【概念讲解&&模板代码】
Embedded Sharing Collection 32
uva1481