Android系統(tǒng)服務概覽
System_Server進程
運行在system server進程中的服務比較多,這是整個android框架的基礎(chǔ)
Native服務
SurfaceFlinger
這是framebuffer合成的服務,將各個應用程序及應用程序中的邏輯窗口圖像數(shù)據(jù)(surface)合成到一個物理窗口中顯示(framebuffer)的服務程序
Java服務:
這部分的服務大部分都有一個供應用進程使用的manager類,這就是一個RPC調(diào)用,用戶通過調(diào)用xxxManager的方法,實際上被Binder給遷移到system_server進程中對應的xxxManagerService中對應的方法,并將結(jié)果再通過binder帶回。?
- 1. EntropyService
熵服務,周期性的加載和保存隨機信息。主要是linux開機后,/dev/random的狀態(tài)可能是可預知的,這樣一些需要隨機信息的應用程序就可能會有問題。這個無需提供應用程序接口。
- 2. PowerManagerService –> PowerManager
Android 的電源管理也是很重要的一部分。比如在待機的時候關(guān)掉不用的設(shè)備,待機時屏幕和鍵盤背光的關(guān)閉,用戶操作的時候該打開多少設(shè)備等等。
- 3. ActivityManagerService->ActivityManager
這個是整個Android framework框架中最為核心的一個服務,管理整個框架中任務、進程管理, Intent解析等的核心實現(xiàn)。雖然名為Activity的Manager Service,但它管轄的范圍,不只是Activity,還有其他三大組件,和它們所在的進程。也就是說用戶應用程序的生命管理,都是由他負責的。
- 4. TelephonyRegistry->TelephonyManager
電話注冊、管理服務模塊,可以獲取電話的鏈接狀態(tài)、信號強度等等。<可以刪掉,但要看的大概明白>
- 5. PackageManagerService -> PackageManager
包括對軟件包的解包,驗證,安裝以及升級等等,對于我們現(xiàn)在不能安裝.so文件的問題,應該先從這塊著手分析原因。
- 6. AccountManagerService -> AccountManager
A system service that provides? account, password, and authtoken management for all accounts on the device。
- 7. ContentService -> ContentResolver
內(nèi)容服務,主要是數(shù)據(jù)庫等提供解決方法的服務。
- 8. BatteryService
監(jiān)控電池充電及狀態(tài)的服務,當狀態(tài)改變時,會廣播Intent
- 9. HardwareService
一般是ring和vibrate的服務程序
- 10. SensorService -> SensorManager
管理Sensor設(shè)備的服務,負責注冊client設(shè)備及當client需要使用sensor時激活Sensor
- 11. WindowManagerService -> WindowManager -> PhoneWindowManager
和ActivityManagerService高度粘合窗口管理,這里最核心的就是輸入事件的分發(fā)和管理。
- 12. AlarmManagerService -> AlarmManager
鬧鐘服務程序
- 13. BluetoothService -> BluetoothDevice
藍牙的后臺管理和服務程序
- 14. StatusBarService -> StatusBarManager
負責statusBar上圖標的更新、動畫等等的服務,服務不大。
- 15. ClipboardService -> ClipboardManager
和其他系統(tǒng)的clipBoard服務類似,提供復制黏貼功過。
- 16. InputMethodManagerService -> InputMethodManager
輸入法的管理服務程序,包括何時使能輸入法,切換輸入法等等。
- 17. NetStatService
手機網(wǎng)絡(luò)服務
- 18. ConnectivityService -> ConnectivityManager
網(wǎng)絡(luò)連接狀態(tài)服務,可供其他應用查詢,當網(wǎng)絡(luò)狀態(tài)變化時,也可廣播改變。
- 19. AccessibilityManagerService-> AccessibilityManager
這塊可能要仔細看一下,主要是一些View獲得點擊、焦點、文字改變等事件的分發(fā)管理,對整個系統(tǒng)的調(diào)試、問題定位等,也需要最這個服務仔細過目一下。
- 20. NotificationManagerService -> NotificationManager
負責管理和通知后臺事件的發(fā)生等,這個和statusbar膠黏在一起,一般會在statusbar上添加響應圖標。用戶可以通過這知道系統(tǒng)后臺發(fā)生了什么事情。
- 21. MountService
磁盤加載服務程序,一般要和一個linux daemon程序如vold/mountd等合作起作用,主要負責監(jiān)聽并廣播device的mount/unmount/bad removal等等事件。
- 22. DeviceStorageMonitorService
監(jiān)控磁盤空間的服務,當磁盤空間不足10%的時候會給用戶警告
- 23. LocationManagerService -> LocationManager
要加入GPS服務等,這部分要細看,現(xiàn)在應用中的navigation沒響應,可以從此處著手看一下
- 24. SearchManagerService -> SearchManager
The search manager service handles the search UI, and maintains a registry of searchable activities.
- 25. Checkin Service(FallbackCheckinService)
貌似checkin service是google提供的包,沒有源代碼,源碼只有fallbackCheckinService
- 26. WallpaperManagerService -> WallpaperManager
管理桌面背景的服務,深度定制化桌面系統(tǒng),需要看懂并擴展<同時要兼容>這部分
- 27. AudioService -> AudioManager
AudioFlinger的上層管理封裝,主要是音量、音效、聲道及鈴聲等的管理
- 28. HeadsetObserver
耳機插拔事件的監(jiān)控小循環(huán)
- 29. DockObserver
如果系統(tǒng)有個座子,當手機裝上或拔出這個座子的話,就得靠他來管理了
- 30. BackupManagerService -> BackupManager
備份服務
- 31. AppWidgetService -> AppWidgetManager
Android可以讓用戶寫的程序以widget的方式放在桌面上,這就是這套管理和服務的接口
- 32. StatusBarPolicy
管理哪個圖標該在status bar上顯示的策略。
mediaServer服務進程
MediaServer服務基本上都是native的services,mediaServer進程也是在init.rc中啟動的,它不是一個daemon進程,這點容易搞混。他也是和systemserver進程類似的系統(tǒng)服務進程,提供應用進程的RPC調(diào)用的真正服務代碼所運行的位置。其服務都是和媒體錄播放有關(guān),主要有三個服務:
- AudioFlinger
聲音的錄播放服務,包括混音等
- MediaPlayerService
提供媒體播放服務,opencore是這塊的核心模塊,對java端的接口在mediaplayer.java
- CameraService
提供camera的錄制、preview等功能的服務
AudioPolicyService
主要功能有檢查輸入輸出設(shè)備的連接狀態(tài)及系統(tǒng)的音頻策略的切換等。
到此這篇關(guān)于Android系統(tǒng)服務概覽的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android連接MySQL數(shù)據(jù)庫實現(xiàn)方法詳解
這篇文章主要介紹了Android連接MySQL數(shù)據(jù)庫實現(xiàn)方法,在Android應用程序中連接MySQL數(shù)據(jù)庫可以幫助開發(fā)人員實現(xiàn)更豐富的數(shù)據(jù)管理功能,而且在Android中操作數(shù)據(jù)庫真的太智能了,需要的朋友可以參考下2024-02-02Android編程實現(xiàn)自定義系統(tǒng)菜單背景的方法
這篇文章主要介紹了Android編程實現(xiàn)自定義系統(tǒng)菜單背景的方法,涉及Android菜單menu的實現(xiàn)及背景圖片的相關(guān)操作技巧,需要的朋友可以參考下2016-01-01Android學習小結(jié)之獲取被啟動的Activity傳回的數(shù)據(jù)
這篇文章主要介紹了獲取被啟動的Activity傳回的數(shù)據(jù),非常不錯,介紹的非常詳細,需要的朋友可以參考下2016-08-08Android bindService的使用與Service生命周期案例詳解
這篇文章主要介紹了Android bindService的使用與Service生命周期案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09Android獲取手機通訊錄、sim卡聯(lián)系人及調(diào)用撥號界面方法
這篇文章主要介紹了Android獲取手機通訊錄、sim卡聯(lián)系人及調(diào)用撥號界面方法,本文分別給出實現(xiàn)代碼實現(xiàn)獲取通訊錄和sim卡的聯(lián)系人,以及權(quán)限配置和調(diào)用系統(tǒng)撥打電話的界面的實現(xiàn)代碼,需要的朋友可以參考下2015-04-04