From 760ec4a095567457707abe764cf4dfda0ed84032 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 17 Jun 2009 20:05:26 -0700 Subject: Fix issue #1924851 We now only increment the launch count when we are launching from one package to another. Also the individual components in a package now have a count of the number of times they have been entered, which likewise is only updated when going to one component from another. This requires a new data format (all old data is wiped) and new checkin dump format (tools must be updated to read it). --- .../com/android/server/am/UsageStatsService.java | 127 +++++++++++++++------ 1 file changed, 90 insertions(+), 37 deletions(-) (limited to 'services/java/com/android/server/am') diff --git a/services/java/com/android/server/am/UsageStatsService.java b/services/java/com/android/server/am/UsageStatsService.java index 866334b..2d58659 100755 --- a/services/java/com/android/server/am/UsageStatsService.java +++ b/services/java/com/android/server/am/UsageStatsService.java @@ -56,9 +56,9 @@ public final class UsageStatsService extends IUsageStats.Stub { private static final String TAG = "UsageStats"; // Current on-disk Parcel version - private static final int VERSION = 1004; + private static final int VERSION = 1005; - private static final int CHECKIN_VERSION = 3; + private static final int CHECKIN_VERSION = 4; private static final String FILE_PREFIX = "usage-"; @@ -82,7 +82,9 @@ public final class UsageStatsService extends IUsageStats.Stub { // this lock held. final Object mFileLock; // Order of locks is mFileLock followed by mStatsLock to avoid deadlocks - private String mResumedPkg; + private String mLastResumedPkg; + private String mLastResumedComp; + private boolean mIsResumed; private File mFile; private String mFileLeaf; //private File mBackupFile; @@ -92,11 +94,16 @@ public final class UsageStatsService extends IUsageStats.Stub { private int mLastWriteDay; static class TimeStats { + int count; int[] times = new int[NUM_LAUNCH_TIME_BINS]; TimeStats() { } + void incCount() { + count++; + } + void add(int val) { final int[] bins = LAUNCH_TIME_BINS; for (int i=0; i