1. 概要:


Android系统服务提供系统最基本的,最核心的功能,如设备控制,位置信息,通知等。这些服务有的在Framework层,有的在Libraries层。


2. 分类:

正如前面的应用服务一样,根据实现方式 ,我们可以把系统服务分为java系统服务和本地系统服务。存在于Framework层的,我们称之为java系统服务,这些服务都处于框架层,是用java语言编写的;存在于Libraries层的,我们称之为本地系统服务,这些服务都处于更低的Libraries层,是用C++语言编写的,运行在各自独立的进程中。

例如:

(1)在Android Framework框架层服务有:
Activity Manager,Content Providers, NotificationManager,PackageManager,TelephonyManager,Location Manager...,这些组件都是以单例模式在
SystemServer进程中进行初始化的。


(2)在Libraries层的系统服务有:
SurfaceManager,AudioFlinger等。


3.系统服务的使用:

相信大家对getSystemService()并不陌生,无论是java系统服务,还是本地系统服务,直接调用getSystemService()就能获取指定的服务,这一点与应用服务(前面几节已经讲过)不同(应用服务是通过startService()来启动的。)。
之所以能直接使用getSystemService(),是因为在Android初始化过程中,已经在init进程中启动了这些服务。


4. 系统服务的实现:
无论是java系统服务,还是本地系统服务,要实现它,就要按照Android平台的要求,实现相应的函数和接口,这需要在源码的基本上进行修改。
这里就不再给出具体的实现例子了,有兴趣的朋友,可以从网络上找些例子,试着去实现自定义的系统服务。

更多相关文章

  1. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速
  2. XMPP协议实现原理介绍
  3. 让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅
  4. Android(安卓)开发者从0到1发布一个微信小程序的采坑过程——使
  5. Android中图片实现按钮点击效果
  6. Android的多语言实现
  7. 混合开发之ReactNative调用Android原生方法
  8. Android之自定义View实现随手势滑动的小圆球
  9. 浅谈Java中Collections.sort对List排序的两种方法

随机推荐

  1. RecyclerView Divider完美解决方案
  2. android studio 3.1 升级gradle4.4时所踩
  3. 自定义Android系统服务
  4. Android(安卓)EditText监听小数点让用户
  5. android应用开发:android网络通信
  6. NDK编译Libyuv
  7. Android之加载图片时自定义进度条
  8. Android(安卓)判断是否能真正上网
  9. android学习(二)——第一个android工程
  10. Android培训班(57)Dalvik虚拟机运行Zygot