summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/applications
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2014-01-23 17:59:49 -0800
committerDianne Hackborn <hackbod@google.com>2014-01-23 17:59:49 -0800
commitab89566e82eec92718f97fe3e63d3e240e7f90d1 (patch)
tree46af5678b9c553265973fee77ec2850465cb8e12 /src/com/android/settings/applications
parente179bb01330cc409c6a8044270c743bb30d4c6f9 (diff)
downloadpackages_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.java35
-rw-r--r--src/com/android/settings/applications/ProcessStatsUi.java83
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);
+ }
}
}
}