Commit Graph

1361 Commits

Author SHA1 Message Date
Jeff Brown
6651a63834 Fix application launch shortcuts.
Improved quick launch bookmarks to support category-based shortcuts
instead of hardcoding package and class names for all apps.

Added a set of Intent categories for typical applications on the
platform.

Added support for some of the HID application launch usages to
reduce reliance on quick launch for special purpose keys.  Some
keyboard vendors have hardcoded launch keys that synthesize
"Search + X" type key combos.  The goal is to encourage them
to stop doing this by implementing more of HID.

Bug: 5674723
Change-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593
2011-11-29 12:17:22 -08:00
Christopher Tate
60201f2b4e XML parsing optimizations
Traceview showed approximately 10% of total parse time inside the
synthetic 'trampoline' methods generated to provide inner classes
with access to their outer class's private fields.  The bottleneck
in this particular case is in XmlBlock and its inner class Parser.

Making the bottlneck outer-class members and methods package-scope
instead of private removes that 10% overhead being spent within
these access trampolines.

Traceview tends to overemphasize the significance of very small
methods such as these trampolines.  That said, the measured speed
gain on the ParseLargeXmlResFg op due to this patch is between
5% and 6%.

Change-Id: Ia0e3ae5408d1f9992b46e6e30dd2407090379b07
2011-11-11 16:10:42 -08:00
Kenny Root
685f490eff Update GET_UNINSTALLED_PACKAGES flag documentation
Change-Id: I483b84f07836e6ad96c75e7dd3a86633cb29db22
2011-11-03 10:13:29 -07:00
Dianne Hackborn
2c84cfc001 Various performance and other work.
- IME service now switches between visible and perceptible depending on
  whether it is being showm, allowing us to more aggressively free its
  memory when not shown.

- The activity display time is no longer delayed by the activity
  transition animation.

- New -R (repeat) option for launching activities with the am command.

- Improved some documentation on Loader to be clear about some methods
  that apps should not normally call.

- FrameworkPerf test now allows you to select individual tests to run.

Change-Id: Id1f73de66dc93d63212183958a72119ad174318b
2011-10-31 16:52:34 -07:00
Joe Fernandez
74b2b95473 am 09848bc8: Merge "docs: add developer guide cross references, Project ACRE, round 3" into ics-mr0
* commit '09848bc89de999416e2de82a7693b2deec6bf802':
  docs: add developer guide cross references, Project ACRE, round 3
2011-10-29 02:16:10 +00:00
Dianne Hackborn
e02c88af79 Work on process management.
Introduce a new concept of "B" services.  All running services are
classified as either A or B.  B services are later in the LRU list.
Their oom_adj is after the home app.  This allows us to better pick
services to kill based on how long they have running, and should
reduce the amount that we end up killing the home app.

This temporarly turns on a debug log when the oom_adj of a process
is changed.  Sorry, I know it is noisy.  This is needed to try to
track down why some processes are being killed.

Also add a flag to the SyncManager's service binding to allow the
syncing process to be more aggressively killed if it has done UI.
This is to address cases we have seen where sync is causing an 80MB
gmail process to be kept around, preventing other process from running.
Now what will happen is that the syncing process will aggressively be
killed by the system, and can then be restarted in a much lighter-weight
state.

Do a little tweak in the power manager to allow us to still do smooth
brightness changes even when the fancy TV off animation is in use.

And get rid of a debug log in the window manager that was accidentally
left in.

Change-Id: I64a8eeaaa1f096bab29c665fbff804c7f1d029e2
2011-10-28 17:15:08 -07:00
Joe Fernandez
61fd1e8d8c docs: add developer guide cross references, Project ACRE, round 3
Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
2011-10-28 14:23:23 -07:00
Dianne Hackborn
12b3e39ecb am 4bbd71a6: Merge "Fix issue #5228934: IME shows up on boot, or when digits screen is tapped" into ics-mr0
* commit '4bbd71a6b2f4957f4778da13861ec03d30afbee7':
  Fix issue #5228934: IME shows up on boot, or when digits screen is tapped
2011-10-21 13:59:07 -07:00
Dianne Hackborn
0836c7cb98 Fix issue #5228934: IME shows up on boot, or when digits screen is tapped
Activity aliases weren't propagating the softInputMode from the original
activity.

Change-Id: I47534e6c9a0f94bb6eb3fd2186ba9ffc8d583d08
2011-10-20 18:40:23 -07:00
Dianne Hackborn
3585a3dfc6 am 47f8367a: Merge "Work on issue #5465917: Wakelock *overflow* held for very long times" into ics-mr0
* commit '47f8367ab79247501d5d204632a7797fa8a888e5':
  Work on issue #5465917: Wakelock *overflow* held for very long times
2011-10-19 11:10:18 -07:00
Dianne Hackborn
c24ab866b0 Work on issue #5465917: Wakelock *overflow* held for very long times
- Fix ordering problem in sync manager that would cause its wake
  locks to slightly appear in the system process when they should
  be fully accounted against the app.
- Allow the system process to have more wake lock names in its
  battery stats.
- In the bug report output, print totals of the wake locks for each
  process, to make it easier to parse what is being printed for things
  like the system process with a huge number of individual wake locks.

Change-Id: I3cf39330f22f3c51c11e65e4124150d73a7da2dd
2011-10-18 16:38:17 -07:00
Jeff Brown
aac01f699f Merge "Add a CrossProcessCursorWrapper. Bug: 5220669" 2011-10-14 21:06:22 -07:00
Joe Fernandez
471fa9d10b Merge "docs: add developer guide cross-references, Project ACRE, Round 2" into ics-mr0 2011-10-14 10:52:33 -07:00
Joe Fernandez
558459fe85 docs: add developer guide cross-references, Project ACRE, Round 2
Change-Id: I39a534ae3a2a34b4dabc333a09961012ef911d3e
2011-10-14 10:18:33 -07:00
Kenny Root
22dad40d3e Merge "Add support for signature in getPackageArchiveInfo" into ics-mr0 2011-10-13 17:10:17 -07:00
Kenny Root
6ccd41265d Add support for signature in getPackageArchiveInfo
GET_SIGNATURES was indicated as supported, but it never actually did
anything.

This is needed for the package verifier development sample.

Change-Id: I09ca6790cd8bf9435aa208c0711359b4d76fb278
2011-10-13 14:57:31 -07:00
Jeff Brown
825c5132bf Add a CrossProcessCursorWrapper.
Bug: 5220669

The CrossProcessCursorWrapper is a useful building block
for wrapping cursors that will be sent to processes remotely.
It can also transform normal Cursors into CrossProcessCursors
transparently.

The new class fixes common performance problems and bugs
that applications have encountered when implementing
ContentProviders.

Change-Id: Icc59fec10add3f7d8cfbd0495447860c1872c752
2011-10-13 14:24:26 -07:00
Daniel Lehmann
cc21cc017b Merge "Allow clearing out the source bounds" into ics-mr0 2011-10-12 18:16:15 -07:00
Daniel Lehmann
a5b58df097 Allow clearing out the source bounds
Change-Id: Id49f4a3ac397cf17c5704d298b6a9a376f6a5c23
2011-10-12 16:24:22 -07:00
Jeff Brown
0cde89f5f0 Use ashmem for CursorWindows.
Bug: 5332296

The memory dealer introduces additional delays for reclaiming
the memory owned by CursorWindows because the Binder object must
be finalized.  Using ashmem instead gives CursorWindow more
direct control over the lifetime of the shared memory region.

The provider now allocates the CursorWindows and returns them
to clients with a read-only protection bit set on the ashmem
region.

Improved the encapsulation of CursorWindow.  Callers shouldn't
need to care about details like how string fields are allocated.

Removed the compile-time configuration of string and numeric
storage modes to remove some dead weight.

Change-Id: I07c2bc2a9c573d7e435dcaecd269d25ea9807acd
2011-10-11 11:03:19 -07:00
Dianne Hackborn
58f42a59bd Fix issue #5405788: Device continuously opening and closing...
...the "Complete action using" dialog

When an application goes idle, it sends back to the activity manager
the configuration it last used, to make sure the two don't get out
of sync.  Fix a bunch of edge cases here in dealing with that, and
be sure to also send the current configuration when launching an
activity so the client is always up-to-date when launching.

Also a small fix to not show the upgrading dialog during first boot.

Change-Id: I14ed366a87cd689d1c78787369e052422290ac6f
2011-10-10 14:53:08 -07:00
Jeff Brown
184b44e794 Merge "Fix ownership of CursorWindows across processes. Bug: 5332296" 2011-10-10 14:06:09 -07:00
Jeff Brown
222b92a732 Merge "Implement CloseGuard in ContentResolver." 2011-10-10 11:48:49 -07:00
Jeff Brown
326e8748f0 Merge "Clean up handrolled Binder proxies. Bug: 5332296" 2011-10-10 11:48:39 -07:00
Jeff Brown
d2183654e0 Fix ownership of CursorWindows across processes.
Bug: 5332296

Ensure that there is always an owner for each CursorWindow
and that references to each window are acquired/released
appropriately at all times.

Added synchronization to CursorToBulkCursorAdaptor to
prevent the underlying Cursor and CursorWindow from being
remotely accessed in ways that might violate invariants,
resulting in leaks or other problems.

Ensured that CursorToBulkCursorAdaptor promptly releases
its references to the Cursor and CursorWindow when closed
so they don't stick around longer than they should, even
if the remote end hangs onto the IBulkCursor for some reason.

CursorWindow respects Parcelable.FLAG_WRITE_RETURN_VALUE
as an indication that one reference to the CursorWindow is
being released.  Correspondingly, CursorToBulkCursorAdaptor
acquires a reference to the CursorWindow before returning
it to the caller.  This change also prevents races from
resulting in the transfer of an invalid CursorWindow over
the wire.

Ensured that BulkCursorToCursorAdaptor promptly releases
its reference to the IBulkCursor when closed and throws
on attempts to access the cursor while closed.

Modified ContentProviderNative to handle both parts of
the wrapping and unwrapping of Cursors into IBulkCursors.
This makes it a lot easier to ensure that the right
things happen on both ends.  Also, it turns out that
the only caller of IContentProvider.bulkQuery was
ContentProviderNative itself so there was no need
to support bulkQuery on ContentProviderProxy and it was
just getting in the way.

Implement CloseGuard on CursorWindow.

Change-Id: Ib3c8305d3cc62322f38a06698d404a2989bb6ef9
2011-10-09 22:10:36 -07:00
Dianne Hackborn
229edbc38d Calling close() outside of the main thread breaks stuff.
Too dangerous to fix at this point.

Change-Id: I7de5bfecd757fbae635b02c2c2d9ba7ce3bcb435
2011-10-09 16:01:40 -07:00
Jeff Brown
baaf8c3f55 Implement CloseGuard in ContentResolver.
Also, don't try to close the cursor from the finalizer,
it just won't work because quite probably the Binder underneath
it has already been finalized or is about to be.

Change-Id: I6363cd30f32abe15412948d126e0bcc5f62943c5
2011-10-09 15:01:10 -07:00
Jeff Brown
df6611d8c0 Clean up handrolled Binder proxies.
Bug: 5332296

We can't replace these with AIDL generated proxies just yet, but
at least we can make them a little more conformant.

Change-Id: I1814f76d0f9c5e44a7fd85a12b2e3c2b7e3c9daa
2011-10-09 13:00:35 -07:00
Dianne Hackborn
421fa27445 Fix issue #5418999: [From My Phone] - ANR when navigating back from OneUp view
Close cursors asynchronously.

Change-Id: I32c106d26c0443710789344bf823c288eaf31db5
2011-10-09 12:50:45 -07:00
Joe Fernandez
cac15eb21c Merge "docs: add developer guide cross-references, Project ACRE" 2011-10-04 14:03:12 -07:00
Joe Fernandez
b54e7a3d9f docs: add developer guide cross-references, Project ACRE
Change-Id: I5df1c4e13af67ff4c4a5b22f3cb1247bf0103b09
2011-10-04 13:57:00 -07:00
Alon Albert
62abf34d0d Merge "Update dumpsys output" 2011-10-04 08:39:46 -07:00
Dianne Hackborn
9ecebbfbf7 Add mechanism for Parcel to not allow FDs to be written to it.
This is to help implement issue #5224703.

Change-Id: I026a5890495537d15b57fe61227a640aac806d46
2011-10-03 16:58:41 -07:00
Alon Albert
bf976ba657 Update dumpsys output
After using the new format for a few days, I decided it's better to ahve the auth & acct
info on every row because we will sometimes grep the data and won't see it if the auth/acct
is ommited.

Also added the "time since last sync" to every row. This is also very useful.

Detailed Statistics (Recent history):  31 (# of times) 119s (sync time)
-------------------------------------------------------------------------------------
  subscribedfeeds                                             : 8/25%      17s/14%
    aagmtest2@gmail.com/com.google                            :   5/16%      16s/13%
    aagmtest1@gmail.com/com.google                            :   3/9%       1s/0%
-------------------------------------------------------------------------------------
  com.android.calendar                                        : 5/16%      10s/8%
    aagmtest2@gmail.com/com.google                            :   3/9%       0s/0%
    aagmtest1@gmail.com/com.google                            :   2/6%       9s/8%
-------------------------------------------------------------------------------------
  com.google.android.apps.books                               : 3/9%       26s/22%
-------------------------------------------------------------------------------------
  com.android.contacts                                        : 3/9%       14s/11%
    aagmtest1@gmail.com/com.google                            :   2/6%       9s/7%
    aagmtest2@gmail.com/com.google                            :   1/3%       5s/4%
-------------------------------------------------------------------------------------
  com.android.browser                                         : 3/9%       12s/10%
-------------------------------------------------------------------------------------
  com.google.android.music.MusicContent                       : 3/9%       7s/6%
-------------------------------------------------------------------------------------
  gmail-ls                                                    : 2/6%       12s/10%
-------------------------------------------------------------------------------------
  com.google.android.apps.plus.content.EsGooglePhotoProvider  : 2/6%       1s/0%
    aagmtest2@gmail.com/com.google                            :   1/3%       1s/0%
    aagmtest1@gmail.com/com.google                            :   1/3%       0s/0%
-------------------------------------------------------------------------------------
  com.google.android.apps.plus.content.EsProvider             : 1/3%       10s/9%
-------------------------------------------------------------------------------------
  com.google.android.gallery3d.GooglePhotoProvider            : 1/3%       5s/5%
-------------------------------------------------------------------------------------

Recent Sync History
  #1  : 2011-10-03 13:26:41   SERVER    0.0s            aagmtest2@gmail.com/com.google  com.android.calendar
  #2  : 2011-10-03 13:26:40    LOCAL    1.8s            aagmtest2@gmail.com/com.google  subscribedfeeds
  #3  : 2011-10-03 13:26:40    LOCAL    0.1s            aagmtest1@gmail.com/com.google  subscribedfeeds
  #4  : 2011-10-03 13:26:37   SERVER    0.1s         4  aagmtest2@gmail.com/com.google  com.android.calendar
  #5  : 2011-10-03 13:26:37    LOCAL    0.1s            aagmtest2@gmail.com/com.google  com.google.android.apps.books
  #6  : 2011-10-03 13:26:30   SERVER    0.9s         7  aagmtest2@gmail.com/com.google  com.google.android.apps.books
  #7  : 2011-10-03 13:26:25   SERVER    1.1s            aagmtest2@gmail.com/com.google  gmail-ls
  #8  : 2011-10-03 13:26:13   SERVER   11.8s        11  aagmtest2@gmail.com/com.google  gmail-ls
  #9  : 2011-10-03 13:26:08   SERVER    5.0s            aagmtest2@gmail.com/com.google  com.android.contacts
  #10 : 2011-10-03 13:26:08   SERVER    0.7s        29  aagmtest2@gmail.com/com.google  com.android.calendar
  #11 : 2011-10-03 13:26:07   SERVER    0.7s            aagmtest2@gmail.com/com.google  com.android.browser
  #12 : 2011-10-03 13:26:04   SERVER    3.0s         2  aagmtest2@gmail.com/com.google  com.android.browser
  #13 : 2011-10-03 13:26:04   SERVER   25.9s        25  aagmtest2@gmail.com/com.google  com.google.android.apps.books

Change-Id: I8da004f469d136fd9a86310b262eba61197fd0e7
2011-10-03 15:16:20 -07:00
Mathew Inwood
d0e8fb431a Merge "Document thrown IllegalArgumentException." 2011-09-28 01:20:04 -07:00
Alon Albert
e0bde33e0d Add Detailed Sync Stats Section
Also improve history formatting
Here's a smaple of what it looks like:

Detailed Statistics (Recent history):  20  40s
-------------------------------------------------------------------------------------
  com.android.contacts                                        : 9/45%      11/27%
    aagmtest1@gmail.com/com.google                            :   3/15%      4/11%
    aagmtest2@gmail.com/com.google                            :   3/15%      3/9%
    aalbert@google.com/com.google                             :   3/15%      2/6%
-------------------------------------------------------------------------------------
  gmail-ls                                                    : 6/30%      22/56%
-------------------------------------------------------------------------------------
  com.android.calendar                                        : 3/15%      5/14%
    aagmtest1@gmail.com/com.google                            :   1/5%       4/12%
    aagmtest2@gmail.com/com.google                            :   1/5%       0/0%
    aalbert@google.com/com.google                             :   1/5%       0/0%
-------------------------------------------------------------------------------------
  com.google.android.apps.plus.content.EsGooglePhotoProvider  : 2/10%      0/1%
    aagmtest1@gmail.com/com.google                            :   1/5%       0/1%
    aagmtest2@gmail.com/com.google                            :   1/5%       0/0%
-------------------------------------------------------------------------------------

Recent Sync History
  #1  : 2011-09-23 15:18:35   SERVER    0.8s  aalbert@google.com/com.google   gmail-ls
  #2  : 2011-09-23 15:17:56   SERVER    1.3s  00:38
  #3  : 2011-09-23 15:17:52   SERVER    4.6s  00:04
  #4  : 2011-09-23 15:17:45   SERVER    1.7s  00:06
  #5  : 2011-09-23 15:16:51    LOCAL    0.8s  aagmtest2@gmail.com/com.google  com.android.contacts
  #6  : 2011-09-23 15:16:51    LOCAL    0.7s  aalbert@google.com/com.google   com.android.contacts
  #7  : 2011-09-23 15:16:50    LOCAL    0.7s  aagmtest1@gmail.com/com.google  com.android.contacts
  #8  : 2011-09-23 15:15:35    LOCAL    0.7s  aalbert@google.com/com.google   com.android.contacts
  #9  : 2011-09-23 15:15:34    LOCAL    0.8s  aagmtest2@gmail.com/com.google  com.android.contacts
  #10 : 2011-09-23 15:15:33    LOCAL    1.9s  aagmtest1@gmail.com/com.google  com.android.contacts
  #11 : 2011-09-23 15:14:37    LOCAL    1.3s  aalbert@google.com/com.google   com.android.contacts
  #12 : 2011-09-23 15:14:35    LOCAL    2.0s  aagmtest1@gmail.com/com.google  com.android.contacts
  #13 : 2011-09-23 15:14:32    LOCAL    2.2s  aagmtest2@gmail.com/com.google  com.android.contacts
  #14 : 2011-09-23 15:13:41   SERVER    1.3s  aalbert@google.com/com.google   gmail-ls
  #15 : 2011-09-23 15:13:34    LOCAL    0.3s  aalbert@google.com/com.google   com.android.calendar
  #16 : 2011-09-23 15:13:34    LOCAL    0.4s  aagmtest2@gmail.com/com.google  com.android.calendar
  #17 : 2011-09-23 15:13:33   SERVER    0.1s  aagmtest2@gmail.com/com.google  com.google.android.apps.plus.content.EsGooglePhotoProvider
  #18 : 2011-09-23 15:13:33   SERVER    0.5s  aagmtest1@gmail.com/com.google  com.google.android.apps.plus.content.EsGooglePhotoProvider
  #19 : 2011-09-23 15:13:29    LOCAL    4.9s  aagmtest1@gmail.com/com.google  com.android.calendar
  #20 : 2011-09-23 15:13:28   SERVER   13.1s  aalbert@google.com/com.google   gmail-ls

Change-Id: Idc904e2e18a373b6d2d10af65b02683c11fd8d90
2011-09-27 13:15:30 -07:00
Mathew Inwood
1b9f8d92a9 Document thrown IllegalArgumentException.
Change-Id: I502f91e3c1130c14ad8f67934bf52a7206de302f
2011-09-26 13:23:56 +01:00
Kenny Root
05ca4c9064 Allow non-required package verifiers
* Verifiers can be specified in the AndroidManifest.xml

* Those verifiers can respond to the new Intent action

* PackageManager API for those verifiers: verifyPendingInstall

Change-Id: I4892bce2e6984871e6e93c60a1ca0dae145f5df5
2011-09-23 16:03:03 -07:00
Dianne Hackborn
a982ad19d2 Merge "Fix issue #5173952: Opening a Notification From Lock Screen..." 2011-09-23 14:54:26 -07:00
Dianne Hackborn
90c52de286 Fix issue #5173952: Opening a Notification From Lock Screen...
...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
2011-09-23 13:39:33 -07:00
Scott Main
e797ed6a74 docs: a few additions and revisions to action bar docs
Change-Id: I12c24e5d4ed49d8f9822050d330f617bd614b7b9
2011-09-23 12:56:20 -07:00
Kenny Root
3a9b5fbb97 Unhide new PackageManager APIs for API 14
Change-Id: I83110285ccee39a4cd872a1c2af8357f541833d4
2011-09-20 14:35:10 -07:00
Kenny Root
c11bc8d224 Be more forgiving in parsing verifier IDs
RFC 4648's Base32 is made to be forgiving for users doing manual entry
of the digits. For this reason we want to be able to parse lowercase
letters as uppercase and number 0 (zero) as letter O along with number
1 (one) as letter I.

Cherry-pick into ics-factoryrom

Change-Id: I149d8e947ff8b36305c1e61d8a1d80ff0b317cda
2011-09-15 21:04:57 -07:00
Kenny Root
c924fbd693 Merge "Add verifier device identity" 2011-09-13 17:51:08 -07:00
Irfan Sheriff
651cdfcbac Unhide wifi p2p API
Bug: 5247957
Change-Id: Id93e30c0cb60f361ba13a840de8f843415777336
2011-09-13 16:04:00 -07:00
Kenny Root
0aaa0d9317 Add verifier device identity
This adds a special device identifier that is usable only for device
validation. The user will be presented with this number encoded in
easily-transcribable Base32 in the Developer options of Settings.

Change-Id: I4843f55ee90d689a51d0269b22454ca04c1be7ec
2011-09-13 16:02:43 -07:00
Dianne Hackborn
ab0f485e64 Fix problems where we were allocating TypedArray when not needed.
Fixes up some recycling of TypedArray objects to reduce the
number we need to allocate during inflation etc.

Change-Id: I948dccc052997779001eaa99db2a710b04be01ae
2011-09-12 17:04:32 -07:00
Dianne Hackborn
83f9dfe0f0 Merge "Add boot mode where only "core apps" are started." 2011-09-12 15:07:51 -07:00
Dianne Hackborn
d2509fd835 Add boot mode where only "core apps" are started.
A core app is one that has coreApp="true" in its manifest tag.

The system can successfully boot (though a little painfully) with
only framework-res.apk, SettingsProvider.apk, SystemUI.apk,
DefaultContainerService.apk, and Launcher2.apk set as core apps.

Currently this boot mode is always turned off.

Change-Id: Ieaa4a8031c2c391a12996aa8d8b1d65fc2b09d6b
2011-09-12 12:29:43 -07:00
Fred Quintana
87b146625a Revert "Make the SyncManager timeout syncs if it takes too long to bind to them."
This reverts commit bf3c634dc5

Bug: 5290505
Change-Id: I11a681b48360f5c200a0602c4daf30ae82b4209c
2011-09-12 10:50:53 -07:00