Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android系統各種類型的service刨根解讀

Android系統各種類型的service刨根解讀

編輯:關於Android編程

Android存在3大類service, 處於android系統的不同框架層,具體解讀如下:


1) init.rc中的service


service servicemanager /system/bin/servicemanager

class core

user system

group system

critical

onrestart restart healthd

onrestart restart zygote

onrestart restart media

onrestart restartsurfaceflinger

onrestart restart drm

其實這類service就是為了定義開啟啟動的程序,該類service的對象是一個可以執行的binary程序。把它定義為一種service是為了更好的描述該binary運行的屬性,比如運行用戶,組,啟動一次(oneshot)還是不停啟動(程序死掉後會再次啟動)。更重要的是它還能描述各個程序之間的關系。比如onrestart restart drm,這個描述的意思是當drm程序重啟時,該程序也要主動重啟。


2) 系統層service


該類service和我們通常理解的service很接近,就是系統中提供服務的,該類service定義出服務接口,其他模塊通過該接口即能使用該服務。該類服務的執行體可以是二進制代碼,也可以是java代碼。比如:

c++類型的service:

SurfaceFlinger,CameraManagerService, MediaPlayerService

java類型的service:

ActivityManagerService,WindowManagerService,NetworkManagerService

實現機制是該類service向上面提到的servicemanager注冊它的服務,其他模塊通過名字從servicemanager拿到service的接口。在shell通過命令 "service list"能列出系統中所有的該類service。


3) SDK層的service


不像前面兩類service,他們是一類對象的總稱,而該類service是開發者經常接觸的一個很具體的java類android.app.Service.java。它是android sdk暴露給第三方應用使用的。 它是和Activity對等的,是android 四大組件之一(Activity,Service, Provider, BroadcastReceiver)。


總結:

第一類service: 系統集成工程師負責

第二類service: framework系統工程師負責

第三類service:芸芸眾生的android應用程序開發者每日親密接觸

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved