Loading services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +32 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading @@ -877,6 +883,7 @@ public class StatsPullAtomService extends SystemService { registerBatteryVoltage(); registerBatteryVoltage(); registerBatteryCycleCount(); registerBatteryCycleCount(); registerSettingsStats(); registerSettingsStats(); registerInstalledIncrementalPackages(); } } private void initAndRegisterNetworkStatsPullers() { private void initAndRegisterNetworkStatsPullers() { Loading Loading @@ -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 Loading Loading
services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +32 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading @@ -877,6 +883,7 @@ public class StatsPullAtomService extends SystemService { registerBatteryVoltage(); registerBatteryVoltage(); registerBatteryCycleCount(); registerBatteryCycleCount(); registerSettingsStats(); registerSettingsStats(); registerInstalledIncrementalPackages(); } } private void initAndRegisterNetworkStatsPullers() { private void initAndRegisterNetworkStatsPullers() { Loading Loading @@ -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 Loading