Android開發之Android的核心服務 – Android移動開發技術文章_手機開發 Android移動開發教學課程

所謂Android的核心服務主要包括熵服務(Entropy Service)、電源管理器(Power Manager)、Activity管理器(Activity Manager)、通話寄存器(Telephony Registry)、包管理器(Package Manager)、賬戶管理器(Account Manager)、內容管理器(Content Manager)、內容提供器(System Content Providers)、電池服務(Battery Service)、光線服務(Lights Service)、振動服務(Vibrator Service)、鬧鐘管理器(Alarm Manager)、看門狗(Init Watchdog)、窗口管理器(Window Manager)、藍牙服務(Bluetooth Service)等。這些服務和應用程序密切相關,但通常應用程序不能直接接入核心服務。早期版本中的硬件服務(Hardware Service)和傳感器服務(Sensor Service)已經被移除,光線服務和振動服務在核心服務通過系統服務器來啟動。系統服務器的實現位於SystemServer.java中。
1.熵服務
熵服務主要負責在開關機時加載和保持Linux內核的熵池數據。附加的熵池數據包括:序列號(serial no)、啟動模式(boot mode)、基帶(base band)、運營商(carrier)、引導加載器(bootloader)、硬件(hardware)、版本(revision)、當前時間(微妙)、當前時間戳(納秒),熵服務的實現位於EntropyService.java文件中。
在應用層,熵池數據可以通過Build對象獲取,方法如下:
Build. MODEL //產品名
        Build. MANUFACTURER //設備制造商
        android.os.Build.VERSION.SDK // SDK版本如“9”
更詳細的信息可以參考build.java和DeviceInfoSettings.java等。
2.電源管理器
電源管理器主要負責系統的電源管理策略,如鍵盤燈、LCD背光、按鈕等,相關的實現位於PowerManagerService.java文件中。具體的策略分為SCREEN_OFF、SCREEN_DIM、SCREEN_BRIGHT、SCREEN_BUTTON_BRIGHT、ALL_BRIGHT、LIGHTS_MASK等幾個等級。
3.Activity管理器
基於棧來管理應用程序的生命周期,方便用戶在不同的Activity間切換。Activity管理器的實現位於ActivityManagerService.java文件中。在啟動Activity管理器後,還應為其安裝系統內容提供器(System Content Providers)、添加看門狗等。
4.通話寄存器
管理與通話相關的內容。通話寄存器的實現位於TelephonyRegistry.java文件中。
5.包管理器
對安裝包進行管理,可以執行安裝、卸載、激活、去活、查看包權限等操作。包管理器的用法為pm [list|path|install|uninstall]。
執行的腳本為:/system/bin/pm。腳本內容如下:
base=/system
        export CLASSPATH=$base/framework/pm.jar
        exec app_process $base/bin com.android.commands.pm.Pm "$@"
包管理器的實現位於PackageManagerService.java文件中。
6.賬戶管理器
所謂的賬戶管理器(Account Manager)即對設備上應用賬戶的賬戶名、密碼、鑒權等進行管理,賬戶管理器的實現位於AccountManagerService.java文件中。
7.內容管理器
內容管理器主要在應用程序間訪問、分享數據。如其他應用程序可以去存取電話簿中的聯系人資料等。內容管理器的實現位於ContentService.java文件中。
8.電池服務
電池服務主要負責管理電池的充電狀況、電池的電力水平等。相關的實現位於BatteryService.java文件中。
9.光線服務
 
所謂的光線服務主要包括LCD背光、按鈕背光、鍵盤燈等。相關的實現位於LightsService.java文件中。
10.振動服務
所謂振動服務即對馬達的控制,相關的實現位於VibratorService.java文件中。
11.鬧鐘管理器
鬧鐘管理器主要負責鬧鐘的喚醒、取消,以及鬧鐘列表的管理等,相關的實現位於AlarmManagerService.java文件中。
12.窗口管理器
管理窗口系統。窗口管理器的實現位於WindowManagerService.java文件中。這是Android的UI框架最重要的部分。窗口類型包括Activity、Dialog、PopupWindow等。實際的控制通過WindowToken進行。
13.藍牙服務
Android對藍牙協議提供瞭支持,相關的上層代碼實現在android.bluetooth包中,主要的類包括android.bluetooth. BluetoothAdapter、android.bluetooth. BluetoothDevice、android.
bluetooth. BluetoothSocket、android.bluetooth. BluetoothServerSocket、android.bluetooth. BluetoothClass等。為掃描、連接藍牙設備,基於藍牙設備的文件傳輸等提供瞭便利。藍牙的上層代碼主要位於frameworks\base\core\java\android\bluetooth目錄下。目前Android支持的藍牙標準為BT 2.1,采用的藍牙協議棧為著名的開源藍牙協議棧BlueZ。如果是在模擬器上運行,藍牙服務不啟動。
在核心服務之外,Android還為用戶提供瞭如設備策略管理服務(Device Policy Manager Service)、狀態欄服務(Status Bar Service)、剪貼板服務(Clipboard Service)、輸入法服務(InputMethod Service)、網絡狀態服務(NetStat Service)、網絡管理服務(NetworkManagement Service)、連接服務(Connectivity Service)、喉服務(Throttle Service)、接入管理器(Accessibility Manager)、掛載服務(Mount Service)、通知管理器(Notification Manager)、掛載服務(Mount Service)、存儲監控器(Device Storage Monitor)、位置管理器(Location Manager)、搜索管理器(Search Manager)、DropBox服務(DropBox Service)、桌面服務(Wallpaper Service)、音頻服務(Audio Service)、耳機觀察器(Headset Observer)、Dock觀察器(Dock Observer)、USB觀察器(USB Observer)、UI模式管理服務(UI Mode Manager Service)、備份服務(Backup Service)、AppWidget服務(AppWidget Service)、識別服務(Recognition Service)、DiskStats服務(DiskStats Service)等。(摘自華清遠見系列圖書《Android多媒體編程從初學到精通》)

本文出自 “嵌入式” 博客

You May Also Like