`

Android振动系统学习

阅读更多

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

分享到:
评论

相关推荐

    Go-AndroidvibratorforGo移植Android振动器硬件至Go中

    在Android平台上,振动器(Vibrator)是系统服务的一部分,允许应用执行设备的物理振动。在Go语言中,由于其原生并不支持直接操作硬件,所以通常需要通过JNI(Java Native Interface)或者其他方式来实现与Android...

    Android通知栏学习

    在Android系统中,通知栏(Notification Bar)是用户获取应用信息和系统状态的重要途径。它显示了各种应用程序发送的通知,允许用户快速响应或管理这些通知。Android状态栏的学习是开发者必须掌握的关键技能之一,...

    Android系统日历日程操作.rar

    在Android系统中,日历和日程管理是用户日常安排工作、生活的重要工具。...如果"Android系统日历日程操作"的压缩包中包含具体教程,用户可以通过学习这些知识来提升自己在Android设备上的日历使用体验。

    Android 英语单词记忆程序源码-IT计算机-毕业设计.zip

    另外,为了提高用户体验,应用可能还包含了通知、振动、音频播放等功能,这些都是通过Android的系统服务实现的。例如,当用户完成一定学习目标时,系统可能会发送通知以提醒他们。 最后,考虑到这是一个毕业设计...

    Android驱动开发与移植实战详解

    依次讲解了Android系统的基本知识, Linux内核的基本知识,分析了Android系统的源码,深入分析HAL层的基本知识,GoldFish下的驱动、MSM内核和驱动、OMAP内核和驱动、显示系统驱动、输入系统驱动、振动器系统驱动、...

    贪食蛇游戏的Android嵌入式系统设计.pdf

    贪食蛇游戏作为一款经典的游戏,其Android嵌入式系统设计是移动应用开发的一个实例,展示了如何将传统游戏与现代移动设备技术相结合。在本文中,作者韩中、杨琼、贾晓婷、苟和平和李援详细阐述了在Android平台上实现...

    Android游戏源码适合学习的五子棋游戏.zip

    在Android平台上,开发一款五子棋游戏是一种常见的学习实践,对于初学者来说,这是一个很好的机会去理解移动应用的开发流程,特别是涉及到游戏逻辑和UI设计的部分。本项目提供的"Android游戏源码适合学习的五子棋...

    Android原生闹钟源码

    通过研究这些源码,开发者可以学习到如何高效、节能地实现自己的闹钟应用,同时也可以了解Android系统级别的服务如何协同工作。对于想要提升Android开发技能,特别是系统级应用开发的程序员来说,这是一个非常有价值...

    Android User's Guide

    此外,Android系统允许用户自定义设置,如调整显示亮度、更改壁纸、设置铃声和振动模式等,以适应个人偏好。 对于Android应用开发,Java是核心编程语言。开发者使用Java SDK(软件开发工具包)编写代码,利用...

    Android玲闹钟

    【Android铃闹钟】是一款基于Android系统的自定义闹钟应用,它源于开源代码并经过了简化,便于开发者理解和学习。在这款应用中,用户可以设置个性化的闹钟,以满足不同场景下的提醒需求。开发者通过深入研究这个项目...

    Android手机振动源码实例

    在Android平台上,实现设备振动是通过Vibrator类来完成的,它是Android提供的一个系统服务,允许应用程序触发设备的物理振动。下面将详细讲解如何在Android中实现手机振动,并提供一个简单的源码实例。 首先,我们...

    android小项目手机情景模式

    在Android中,访问某些系统功能(如更改音量、振动模式等)需要获取相应的权限。开发者需要在AndroidManifest.xml文件中声明所需权限,如`<uses-permission>`标签的使用。 6. **通知栏通知**: 为了提醒用户情景...

    android clock

    《深入解析Android Clock:源码剖析与应用开发...通过对源码的深入学习,开发者不仅可以提升对Android系统的理解,还能掌握到更多关于时间管理、通知提醒以及用户界面设计的知识,为自己的应用开发带来灵感和实践指导。

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part1

    全书分为19章,依次讲解驱动移植的必要性,何为hal层深入分析,goldfish、msm、map内核和驱动解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的驱动,openmax多媒体、多媒体插件框架,传感器、照相机...

    Android应用源码-实现Vibrator测试功能,短震动,长震动,频率震动,取消震动.zip

    在Android开发中,Vibrator类是用于实现设备振动功能的核心组件。这个压缩包"Android应用源码-实现Vibrator测试功能,短...对于初学者来说,这是一个很好的实践和学习资源,可以帮助理解和掌握Android设备的振动功能。

    android DeskClock 时钟闹钟源码

    通过研究 DeskClock 的源码,开发者不仅能学习到 Android 应用开发的基础知识,还能深入了解系统级应用的设计和优化技巧,这对提升个人技能和开发高效、稳定的应用非常有帮助。对于想要定制或扩展时钟应用的开发者来...

    安卓Android源码——android姿态传感器源代码.zip

    在安卓(Android)系统中,姿态传感器是移动设备获取运动数据和方向的关键组件。这些传感器包括加速度计、陀螺仪、磁力计等,它们共同工作以提供设备的完整姿态信息,例如角度、旋转、倾斜和方向。在这个“安卓...

Global site tag (gtag.js) - Google Analytics