Difference between revisions of "Backboardd"

From iPhone Development Wiki
Jump to: navigation, search
(Added a more thorough description)
(Added info on IOKit)
Line 1: Line 1:
'''backboardd''', or '''BackBoard''', is a daemon introduced in iOS 6 to take some of the workload off of [[SpringBoard]]. Its chief purpose is to handle events from the hardware, such as touches, button presses, and accelerometer information. It communicates with SpringBoard through [[BackBoardServices.framework]].
+
'''backboardd''', or '''BackBoard''', is a daemon introduced in iOS 6 to take some of the workload off of [[SpringBoard]]. Its chief purpose is to handle events from the hardware, such as touches, button presses, and accelerometer information. It communicates with SpringBoard through [[BackBoardServices.framework]]. In iOS 6, it serves as the bridge between IOKit and userland processes.
  
 
BackBoard also manages the launching, suspension, and termination of application processes.
 
BackBoard also manages the launching, suspension, and termination of application processes.
Line 5: Line 5:
 
== Hardware Management ==
 
== Hardware Management ==
  
BackBoard is responsible for forwarding the following hardware events to the top application:
+
BackBoard is responsible for forwarding the following hardware events to processes:
  
 
* Accelerometer input
 
* Accelerometer input
Line 13: Line 13:
 
* TV/Video out events
 
* TV/Video out events
  
The above events are sent to the destination process via the [[GSEvent]] framework.
+
The above events are received from IOKit and processed into the corresponding [[GSEvent]], which is then sent to the destination process via the [[GSEvent]] framework.
  
Going in the opposite direction, backboardd also allows processes (such as [[Preferences.app]] and [[SpringBoard]]) to change the brightness level.
+
Going in the opposite direction, backboardd also allows processes (such as [[Preferences.app]] and [[SpringBoard]]) to interact with some parts of the hardware, such as changing the brightness level. This interaction is mainly handled by [[BackBoardServices.framework]].
  
 +
== Handling Touch Events ==
 +
 +
BackBoard is responsible for deciding what application should receive the touch events that come in from IOKit. When a digitizer event is received, BackBoard calls the ''-contextIdAtPosition:'' method of the current '''CAWindowDisplayServer''' to get the context ID of which the touch should be sent. This is how it decides the process that should receive the touch.
  
 
[[Category:Daemons]]
 
[[Category:Daemons]]

Revision as of 14:07, 4 November 2013

backboardd, or BackBoard, is a daemon introduced in iOS 6 to take some of the workload off of SpringBoard. Its chief purpose is to handle events from the hardware, such as touches, button presses, and accelerometer information. It communicates with SpringBoard through BackBoardServices.framework. In iOS 6, it serves as the bridge between IOKit and userland processes.

BackBoard also manages the launching, suspension, and termination of application processes.

Hardware Management

BackBoard is responsible for forwarding the following hardware events to processes:

  • Accelerometer input
  • Hardware keyboard input
  • Orientation events
  • Proximity sensor events
  • TV/Video out events

The above events are received from IOKit and processed into the corresponding GSEvent, which is then sent to the destination process via the GSEvent framework.

Going in the opposite direction, backboardd also allows processes (such as Preferences.app and SpringBoard) to interact with some parts of the hardware, such as changing the brightness level. This interaction is mainly handled by BackBoardServices.framework.

Handling Touch Events

BackBoard is responsible for deciding what application should receive the touch events that come in from IOKit. When a digitizer event is received, BackBoard calls the -contextIdAtPosition: method of the current CAWindowDisplayServer to get the context ID of which the touch should be sent. This is how it decides the process that should receive the touch.