Merge "[metrics] implement callbacks for InstalledIncrementalPackage pulled atom" into sc-dev
This commit is contained in:
@@ -126,6 +126,7 @@ import android.os.Trace;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.os.connectivity.WifiActivityEnergyInfo;
|
||||
import android.os.incremental.IncrementalManager;
|
||||
import android.os.storage.DiskInfo;
|
||||
import android.os.storage.StorageManager;
|
||||
import android.os.storage.VolumeInfo;
|
||||
@@ -426,6 +427,7 @@ public class StatsPullAtomService extends SystemService {
|
||||
private final Object mHealthHalLock = new Object();
|
||||
private final Object mAttributedAppOpsLock = new Object();
|
||||
private final Object mSettingsStatsLock = new Object();
|
||||
private final Object mInstalledIncrementalPackagesLock = new Object();
|
||||
|
||||
public StatsPullAtomService(Context context) {
|
||||
super(context);
|
||||
@@ -695,6 +697,10 @@ public class StatsPullAtomService extends SystemService {
|
||||
synchronized (mSettingsStatsLock) {
|
||||
return pullSettingsStatsLocked(atomTag, data);
|
||||
}
|
||||
case FrameworkStatsLog.INSTALLED_INCREMENTAL_PACKAGE:
|
||||
synchronized (mInstalledIncrementalPackagesLock) {
|
||||
return pullInstalledIncrementalPackagesLocked(atomTag, data);
|
||||
}
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
|
||||
}
|
||||
@@ -877,6 +883,7 @@ public class StatsPullAtomService extends SystemService {
|
||||
registerBatteryVoltage();
|
||||
registerBatteryCycleCount();
|
||||
registerSettingsStats();
|
||||
registerInstalledIncrementalPackages();
|
||||
}
|
||||
|
||||
private void initAndRegisterNetworkStatsPullers() {
|
||||
@@ -3949,6 +3956,31 @@ public class StatsPullAtomService extends SystemService {
|
||||
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
|
||||
private static final class ThermalEventListener extends IThermalEventListener.Stub {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user