当前位置:网站首页>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 .
边栏推荐
- LeetCode刷题(十)——顺序刷题46至50
- Calculation (computer) code of suffix expression
- oracle创建只读权限的用户简单四步走
- 剑指 Offer 31. 栈的压入、弹出序列
- C return multiple values getter setter queries the database and adds the list return value to the window
- Sword finger offer 47 Maximum value of gifts
- The wave of layoffs in big factories continues, but I, who was born in both non undergraduate schools, turned against the wind and entered Alibaba
- [learn C and fly] 2day Chapter 8 pointer (practice 8.1 password unlocking)
- pytest 测试框架
- CSDN article underlined, font color changed, picture centered, 1 second to understand
猜你喜欢
Coordinatorlayout + tablayout + viewpager2 (there is another recyclerview nested inside), and the sliding conflict of recyclerview is solved
STM32__05—PWM控制直流电机
The wave of layoffs in big factories continues, but I, who was born in both non undergraduate schools, turned against the wind and entered Alibaba
Leetcode face T10 (1-9) array, ByteDance interview sharing
Which brand of sports headset is better? Bluetooth headset suitable for sports
QT实现界面跳转
No programming code technology! Four step easy flower store applet
Formatting logic of SAP ui5 currency amount display
QT implementation interface jump
Jvm-01 (phased learning)
随机推荐
STM32F103 - two circuit PWM control motor
A quick understanding of digital electricity
Summary of some experiences in the process of R & D platform splitting
实现一个自定义布局的扫码功能
Which kind of sports headphones is easier to use? The most recommended sports headphones
Start from scratch - Web Host - 01
C # use system data. The split mixed mode assembly is generated for the "v2.0.50727" version of the runtime, and it cannot be loaded in the 4.0 runtime without configuring other information
Vsocde has cli every time it is opened js
剑指 Offer 31. 栈的压入、弹出序列
MySQL constraints and multi table query example analysis
Cesium dynamic diffusion point effect
Realize the code scanning function of a custom layout
Iterative unified writing method of binary tree
附加:信息脱敏;
Additional: information desensitization;
Mathematics in Sinorgchem: computational geometry
[pit] how to understand "parameter fishing"
CSDN insertion directory in 1 second
Bash bounce shell encoding
软件开发生命周期 --瀑布模型