微课名称:

     C++层(Native)系统服务API设计

 

wKioL1XajBbAcN7mAAEQ-s6tAHQ508.jpg立即学习此微课:

 

微课目标:

   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 ~