History log of /frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
92dd1abef4c0a22db40c5f7bbd100e6b471a1ad3 16-Jan-2015 Wale Ogunwale <ogunwale@google.com> Update restored task uid to match the package uid on current device.

The uid on the task we are restoring from another device are
meaningless on the current device. Change updates the uid of any
task we restore to match the package uid on the current device.

Bug: 19014377
Change-Id: I285fbe9f509cae3d2e9a212a59e88f34b4db20e5
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
18795a2299fefd88ee16393f22324b999ace6ce4 03-Dec-2014 Wale Ogunwale <ogunwale@google.com> Add support from restoring recent's backup.

Bug: 15986349
Change-Id: I899f81d317fcd5277a75db7ba50ecca14112df26
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
ac6a3a5e9d90edb533e5b377a4a14ef514be955a 18-Nov-2014 Christopher Tate <ctate@google.com> Recents backup helper

Handles backup/restore of recent tasks for the system. Currently the
thumbnails are not saved.

At restore time the historical task records are placed in a designated
separate location rather than directly in the live bookkeeping; this
avoids ID duplication issues and makes it easier to deal with lazy
adoption of the historical task state as apps are installed on the
device post-restore.

Bug 17303286
Bug 15986349

Change-Id: Ie156c1e2ab9c9a7e7ac0447b27016fdcef55dded
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
be23ff4949612ecea89d112eff7f5e2c3dbf7685 22-Oct-2014 Wale Ogunwale <ogunwale@google.com> Fix issue #17674789: Recents icon resets if persist mode is 'persistNever'

Changed TaskPersister worker thread to not delete task information on disk
for tasks that are in recents but not persistable.

Also, changed logic that writes tasks information (excluding thunmbnail)
to disk to not write information for tasks that are not persistable.

Bug: 17674789
Change-Id: Iff7c5d24677f8a75157bb6be504fc2d9d6bcc098
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
ce0fd7665f297c5693ee23b3d6daf26baeed4e9d 19-Sep-2014 Dianne Hackborn <hackbod@google.com> Add new activity dumpsys command to persist all data.

Very useful for testing persisting/restoring, to make sure
that all pending changes have been written.

Change-Id: I0e3b7cd3af8afb0b6e751e086081566ab00b76c9
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
bc3126f859f626938810889cdc58b217c78caef5 18-Sep-2014 Craig Mautner <cmautner@google.com> Merge "Remove activity icon bitmaps from system process." into lmp-dev
648f69b95ce7fc95f551f6e08a2408d6e57dbab9 18-Sep-2014 Craig Mautner <cmautner@google.com> Remove activity icon bitmaps from system process.

When a TaskDescription is sent up to the system process, the Bitmap
contained in the mIcon member is immediately flushed to disk and the
name of the file replaces it in the TaskDescription. Thereby saving
mucho RAM for better uses.

Fixes bug 17527308.

Change-Id: Ifac63ea5d12ed091d1eb03e178b8b847a827f940
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
63f10904a17db79cc8da08ff904d45d6d1cf0862 17-Sep-2014 Craig Mautner <cmautner@google.com> Add optimizations to keep TaskPersister queue small.

CTS tests cause the TaskPersister queue to fill faster than it can
drain. Since it contains screenshots this can consume massive
memory. Monkey may also cause the queue to back up.

Several optimizations are added to drain the queue when it gets
large:
- High water mark to recognize when queue gets too deep. Queue is
completely drained at this point so that obsolete files can be
removed from storage.
- Use Thread.yield() to give the TaskPersister write thread some cpu
cycles.
- Remove images from write queue when TaskRecord is removed from
recents.

May fix bug 17177273.
May fix bug 17381033.

Change-Id: If21c03c8f380e5f6816cf4701a40fcfe34ace3f1
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
a5badf06dd818d67a8cdd2d42803e124be929ab8 11-Sep-2014 Craig Mautner <cmautner@google.com> Add null check to TaskPersister file list.

Ran out of file descriptors and got a null file list. This
checks for null file list.

Fixes bug 17461213.

Change-Id: Ia6d49d0bdb6da98623b76d2b87cd09bc0afa1f27
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
852975d5377bfe5f4abc9d2a28e301aa2fa99994 23-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17179314: Make recents limits consistent

The max limit is now 100 (or 50 on svelte devices), and that is
what everyone used.

Re-arranged things so we have a big expensive "fix the world!"
function for recents that we go in to at only select points:
when first initializing the system, when external storage comes
and goes, and if we detect something wrong with the recents
structure.

With that, now getRecentTasks() and addRecentTaskLocked() are
generally much simpler, doing very little work in most cases.
This will help a lot with scaling up to many more recents
entries.

Change-Id: I7b5ae89edc06568f68c8af54a4420aff7635581c
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
f4f8bb793fe101af770dc974b29c26722bce285f 29-Jul-2014 Craig Mautner <cmautner@google.com> Eliminate memory leak in TaskPersister

Bitmaps added to TaskPersister were piling up in the queue.

- The mRecentsChanged flag was being modified without holding the
lock. There is no mRecentsChanged flag now. Everything to be
written goes into a queue.
- TaskPersister now runs until the queue is empty.
- Bitmaps being written to the same file were being added to the
end of the queue without replacing the earlier bitmap. Now we
search the queue for matching tasks and replace the bitmaps
if needed.
- Method notify() was renamed to wakeup() so IDE could find usages
quicker.
- Bitmaps that were being requested but were still in the queue
are now being fetched from the queue.

Fixes bug 16512870.

Change-Id: Idca1c712e5d2df8196e93faaf563a54405ee96bf
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
a228ae95ea2f842c0e84f237c64bf032689410dd 09-Jul-2014 Craig Mautner <cmautner@google.com> Add task affiliation

Introduces new flag Intent.FLAG_ACTIVITY_LAUNCH_BEHIND which
causes the newly launched task to affiliate with the launching task.
(Later this flag will also launch the task behind the current task).
This shows up in a new member of the RecentTaskInfo class. This also
causes the recents list returned by getRecentsInfo to be rearranged
so that affiliated tasks are together.

Fixes bug 16157517.

Change-Id: Ia1386af50da2f01809278b62d249f05c6a0de951
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
c0ffce5ddd6446f1d46a49cdfaeda4a2ce408e1d 01-Jul-2014 Craig Mautner <cmautner@google.com> Use cached thumbnails in Recent tasks.

The thumbnail returned from ActivityManager.getTaskThumbnail() now
contains either a Bitmap or a ParcelFileDescriptor that points to
a file containing a compressed Bitmap. The Recent tasks list is
now responsible for all thumbnail Bitmap caching as the activity
manager keeps only the most recent 5. This also permits low memory
devices to have many more tasks in the Recent tasks list.

As part of this CL the concept of subtasks is removed eliminating
code supporting the TaskAccessInfo and IThumbnailRetriever classes.

Fixes bug 15828934.

Change-Id: I0fd0320a1a04e3c78d79357899b83a2fff97abf2
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
77b04267c68b86c512937793f7ce563da55a99f3 28-Jun-2014 Craig Mautner <cmautner@google.com> Add logging to TaskPersister restore.

Solve tasks not being restored.

Fixes bug 15935752.

Change-Id: Ia3dd50072ac8255bcc37812a0639545b60f5d06f
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
2cb86c723195e24278f983241cd6b1e307acf159 25-Jun-2014 Winson Chung <winsonc@google.com> Saving last TaskDescription for TaskRecord.

Change-Id: I531e0fc661fdedeb78bee7d5472668de8e9c2104
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
43e52ed32e2d55ef4aee18c4b4bc13b7fdef9cc4 17-Jun-2014 Craig Mautner <cmautner@google.com> Fix persistent tasks and expand scope

- Fixed missing tag closure on the xml for storing Intent categories.
- Shortened timeout for flushing tasks to persistent storage from
one minute to ten seconds.
- Made persistency the default except for those tasks on the home
stack and those tasks that exclude themselves from the recent task
list.
- Fixed deletion of tasks after restoring. Tasks now survive a second
reboot, not just the first reboot.
- Fixed sort order so most recent tasks will be restored at front.

Fixes bug 15672002.

Change-Id: I16d87d58c6fd2e879cfd0c0b18b2694432a79b71
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
ffcfcaadfefec2fb56f67a0a614a54bf4599d62b 05-Jun-2014 Craig Mautner <cmautner@google.com> Implement maxRecents and fix TaskPersister bug

Activities can now set the maximum number of times that they will
appear in the recent task lists when using DocCentric mode. The
default number is 15, the min 1, and the max 100.

Also a bug in TaskPersister that deleted files because it did not
properly parse their task ids is fixed.

Fixes bug 13736052.

Change-Id: I7ccb4e6f89d6202ff31c8577bb7b9d8d1b7e5e8d
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
e0129b3c672f5555deb75366b1a7159f41737874 26-May-2014 Craig Mautner <cmautner@google.com> Add more error checking to xml restore

Bad files and OS updates can cause the restore to throw an NPE.
Rather than bring down the server process over this, just delete
the persistent file and keep going.

Fixes bug 15219594.

Change-Id: Id9cd39988ff93a26def036a05c46209364f2a4c0
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java
21d24a21ea4aaadd78e73de54168e8a8a8973e4d 23-Apr-2014 Craig Mautner <cmautner@google.com> Add code for persisting tasks and activities to disk DO NOT MERGE

Recent tasks that have the persistable flag set are
saved to /data/system/recent_tasks/ on shutdown and in the
background. Their thumbnails are saved to
/data/system/recent_images/.

Change-Id: Ifb820a01c412fe1f8c0f6e41aa655fafd89eaa8d
/frameworks/base/services/core/java/com/android/server/am/TaskPersister.java