Commit Graph

389 Commits

Author SHA1 Message Date
Dianne Hackborn
0cfdd810de am e52a2ea0: am 0029f0ac: Merge "Fix issue #17323751: Additional items in aggregated battery stats" into lmp-mr1-dev
* commit 'e52a2ea03bd7b8ed2f3680c5198e00fb7ad5c34c':
  Fix issue #17323751: Additional items in aggregated battery stats
2014-12-08 19:33:49 +00:00
Dianne Hackborn
1e01d16982 Fix issue #17323751: Additional items in aggregated battery stats
- Now aggregate number of times each process has crashed and ANRed.
- Now aggregate total number of connectivity changes.
- Now record connectivity changes in the history.

Crash and ANR counts are new entries at the end of "pr" in checkin.

Connectivity change counts is a new entry at the end of "m" in checkin.

Connectivity changes in the history checkin are Ecn and include the
type of connection and its state.

Change-Id: I0c01186446034cf6c3fb97d45f5e3b5c69a0438a
2014-12-05 13:54:24 -08:00
ztenghui
bac3f5a6f0 am 9f671553: am 475569e9: Merge "Fix the starting pen\'s position when a path close." into lmp-mr1-dev
* commit '9f67155332e49686ef622b096b715ee62845d401':
  Fix the starting pen's position when a path close.
2014-11-14 00:03:16 +00:00
ztenghui
5e7a29f677 Fix the starting pen's position when a path close.
We have to cache the starting point for the latest "move", then apply it after
we close the path.

b/18214929

Change-Id: I8e8e5c810d720a1c194b8f59d74867a0efbb7662
2014-11-13 12:55:16 -08:00
Christopher Lane
c56a9d10f7 am be36ebc2: Merge "Add convenience method for getting the complex unit type" into lmp-mr1-dev
automerge: 38d6cf9

* commit '38d6cf9cbee98b3fe66e6ccda223b3c4c01a0815':
  Add convenience method for getting the complex unit type
2014-10-31 22:07:30 +00:00
Christopher Lane
9f357ae9f0 Add convenience method for getting the complex unit type
Bug: 18193912
Change-Id: Ida29c12c6c3f07ac0657e70d2ab07f2fc4f2cb20
2014-10-31 14:52:06 -07:00
Alan Viverette
9a77c8a279 am 3c5cc234: am 674a3a21: Merge "Distinguish unspecified and explicit null values in resources" into lmp-mr1-dev
* commit '3c5cc234eeef4a08ad7b00b4e869a1e47cf14ab3':
  Distinguish unspecified and explicit null values in resources
2014-10-31 00:15:01 +00:00
Alan Viverette
f296940502 Distinguish unspecified and explicit null values in resources
BUG: 17919345
Change-Id: Ic4f04f7dd0f986f58a749b5950d80c1cfdb074ea
2014-10-29 17:09:36 -07:00
Jeff Sharkey
1c6659486c am e67b8d28: Merge "Reduce PackageManager RAM usage: ArrayMap/Set." into lmp-mr1-dev
automerge: 301b563

* commit '301b563107c7458a21e4460254e81694b45f0e35':
  Reduce PackageManager RAM usage: ArrayMap/Set.
2014-10-27 21:33:55 +00:00
Jeff Sharkey
e67b8d2829 Merge "Reduce PackageManager RAM usage: ArrayMap/Set." into lmp-mr1-dev 2014-10-27 19:57:00 +00:00
Alan Viverette
a8aa03efa7 Merge "Add support for Explore by Touch to RadialTimePickerView" into lmp-mr1-dev automerge: 1ac5266
automerge: 4329ad3

* commit '4329ad3be8f42b62f54ab070fcd97d2a1bb2d7f3':
  Add support for Explore by Touch to RadialTimePickerView
2014-10-24 21:28:34 +00:00
Alan Viverette
1ac52667ee Merge "Add support for Explore by Touch to RadialTimePickerView" into lmp-mr1-dev 2014-10-24 20:36:33 +00:00
Jeff Sharkey
9f837a99d4 Reduce PackageManager RAM usage: ArrayMap/Set.
Transition PackageManager internals away from heavier HashMap/HashSet
to use drop-in ArrayMap/ArraySet replacements.  Saves ~38% RAM and
thousands of objects on a typical device.

Bug: 18115729
Change-Id: Ie107d2fee4b7baa4e3c3923231b4be877d1a5d2f
2014-10-24 12:26:45 -07:00
Alan Viverette
ffb46bf295 Add support for Explore by Touch to RadialTimePickerView
Also adds IntArray, which is like LongArray for integers, and prevents
the AM/PM label text in the time picker header from wrapping.

BUG: 17468036
Change-Id: I7120089885709f23e20368927e4b3ed9db2e5393
2014-10-24 12:06:11 -07:00
Neil Fuller
a021e92218 resolved conflicts for merge of 12260ad7 to lmp-mr1-dev-plus-aosp
Change-Id: Ie2222794208475216941289cf062e05ca9c75e0f
2014-10-24 11:36:46 +01:00
Neil Fuller
bbf8871e1c Deprecating FloatMath and Time
Bug: https://code.google.com/p/android/issues/detail?id=36199
Bug: https://code.google.com/p/android/issues/detail?id=37653
Bug: https://code.google.com/p/android/issues/detail?id=42750
Bug: https://code.google.com/p/android/issues/detail?id=61137
Bug: https://code.google.com/p/android/issues/detail?id=74754
Bug: https://code.google.com/p/android/issues/detail?id=76386
Bug: https://code.google.com/p/android/issues/detail?id=76439
Bug: https://code.google.com/p/android/issues/detail?id=77836
Change-Id: Ic9b57d8a575f93b2258a5481df0ed6b3a952f636
2014-10-23 13:13:05 +01:00
Neil Fuller
1f2ad9eb74 am dfcf0655: am 09fd5a18: Merge "Replacing FloatMath native implementation with calls to Math"
* commit 'dfcf065505a12aa358af5cd2607fd355eee964c4':
  Replacing FloatMath native implementation with calls to Math
2014-10-20 10:16:29 +00:00
Nick Kralevich
7b3db39aa4 Replacing FloatMath native implementation with calls to Math
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
2014-10-20 09:24:11 +01:00
Elliott Hughes
870367567a am 84e6d466: am 4cd671e4: Merge "Revert "Replacing FloatMath native implementation with calls to Math""
* commit '84e6d466edc2aba711f90431a1cd209d11c0e70d':
  Revert "Replacing FloatMath native implementation with calls to Math"
2014-10-18 20:54:05 +00:00
Elliott Hughes
4cd671e4d2 Merge "Revert "Replacing FloatMath native implementation with calls to Math"" 2014-10-18 20:43:07 +00:00
Elliott Hughes
b3b68d0333 Revert "Replacing FloatMath native implementation with calls to Math"
This reverts commit 32b88b48da.

Change-Id: I40ea17f3a68f2b53eb013aebd3ba1becdc724f94
2014-10-18 20:41:27 +00:00
Neil Fuller
06965cfd12 am 8a3785ca: am fd2d41b7: Merge "Replacing FloatMath native implementation with calls to Math"
* commit '8a3785cafec4b47fe8d61614b04a0e193d616428':
  Replacing FloatMath native implementation with calls to Math
2014-10-16 09:35:43 +00:00
Neil Fuller
fd2d41b742 Merge "Replacing FloatMath native implementation with calls to Math" 2014-10-16 08:16:24 +00:00
Neil Fuller
32b88b48da Replacing FloatMath native implementation with calls to Math
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: I8d1947d88b3c576643138b1df589fb9da7c1ab88
2014-10-15 11:47:58 +01:00
ztenghui
6a7335acd8 am 3406be85: am 5237c0c3: Merge "Support negative value in exponential data in the pathData." into lmp-mr1-dev
* commit '3406be853d21af58d551adbde805706f43ef51e2':
  Support negative value in exponential data in the pathData.
2014-10-10 20:12:06 +00:00
ztenghui
897f6daeff Support negative value in exponential data in the pathData.
Now "1e-5" will not be separated as "1e" and "-5".

Add one test for this use case.
Make sure we print out the pathData when path parsing has error.

b/17919923

Change-Id: I10a00ce21166cfb5a009c49c1a93f40eeb956d83
2014-10-10 11:11:34 -07:00
ztenghui
39af6ae064 am a92dd37f: am e6411c76: Merge "Support dot separation as the svg path data did." into lmp-mr1-dev
* commit 'a92dd37feb28923c1633b85d12382bc2aa2e03da':
  Support dot separation as the svg path data did.
2014-10-10 16:57:03 +00:00
ztenghui
4cc3e2704a Support dot separation as the svg path data did.
Like "0.0.0" will be separated to "0.0 .0" now, just to make sure we are more
complied with svg path data.

b/17892882

Change-Id: Id7b64e9882f5174aa794a0256e2a29d66c724876
2014-10-08 15:51:37 -07:00
vandwalle
542cc240b5 am 88b927e2: am c67e5ae2: am 4f5fd780: am 68104b05: Merge "add millisecond timestamp to locallog" into lmp-dev
* commit '88b927e258214a31342326d46f527528e5979f85':
  add millisecond timestamp to locallog
2014-10-04 15:45:35 +00:00
vandwalle
c520aa89a3 add millisecond timestamp to locallog
Change-Id: I33d8672efd2747ed3f49dd8d5bcd5f47bf418053
2014-10-03 15:35:25 -07:00
Dianne Hackborn
7cf6cac507 am 03e173ed: am ded96310: am 796d6ece: am c338784b: Merge "More work on issue #17656716: Unhandled exception in Window Manager" into lmp-dev
* commit '03e173edce42a5ae0de8a7718330d83664a84a9e':
  More work on issue #17656716: Unhandled exception in Window Manager
2014-10-02 13:38:23 +00:00
Neil Fuller
c2a0b4482d resolved conflicts for merge of ee665151 to lmp-mr1-dev-plus-aosp
Change-Id: I2588c65b7a9fa43f968151a206924a804f0595a7
2014-10-02 14:32:37 +01:00
Dianne Hackborn
8d05172112 More work on issue #17656716: Unhandled exception in Window Manager
Fix Slog.wtf to not acquire the activity manager lock in its code
path, so that it can never deadlock.  This was the original intention
of it, but part was missed.

Now we can put back in the code to detect when strict mode data is
getting large (a little more targeted now to the actual problem),
and use Slog.wtf to report it.  And as a bonus, when this happens
we will now clear all of the collected violations, to avoid getting
in to the bad case where IPCs start failing.  So this should be
good enough for L to fix the problem, with wtf reports for us to
see if the underlying issue is still happening.

Finally, switch a butch of stuff in the system process from Log.wtf
to Slog.wtf, since many of those are deadlocks waiting to happen.

Oh and fix a crash in the settings provider I noticed in APR.

Change-Id: I307d51b7a4db238fd1e5fe2f3f9bf1b9c6f1c041
2014-10-01 16:58:56 -07:00
Neil Fuller
33253a4baa Switch from FloatMath -> Math and Math.hypot where possible
The motivation is an API change: FloatMath is going to be
deprecated and/or removed. Performance is not the goal of
this change.

That said...

Math is faster than FloatMath with AOT compilation.

While making the change, occurances of:

{Float}Math.sqrt(x * x + y * y) and
{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))

have been replaced with:

{(float)} Math.hypot(x, y)

Right now there is no runtime intrinsic for hypot so is not faster
in all cases for AOT compilation:

Math.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with
AOT, but all other combinations of FloatMath, use of pow() etc.
are slower than hypot().

hypot() has the advantage of being self documenting and
could be optimized in future. None of the behavior differences
around NaN and rounding appear to be important for the cases
looked at: they all assume results and arguments are in range
and usually the results are cast to float.

Different implementations measured on hammerhead / L:

AOT compiled:

[FloatMath.hypot(x, y)]
benchmark=Hypot_FloatMathHypot} 633.85 ns; σ=0.32 ns @ 3 trials

[FloatMath.sqrt(x*x + y*y)]
benchmark=Hypot_FloatMathSqrtMult} 684.17 ns; σ=4.83 ns @ 3 trials

[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]
benchmark=Hypot_FloatMathSqrtPow} 1270.65 ns; σ=12.20 ns @ 6 trials

[(float) Math.hypot(x, y)]
benchmark=Hypot_MathHypot} 96.80 ns; σ=0.05 ns @ 3 trials

[(float) Math.sqrt(x*x + y*y)]
benchmark=Hypot_MathSqrtMult} 23.97 ns; σ=0.01 ns @ 3 trials

[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]
benchmark=Hypot_MathSqrtPow} 156.19 ns; σ=0.12 ns @ 3 trials

Interpreter:

benchmark=Hypot_FloatMathHypot} 1180.54 ns; σ=5.13 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtMult} 1121.05 ns; σ=3.80 ns @ 3 trials
benchmark=Hypot_FloatMathSqrtPow} 3327.14 ns; σ=7.33 ns @ 3 trials
benchmark=Hypot_MathHypot} 856.57 ns; σ=1.41 ns @ 3 trials
benchmark=Hypot_MathSqrtMult} 1028.92 ns; σ=9.11 ns @ 3 trials
benchmark=Hypot_MathSqrtPow} 2539.47 ns; σ=24.44 ns @ 3 trials

Bug: https://code.google.com/p/android/issues/detail?id=36199
Change-Id: I06c91f682095e627cb547d60d936ef87941be692
2014-10-01 14:04:15 +01:00
Philip Nowell
d561913798 Corrects a typo that identified XXXHIGH as 560 dpi instead of 640.
Change-Id: I8b5ac84431d378f0e43be8d19920fd6ba335ebc6
2014-09-26 00:54:32 +00:00
Lajos Molnar
0f491d7513 add android.util.SizeF.parseSizeF()
Bug: 17190665
Change-Id: Ic1b0087dfd40b86aaeb4687a1a3024c1ab54018f
2014-09-09 21:16:03 -07:00
Jeff Sharkey
5ef33984d0 Move Size parceling to Bundle.
Size itself shouldn't be Parcelable, since that would be a layering
violation.

Bug: 17390381
Change-Id: Ica62709bd889db51c916c550a0146714b002baa3
2014-09-05 09:07:35 -07:00
Michael Wright
3e9a13438d Use a linear spline if there's a non-monotonic brightness curve
Some devices may contain things like transflective displays where
they actually want the backlight brightness to decrease in the face
of high ambient light scenarios. In the interest of time, just use a
linear interpolation based on the brightness control points for these
cases but in the future we should consider adding a non-monotonic
cubic spline.

Bug: 15611140
Change-Id: I8fcee061b18c8ae9cc9a1b38d8b850aaec4478ce
2014-08-29 14:39:12 -07:00
Jeff Sharkey
5b836f29a3 Define EXTRA_SIZE for ContentProviders.
Also make Size and SizeF parcelable.

Bug: 17205016
Change-Id: Ide397b84864f6cad7f8d89e66b6c8697a3ad335b
2014-08-27 15:13:57 -07:00
Dianne Hackborn
5232271a41 Fix issue #17146552: system anr
Add a safe path for Slog.wtf that doesn't acquire an activity manager
lock or block in any way.

Change-Id: I8fef8251a0cb85081442cae55d85063944248d15
2014-08-26 22:55:47 -07:00
Adam Lesinski
4e9c07c0de Add indexOf method to ArrayMap & ArraySet
Getting the indexOf is useful for doing compound operations
like:

int i = set.indexOf(key);
if (i >= 0) {
    Object o = set.valueAt(i);
    o.blah();
    set.removeAt(i);
}

Change-Id: I3d4b77d1461ba969fc6b4d332d52d4d084b5b53c
2014-08-26 11:53:32 -07:00
Dianne Hackborn
9c3e74f1f7 Fix issue #16794553: Duplicate ArrayMap entries in Bundle...
...can lead to launching of un-exported activities

We now validate the array map after unparcelling to make sure there
are no duplicate keys.

And to make up for the performance overhead this introduces, I switched
the parcelling/unparcelling code to write keys as explicit string
objects rather than generic values.  There was no reason to use generic
values since the write method itself only accepts an array map with
String keys.

Change-Id: I57bda9eb79ceaaa9c1b94ad49d9e462b52102149
2014-08-13 17:24:45 -07:00
Dianne Hackborn
a3fb40d5f4 Add 560dpi, and some other stuff.
Like new settings actions for some of the new settings panels.
And fix voice interaction services so they require a recognizer.
And tweak array map doc to be correct.

Blah blah blah.

Change-Id: Ib5e66b574b10e7b3fa39723b21046a74e6ead204
2014-08-12 15:38:19 -07:00
ztenghui
a95c8abb36 API REVIEW: VectorDrawable
- Merge <size> and <viewport> attributes all in to top-level <vector> tag
- Indent attributes under <group> in java doc.
- Updata android:stroke to be android:strokeColor, likewise android:fill
- Instead of android:clipToPath, make this a different clip-path tag.
- Document units of the various attributes
- Add example code for defining a VectorDrawable resource

More than that:
= Refactor the code to better support clipPath as a sub-class.
= Update all the xml files to use the new attributes and clip-path tag.

TODO:
-- Remove clipToPath, since that should happen on build break Friday.

bug:16488254

Change-Id: I6db5680ef83cb26c8f064a60fc7d6e7142974b0f
2014-07-25 23:26:41 +00:00
Neil Fuller
3b852e3489 Rewriting android.text.format.Time without the native _tz functions
(cherry picked from commit d7f0849b8c)
Bug: 15765976

Change-Id: I00f72bd1043ef20f22d25559206b2f741334ba9c
2014-07-24 11:37:20 +01:00
ztenghui
5a836f74df Add negative sign separation support in the pathData
bug:14585171

Change-Id: I61dec27856be09c44bb1d32ff61b3c3cd458cc34
2014-07-23 21:46:16 +00:00
Neil Fuller
d7f0849b8c Rewriting android.text.format.Time without the native _tz functions
Bug: 15765976
Change-Id: I666b72ecf9da8a9dcfb97cc503006b415909a558
2014-07-22 15:06:16 +01:00
Adam Lesinski
0debc9aff4 First iteration of a public UsageStats API
UsageStats API that allows apps to get a list of packages that have been
recently used, along with basic stats like how long they have been in
the foreground and the most recent time they were running.

Bug: 15165667

Change-Id: I2a2d1ff69bd0b5703ac3d9de1780df42ad90d439
2014-07-18 15:24:20 -07:00
Jeff Davidson
61a5a3f2c3 Remove obsolete remark from XXHDPI comment.
XXHDPI screens now make up 15% of all Android devices, so developers
should be encouraged to include assets at this density.

Change-Id: I9d845769233a71dd954b5f35246aabb774a1c40d
2014-07-16 13:10:18 -07:00
Jeff Sharkey
78a130144b Mark resource-only splits as hasCode=false.
PackageManagerService now skips dexopt for split APKs that don't
declare they have code.  Also surface more detailed error messages
in logs.

Bug: 14975160
Change-Id: Ie6078dba724815020cee59b7fc52317e88ca097a
2014-07-15 20:18:39 -07:00