Android 中的服務

廢話只說一句:android aosp源碼龐大,是個大草原,要跑馬,請看準方向,本文就是個方向

(我不寫長文,也不貪多,可能介紹不清楚,然後就這樣,寫給懂的人看)

 


android既然分爲 c世界 和 java世界,那麼服務也從這倆方面介紹咯:

  1.  c世界服務稱爲本地服務。(service manager service好特殊)

  2.  java世界服務(就是zygote,不,應該說SystemServer中初始化的服務)稱爲 上層服務(或者說框架服務)

當然你也可以叫別的名字,不過我覺得這樣挺好區分的,就這樣叫咯。(四大組件之一的service其實是框架層對Binder封裝,也叫服務,但不是這個上層服務,你可以稱它爲“用戶可定製服務”)

 

一、 本地服務: (init進程解析init.rc跑起來的服務) (比方說我最熟悉的installd)

core類型的   (類型是在init.rc裏記錄服務是標明的)

服務名稱 手機中執行文件位置 說明
ueventd /sbin/ueventd -->../init 創建運行時目錄、設備節點
healthd /sbin/healthd  
console /system/bin/sh  
adbd /sbin/adbd  
servicemanager /system/bin/servicemanager /system/bin下面還有很多服務
    vold, logd之類的

 

main類型服務

服務名稱 可執行文件path 說明
netd /system/bin/netd  
debuggerd /system/bin/debuggerd  
ril-daemon /system/bin/rild  
surfaceflinger /system/bin/surfaceflinger  
zygote /system/bin/app_process 創建app應用進程的服務
installd /system/bin/installd  

補充一個:  keystore   /system/bin/keystore

 

二、上層服務 ( system server進程中初始化的服務,或者說在service manager中註冊的服務)

(特別重要的,核心的,我用加重標識)

這部分介紹,整理自:http://blog.csdn.net/zhgxhuaa/article/details/24835065

1.AccountManagerService

Android賬戶服務,提供了對賬戶、密碼、授權的集中管理。

2.AccessibilityManagerService

輔助管理程序截獲所有的用戶輸入,並根據這些輸入給用戶一些額外的反饋,起到輔助的效果,View的點擊、焦點等事件分發管理服。

3.ActivityManagerService

Android framework框架核心服務,管理整個框架中任務、進程管理、Intent解析等的核心實現,管理四大組建的生命週期。

4.AlarmManagerService

提供鬧鈴和定時器等功能。

5.AppWidgetService

Android中提供Widget的管理和相關服務

6.AssetAtlasService

負責將預加載的bitmap組裝成紋理貼圖,生成的紋理貼圖可以被用來跨進程使用,以減少內存。

7.AudioService

AudioFlinger的上層管理封裝,主要是音量、音效、聲道及鈴聲等的管理。

8.BackupManagerService

備份服務。

9.BatteryService

負責監控電池的充電狀態、電池電量、電壓、溫度等信息,當電池信息發生變化時,發生廣播通知其他關係電池信息的進程和服務。

10.BluetoothManagerService

負責藍牙後臺管理和服務。

11.ClipboardService

剪貼板服務。

12.CommonTimeManagementService

管理本地常見的時間服務的配置,在網絡配置變化時重新配置本地服務。

13.ConnectivityService

網絡連接狀態服務。

14.ContentService

內容服務,主要是數據庫等提供解決方法的服務。

15.ConsumerIrService

遠程控制,通過紅外等控制周圍的設備(例如電視等)

16.CountryDetectorService

檢測用戶國家

17.DevicePolicyManagerService

提供一些系統級別的設置及屬性

18.DiskStatsService

磁盤統計服務,供dumpsys使用

19.DisplayManagerService

用於管理全局顯示生命週期,決定在已連接的物理設備如何配置邏輯顯示,並且通知系統和應用狀態的改變。

20.DreamManagerService

屏幕保護。

21.DropBoxManagerService

用於系統運行時日誌的存儲於管理。

22.IdleMaintenanceService

用於觀察設備狀態,在設備空閒時執行維護任務。將一些比較耗時的代價比較高的任務放到設備空閒時執行,這樣保證用戶的體驗。

23.InputManagerService

以前在WindowManagerService中,現在獨立了出來,用戶處理事件分發。

24.InputMethodManagerService

輸入法服務,打開和關閉輸入法。

25.LightsService

光感應傳感器服務。

26.LocationManagerService

位置服務,GPS、定位等。

27.LockSettingsService

和鎖屏界面中的輸入密碼,手勢等安全功能有關。可以保存每個user的相關鎖屏信息。

28.WallpaperManagerService

壁紙管理服務。

29.MountService

磁盤加載服務程序,一般要和一個linux daemon程序如vold/mountd等合作起作用,主要負責監聽並廣播device的mount/unmount/badremoval等等事件。

30.NetworkManagementService

網絡管理服務。ANDROID 系統網絡連接和管理服務由四個系統服務ConnectivityService、NetworkPolicyManagerService、NetworkManagementService、NetworkStatsService共同配合完成網絡連接和管理功能。ConnectivityService、NetworkPolicyManagerService、NetworkStatsService三個服務都通過INetworkManagementService接口跨進程訪問NetworkManagementService服務,實現與網絡接口的交互及信息讀取。

31.NetworkPolicyManagerService

維護網絡使用策略。

32.NetworkStatsService

網絡統計相關。

33.NetworkTimeUpdateService

監視網絡時間,當網絡時間變化時更新本地時間。

34.NotificationManagerService

通知服務。

35.NsdService

網絡服務搜索

36.PackageManagerService

Android framework框架核心服務,用於APK的解析、權限驗證、安裝等。

37.PrintManagerService

打印服務。

38.PowerManagerService

電源管理服務。

39.RecognitionManagerService

身份識別相關。

40.SamplingProfilerService

用於耗時統計等。

41.SearchManagerService

搜索服務。

42.SchedulingPolicyService

調度策略。

43.SerialService

對串口的設備進行操作

44.StatusBarManagerService

狀態欄。

45.TelephonyRegistry

提供電話註冊、管理服務,可以獲取電話的鏈接狀態、信號強度等等。

46.TextServicesManagerService

文本服務,例如文本檢查等。

47.TwilightService

指出用戶當前所在位置是否爲晚上,被UiModeManager等用來調整夜間模式。

48.UiModeManagerService

管理當前Android設備的夜間模式和行車模式.。

49.UsbService

USB Host和device管理服務。

50.VibratorService

振動器服務。

51.WifiP2pService

Wifi Direct服務。

52.WifiService

Wifi服務。

53.WindowManagerService

Android framework框架核心服務,窗口管理服務。

54.WiredAccessoryManager

監視手機和底座上的耳機。

 

補充一個 :

FingerprintManagerService  提供指紋相關的服務(authenticate啊、enroll啊之類的)


 

我學習的時候是,先掐了個PMS,搞的半死不活的,不,死去活來的。

後來又和AMS以及WMS打,最近科室做預言的時候一直在攻擊FMS  (指紋服務)。

目前感覺,一旦一個服務拿下來,後面的就順手很多。(就像知道Binder機制後發現android系統再也玩不出新花樣了)

但是也有例外,比方說AMS和WMS的纏綿,至今搞的我神魂顛倒,像FMS就還好。

F.Y.I.

merlin

2015/9/29

尊重原著,轉載自:http://www.mamicode.com/info-detail-1063584.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章