Android振动器系统的学习

学习文献

一篇非常好、非常详细的文章: http://mobile.csdn.net/a/20110301/292785.html

使用与思考

振动器系统其实是为整个Android应用提供了完整的振动服务框架,通过在后台启动一个服务进程等待并调度振动请求。

一个振动请求,首先被服务程序获取(请求的描述主要是一列描述振动时长、振动间隔的时间序列),然后将其包装成一个独立的VibrateThread线程,通过加锁同步机制保证振动器使用的唯一性。

System Server: W800_Dev/frameworks/base/cmds/system_server
Vibrator.java: W800_Dev/frameworks/base/core/java/android/os/Vibrator.java

由Eventcb捕获并交由InputDispatcher分发给system_server进程(PhoneWindowManager),PhoneWindowManager根据具体按键进行操作。
其中涉及到performHapticFeedbackLw方法调用,performHapticFeedbackLw方法调用了mVibrator.vibrate,最后的vibrate方法产生了VibrateThread线程。
然后system_server会继续执行与按键相关的操作。

frameworks/base/libs/ui/InputDispatcher.cpp->notifyKey()->doNotifyKey():mPolicy->interceptKeyBeforeQueueing
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

更多相关文章

  1. Android——IPC机制(一)IPC概念以及Binder机制
  2. Android开发基本篇(二)
  3. Android(安卓)SQLite详解
  4. android两个子线程间通信
  5. Android学习笔记(十七)数据保存
  6. android framework中添加使用第三方jar包
  7. Android(安卓)Service与Activity之间通信的几种方式
  8. Android(安卓)camera预览流程
  9. Android(安卓)View中的onMeasure()方法详解

随机推荐

  1. Android Action使用实例
  2. android修改默认语言
  3. Android当前时间的获取
  4. 控制android弹出框不消失
  5. Android中控制虚拟键盘
  6. Android DownloadManager 使用
  7. 深入浅出Android Support Annotations
  8. Android常见面试题总结 1.1
  9. Android 双击退出应用
  10. SystemServer 分析