diff options
author | Dianne Hackborn <hackbod@google.com> | 2014-01-23 17:59:49 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2014-01-23 17:59:49 -0800 |
commit | ab89566e82eec92718f97fe3e63d3e240e7f90d1 (patch) | |
tree | 46af5678b9c553265973fee77ec2850465cb8e12 /src/com/android/settings/applications | |
parent | e179bb01330cc409c6a8044270c743bb30d4c6f9 (diff) | |
download | packages_apps_Settings-ab89566e82eec92718f97fe3e63d3e240e7f90d1.tar.gz packages_apps_Settings-ab89566e82eec92718f97fe3e63d3e240e7f90d1.tar.bz2 packages_apps_Settings-ab89566e82eec92718f97fe3e63d3e240e7f90d1.zip |
Update to follow per-version proc stats change.
Change-Id: Iea44f1c7e9bd59a2eeaa1739bbaa5c0bdc349b0b
Diffstat (limited to 'src/com/android/settings/applications')
-rw-r--r-- | src/com/android/settings/applications/ProcStatsEntry.java | 35 | ||||
-rw-r--r-- | src/com/android/settings/applications/ProcessStatsUi.java | 83 |
2 files changed, 65 insertions, 53 deletions
diff --git a/src/com/android/settings/applications/ProcStatsEntry.java b/src/com/android/settings/applications/ProcStatsEntry.java index 0821ced23..87024783f 100644 --- a/src/com/android/settings/applications/ProcStatsEntry.java +++ b/src/com/android/settings/applications/ProcStatsEntry.java @@ -23,6 +23,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.util.ArrayMap; import android.util.Log; +import android.util.SparseArray; import com.android.internal.app.ProcessStats; import java.util.ArrayList; @@ -109,22 +110,26 @@ public final class ProcStatsEntry implements Parcelable { // See if there is one significant package that was running here. ArrayList<ProcStatsEntry> subProcs = new ArrayList<ProcStatsEntry>(); for (int ipkg=0; ipkg<mPackages.size(); ipkg++) { - ProcessStats.PackageState pkgState = stats.mPackages.get(mPackages.get(ipkg), mUid); - if (DEBUG) Log.d(TAG, "Eval pkg of " + mName + ", pkg " - + mPackages.get(ipkg) + ":"); - if (pkgState == null) { - Log.w(TAG, "No package state found for " + mPackages.get(ipkg) + "/" - + mUid + " in process " + mName); - continue; - } - ProcessStats.ProcessState pkgProc = pkgState.mProcesses.get(mName); - if (pkgProc == null) { - Log.w(TAG, "No process " + mName + " found in package state " - + mPackages.get(ipkg) + "/" + mUid); - continue; + SparseArray<ProcessStats.PackageState> vpkgs + = stats.mPackages.get(mPackages.get(ipkg), mUid); + for (int ivers=0; ivers<vpkgs.size(); ivers++) { + ProcessStats.PackageState pkgState = vpkgs.valueAt(ivers); + if (DEBUG) Log.d(TAG, "Eval pkg of " + mName + ", pkg " + + pkgState + ":"); + if (pkgState == null) { + Log.w(TAG, "No package state found for " + mPackages.get(ipkg) + "/" + + mUid + " in process " + mName); + continue; + } + ProcessStats.ProcessState pkgProc = pkgState.mProcesses.get(mName); + if (pkgProc == null) { + Log.w(TAG, "No process " + mName + " found in package state " + + mPackages.get(ipkg) + "/" + mUid); + continue; + } + subProcs.add(new ProcStatsEntry(pkgProc, pkgState.mPackageName, totals, useUss, + weightWithTime)); } - subProcs.add(new ProcStatsEntry(pkgProc, pkgState.mPackageName, totals, useUss, - weightWithTime)); } if (subProcs.size() > 1) { Collections.sort(subProcs, compare); diff --git a/src/com/android/settings/applications/ProcessStatsUi.java b/src/com/android/settings/applications/ProcessStatsUi.java index 8322ea352..318022144 100644 --- a/src/com/android/settings/applications/ProcessStatsUi.java +++ b/src/com/android/settings/applications/ProcessStatsUi.java @@ -466,33 +466,36 @@ public class ProcessStatsUi extends PreferenceFragment final ProcessMap<ProcStatsEntry> entriesMap = new ProcessMap<ProcStatsEntry>(); for (int ipkg=0, N=mStats.mPackages.getMap().size(); ipkg<N; ipkg++) { - final SparseArray<ProcessStats.PackageState> pkgUids + final SparseArray<SparseArray<ProcessStats.PackageState>> pkgUids = mStats.mPackages.getMap().valueAt(ipkg); for (int iu=0; iu<pkgUids.size(); iu++) { - final ProcessStats.PackageState st = pkgUids.valueAt(iu); - for (int iproc=0; iproc<st.mProcesses.size(); iproc++) { - final ProcessStats.ProcessState pkgProc = st.mProcesses.valueAt(iproc); - final ProcessStats.ProcessState proc = mStats.mProcesses.get(pkgProc.mName, - pkgProc.mUid); - if (proc == null) { - Log.w(TAG, "No process found for pkg " + st.mPackageName - + "/" + st.mUid + " proc name " + pkgProc.mName); - continue; - } - ProcStatsEntry ent = entriesMap.get(proc.mName, proc.mUid); - if (ent == null) { - ent = new ProcStatsEntry(proc, st.mPackageName, totals, mUseUss, - mStatsType == MENU_TYPE_BACKGROUND); - if (ent.mDuration > 0) { - if (DEBUG) Log.d(TAG, "Adding proc " + proc.mName + "/" - + proc.mUid + ": time=" + makeDuration(ent.mDuration) + " (" - + ((((double)ent.mDuration) / memTotalTime) * 100) + "%)" - + " pss=" + ent.mAvgPss); - entriesMap.put(proc.mName, proc.mUid, ent); - entries.add(ent); + final SparseArray<ProcessStats.PackageState> vpkgs = pkgUids.valueAt(iu); + for (int iv=0; iv<vpkgs.size(); iv++) { + final ProcessStats.PackageState st = vpkgs.valueAt(iv); + for (int iproc=0; iproc<st.mProcesses.size(); iproc++) { + final ProcessStats.ProcessState pkgProc = st.mProcesses.valueAt(iproc); + final ProcessStats.ProcessState proc = mStats.mProcesses.get(pkgProc.mName, + pkgProc.mUid); + if (proc == null) { + Log.w(TAG, "No process found for pkg " + st.mPackageName + + "/" + st.mUid + " proc name " + pkgProc.mName); + continue; + } + ProcStatsEntry ent = entriesMap.get(proc.mName, proc.mUid); + if (ent == null) { + ent = new ProcStatsEntry(proc, st.mPackageName, totals, mUseUss, + mStatsType == MENU_TYPE_BACKGROUND); + if (ent.mDuration > 0) { + if (DEBUG) Log.d(TAG, "Adding proc " + proc.mName + "/" + + proc.mUid + ": time=" + makeDuration(ent.mDuration) + " (" + + ((((double)ent.mDuration) / memTotalTime) * 100) + "%)" + + " pss=" + ent.mAvgPss); + entriesMap.put(proc.mName, proc.mUid, ent); + entries.add(ent); + } + } else { + ent.addPackage(st.mPackageName); } - } else { - ent.addPackage(st.mPackageName); } } } @@ -503,21 +506,25 @@ public class ProcessStatsUi extends PreferenceFragment // Add in service info. if (mStatsType == MENU_TYPE_BACKGROUND) { for (int ip=0, N=mStats.mPackages.getMap().size(); ip<N; ip++) { - SparseArray<ProcessStats.PackageState> uids = mStats.mPackages.getMap().valueAt(ip); + SparseArray<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 = entriesMap.get(ss.mProcessName, uids.keyAt(iu)); - if (ent != null) { - if (DEBUG) Log.d(TAG, "Adding service " + ps.mPackageName - + "/" + ss.mName + "/" + uids.keyAt(iu) + " to proc " - + ss.mProcessName); - ent.addService(ss); - } else { - Log.w(TAG, "No process " + ss.mProcessName + "/" + uids.keyAt(iu) - + " for service " + ss.mName); + SparseArray<ProcessStats.PackageState> vpkgs = uids.valueAt(iu); + for (int iv=0; iv<vpkgs.size(); iv++) { + ProcessStats.PackageState ps = vpkgs.valueAt(iv); + for (int is=0, NS=ps.mServices.size(); is<NS; is++) { + ProcessStats.ServiceState ss = ps.mServices.valueAt(is); + if (ss.mProcessName != null) { + ProcStatsEntry ent = entriesMap.get(ss.mProcessName, uids.keyAt(iu)); + if (ent != null) { + if (DEBUG) Log.d(TAG, "Adding service " + ps.mPackageName + + "/" + ss.mName + "/" + uids.keyAt(iu) + " to proc " + + ss.mProcessName); + ent.addService(ss); + } else { + Log.w(TAG, "No process " + ss.mProcessName + "/" + uids.keyAt(iu) + + " for service " + ss.mName); + } } } } |