On modern versions of Android running in AOT mode
FloatMath is slower than Math. Calls to Math.sqrt(),
etc. are replaced by intrinsics which can be as small
as a single CPU opcode.
When running in interpreted mode the new
implementation is unfortunately slower, but I'm
judging this acceptable and likely to be improved
over time. This change saves a small amount of native
code.
Example timings:
Mako AOSP AOT:
Method: Original / New / Direct call to Math
ceil: 596ns / 146.ns / 111ns
sqrt: 694ns / 56ns / 25ns
Mako AOSP interpreted:
Method: Original / New / Direct call to Math
ceil: 1900ns / 2307ns / 1485ns
sqrt: 1998ns / 2603ns / 1788ns
Other calls Mako AOT:
Method: Original / New
cos: 635ns / 270ns
exp: 566ns / 324ns
floor: 604ns / 150ns
hypot: 631ns / 232ns
pow: 936ns / 643ns
sin: 641ns / 299ns
The advice to use Math directly, in preference to
FloatMath, is still good. FloatMath will be deprecated
separately.
Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: If07fcbd78543d13bc6d75f9743f999860e8d58d7
- removed unregisterContentObserver() to reactivate the service later.
- added the parameter destAddress to onReceived() callback to
distinguish whether the message is broadcast or not.
Bug: 17962624
Change-Id: I552d14661583f63bb66b07866092f972b259b15a
Returns the list of all the connected CEC device information. This is
different from getInputDevices() which returns devices of source type only.
For this, turned the local device address list to unmodifiable so that it can
be used by any threads.
Now respects the device type info passed through <Report Physical Address>
rather than always defaulting to the one from HdmiUtil.getTypeFromAddress().
This ensures future compatibility when a device of reserved logical address
comes with a specific type.
Bug: 18046603
Change-Id: I5f7d5e31706efba1ad5dcf4bcfd4ffc918d1d940
Somehow the change at
https://android-review.googlesource.com/#/c/109481/1/core/java/android/util/Spline.java
isn't in master, which seems to be causing a boot failure.
07-28 07:44:51.338 771 771 E art : No implementation found for float android.util.FloatMath.hypot(float, float) (tried Java_android_util_FloatMath_hypot and Java_android_util_FloatMath_hypot__FF)
07-28 07:44:51.338 771 771 W SystemServer: ***********************************************
07-28 07:44:51.339 771 771 F SystemServer: BOOT FAILURE making Power Manager Service ready
07-28 07:44:51.339 771 771 F SystemServer: java.lang.UnsatisfiedLinkError: No implementation found for float android.util.FloatMath.hypot(float, float) (tried Java_android_util_FloatMath_hypot and Java_android_util_FloatMath_hypot__FF)
07-28 07:44:51.339 771 771 F SystemServer: at android.util.FloatMath.hypot(Native Method)
07-28 07:44:51.339 771 771 F SystemServer: at android.util.Spline$MonotoneCubicSpline.<init>(Spline.java:168)
07-28 07:44:51.339 771 771 F SystemServer: at android.util.Spline.createMonotoneCubicSpline(Spline.java:72)
07-28 07:44:51.339 771 771 F SystemServer: at android.util.Spline.createSpline(Spline.java:47)
07-28 07:44:51.339 771 771 F SystemServer: at com.android.server.display.DisplayPowerController.createAutoBrightnessSpline(DisplayPowerController.java:1100)
Change-Id: Ic6a85d4f9125b921fa4f307e9d5723c09104ca4d
This enables a change in Settings that allows device
encryption to be disabled by the user.
Fixes bug 17881324
Change-Id: I34dfc586df1a598bf969dc82adf8537a2730d345
We now use Mapped to not double-count cached pages that are
mapped in to app processes. Also read in some more values that
count towards kernel RAM use, and count buffers as free rather
than used RAM.
It also looks like the zram accounting is broken -- it was never
collecting the total zram reserved space. I need to figure out
how I was finding that before.
Change-Id: I883f6fc93966774b5c7d2801d1801666dd11ed41