63 Commits

Author SHA1 Message Date
Jeff Brown
349703effc Native input event dispatching.
Target identification is now fully native.
Fixed a couple of minor issues related to input injection.
Native input enabled by default, can be disabled by setting
WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH to false.

Change-Id: I7edf66ed3e987cc9306ad4743ac57a116af452ff
2010-06-28 19:10:54 -07:00
Mike Lockwood
f602d362ba GPS: remove GpsEventThread from GpsLocationProvider
Rather than polling for events from the native code in an event thread,
we now require the GPS HAL libraries to call our callbacks from a thread
that is registered with the JVM to call directly into Java.
This eliminates a thread from our code and removes one step in the chain
of message passing from the GPS to the Location Manager client.

Change-Id: I2745a157690310ba9a699a8369f54a7366c6b1ba
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-22 09:26:41 -04:00
Jeff Brown
46b9ac0ae2 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
2010-06-13 17:42:16 -07:00
Christopher Tate
a8ebe8b3f5 am df2e2eff: Merge "Watchdog now records kernel stacks when it fires" into froyo
Merge commit 'df2e2eff9446c0220515fa7aab7857135e04e12e' into kraken

* commit 'df2e2eff9446c0220515fa7aab7857135e04e12e':
  Watchdog now records kernel stacks when it fires
2010-06-06 12:10:08 -07:00
Christopher Tate
ecaa7b41ca Watchdog now records kernel stacks when it fires
The kernel threads are appended to the usual /data/anr/traces.txt file
and dropboxed along with the usual Dalvik stack dumps.

Change-Id: I120f1f5ee54c965efe9ac0c7f40fdef56385f1fa
NOTE: this change depends on the kernel publishing /proc/$PID/stack
2010-06-04 14:55:02 -07:00
Christopher Tate
fa9e7c05c7 Sketch of Native input for MessageQueue / Looper / ViewRoot
MessageQueue now uses a socket for internal signalling, and is prepared
to also handle any number of event input pipes, once the plumbing is
set up with ViewRoot / Looper to tell it about them as appropriate.

Change-Id: If9eda174a6c26887dc51b12b14b390e724e73ab3
2010-05-06 17:00:54 -07:00
Dianne Hackborn
69969e48f2 First pass at NativeActivity.
This is a rough sketch of the new pure-native API, which you can
use through a NativeActivity in your manifest (no Java code in
the .apk needed!).

Intentionally no docs yet, the API is still being seriously
messed with.  But it works.

Change-Id: I0e916d58a0d159ecaf3689e41834eb8dc681c0c0
2010-05-05 15:17:26 -07:00
Carl Shapiro
dbc108a718 am 15feb4de: am 19275cb5: Merge "Remove code to pass the nonexistant lockprofsample flag to Dalvik." into froyo
Merge commit '15feb4defc61c7bded6fdd3ea1c3781f25666275' into kraken

* commit '15feb4defc61c7bded6fdd3ea1c3781f25666275':
  Remove code to pass the nonexistant lockprofsample flag to Dalvik.
2010-04-20 11:50:45 -07:00
Carl Shapiro
8ba73ac72c Remove code to pass the nonexistant lockprofsample flag to Dalvik.
Change-Id: If334e21d770bc21a9b7c4f04d0fb652f53359231
2010-04-20 01:27:50 -07:00
Carl Shapiro
49ee271bba am cb2906e4: am d5a873fb: Merge "Add command line flags to enable lock profiling." into froyo
Merge commit 'cb2906e4bbb96b0be83029572a78f97dc6763eca' into kraken

* commit 'cb2906e4bbb96b0be83029572a78f97dc6763eca':
  Add command line flags to enable lock profiling.
2010-04-16 13:31:39 -07:00
Carl Shapiro
d8f3ec6e83 Add command line flags to enable lock profiling. 2010-04-15 22:42:17 -07:00
Dan Egnor
a40b3a8d98 am c1420832: am 5945579e: Merge "Change TrafficStats to a new JNI implementation." into froyo
Merge commit 'c1420832a8f9c7fa62b143ce63c71062b3969c1b' into kraken

* commit 'c1420832a8f9c7fa62b143ce63c71062b3969c1b':
  Change TrafficStats to a new JNI implementation.
2010-04-08 14:53:06 -07:00
Dan Egnor
2b4abcd0c7 Change TrafficStats to a new JNI implementation.
Also change phone's ConnectionStateTrackers to use it directly,
rather than through the INetStat binder interface.

Bug: 2578938
Change-Id: I8858e2609cbec3be845a0ce5178cb03f67e01b41
2010-04-07 19:06:29 -07:00
Mike Lockwood
00b74270c9 Move files internal to LocationManagerService from framework.jar to services.jar
Change-Id: Iebbfc49b8300ab59730733efdf489ec87ea45a25
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-04-04 18:44:05 -04:00
Ben Cheng
69c997a5c6 Update a stale JIT option name.
Change-Id: I4b2f2c215a0258adf52861bac025e32df7f40b14
2010-03-24 16:15:43 -07:00
Andy McFadden
701d916a9c Tone down a log message.
Sometimes shell commands like "am" return before the framework stuff
really finishes initializing (e.g. if you give it no arguments so you
can see the usage info).  The runtime used to print the dire and
uninformative message:

  E/AndroidRuntime(): ERROR: thread attach failed

With this change it's a bit more subdued:

  I/AndroidRuntime(): NOTE: attach of thread 'Binder Thread #2' failed

Ideally it wouldn't get logged at all when it's "expected", but that
requires actual code changes.
2010-03-01 14:08:49 -08:00
Doug Felt
dae8e94cce Add support for accessing native bidi implementation via jni.
Include a simple test to verify that the bidi code works.
2010-02-24 18:20:54 -08:00
Doug Zongker
870d81d038 remove android.os.Base64Utils
There are no more users of this code.

Change-Id: Ie0109ece2ea329aeb9607e9193eaf0808955eab9
2010-02-08 12:27:07 -08:00
Barry Hayes
c2b3217823 Add a "dalvik.vm.gc.overwritefree" property. When set to "true", the
VM will be given the "-Xgc:overwritefree" flag, and the GC will
clobber the memory of freed objects.
2010-02-03 08:46:54 -08:00
Wei-Ta Chen
bca2d613e0 Add a Java API that converts yuv data to a jpeg.
The compression is done in the native layer via calling libjpeg.

Bug: 2285598
2010-01-27 11:41:34 +08:00
Mike Lockwood
726a570258 resolved conflicts for merge of dfaf2e03 to master
Change-Id: I440d2042dd404a421789063e42102699fa33b7c0
2009-11-25 15:05:51 -05:00
Mike Lockwood
3a32213c40 Remove HardwareService and move vibrator support to VibratorService.
The lights support is only needed by PowerManagerService and NotificationManagerService, so we do not need a Binder API for it.
Move backlight and notification light support to new LightsService class.
The camera flash is now handled directly by the camera HAL, so the flash Hardware service flash support is obsolete.

Change-Id: I086d681f54668e7f7de3e8b90df3de19d59833c5
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-11-25 12:54:58 -05:00
Vasu Nori
8914a04b16 am 483ae632: am 5a03f36e: maintain cache of statementids returned by sqlite upon compiling a sql stmnt
Merge commit '483ae6328701d29e9731af25c64b09b1e18bc2e7'

* commit '483ae6328701d29e9731af25c64b09b1e18bc2e7':
  maintain cache of statementids returned by sqlite upon compiling a sql stmnt
2009-11-20 14:19:49 -08:00
Vasu Nori
5a03f36ef8 maintain cache of statementids returned by sqlite upon compiling a sql stmnt 2009-11-20 14:09:24 -08:00
Jack Palevich
560814f6b1 Add a Java API for OpenGL ES 2.0.
Currently this API is hidden.

Add a test program.
2009-11-19 16:34:55 +08:00
Ben Cheng
acc56ec7d7 Add support to suppress individual JIT optimizations. 2009-09-11 13:06:06 -07:00
Dianne Hackborn
bdcef70e15 Fix issue #2010965: Increase process size on WVGA devices
This introduces a new system property to set the max vm size.  The default
is still 16mb.
2009-08-19 10:49:18 -07:00
Nick Pelly
bd022f423a Bluetooth: API change.
Split BluetoothDevice into BluetoothDevice and BluetoothAdapter.

BluetoothAdapter: Represents the local BT adapter. Operations on the local
                  adapter (start a scan, etc).
BluetoothDevice: Represents a remote BT device. Operations on remote devices
                 (pair, connect, etc).

IBluetoothDevice.aidl -> Bluetooth.aidl
BluetoothDeviceService.java -> BluetoothDeviceService.java

TODO:
Javadoc
2009-08-18 08:24:22 -07:00
Ben Cheng
0e01fbf722 Add an option to enable JIT trace profiling for app_process. 2009-07-17 16:04:00 -07:00
Android (Google) Code Review
2df7c15aa0 am b505ae41: Merge change 5459 into donut
Merge commit 'b505ae4195d9b8a93c71b1f9da6d7d8c3aaa3c08'

* commit 'b505ae4195d9b8a93c71b1f9da6d7d8c3aaa3c08':
  Make the BackupHelperDispatcher properly handle multiple helpers.
2009-06-25 18:06:01 -07:00
Joe Onorato
4ababd922e Make the BackupHelperDispatcher properly handle multiple helpers. 2009-06-25 20:36:09 -04:00
Android (Google) Code Review
4527acb0c3 am 856dd8a6: Merge change 4952 into donut
Merge commit '856dd8a60a70a5b7dca2bf2114872ce063e2ad60'

* commit '856dd8a60a70a5b7dca2bf2114872ce063e2ad60':
  Helper API cleanup.  Allows multiple helpers to function,
2009-06-22 13:20:31 -07:00
Joe Onorato
06290a4bb9 Helper API cleanup. Allows multiple helpers to function,
because they'll always go in the same order, and this lets
us not have to write headers to keep them paired.
2009-06-22 13:02:24 -07:00
Ben Cheng
e090f3bc9e Shorten the property name as there appears to be a length limit for it. 2009-06-19 17:16:28 -07:00
Ben Cheng
52b0e73443 Process new property definitions for JIT-specific options for apps performance tuning and debugging. 2009-06-19 13:50:58 -07:00
Android (Google) Code Review
1c14776a13 am 16ce3504: Merge change 4708 into donut
Merge commit '16ce3504c5bf98d95d5c36001f755bb4b15253c9'

* commit '16ce3504c5bf98d95d5c36001f755bb4b15253c9':
  Make RestoreHelper and friends also write out the snapshot state.
2009-06-18 19:04:50 -07:00
Joe Onorato
d2d9ceb730 Make RestoreHelper and friends also write out the snapshot state. 2009-06-18 18:41:11 -07:00
Christopher Tate
daf701fa62 am 2fdd428e: Fix some backup reader/writer issues; make local transport do backup
Merge commit '2fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2'

* commit '2fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2':
  Fix some backup reader/writer issues; make local transport do backup
  Fix the jni initializer.
  Add RestoreFileHelper, BackupDataInput, and add java wrappers for the methods on BackupDataOutput.
  Fix bug #1812041: activity manager crash with bad args.
  Journal backup requests so that they won't be lost in a crash
  Fix data connection issues.
2009-06-14 21:13:03 -07:00
Joe Onorato
1cf587496f Add RestoreFileHelper, BackupDataInput, and add java wrappers for the methods on BackupDataOutput. 2009-06-12 16:21:24 -07:00
Mathias Agopian
8ed6beb515 rename string_array.h to StringArray.h and move the implementation from the header file to a new cpp file.
StringArray is used in two places in framework/base and in the Sim. Ideally we should get rid of it and use Vector<String8> instead of creating new code.
2009-06-05 01:26:23 -07:00
Nick Pelly
0b6955a48b New BluetoothSocket API.
Modeled on blocking java.net.Socket and java.net.ServerSocket library.

Public interface is:

public final class BluetoothSocket implements Closeable {
   public static BluetoothSocket createRfcommSocket(String address, int port) throws IOException;
   public static BluetoothSocket createInsecureRfcommSocket(String address, int port) throws IOException;

   public void connect() throws IOException;
   public void close() throws IOException;

   public String getAddress();
   public InputStream getInputStream() throws IOException;
   public OutputStream getOutputStream() throws IOException;
}

public final class BluetoothServerSocket implements Closeable {
   public static BluetoothServerSocket listenUsingRfcommOn(int port) throws IOException;
   public static BluetoothServerSocket listenUsingUnsecureRfcommOn(int port) throws IOException;

   public BluetoothSocket accept() throws IOException;
   public BluetoothSocket accept(int timeout) throws IOException;
   public void close() throws IOException;

}
2009-05-26 19:39:21 -07:00
Nick Pelly
f5e17310d1 Remove Database.java API.
This provided SDP functionality to Java, but is not currently used by any Apps.

I will shortly be providing SDP functionality in a new API, but it will be
quite different to this one, and in the mean-time keeping this stale code
updated with other API changes is a pain.
2009-05-20 15:24:14 -07:00
Mathias Agopian
0795272aa2 move libbinder's header files under includes/binder 2009-05-20 12:55:03 -07:00
Android (Google) Code Review
bad962bf40 am e2914615: Merge change 2099 into donut
Merge commit 'e29146158b6048936671decc060d398a68333fc0'

* commit 'e29146158b6048936671decc060d398a68333fc0':
  Hook up the backup data writer, and add a utility to read the backup data files.
2009-05-20 11:58:08 -07:00
Joe Onorato
d2110dbce0 Hook up the backup data writer, and add a utility to read the backup data files. 2009-05-20 11:24:20 -07:00
The Android Open Source Project
1a36071092 manual merge of 7ec32cc
Merge commit '7ec32cc'
2009-05-08 07:21:43 -07:00
Joe Onorato
b1a7ffef3a More backup tests 2009-05-07 15:32:48 -07:00
Android (Google) Code Review
070d4c023a am 3de05ff: Merge change 586 into donut
Merge commit '3de05ffb910b572f7816b838628567c760540f7d'

* commit '3de05ffb910b572f7816b838628567c760540f7d':
  Manage imagecache ram budget
2009-04-29 13:35:33 -07:00
Mike Reed
fc8db53eee Manage imagecache ram budget
This code was lifted from the browser, and is now global since java clients may
also use this cache for decoded images
2009-04-27 11:43:30 -04:00
Jack Palevich
1c4907ee77 Manually merge 129, 174, and 233 from donut
This adds a static OpenGL ES API.

Here are the three commit messages for the original changes:

Clean up trivial Eclipse warnings and fix whitespace.

Added @Override to overridden methods.
Removed unused imports.
Converted tabs to spaces.
Removed \r characters from end-of-lines.
Add .gitignore file to ignore the .class files that are
generated when the "gen" script is run.

This is the 2nd commit message:

Improve glgen

+ gen script is really a bash script rather than a sh script,
  so declare that to be true. (For example, it uses pushd,
  which is a part of bash, but not a part of sh. Not sure
  how this worked until now. Possibly gen was only run in
  environments where /bin/sh was really bash.

+ Check the results of the java compile of the code generator,
  and abort the script if the compile fails.

+ Turn on the bash shell option that guards against using
  uninitialized variables in the script.

+ Remove the generated class files.

Refactor JniCodeEmitter into two classes: a general-purpose
JniCodeEmitter and a specific Jsr239CodeEmitter. The hope is
to use JniCodeEmitter as a base for emitting static OpenGL ES
bindings.

This is the 3rd commit message:

Add an Android-specific static OpenGL ES 1.1 Java API.

This change adds four new public classes that expose a static OpenGL ES 1.1 API:

	android.opengl.GLES10
	android.opengl.GLES10Ext
	android.opengl.GLES11
	android.opengl.GLES11Ext

Benefits:

 + The static API is slightly faster (1% to 4%) than the existing Interface based JSR239 API.
 + The static API is similar to the C API, which should make it easier to import C-based
   example code.
 + The static API provides a clear path for adding new OpenGL ES 1.1 extensions
   and OpenGL ES 2.0 APIs, neither of which currently have a JSR standard.

Example:

  import static android.opengl.GLES10.*;

  ...

  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Note that it is possible to mix-and-match calls to both the static and JSR239 APIs.
This works because neither API maintains state. They both call through to the same underlying
C OpenGL ES APIs.

Implementation details:

This change enhances the "glgen" "gen" script to generate both the original JSR239 and
new static OpenGL ES APIs. The contents of the generated JSR239 classes remained the same as before,
so there is no need to check in new versions of the generated JSR239 classes.

As part of this work the gen script was updated to be somewhat more robust, and to
work with git instead of perforce. The script prints out commands to git add the generated files,
but leaves it up to the script runner to actually execute those commands.
2009-04-17 10:32:56 -07:00