Merge "Log GlobalHibernatedApps atom" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
690dd68dcc
@@ -182,12 +182,18 @@ public final class AppHibernationService extends SystemService {
|
|||||||
NAMESPACE_APP_HIBERNATION,
|
NAMESPACE_APP_HIBERNATION,
|
||||||
ActivityThread.currentApplication().getMainExecutor(),
|
ActivityThread.currentApplication().getMainExecutor(),
|
||||||
this::onDeviceConfigChanged);
|
this::onDeviceConfigChanged);
|
||||||
getContext().getSystemService(StatsManager.class)
|
final StatsManager statsManager = getContext().getSystemService(StatsManager.class);
|
||||||
.setPullAtomCallback(
|
final StatsPullAtomCallbackImpl pullAtomCallback = new StatsPullAtomCallbackImpl();
|
||||||
|
statsManager.setPullAtomCallback(
|
||||||
FrameworkStatsLog.USER_LEVEL_HIBERNATED_APPS,
|
FrameworkStatsLog.USER_LEVEL_HIBERNATED_APPS,
|
||||||
/* metadata */ null, // use default PullAtomMetadata values
|
/* metadata */ null, // use default PullAtomMetadata values
|
||||||
mBackgroundExecutor,
|
mBackgroundExecutor,
|
||||||
new StatsPullAtomCallbackImpl());
|
pullAtomCallback);
|
||||||
|
statsManager.setPullAtomCallback(
|
||||||
|
FrameworkStatsLog.GLOBAL_HIBERNATED_APPS,
|
||||||
|
/* metadata */ null, // use default PullAtomMetadata values
|
||||||
|
mBackgroundExecutor,
|
||||||
|
pullAtomCallback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,6 +297,7 @@ public final class AppHibernationService extends SystemService {
|
|||||||
stateSnapshot.packageName,
|
stateSnapshot.packageName,
|
||||||
userIdSnapshot,
|
userIdSnapshot,
|
||||||
stateSnapshot.hibernated,
|
stateSnapshot.hibernated,
|
||||||
|
// TODO(b/187224817): This isn't the expected value right now.
|
||||||
stateSnapshot.lastUnhibernatedMs);
|
stateSnapshot.lastUnhibernatedMs);
|
||||||
});
|
});
|
||||||
List<UserLevelState> states = new ArrayList<>(mUserStates.get(userId).values());
|
List<UserLevelState> states = new ArrayList<>(mUserStates.get(userId).values());
|
||||||
@@ -938,10 +945,14 @@ public final class AppHibernationService extends SystemService {
|
|||||||
private final class StatsPullAtomCallbackImpl implements StatsPullAtomCallback {
|
private final class StatsPullAtomCallbackImpl implements StatsPullAtomCallback {
|
||||||
@Override
|
@Override
|
||||||
public int onPullAtom(int atomTag, @NonNull List<StatsEvent> data) {
|
public int onPullAtom(int atomTag, @NonNull List<StatsEvent> data) {
|
||||||
if (atomTag != FrameworkStatsLog.USER_LEVEL_HIBERNATED_APPS) {
|
if (!isAppHibernationEnabled()
|
||||||
return StatsManager.PULL_SKIP;
|
&& (atomTag == FrameworkStatsLog.USER_LEVEL_HIBERNATED_APPS
|
||||||
|
|| atomTag == FrameworkStatsLog.GLOBAL_HIBERNATED_APPS)) {
|
||||||
|
return StatsManager.PULL_SUCCESS;
|
||||||
}
|
}
|
||||||
if (isAppHibernationEnabled()) {
|
|
||||||
|
switch (atomTag) {
|
||||||
|
case FrameworkStatsLog.USER_LEVEL_HIBERNATED_APPS:
|
||||||
List<UserInfo> userInfos = mUserManager.getAliveUsers();
|
List<UserInfo> userInfos = mUserManager.getAliveUsers();
|
||||||
final int numUsers = userInfos.size();
|
final int numUsers = userInfos.size();
|
||||||
for (int i = 0; i < numUsers; ++i) {
|
for (int i = 0; i < numUsers; ++i) {
|
||||||
@@ -955,6 +966,18 @@ public final class AppHibernationService extends SystemService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case FrameworkStatsLog.GLOBAL_HIBERNATED_APPS:
|
||||||
|
int hibernatedAppCount = 0;
|
||||||
|
synchronized (mLock) {
|
||||||
|
for (GlobalLevelState state : mGlobalHibernationStates.values()) {
|
||||||
|
if (state.hibernated) hibernatedAppCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data.add(FrameworkStatsLog.buildStatsEvent(atomTag, hibernatedAppCount));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return StatsManager.PULL_SKIP;
|
||||||
}
|
}
|
||||||
return StatsManager.PULL_SUCCESS;
|
return StatsManager.PULL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user