💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
#### 本章主要内容 - 以MediaServer为切入点,对Binder的工作机制进行分析。 - 剖析ServiceManager的原理。 - 以MediaPlayerService为切入点对Client和Service的交互进行分析。 - 学以致用,探讨如何写自己的Service。 #### 本章涉及的源代码文件名及位置 下面是我们本章分析的源码文件名及其位置。 - Main_mediaserver.cpp `framework/base/Media/MediaServer/Main_mediaserver.cpp` - Static.cpp `framework/base/libs/binder/Static.cpp` - ProcessState.cpp `framework/base/libs/binder/ProcessState.cpp` - IServiceManager.cpp `framework/base/libs/binder/IServiceManager.cpp` - BpBinder.cpp `framework/base/libs/binder/BpBinder.cpp` - IInterface.h `framework/base/include/binder/IInterface.h` - IServiceManager.h `framework/base/include/binder/IServiceManager.h` - IServiceManager.cpp `framework/base/libs/binder/IServiceManager.cpp` - binder.cpp `framework/base/libs/binder/binder.cpp` - MediaPlayerService.cpp `framework/base/media/libmediaplayerservice/MediaPlayerService.cpp` - IPCThreadState.cpp `framework/base/libs/binder/ IPCThreadState.cpp` - binder_module.h `framework/base/include/private/binder.h` - Service_manager.c `framework/base/cmds/ServiceManager/Service_manager.c` - Binder.c `framework/base/cmds/ServiceManager/Binder.c` - IMediaDeathNotifier `framework/base/media/libmedia/ IMediaDeathNotifier.cpp` - MediaMetadataRetriever `framework/base/media/libmedia/ MediaMetadataRetriever.cpp`