214 Commits

Author SHA1 Message Date
Vinit Deshpande
80a3a364fd Merge "Revert "Revert "Move Wifi services to a new git project""" 2014-01-08 23:47:44 +00:00
Vinit Deshpande
3ffa1a899a Revert "Revert "Move Wifi services to a new git project""
This reverts commit f1182c9c1abdb4e8f733632d0567410ab9fc1d3c.

Change-Id: Ic440cfa6502b651b2cc67faf73c7c9c49df42190
2014-01-08 02:55:29 +00:00
Vinit Deshpande
d9feaf4971 Merge "Revert "Move Wifi services to a new git project"" 2014-01-08 02:41:16 +00:00
Vinit Deshpande
f1182c9c1a Revert "Move Wifi services to a new git project"
This reverts commit 4a3f9cf099bbbe52dc0edb2a7e1d1c976bc335a3.

Change-Id: I6269a683e842a5d1cfdafea892be86972ae11c40
2014-01-08 02:38:31 +00:00
Vinit Deshapnde
ed8ed0bc81 Merge "Move Wifi services to a new git project" 2014-01-08 02:27:25 +00:00
John Reck
23b797ab51 EGL migration to native
Move EGL state management to native side for RemoteGLRenderer

Change-Id: I12b0fed70246564d4caebf87374e8bbca655c572
2014-01-07 14:53:55 -08:00
Vinit Deshapnde
4a3f9cf099 Move Wifi services to a new git project
Bug: 12175455
Change-Id: I1fa07e29c6a9aae38d9e334d519a9f2445d15613
2014-01-07 11:00:05 -08:00
Chris Craik
5438979e49 Move GLES20DisplayList functionality into DisplayList
Removes unneeded indirection layer

Change-Id: I75d3e369eda2788cbc52a3575c4e1c521e842f59
2013-12-20 13:53:50 -08:00
John Reck
cec24ae16e RenderThread work
Hacky prototype needs a private API to enable

Change-Id: I21e0ddf3cdbd38a4036354b5d6012449e1a34849
2013-12-09 15:57:09 -08:00
Mathieu Chartier
36c245ace5 am dae9f5a5: am f3a2430a: am 738fa2f6: Merge "Add dalvik.vm.gctype to enable switching between different GCs."
* commit 'dae9f5a5158257c65fae014b38bde08741b97e62':
  Add dalvik.vm.gctype to enable switching between different GCs.
2013-12-03 00:10:13 +00:00
Mathieu Chartier
f3a2430a2b am 738fa2f6: Merge "Add dalvik.vm.gctype to enable switching between different GCs."
* commit '738fa2f64e064f5c6d1003e528cde742e262312f':
  Add dalvik.vm.gctype to enable switching between different GCs.
2013-12-02 16:00:49 -08:00
Mathieu Chartier
7e4fdec6f0 Add dalvik.vm.gctype to enable switching between different GCs.
The option passes the specified GC type into the Xgc runtime
option.

Currently the three different supported GC types are MS, CMS, SS
which represent mark-sweep, concurrent mark-sweep, mark-sweep +
semi-space hybrid.

Change-Id: I6ad95c8d12c0d1158f7c861ff0c3180761619172
2013-12-02 15:50:18 -08:00
John Reck
3083579424 More refactoring
Merge GlRenderer and Gl20Renderer
 Move GLRenderer to its own file
 Move native methods from HardwareRenderer to GLRenderer

Change-Id: Ib4680b03dd98101b2a428062cc94774ff73baa75
2013-11-11 09:37:02 -08:00
Jeff Sharkey
db289e0ac7 am 47938450: am 306bb90d: am 8f4c15d8: Merge "Plumb through physical device UUID and label." into klp-dev
* commit '47938450b4d19f60edf774c8f451d53aa110ea0b':
  Plumb through physical device UUID and label.
2013-10-17 18:55:13 -07:00
Jeff Sharkey
5aca2b8dc4 Plumb through physical device UUID and label.
vold now parse out UUID and label for inserted physical devices,
and reports them to framework.  Add these to hidden StorageVolume
class for use by DocumentsUI and MediaProvider.

Remove last JNI method in FileUtils!

Bug: 11175082
Change-Id: I1cfcd1ade61767b103f693319ea2600008ee2e3c
2013-10-16 16:34:21 -07:00
Mike Lockwood
32f2e62674 Handle null thread name more gracefully in javaCreateThreadEtc()
Change-Id: I67bebb05736b717e0da60da36839985be08cf1d6
2013-10-10 10:27:14 -07:00
Svetoslav
6811f4e92c Move PdfDocument to android.graphics.pdf
1. Move PdfDocument to android.graphics.pdf.

2. Changed the PdfDocument as per API concil request.

3. Updated the documentation.

bug:10461180
bug:10552565
bug:10681585
bug:10552336

Change-Id: I08e15b34cf37bb064248c887e6f59808019cafe8
2013-09-19 17:12:47 -07:00
Leon Scroggins III
d0d7eaf129 Register jni objs in CreateJavaOutputStreamAdaptor
Write a registration function and call it in AndroidRuntime,
which calls FindClass/GetFieldID only once per class/method.
Use NewGlobalRef for classes that will be checked against later.

BUG:10612755
Change-Id: I25541da1b7bb1cd53a1579ea84c4620e1901310f
2013-09-06 18:27:16 -04:00
Elliott Hughes
d7a90ca50c The VM handles blocking SIGPIPE.
We don't need this any more.

Bug: 10211309

(cherry picked from commit 437e76208d451e7954699ead8931d0fe147bb07d)

Change-Id: I97b3ab4f65a70eacca2fbe95cfb11b1cc85c4021
2013-08-21 16:08:29 -07:00
Mathieu Chartier
e6c2241f7a Launch VM with -XX:LowMemoryMode if ro.config.low_ram is "true".
Bug: 10131789

Change-Id: Ib9962f7becdedd71f48123a4720dcce1d09abb9d
2013-08-20 17:38:24 -07:00
Elliott Hughes
b93489270d Merge "Remove a fixed-length buffer in the wifi code." into klp-dev 2013-08-19 18:08:49 +00:00
Elliott Hughes
a11d574fc6 Remove a fixed-length buffer in the wifi code.
Also increase the size of the buffer we do need, simplify the code, and
fix some of the error checking.

(cherry-pick of 56968581ce77d3c0ee4286da6b0d5548874934b9.)

Bug: http://code.google.com/p/android/issues/detail?id=36193
Bug: 10363597
Change-Id: Iadd2ee25469a37ddf06c3292b675a4cbcc4ecfa3
2013-08-16 14:48:38 -07:00
Jeff Sharkey
da5a3e12f4 Richer ParcelFileDescriptor close events.
When reading from the end of a pipe or socket, there is no way to
tell if the other end has finished successfully, encountered an error,
or outright crashed.  To solve this, we create a second socketpair()
as a communication channel between the two ends of a pipe or
socket pair, sending a status code with details about why the
ParcelFileDescriptor was closed.

The writer end of a pipe or socket can closeWithError() to send a
message to the reader end.  When the reader encounters EOF, they
call checkError() to detect if any error occured.  This also detects
the case where the remote process died without sending a success
message.

This design is also extended to support regular files on disk, using
the communication channel above to detect various remote close events
or crashes, and delivering that event to a supplied OnCloseListener.

Replaces JNI with best-practice Libcore.os calls, and deprecates
some flags to match Context.

Bug: 10330121
Change-Id: I8cfa1e4fb6f57397667c7f785106193e0faccad3
2013-08-16 14:34:43 -07:00
Eino-Ville Talvala
2f1a2e423e Camera2 API: Rename package to android.hardware.camera2
Change-Id: I77b7939e199f9fe8e12a59393c24cff08097448c
2013-07-30 11:37:31 -07:00
Mathias Agopian
2ca204e4c0 get rid of PixelFormatInfo and simplify things
Change-Id: I487d4eef7db0095ace4babf5bb100a8769711257
2013-07-25 19:25:10 -07:00
Igor Murashkin
70725500dc Initial camera device implementation
* Working streaming preview requests only
* Almost everything else returns empty objects that don't do anything

Bug: 9213377
Change-Id: Ie6f02a7c0952b0f5ebc41905425b15cae221f7d3
2013-06-26 13:19:45 -07:00
Igor Murashkin
36483e9622 Revert "Initial camera device implementation"
This reverts commit 59bc67c732eab53b370b196066e8012d3f6bf09a.

Change-Id: I9e1ce3b9f4af4e2b9b98855c0ca533581c87ea7f
2013-06-25 05:13:55 +00:00
Igor Murashkin
59bc67c732 Initial camera device implementation
* Working streaming preview requests only
* Almost everything else returns empty objects that don't do anything

Bug: 9213377
Change-Id: I183dd47ddd737ec2c3c374e5c3461542a97f09b0
2013-06-24 17:41:10 -07:00
Svetoslav Ganov
b06accf34f Merge "Generate PDF from Canvas." 2013-06-21 20:09:51 +00:00
Brian Carlstrom
9f8203a159 Remove libdvm dependency
Change-Id: I7d37db4e72e9435ecd514340cf61a051dc272f04
2013-06-20 16:34:45 -07:00
Svetoslav Ganov
ff4adde573 Generate PDF from Canvas.
This change adds simple APIs that enable an Android application
to generate a PDF document by drawing content on a canvas.

Change-Id: Ibac93d7c37b01a376ce7c48238657d8c7698d588
2013-06-19 19:35:38 -07:00
buzbee
b63de6de02 Process new system property for max JIT cache size
To allow low-memory devices to reduce (or eliminate entirely)
the RAM used by the JIT, dalvikvm has a new command-line
option to set the max size of the JIT's translation cache.
In this CL, we pass that new option based on a system property.

Change-Id: I2a01da4d19c1922b6ed52791ee513efef9caf3d4
2013-05-24 13:14:08 -07:00
Mathias Agopian
1f5762e646 libutils clean-up
Change-Id: I11ee943da23a66828455a9770fc3c5ceb4bbcaa9
2013-05-07 17:09:46 -07:00
Jesse Hall
ce3fe5fd8a am 4d32a367: am 2787ba25: Merge "Register EGLExt JNI methods" into jb-mr2-dev
* commit '4d32a36759b619abdda9c895054f513aef3a3f03':
  Register EGLExt JNI methods
2013-05-07 10:18:38 -07:00
Jesse Hall
237c2b871f Register EGLExt JNI methods
Bug: 8678160
Change-Id: I8ecd2e6da2aee250b3433be18fff6af927b02994
2013-05-06 11:36:59 -07:00
Romain Guy
3b748a44c6 Pack preloaded framework assets in a texture atlas
When the Android runtime starts, the system preloads a series of assets
in the Zygote process. These assets are shared across all processes.
Unfortunately, each one of these assets is later uploaded in its own
OpenGL texture, once per process. This wastes memory and generates
unnecessary OpenGL state changes.

This CL introduces an asset server that provides an atlas to all processes.

Note: bitmaps used by skia shaders are *not* sampled from the atlas.
It's an uncommon use case and would require extra texture transforms
in the GL shaders.

WHAT IS THE ASSETS ATLAS

The "assets atlas" is a single, shareable graphic buffer that contains
all the system's preloaded bitmap drawables (this includes 9-patches.)
The atlas is made of two distinct objects: the graphic buffer that
contains the actual pixels and the map which indicates where each
preloaded bitmap can be found in the atlas (essentially a pair of
x and y coordinates.)

HOW IS THE ASSETS ATLAS GENERATED

Because we need to support a wide variety of devices and because it
is easy to change the list of preloaded drawables, the atlas is
generated at runtime, during the startup phase of the system process.

There are several steps that lead to the atlas generation:

1. If the device is booting for the first time, or if the device was
updated, we need to find the best atlas configuration. To do so,
the atlas service tries a number of width, height and algorithm
variations that allows us to pack as many assets as possible while
using as little memory as possible. Once a best configuration is found,
it gets written to disk in /data/system/framework_atlas

2. Given a best configuration (algorithm variant, dimensions and
number of bitmaps that can be packed in the atlas), the atlas service
packs all the preloaded bitmaps into a single graphic buffer object.

3. The packing is done using Skia in a temporary native bitmap. The
Skia bitmap is then copied into the graphic buffer using OpenGL ES
to benefit from texture swizzling.

HOW PROCESSES USE THE ATLAS

Whenever a process' hardware renderer initializes its EGL context,
it queries the atlas service for the graphic buffer and the map.

It is important to remember that both the context and the map will
be valid for the lifetime of the hardware renderer (if the system
process goes down, all apps get killed as well.)

Every time the hardware renderer needs to render a bitmap, it first
checks whether the bitmap can be found in the assets atlas. When
the bitmap is part of the atlas, texture coordinates are remapped
appropriately before rendering.

Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
2013-05-02 13:32:09 -07:00
Jesse Hall
d877efe3b1 Fix GLES30 JNI registration
Bug: 8657863
Change-Id: I498f32480863b0716b2a8dfce467143087573cce
2013-04-29 16:02:16 -07:00
Michael Wright
a44dd26a75 Rewrite input handling for native applications
Bug: 8473020
Change-Id: Ic4353d8924ab877bec21aff8c2dba9fe725bf906
2013-04-22 17:01:51 -07:00
Jeff Brown
c28867a1d6 Use input transport for communications between app and IME.
The input method manager service now supplies an input channel for
communication while creating an IME session on behalf of the
application.

This change significanly reduces the overhead of IME event dispatch
by using a standard input channel to send input events rather than
using binder.  This results in fewer thread context switches
and fewer object allocations.

What's more, the IME may perform additional batching of the motion
events that it receives which may help it catch up if it is
getting behind while processing them.

Bug: 7984576
Bug: 8473020
Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
2013-03-26 15:42:39 -07:00
Mathias Agopian
58a1ca6642 Merge "split Surface in two classes: SurfaceControl and Surface" 2013-02-14 20:25:08 +00:00
Mathias Agopian
3866f0d581 split Surface in two classes: SurfaceControl and Surface
SurfaceControl is the window manager side; it can
control the attributes of a surface but cannot push buffers
to it. Surface on the other hand is the application (producer)
side and is used to push buffers to the surface.

Change-Id: Ib6754c968924e87e8dd02a2073c7a447f729f4dd
2013-02-14 12:19:11 -08:00
Jeff Sharkey
9a2c2a6da9 Parse network stats using native code.
Switch to parsing detailed network stats with native code, which
is 71% faster than ProcFileReader.

Change-Id: I2525aaee74d227ce187ba3a74dd08a2b06514deb
2013-02-13 17:40:49 -08:00
Elliott Hughes
9197d170b7 am fec5f611: Merge "It\'s 2012. We\'re always WITH_JIT."
* commit 'fec5f611fef4fc3b7afa5d7194f4f40d156157ac':
  It's 2012. We're always WITH_JIT.
2012-11-07 10:48:26 -08:00
Elliott Hughes
be8b47f6ce It's 2012. We're always WITH_JIT.
Change-Id: Ia3d1a1b1df06816f2cfa3879ec669b34c62cf9b9
2012-11-06 17:16:21 -08:00
Ian Rogers
7fef2b8a37 Fix target utilization property_get.
Copy and paste error where wrong compare meant the code thought a target
utilization option was specified even if there wasn't one.

b/7062303

Change-Id: Ibf1c6cf72743c5fbec7618a719d12d0373184754
2012-10-01 17:30:32 -07:00
Ian Rogers
5325010486 Extra GC heap configuration parameters.
Allows parameters to increase the maximum free size. b/6606849

Change-Id: Ia74ccdbb8e32954820e3bd26f441b2c2fac889f4
2012-09-23 16:38:03 -07:00
Jeff Brown
cbad976b2a Add support for Wifi display.
Change-Id: I99693786cf9d07d07d3400046c55eb4933730b80
2012-09-07 13:26:31 -07:00
Jeff Brown
64a55af0ac Add plumbing for new surface flinger display API.
Cleaned up the implementation of Surface and SurfaceSession
to use more consistent naming and structure.

Added JNI for all of the new surface flinger display API calls.

Enforced the requirement that all Surfaces created by
the window manager be named.

Updated the display manager service to use the new methods.

Change-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2
2012-08-27 14:34:54 -07:00
Kenny Root
3f1e8b90b0 Remove StatFs from AndroidRuntime JNI
Change-Id: I88039794cf3e4a959b37c29c67f16f2dc0751a5c
2012-08-16 14:55:18 -07:00
Kenny Root
89db6a40af Remove StatFs from AndroidRuntime JNI
Change-Id: I88039794cf3e4a959b37c29c67f16f2dc0751a5c
2012-08-16 14:31:31 -07:00