当前位置:网站首页>Systemserver service and servicemanager service analysis
Systemserver service and servicemanager service analysis
2022-07-02 02:33:00 【Standing on the shoulders of giants, review the past and know t】
1 SystemServer Service analysis
SystemServer yes zygote The first one to start Android Service process , The main work is as follows :
(1) Create all core services of the system
(2) Add services to ServiceManager in
(3) Initialize service
1.1 SystemServer Services started
(1)power
PowerManagerService: Power management
BatteryService: Battery service
(2)ActivityManagerService
Activity management service
(3)PackageManagerService
Package management service , And bottom installd Establish communication
(4)WindowManagerService
Window management service , And surfaceflinger Service interaction
(5)TelephonyRegistry
telephony support
(6)ContentService
Data exchange between processes
(7)Sensor
LightsService: Light sense
VibratorService: Vibration
(8)Network
NetworkManagementService: Mobile network management services
NetworkStatsService: Mobile network status service
WifiP2pService:p2p service
WifiService:wifi service
ConnectivityService: Network connection status service
(9)BluetoothService
Bluetooth service
1.2 SystemServer Start process
(1)SystemServer.main()
(2)dalvik.set()
(3)System.loadlibrary("android_servers");
(4)nativeInit()
(5)initAndLoop()
Start various services of the system , Add services to ServiceManager in .
2 ServiceManager Service analysis
2.1 ServiceManager Service Overview
(1) Service process , yes android One of the core services of the system
(2) System service management : Manage the services added to the system by the system and Applications
(3) Query for services : Respond to client Request and return the corresponding service
Android If an application wants to get a system service , This system service needs to be added to ServiceManager in . If the service exits abnormally several times in a row , The system will restart . If the service is restarted , The system will restart zygote,surfaceflinger,media Etc .
2.2 ServiceManager When was it created ?
ServiceManager By init Process by parsing init.rc File , The corresponding executable program /system/bin/servicemanager, The corresponding source file is service_manager.c.
service servicemanager /system/bin/servicemanager
class core
user system
group system
critical
onrestart restart healthd
onrestart restart zygote
onrestart restart media
onrestart restart surfaceflinger
onrestart restart drm
2.3 ServiceManager The boot process
(1) open binder
ServiceManager be based on Binder Mechanism realization
binder_open()
open("/dev/binder")
mmap()
(2)binder_become_context_manager()
(3) Cyclic reception binder news
Received binder Message type : Add service , Query services and obtain services
adopt binder_loop() To receive messages sent by other processes binder news
(4) Handle binder news
adopt svcmgr_handler() Handle those sent by other processes binder news
2.4 ServiceManager management service
chart 1 ServiceManager management service
(1) System or Android The application process sends a request to add system services , adopt binder Interprocess communication to ServiceManager Process processing , Then check the permissions of the process that initiated the request , Then check whether the service already exists , If there is a direct return ; If it doesn't exist , Add this service to Service List in .
(2) This service is also obtained through binder Interprocess communication to ServiceManager Process processing , Inquire about Service List Find out what to do Service, Then return .
边栏推荐
- QT uses sqllite
- Iterative unified writing method of binary tree
- Decipher the AI black technology behind sports: figure skating action recognition, multi-mode video classification and wonderful clip editing
- 【带你学c带你飞】2day 第8章 指针(练习8.1 密码开锁)
- What is the principle of bone conduction earphones and who is suitable for bone conduction earphones
- Jvm-01 (phased learning)
- How to build and use redis environment
- 离婚3年以发现尚未分割的共同财产,还可以要么
- As a software testing engineer, will you choose the bank post? Laolao bank test post
- SAP ui5 beginner tutorial 19 - SAP ui5 data types and complex data binding
猜你喜欢
query词权重, 搜索词权重计算
Build a modern data architecture on the cloud with Amazon AppFlow, Amazon lake formation and Amazon redshift
leetcode373. Find and minimum k-pair numbers (medium)
JPM 2021 most popular paper released (with download)
Jvm-01 (phased learning)
WebGPU(一):基本概念
LFM信号加噪、时频分析、滤波
How does MySQL solve the problem of not releasing space after deleting a large amount of data
How to build and use redis environment
OpenCASCADE7.6编译
随机推荐
Ten minutes will take you in-depth understanding of multithreading - multithreaded teamwork: synchronous control
AcWing 245. Can you answer these questions (line segment tree)
Duplicate keys detected: ‘0‘. This may cause an update error. found in
Use the open source project [banner] to achieve the effect of rotating pictures (with dots)
Start from scratch - Web Host - 01
Which kind of sports headphones is easier to use? The most recommended sports headphones
As a software testing engineer, will you choose the bank post? Laolao bank test post
Additional: information desensitization;
[learn C and fly] 4day Chapter 2 program in C language (exercise 2.5 generate power table and factorial table
No programming code technology! Four step easy flower store applet
实现一个自定义布局的扫码功能
Email picture attachment
【OpenCV】-5种图像滤波的综合示例
Software testing learning notes - network knowledge
Comparative analysis of MVC, MVP and MVVM, source code analysis
Analysis of FLV packaging format
[reading notes] programmer training manual - practical learning is the most effective (project driven)
Formatting logic of SAP ui5 currency amount display
MySQL operates the database through the CMD command line, and the image cannot be found during the real machine debugging of fluent
Open那啥的搭建文档