微课名称:
C++层(Native)系统服务和API设计
立即学习此微课:
-
方法:ADT学院为您播放(免费播放中)
微课目标:
Native Service是实作在Runtime层里的System Server。架构设计上,我们有二个选择,一个是实作Android Service、再透过JNI与HAL stub沟通;另一个选择是,跳过Android Service,让App直接与Native Service沟通。在Android平台底层也有重要的API,就是系统服务API。于此,特别专注于这个系统服务API,介绍Android系统服务的种类、熟悉Android既有的系统服务、亲自撰写自己的系统服务、替系统服务设计和包装API,以便扩充Android既有的系统服务API。
微课介绍:
在Android开机过程中,就会启动数十个系统服务。当开机完成时,全部系统服务也都启动完成了。接着,才能启动App,并执行之。所以,系统服务的启动时间早于App的启动时间。也就是说,当App服务启动时,系统服务早已经启动存在了。其中,本地服务(Native Service)是实作在Runtime层里的System Server。架构设计上,我们有二个选择,一个是实作Android Service、再透过JNI与HAL stub沟通;另一个选择是,跳过Android Service,让App直接与Native Service沟通。 所以系统服务可以用C++语言来撰写,就称为Native 系统服务,简称为Native Service,如MediaPlayerService、SensorService等。
对于一些非手机类的Android相关产品厂商,例如Android-based POS终端硬设备厂商。由于考虑到未来Android持续改版时,SystemServer的更新权限不在自己手中,所以大多采取Native Service途径。在Android平台底层也有重要的API,就是系统服务API,介于Android平台与硬件驱动程序之间,它是Android平台软硬整合的关键所在。
内容单元:
Sec_01_C++层(Native)系统服务的角色
Sec_02_提供通用性的IBinder接口
Sec_03_亲自撰写SQRService服务
Sec_04_将IBinder接口特殊化
Sec_05_设计Stub类
Sec_06_使用模板产生Stub类
Sec_07_以既有的Native服务为例
~ End ~