Commit Graph

3025 Commits

Author SHA1 Message Date
Dianne Hackborn
904a857d5a More work on procstats: save/restore state, fixes.
We now persistent the current procstats to storage
to keep them across boots.  Still need to do division
and pruning across days; right now they will just keep
collecting forever.

Also fix some bugs in the checkin output.

Change-Id: I4dd9317dbe2ee0642af8f2f0be1f2bd9c4055e80
2013-06-28 18:45:46 -07:00
Dianne Hackborn
2179a522d3 Merge "Start really collecting PSS data for process stats." 2013-06-28 01:59:24 +00:00
Dianne Hackborn
cfc837f7fa Start really collecting PSS data for process stats.
The activity manager now uses some heuristics to try to
sample PSS data from processes so that it can get enough
data to over reasonable time have something useful, without
doing it too aggressively.

The current policy is:

1. Whenever a significant global change happens (memory state,
   sceen on or off), we collect PSS from all processes; this will
   not happen more than every 10 minutes.
2. When all activities become idle, we will collect PSS from the
   current top process; this will not happen more than every 2
   minutes per process.
3. We will sample the top-most process's PSS every 5 minutes.
4. When an process's oom adj changes and it has been more than
   30 minutes since PSS has been collected from it, we will
   collect a new PSS sample.
5. If a process changes from service A to service B (meaning it
   has been running a service for a long time), we will collect
   a PSS sample from it.
6. If someone explicitly requests PSS data (for running services
   UI or dumpsys), record that.

Also:

- Finish moving the procstats output all to the new format.
- Record information about processes being killed due to excessive
  wake locks or CPU use in procstats.
- Rework how we structure common vs. per-package process stats to
  make it simpler to deal with.
- Optimize the Debug.getPss() implementation (we use it a lot now).
  Should probably optimize it further at some point.

Change-Id: I179f1f7ae5852c7e567de4127d8457b50d27e0f0
2013-06-27 18:56:00 -07:00
Christopher Tate
a3664247c7 New API: apps can request a wipe of their own data
Bug 9588299

Change-Id: I817a90e272ba279d7171f6dbe88dbafd7e42b050
2013-06-27 15:32:37 -07:00
Craig Mautner
5729b81ab5 Merge "Add API to convert translucent Activity to opaque." 2013-06-27 21:00:44 +00:00
Dianne Hackborn
49e9c44c4b Merge "Add new ActivityManager.isLowRamDevice()." 2013-06-26 23:16:48 +00:00
Amith Yamasani
5fa9f2b127 Merge "Single-user restrictions" 2013-06-26 23:04:32 +00:00
Dianne Hackborn
b4e1249493 Add new ActivityManager.isLowRamDevice().
This and the old isHighEndGfx() is set up through a
device configuration, rather than trying to compute it
automatically.

Change-Id: Ibc95c05791023a7ae6c88555b75bb61f2b613991
2013-06-26 15:50:02 -07:00
Igor Murashkin
e363fbb264 Partial CameraManager implementation
Bug: 9213377
Change-Id: I8f89fb94d7081a71b38e5cd0ad89116d219b4c33
2013-06-26 13:19:44 -07:00
Craig Mautner
4addfc5f39 Add API to convert translucent Activity to opaque.
Fixes bug 9298778.

Change-Id: If6198f42bdea8aa727a2abc672eb0062aaf63ca3
2013-06-25 16:56:37 -07:00
Amith Yamasani
655d0e2029 Single-user restrictions
Introduces a new "blocked" state for each package. This is used to temporarily
disable an app via Settings->Restrictions.

PIN creation and challenge activities for use by Settings and other apps. PIN
is stored by the User Manager and it manages the interval for retry attempts
across reboots.

Change-Id: I4915329d1f72399bbcaf93a9ca9c0d2e69d098dd
2013-06-25 16:03:55 -07:00
Igor Murashkin
4c018e4050 Merge "Revert "Partial CameraManager implementation"" 2013-06-25 05:15:55 +00:00
Igor Murashkin
a858308ed2 Revert "Partial CameraManager implementation"
This reverts commit e473f7d8f9.

Change-Id: I23e92ca2def0ebf507f6c782442a4698745bc926
2013-06-25 05:15:02 +00:00
Dianne Hackborn
d982851d29 Merge "Use FastPrintWriter... everywhere." 2013-06-25 01:18:57 +00:00
Dianne Hackborn
8c84109b9f Use FastPrintWriter... everywhere.
One problem this turned up is, because FastPrintWriter does
its own buffering, a lot of code that used to use PrintWriter
would fail -- if it pointed to a StringWriter, there was no
buffering, so it could just immediately get the result.  Now
you need to first flush the FastPrintWriter.

Also added some new constructors to specify the size of buffer
that FastPrintWriter should use.

Change-Id: If48cd28d7be0b6b3278bbb69a8357e6ce88cf54a
2013-06-24 18:16:48 -07:00
Igor Murashkin
e473f7d8f9 Partial CameraManager implementation
Bug: 9213377
Change-Id: I29864a5d1f7971ed589d1ffaddeefbb703e34018
2013-06-24 17:41:09 -07:00
Craig Mautner
07f36c738e Merge "Add activity token to display system." 2013-06-24 18:31:54 +00:00
Craig Mautner
48d0d18867 Add activity token to display system.
First step in adding activity specific information to displays.
Replace CompatibilityInfoHolder with DisplayAdjustmentsHolder that
holds an activity token in addition to the CompatibilityInfo.

Change-Id: Ie113cd8dd9c62e0b5311204e039a4829096bea68
2013-06-22 15:30:13 -07:00
Svetoslav Ganov
4b9a4d1687 Print - platform APIs
Related changes:
    Skia (inlcude PDF APIs): https://googleplex-android-review.googlesource.com/#/c/305814/
    Canvas to PDF: https://googleplex-android-review.googlesource.com/#/c/319367/
    Settings (initial version): https://googleplex-android-review.googlesource.com/#/c/306077/
    Build: https://googleplex-android-review.googlesource.com/#/c/292437/
    Sample print services: https://googleplex-android-review.googlesource.com/#/c/281785/

Change-Id: I104d12efd12577f05c7b9b2a5e5e49125c0f09da
2013-06-21 18:43:17 -07:00
Jeff Sharkey
b31e370a94 Merge "Use package name when caching SharedPreferences." 2013-06-18 16:17:18 +00:00
Craig Mautner
fd1ce8d5a7 Add new API getStackBoxInfo
Change-Id: Ie2861e5e31bb3876cfe2d5c3d04ff58bb3955634
2013-06-17 18:34:28 -07:00
Jeff Sharkey
8e3ddab1fc Use package name when caching SharedPreferences.
Otherwise multiple applications using the same process can end up
leaking SharedPreferences instances between the apps.

Change-Id: I2eb0e693cebea1daf87a9176eb8c5a22b9e9ec0b
2013-06-17 18:26:37 -07:00
Dianne Hackborn
91268cf21e More work on process tracking.
Re-arranged code to be more flexible, now track
state of services, dump ordered list of running
processes while memory was critical and low.

Also rename battery stats service from "batteryinfo" to "batterystats".

Change-Id: I0f4f0c8d443c49d255cb84d0fc917e8ec18b152e
2013-06-14 17:30:17 -07:00
Dianne Hackborn
a283fc9518 Merge "Add new API to retrieve a dumpsys of a single package." 2013-06-11 23:33:32 +00:00
Dianne Hackborn
cbfd23ee6f Add new API to retrieve a dumpsys of a single package.
Adds a platform API, and pm command.  Fixes some issues with
dumping per-package data in package manager, makes battery
stats able to dump per-package state.

Change-Id: I76ee6d059f0ba17f7a7061886792b1b716d46d2d
2013-06-11 14:26:53 -07:00
John Spurlock
f24e16aaf9 Merge "Save Notification large icon to extras." 2013-06-10 20:39:19 +00:00
Craig Mautner
92098c7c30 Dismiss immediately to maintain consistent state.
Fix bug introduced by deferring nulling of mParent.

In dismissDialog the removal was being put on a queue while the
state of the Dialog was being updated immediately. This meant that
if a show() was called before the remove was executed it would try
and add the DecorView a second time. Boom!

Fixes bug 9370301.

Change-Id: I576d1e207c786bc2e21dfd40cb94f2b63a020fe2
2013-06-10 11:39:21 -07:00
John Spurlock
ac08a4745e Save Notification large icon to extras.
This piece of semantic info was defined, cleared properly on
lightenPayload, but never saved.

Change-Id: I41fb5f836f9afe2be5407f292bd6b5e02dfc9cb3
2013-06-10 11:37:08 -04:00
Eino-Ville Talvala
b2675542c2 Initial commit of new camera API, mostly just the interface.
- New core API classes in android.hardware.photography
- android.media.Image and android.media.ImageReader classes for
  application access to direct hardware image buffers.
- Additions to android.graphics.ImageFormat to describe new image
  types needed by new camera API.
- Some documentation included; very little implementation.

Bug: 9111736
Change-Id: I0680f35944d1cb8845b7dc0c67edc8c0f0864573
2013-06-07 21:29:45 +00:00
Adam Powell
a4d04291d4 am 87c79d64: am d3cb6bcf: am 8152c794: Merge "Fix incorrect fragment animation used for hiding fragments"
* commit '87c79d64abeb65468a49729f23c97c7e3b9d7e49':
  Fix incorrect fragment animation used for hiding fragments
2013-06-07 11:56:56 -07:00
Adam Powell
d3cb6bcf0f am 8152c794: Merge "Fix incorrect fragment animation used for hiding fragments"
* commit '8152c7940a10f11a9edb16ae1daeca8a6fe2e6bb':
  Fix incorrect fragment animation used for hiding fragments
2013-06-07 11:49:32 -07:00
Romain Guy
3f5e9e8019 Merge "Avoid Binder call when getting the Window service" 2013-06-07 18:07:18 +00:00
Romain Guy
e50848bfba Avoid Binder call when getting the Window service
Change-Id: Ie4f01838402bec4b387e40ce02a1af7f12941538
2013-06-07 10:57:25 -07:00
Adam Powell
2756293910 Fix incorrect fragment animation used for hiding fragments
Mirror of support lib patch
https://android-review.googlesource.com/#/c/60032/ into
frameworks/base.

Change-Id: I8d1cb2e217721336674b8e3e2ef8722a8d9baefd
2013-06-07 10:19:22 -07:00
Chris Wren
da76ad2ea3 reveal the notification extras
Change-Id: Ic97e3485dc23eeb5cfb565a5cef98489acdec8a2
2013-06-06 15:34:21 -04:00
Adam Powell
04fe6ebb9f Fix a bug resolving the correct icon/logo in action bars
Remove some abstraction-breaking magic in ActionBarView and replace it
with proper resolution of the icon/logo when creating a window. The
old implementation relied on the ActionBarView's context being an
Activity.

Bug 9171554

Change-Id: Idbbb1942622195dcb55e8119f2d64287b07bb509
2013-05-31 15:00:24 -07:00
Dianne Hackborn
21d9b56692 Add more details about why a force stop is happening.
Change-Id: Ia938cf6fc37ad22fc7447dc538968c7bd234be7d
2013-05-28 17:46:59 -07:00
Dianne Hackborn
56798adf41 am 959b9b39: am fc09b326: am fee6d0cb: Merge "Fix documentation of requestCode parameter."
* commit '959b9b39b4e488b643919fb7a58f2fbbdd70e573':
  Fix documentation of requestCode parameter.
2013-05-28 13:49:53 -07:00
Dianne Hackborn
fc09b326da am fee6d0cb: Merge "Fix documentation of requestCode parameter."
* commit 'fee6d0cb1e27b13f6ed91c1cdcb9d524bb967ea2':
  Fix documentation of requestCode parameter.
2013-05-26 00:02:31 -07:00
Dianne Hackborn
fee6d0cb1e Merge "Fix documentation of requestCode parameter." 2013-05-26 06:56:03 +00:00
Dianne Hackborn
2e39f5c5cb Merge "New ArrayMap class." 2013-05-24 23:37:16 +00:00
Dianne Hackborn
f4bf0ae2a7 New ArrayMap class.
This is a new kind of key/value mapping that stores its data
as an array, so it doesn't need to create an extra Entry object
for every mapping placed in to it.  It is also optimized to reduce
memory overhead in other ways, by keeping the base object small,
being fairly aggressive about keeping the array data structures
small, etc.

There are some unit and performance tests dropped in to some
random places; they will need to be put somewhere else once I
decided what we are going to do with this for the next release
(for example if we make it public the unit tests should go in
to CTS).

Switch IntentResolver to using ArrayMap instead of HashMap.

Also get rid of a bunch of duplicate implementations of binarySearch,
and add an optimization to the various sparse arrays where you can
supply an explicit 0 capacity to prevent it from doing an initial
array allocation; use this new optimization in a few places where it
makes sense.

Change-Id: I01ef2764680f8ae49938e2a2ed40dc01606a056b
2013-05-24 16:36:14 -07:00
Craig Mautner
18f8530486 Merge "Convert API refs to StackBox from ActivityStack." 2013-05-24 23:14:52 +00:00
Craig Mautner
5a449154d1 Convert API refs to StackBox from ActivityStack.
- Removed IActivityManager.getStacks() since getStackBoxes() is better.
- Made createStacks operate relative to StackBox instead of TaskStack.
- Made resizeStack into resizeStackBox.

Change-Id: I7a0e1f4e34f399b4fd1180c60cc3989f9c2433f3
2013-05-24 16:12:57 -07:00
Craig Mautner
8cec2bcef9 Merge "Add retrieval of StackBox info for more flexibility" 2013-05-24 19:54:18 +00:00
Craig Mautner
5ff1210172 Add retrieval of StackBox info for more flexibility
First step in permitting StackBoxes to be manipulated by user.
Necessary for Configuration changes coming down.

Change-Id: I4029926a35e4fdc59a5759fd9e4bae10bb308413
2013-05-24 12:50:15 -07:00
Dianne Hackborn
64770d16b0 Some improvements to meminfo output.
- Rename "Swappable PSS" to "PSS Clean" which I think is what it
  means and is consistent with the other memory metrics.
- Split at the top level the dalvik heap from other dalvik allocations,
  so when you look on the dalvik allocations line things are consistent
  with the allocator's data and it is clear what are app allocations vs.
  other data in dalvik.
- Don't print lines that are all 0.
- Don't print the detailed Dalvik allocation data by default; add a new
  option to have it printed.

Here's what a typical system process dump now looks like:

** MEMINFO in pid 6358 [system] **
                   Pss      Pss   Shared  Private   Shared  Private     Heap     Heap     Heap
                 Total    Clean    Dirty    Dirty    Clean    Clean     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------   ------   ------
  Native Heap        0        0        0        0        0        0     6964     3599     2048
  Dalvik Heap     7541        0     4344     7356        0        0    11768    11194      574
 Dalvik Other     3553        0     2792     3448        0        0
        Stack       28        0        8       28        0        0
       Cursor        4        0        0        4        0        0
       Ashmem        5        0       12        0        0        0
    Other dev     4004        0       24     4000        0        4
     .so mmap     3959      684     2500     2280     5468      684
    .apk mmap      173       68        0        0      692       68
    .dex mmap     4358     3068        0        0     9276     3068
   Other mmap       60        0        8        8      244       36
      Unknown     4387        0      508     4380        0        0
        TOTAL    28072     3820    10196    21504    15680     3860    18732    14793     2622

 Objects
               Views:       10         ViewRootImpl:        1
         AppContexts:        8           Activities:        0
              Assets:        3        AssetManagers:        3
       Local Binders:      176        Proxy Binders:      341
    Death Recipients:      141
     OpenSSL Sockets:        0

 SQL
         MEMORY_USED:      473
  PAGECACHE_OVERFLOW:       98          MALLOC_SIZE:       62

 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4       68             49         7/21/7  /data/data/com.android.providers.settings/databases/settings.db
         4       20             17         0/13/1  /data/system/locksettings.db
         4       20             21        96/14/2  /data/system/locksettings.db (1)
         4       20             21        75/13/2  /data/system/locksettings.db (2)
         4       80             29         4/17/3  /data/system/users/0/accounts.db

Change-Id: Ifd511a7baaa8808f82f39509a5a15c71c41d1bac
2013-05-24 10:47:03 -07:00
Anwar Ghuloum
3c61506b71 Add more memory usage stats
Added support for teasing apart different parts of the dalvik heap.

Note this adds more public api and we should talk to hackbod before going into master with this.

(cherry picked from commit 73407daf3f6110e933d8614605b21586c4c5fde2)

Change-Id: If4431f50e67e18bcc42e00694c97805477bd6815
2013-05-23 12:30:42 -07:00
Anwar Ghuloum
b1d45b3d3b Fix small formatting issue with dumpsys meminfo
(cherry picked from commit 853d2b6bcd49af08458a2dbf2481bb931ef1c707)

Change-Id: I83cb5184ce9d7c029bd16eb16f131db280283536
2013-05-23 12:30:23 -07:00
Anwar Ghuloum
3a8ce1bec8 More stats for meminfo
Added shared clean tracking (for pageable stuff).  Renamed .oat and .art mmap.

(cherry picked from commit 967d53b17b6010c3a675ca9c3bbd0e9dd2f2f092)

Change-Id: I741e0dbe0d3f9aee6975c6fad8af9905942962d4
2013-05-23 12:29:59 -07:00