No description
Find a file
Jeff Brown 66db68948c Native input dispatch rewrite work in progress.
The old dispatch mechanism has been left in place and continues to
be used by default for now.  To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.

Includes part of the new input event NDK API.  Some details TBD.

To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument.  The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points.  The ViewRoot then
provides the InputChannel to the InputQueue.  Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue.  This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.

There can be zero or more targets for any given input event.  Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets).  Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.

End-to-end event dispatch mostly works!

To do: event injection, rate limiting, ANRs, testing, optimization, etc.

Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
2013-07-30 13:56:53 -07:00
adb Merge "Move liblog headers to system/core/include/log" 2013-07-25 21:39:24 +00:00
charger Add liblog 2013-04-09 22:03:45 -07:00
cpio Add support for filesystem capabilities. 2013-02-20 12:51:28 -08:00
debuggerd Move liblog headers to system/core/include/log 2013-07-24 12:32:39 -07:00
fastboot fastboot: add support for sparse images in flashall and update 2013-07-01 12:42:58 -07:00
fastbootd fastbootd: userspace implementation of the fastboot device-side protocol 2013-07-24 10:58:43 -07:00
fs_mgr am 6b78fad1: am a9396549: Fix my incorrect merge resolution for 132b7d750e harder. 2013-07-11 19:12:18 -07:00
gpttool Fix build by removing TAGS from host module 2012-08-15 19:52:52 -07:00
healthd healthd: Add system health monitoring daemon 2013-07-26 01:30:42 +00:00
include Native input dispatch rewrite work in progress. 2013-07-30 13:56:53 -07:00
init am 8c4b1539: am f9873987: am 5954ecb8: Merge "Allow more characters in partition name links" 2013-07-22 15:45:42 -07:00
libcorkscrew Format stack trace PC offset to 8 digits with leading zeros. 2013-05-21 12:46:09 -07:00
libctest Automated import from //branches/master/...@140824,140824 2009-03-24 18:36:50 -07:00
libcutils Move liblog headers to system/core/include/log 2013-07-24 12:32:39 -07:00
libdiskconfig config_mbr: Fix integer overflow 2012-07-26 10:18:14 -07:00
libion Add explicit sync call to ion library 2012-09-20 09:46:19 -07:00
liblinenoise Improve linenoise.c compatability. 2010-06-04 14:32:01 +08:00
liblog Move liblog headers to system/core/include/log 2013-07-24 12:32:39 -07:00
libmincrypt mincrypt: merge the two RSA verifiers 2013-04-11 12:55:43 -07:00
libnetutils resolved conflicts for merge of c0df50af to stage-aosp-master 2013-06-10 15:06:43 -07:00
libnl_2 am cdc4a400: am cb71ed30: am 50e2555d: Merge "Always include <sys/socket.h> before <linux/netlink.h>." 2012-09-12 11:08:42 -07:00
libpixelflinger Add liblog 2013-04-09 22:03:45 -07:00
libs/utils Native input dispatch rewrite work in progress. 2013-07-30 13:56:53 -07:00
libsparse libsparse: Fix null pointer issue 2013-04-01 11:22:50 +08:00
libsuspend am 76edb14f: am 2cc3527a: libsuspend: compile as a static library 2012-12-06 18:59:59 -08:00
libsync update libsync to support new timeout semantics 2012-08-21 18:21:18 -07:00
libsysutils am 51a2e4d5: Merge "libsysutils: fix null pointer and memory leak issue" 2013-05-21 14:39:19 -07:00
libusbhost Properly handle cases of multiple inotify events 2013-03-25 14:12:18 -07:00
libzipfile Fixed warnings test_zipfile 2012-08-20 16:38:37 -04:00
logcat Move liblog headers to system/core/include/log 2013-07-24 12:32:39 -07:00
logwrapper logwrapper: Add ability to log to kernel log 2013-04-14 17:10:55 -07:00
mkbootimg mkbootimg: support 8192/16384 pagesizes 2013-03-10 14:11:10 +01:00
netcfg Support adding, deleting, and clearing IPv6 addrs. 2011-09-28 17:12:13 -07:00
reboot Make init handle reboots 2013-04-23 13:21:40 -07:00
rootdir healthd: normal and charger mode startup 2013-07-26 23:56:17 +00:00
run-as run-as: Don't require CAP_DAC_READ_SEARCH 2013-03-29 08:55:06 -07:00
sdcard Raise the max file open limit in sdcard 2013-02-11 15:42:22 -08:00
sh Fixed un-initialized variable warnings 2012-08-01 15:15:11 -04:00
toolbox Move liblog headers to system/core/include/log 2013-07-24 12:32:39 -07:00
.gitignore Don't compile abort_socket.c for host targets. It is only intended to run on Linux targets. 2009-05-26 13:23:23 -07:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:12:32 -07:00
CleanSpec.mk toolbox: Make reboot a separate command from toolbox 2013-03-26 12:24:10 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Adding PacketVideo attribution in NOTICE. 2013-07-30 13:56:53 -07:00
README auto import from //depot/cupcake/@135843 2009-03-03 19:32:55 -08:00
ThirdPartyProject.prop add meta-files about 3rd party projects 2010-07-16 11:41:39 -07:00

The system/ directory is intended for pieces of the world that are the
core of the embedded linux platform at the heart of Android.  These
essential bits are required for basic booting, operation, and debugging.

They should not depend on libraries outside of system/... (some of them
do currently -- they need to be updated or changed) and they should not
be required for the simulator build.

The license for all these pieces should be clean (Apache2, BSD, or MIT).

Currently system/bluetooth/... and system/extra/... have some pieces
with GPL/LGPL licensed code.

Assorted Issues:

- pppd depends on libutils for logging
- pppd depends on libcrypt/libcrypto
- init, linker, debuggerd, toolbox, usbd depend on libcutils
- should probably rename bionic to libc