当前位置:网站首页>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 drm2.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 .
边栏推荐
- 【深度学习】infomap 人脸聚类 facecluster
- Sword finger offer 29 Print matrix clockwise
- [untitled]
- [learn C and fly] day 5 chapter 2 program in C language (Exercise 2)
- How to solve MySQL master-slave delay problem
- flutter 中间一个元素,最右边一个元素
- Learning notes of software testing -- theoretical knowledge of software testing
- How to batch add background and transition effects to videos?
- A quick understanding of analog electricity
- How does proxy IP participate in the direct battle between web crawlers and anti crawlers
猜你喜欢

How to turn off the LED light of Rog motherboard

LeetCode刷题(十)——顺序刷题46至50

pytest 测试框架

Types of exhibition items available in the multimedia interactive exhibition hall

【带你学c带你飞】3day第2章 用C语言编写程序(练习 2.3 计算分段函数)

How does MySQL solve the problem of not releasing space after deleting a large amount of data
![[reading notes] programmer training manual - practical learning is the most effective (project driven)](/img/13/28116a74512895ad725dffed02f8bd.png)
[reading notes] programmer training manual - practical learning is the most effective (project driven)

Jvm-01 (phased learning)

Vsocde has cli every time it is opened js

How to turn off debug information in rtl8189fs
随机推荐
Remote connection to MySQL under windows and Linux system
实现一个自定义布局的扫码功能
Opencascade7.6 compilation
[untitled]
QT使用sqllite
附加:信息脱敏;
es面試題
Jvm-01 (phased learning)
剑指 Offer 42. 连续子数组的最大和
How to solve MySQL master-slave delay problem
LFM信号加噪、时频分析、滤波
STM32F103——两路PWM控制电机
A quick understanding of analog electricity
How to run oddish successfully from 0?
Vsocde has cli every time it is opened js
[technology development -21]: rapid overview of the application and development of network and communication technology -1- Internet Network Technology
Feature query of hypergraph iserver rest Service
What is the difference between an intermediate human resource manager and an intermediate economist (human resources direction)?
2022 safety officer-c certificate examination questions and mock examination
2022低压电工考试题模拟考试题库模拟考试平台操作