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。如果是在模拟器上运行,蓝牙服务不启动。
在核心服务之外,An
相关新闻>>
- 发表评论
-
- 最新评论 更多>>