Merge "[metrics] implement callbacks for InstalledIncrementalPackage pulled atom" into sc-dev am: 7e5a53a0e5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14719306 Change-Id: I07535288f41201e173bb4e409952e7f6e604546e
This commit is contained in:
@@ -126,6 +126,7 @@ import android.os.Trace;
|
|||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.os.connectivity.WifiActivityEnergyInfo;
|
import android.os.connectivity.WifiActivityEnergyInfo;
|
||||||
|
import android.os.incremental.IncrementalManager;
|
||||||
import android.os.storage.DiskInfo;
|
import android.os.storage.DiskInfo;
|
||||||
import android.os.storage.StorageManager;
|
import android.os.storage.StorageManager;
|
||||||
import android.os.storage.VolumeInfo;
|
import android.os.storage.VolumeInfo;
|
||||||
@@ -426,6 +427,7 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
private final Object mHealthHalLock = new Object();
|
private final Object mHealthHalLock = new Object();
|
||||||
private final Object mAttributedAppOpsLock = new Object();
|
private final Object mAttributedAppOpsLock = new Object();
|
||||||
private final Object mSettingsStatsLock = new Object();
|
private final Object mSettingsStatsLock = new Object();
|
||||||
|
private final Object mInstalledIncrementalPackagesLock = new Object();
|
||||||
|
|
||||||
public StatsPullAtomService(Context context) {
|
public StatsPullAtomService(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
@@ -695,6 +697,10 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
synchronized (mSettingsStatsLock) {
|
synchronized (mSettingsStatsLock) {
|
||||||
return pullSettingsStatsLocked(atomTag, data);
|
return pullSettingsStatsLocked(atomTag, data);
|
||||||
}
|
}
|
||||||
|
case FrameworkStatsLog.INSTALLED_INCREMENTAL_PACKAGE:
|
||||||
|
synchronized (mInstalledIncrementalPackagesLock) {
|
||||||
|
return pullInstalledIncrementalPackagesLocked(atomTag, data);
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
|
throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
|
||||||
}
|
}
|
||||||
@@ -877,6 +883,7 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
registerBatteryVoltage();
|
registerBatteryVoltage();
|
||||||
registerBatteryCycleCount();
|
registerBatteryCycleCount();
|
||||||
registerSettingsStats();
|
registerSettingsStats();
|
||||||
|
registerInstalledIncrementalPackages();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initAndRegisterNetworkStatsPullers() {
|
private void initAndRegisterNetworkStatsPullers() {
|
||||||
@@ -3949,6 +3956,31 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
return StatsManager.PULL_SUCCESS;
|
return StatsManager.PULL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerInstalledIncrementalPackages() {
|
||||||
|
int tagId = FrameworkStatsLog.INSTALLED_INCREMENTAL_PACKAGE;
|
||||||
|
mStatsManager.setPullAtomCallback(
|
||||||
|
tagId,
|
||||||
|
null, // use default PullAtomMetadata values
|
||||||
|
DIRECT_EXECUTOR,
|
||||||
|
mStatsCallbackImpl
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
int pullInstalledIncrementalPackagesLocked(int atomTag, List<StatsEvent> pulledData) {
|
||||||
|
final PackageManager pm = mContext.getPackageManager();
|
||||||
|
if (!pm.hasSystemFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY)) {
|
||||||
|
// Incremental is not enabled on this device. The result list will be empty.
|
||||||
|
return StatsManager.PULL_SUCCESS;
|
||||||
|
}
|
||||||
|
List<PackageInfo> installedPackages = pm.getInstalledPackages(0);
|
||||||
|
for (PackageInfo pi : installedPackages) {
|
||||||
|
if (IncrementalManager.isIncrementalPath(pi.applicationInfo.getBaseCodePath())) {
|
||||||
|
pulledData.add(FrameworkStatsLog.buildStatsEvent(atomTag, pi.applicationInfo.uid));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return StatsManager.PULL_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
// Thermal event received from vendor thermal management subsystem
|
// Thermal event received from vendor thermal management subsystem
|
||||||
private static final class ThermalEventListener extends IThermalEventListener.Stub {
|
private static final class ThermalEventListener extends IThermalEventListener.Stub {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user