Loading src/com/android/settings/applications/ProcStatsEntry.java +8 −27 Original line number Diff line number Diff line Loading @@ -78,7 +78,6 @@ public final class ProcStatsEntry implements Parcelable { mBestTargetPackage = null; if (mUnique) { mBestTargetPackage = mPackage; addServices(stats.getPackageStateLocked(mPackage, mUid)); } else { // See if there is one significant package that was running here. ArrayList<ProcStatsEntry> subProcs = new ArrayList<ProcStatsEntry>(); Loading @@ -90,18 +89,13 @@ public final class ProcStatsEntry implements Parcelable { continue; } ProcessStats.PackageState pkgState = uids.valueAt(iu); boolean match = false; for (int iproc=0, NPROC=pkgState.mProcesses.size(); iproc<NPROC; iproc++) { ProcessStats.ProcessState subProc = pkgState.mProcesses.valueAt(iproc); if (subProc.mName.equals(mName)) { match = true; subProcs.add(new ProcStatsEntry(subProc, totals)); } } if (match) { addServices(stats.getPackageStateLocked(mPackage, mUid)); } } } if (subProcs.size() > 1) { Loading Loading @@ -173,13 +167,9 @@ public final class ProcStatsEntry implements Parcelable { } } public void addServices(ProcessStats.PackageState pkgState) { for (int isvc=0, NSVC=pkgState.mServices.size(); isvc<NSVC; isvc++) { ProcessStats.ServiceState svc = pkgState.mServices.valueAt(isvc); // XXX can't tell what process it is in! public void addService(ProcessStats.ServiceState svc) { mServices.add(new Service(svc)); } } @Override public int describeContents() { Loading Loading @@ -213,32 +203,22 @@ public final class ProcStatsEntry implements Parcelable { public static final class Service implements Parcelable { final String mPackage; final String mName; final String mProcess; final long mDuration; public Service(ProcessStats.ServiceState service) { mPackage = service.mPackage; mName = service.mName; long startDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_STARTED, ProcessStats.STATE_NOTHING, 0, 0); long bindDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_BOUND, mProcess = service.mProcessName; mDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_RUN, ProcessStats.STATE_NOTHING, 0, 0); long execDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_EXEC, ProcessStats.STATE_NOTHING, 0, 0); if (bindDuration > startDuration) { startDuration = bindDuration; } if (execDuration > startDuration) { startDuration = execDuration; } mDuration = startDuration; } public Service(Parcel in) { mPackage = in.readString(); mName = in.readString(); mProcess = in.readString(); mDuration = in.readLong(); } Loading @@ -251,6 +231,7 @@ public final class ProcStatsEntry implements Parcelable { public void writeToParcel(Parcel dest, int flags) { dest.writeString(mPackage); dest.writeString(mName); dest.writeString(mProcess); dest.writeLong(mDuration); } Loading src/com/android/settings/applications/ProcessStatsUi.java +21 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.PreferenceGroup; import android.preference.PreferenceScreen; import android.util.ArrayMap; import android.util.Log; import android.util.SparseArray; import android.util.TimeUtils; Loading Loading @@ -245,10 +246,14 @@ public class ProcessStatsUi extends PreferenceFragment { } */ ArrayMap<String, ProcStatsEntry> processes = new ArrayMap<String, ProcStatsEntry>( mStats.mProcesses.getMap().size()); for (int ip=0, N=mStats.mProcesses.getMap().size(); ip<N; ip++) { SparseArray<ProcessStats.ProcessState> uids = mStats.mProcesses.getMap().valueAt(ip); for (int iu=0; iu<uids.size(); iu++) { procs.add(new ProcStatsEntry(uids.valueAt(iu), totals)); ProcStatsEntry ent = new ProcStatsEntry(uids.valueAt(iu), totals); procs.add(ent); processes.put(ent.mName, ent); } } Loading Loading @@ -283,6 +288,21 @@ public class ProcessStatsUi extends PreferenceFragment { mAppListGroup.addPreference(pref); if (mAppListGroup.getPreferenceCount() > (MAX_ITEMS_TO_LIST+1)) break; } // Add in service info. for (int ip=0, N=mStats.mPackages.getMap().size(); ip<N; ip++) { SparseArray<ProcessStats.PackageState> uids = mStats.mPackages.getMap().valueAt(ip); for (int iu=0; iu<uids.size(); iu++) { ProcessStats.PackageState ps = uids.valueAt(iu); for (int is=0, NS=ps.mServices.size(); is<NS; is++) { ProcessStats.ServiceState ss = ps.mServices.valueAt(is); if (ss.mProcessName != null) { ProcStatsEntry ent = processes.get(ss.mProcessName); ent.addService(ss); } } } } } private void load() { Loading Loading
src/com/android/settings/applications/ProcStatsEntry.java +8 −27 Original line number Diff line number Diff line Loading @@ -78,7 +78,6 @@ public final class ProcStatsEntry implements Parcelable { mBestTargetPackage = null; if (mUnique) { mBestTargetPackage = mPackage; addServices(stats.getPackageStateLocked(mPackage, mUid)); } else { // See if there is one significant package that was running here. ArrayList<ProcStatsEntry> subProcs = new ArrayList<ProcStatsEntry>(); Loading @@ -90,18 +89,13 @@ public final class ProcStatsEntry implements Parcelable { continue; } ProcessStats.PackageState pkgState = uids.valueAt(iu); boolean match = false; for (int iproc=0, NPROC=pkgState.mProcesses.size(); iproc<NPROC; iproc++) { ProcessStats.ProcessState subProc = pkgState.mProcesses.valueAt(iproc); if (subProc.mName.equals(mName)) { match = true; subProcs.add(new ProcStatsEntry(subProc, totals)); } } if (match) { addServices(stats.getPackageStateLocked(mPackage, mUid)); } } } if (subProcs.size() > 1) { Loading Loading @@ -173,13 +167,9 @@ public final class ProcStatsEntry implements Parcelable { } } public void addServices(ProcessStats.PackageState pkgState) { for (int isvc=0, NSVC=pkgState.mServices.size(); isvc<NSVC; isvc++) { ProcessStats.ServiceState svc = pkgState.mServices.valueAt(isvc); // XXX can't tell what process it is in! public void addService(ProcessStats.ServiceState svc) { mServices.add(new Service(svc)); } } @Override public int describeContents() { Loading Loading @@ -213,32 +203,22 @@ public final class ProcStatsEntry implements Parcelable { public static final class Service implements Parcelable { final String mPackage; final String mName; final String mProcess; final long mDuration; public Service(ProcessStats.ServiceState service) { mPackage = service.mPackage; mName = service.mName; long startDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_STARTED, ProcessStats.STATE_NOTHING, 0, 0); long bindDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_BOUND, mProcess = service.mProcessName; mDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_RUN, ProcessStats.STATE_NOTHING, 0, 0); long execDuration = ProcessStats.dumpSingleServiceTime(null, null, service, ProcessStats.ServiceState.SERVICE_EXEC, ProcessStats.STATE_NOTHING, 0, 0); if (bindDuration > startDuration) { startDuration = bindDuration; } if (execDuration > startDuration) { startDuration = execDuration; } mDuration = startDuration; } public Service(Parcel in) { mPackage = in.readString(); mName = in.readString(); mProcess = in.readString(); mDuration = in.readLong(); } Loading @@ -251,6 +231,7 @@ public final class ProcStatsEntry implements Parcelable { public void writeToParcel(Parcel dest, int flags) { dest.writeString(mPackage); dest.writeString(mName); dest.writeString(mProcess); dest.writeLong(mDuration); } Loading
src/com/android/settings/applications/ProcessStatsUi.java +21 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.PreferenceGroup; import android.preference.PreferenceScreen; import android.util.ArrayMap; import android.util.Log; import android.util.SparseArray; import android.util.TimeUtils; Loading Loading @@ -245,10 +246,14 @@ public class ProcessStatsUi extends PreferenceFragment { } */ ArrayMap<String, ProcStatsEntry> processes = new ArrayMap<String, ProcStatsEntry>( mStats.mProcesses.getMap().size()); for (int ip=0, N=mStats.mProcesses.getMap().size(); ip<N; ip++) { SparseArray<ProcessStats.ProcessState> uids = mStats.mProcesses.getMap().valueAt(ip); for (int iu=0; iu<uids.size(); iu++) { procs.add(new ProcStatsEntry(uids.valueAt(iu), totals)); ProcStatsEntry ent = new ProcStatsEntry(uids.valueAt(iu), totals); procs.add(ent); processes.put(ent.mName, ent); } } Loading Loading @@ -283,6 +288,21 @@ public class ProcessStatsUi extends PreferenceFragment { mAppListGroup.addPreference(pref); if (mAppListGroup.getPreferenceCount() > (MAX_ITEMS_TO_LIST+1)) break; } // Add in service info. for (int ip=0, N=mStats.mPackages.getMap().size(); ip<N; ip++) { SparseArray<ProcessStats.PackageState> uids = mStats.mPackages.getMap().valueAt(ip); for (int iu=0; iu<uids.size(); iu++) { ProcessStats.PackageState ps = uids.valueAt(iu); for (int is=0, NS=ps.mServices.size(); is<NS; is++) { ProcessStats.ServiceState ss = ps.mServices.valueAt(is); if (ss.mProcessName != null) { ProcStatsEntry ent = processes.get(ss.mProcessName); ent.addService(ss); } } } } } private void load() { Loading