Merge "Expose java puller api as @SystemAPI"
This commit is contained in:
committed by
Android (Google) Code Review
commit
05ed82b446
@@ -661,6 +661,7 @@ package android.app {
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] getRegisteredExperimentIds() throws android.app.StatsManager.StatsUnavailableException;
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getReports(long) throws android.app.StatsManager.StatsUnavailableException;
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getStatsMetadata() throws android.app.StatsManager.StatsUnavailableException;
|
||||
method public void registerPullAtomCallback(int, @Nullable android.app.StatsManager.PullAtomMetadata, @NonNull java.util.concurrent.Executor, @NonNull android.app.StatsManager.StatsPullAtomCallback);
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void removeConfig(long) throws android.app.StatsManager.StatsUnavailableException;
|
||||
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean removeConfiguration(long);
|
||||
method @NonNull @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] setActiveConfigsChangedOperation(@Nullable android.app.PendingIntent) throws android.app.StatsManager.StatsUnavailableException;
|
||||
@@ -668,6 +669,7 @@ package android.app {
|
||||
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setBroadcastSubscriber(long, long, android.app.PendingIntent);
|
||||
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setDataFetchOperation(long, android.app.PendingIntent);
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void setFetchReportsOperation(android.app.PendingIntent, long) throws android.app.StatsManager.StatsUnavailableException;
|
||||
method public void unregisterPullAtomCallback(int);
|
||||
field public static final String ACTION_STATSD_STARTED = "android.app.action.STATSD_STARTED";
|
||||
field public static final String EXTRA_STATS_ACTIVE_CONFIG_KEYS = "android.app.extra.STATS_ACTIVE_CONFIG_KEYS";
|
||||
field public static final String EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES = "android.app.extra.STATS_BROADCAST_SUBSCRIBER_COOKIES";
|
||||
@@ -676,6 +678,23 @@ package android.app {
|
||||
field public static final String EXTRA_STATS_DIMENSIONS_VALUE = "android.app.extra.STATS_DIMENSIONS_VALUE";
|
||||
field public static final String EXTRA_STATS_SUBSCRIPTION_ID = "android.app.extra.STATS_SUBSCRIPTION_ID";
|
||||
field public static final String EXTRA_STATS_SUBSCRIPTION_RULE_ID = "android.app.extra.STATS_SUBSCRIPTION_RULE_ID";
|
||||
field public static final int PULL_SKIP = 1; // 0x1
|
||||
field public static final int PULL_SUCCESS = 0; // 0x0
|
||||
}
|
||||
|
||||
public static class StatsManager.PullAtomMetadata {
|
||||
}
|
||||
|
||||
public static class StatsManager.PullAtomMetadata.Builder {
|
||||
ctor public StatsManager.PullAtomMetadata.Builder();
|
||||
method @NonNull public android.app.StatsManager.PullAtomMetadata build();
|
||||
method @NonNull public android.app.StatsManager.PullAtomMetadata.Builder setAdditiveFields(@NonNull int[]);
|
||||
method @NonNull public android.app.StatsManager.PullAtomMetadata.Builder setCoolDownNs(long);
|
||||
method @NonNull public android.app.StatsManager.PullAtomMetadata.Builder setTimeoutNs(long);
|
||||
}
|
||||
|
||||
public static interface StatsManager.StatsPullAtomCallback {
|
||||
method public int onPullAtom(int, @NonNull java.util.List<android.util.StatsEvent>);
|
||||
}
|
||||
|
||||
public static class StatsManager.StatsUnavailableException extends android.util.AndroidException {
|
||||
|
||||
@@ -18,11 +18,13 @@ package android.app;
|
||||
import static android.Manifest.permission.DUMP;
|
||||
import static android.Manifest.permission.PACKAGE_USAGE_STATS;
|
||||
|
||||
import android.annotation.CallbackExecutor;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresPermission;
|
||||
import android.annotation.SystemApi;
|
||||
import android.content.Context;
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.os.IPullAtomCallback;
|
||||
import android.os.IPullAtomResultReceiver;
|
||||
@@ -108,13 +110,11 @@ public final class StatsManager {
|
||||
/**
|
||||
* Value indicating that this pull was successful and that the result should be used.
|
||||
*
|
||||
* @hide
|
||||
**/
|
||||
public static final int PULL_SUCCESS = 0;
|
||||
|
||||
/**
|
||||
* Value indicating that this pull was unsuccessful and that the result should not be used.
|
||||
* @hide
|
||||
**/
|
||||
public static final int PULL_SKIP = 1;
|
||||
|
||||
@@ -511,6 +511,17 @@ public final class StatsManager {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Temp registration for while the migration is in progress.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public void registerPullAtomCallback(int atomTag, @Nullable PullAtomMetadata metadata,
|
||||
@NonNull StatsPullAtomCallback callback,
|
||||
@NonNull @CallbackExecutor Executor executor) {
|
||||
registerPullAtomCallback(atomTag, metadata, executor, callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a callback for an atom when that atom is to be pulled. The stats service will
|
||||
* invoke pullData in the callback when the stats service determines that this atom needs to be
|
||||
@@ -520,18 +531,19 @@ public final class StatsManager {
|
||||
* @param metadata Optional metadata specifying the timeout, cool down time, and
|
||||
* additive fields for mapping isolated to host uids.
|
||||
* @param callback The callback to be invoked when the stats service pulls the atom.
|
||||
* @param executor The executor in which to run the callback
|
||||
* @param executor The executor in which to run the callback.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public void registerPullAtomCallback(int atomTag, @Nullable PullAtomMetadata metadata,
|
||||
@NonNull StatsPullAtomCallback callback, @NonNull Executor executor) {
|
||||
@NonNull @CallbackExecutor Executor executor,
|
||||
@NonNull StatsPullAtomCallback callback) {
|
||||
long coolDownNs = metadata == null ? DEFAULT_COOL_DOWN_NS : metadata.mCoolDownNs;
|
||||
long timeoutNs = metadata == null ? DEFAULT_TIMEOUT_NS : metadata.mTimeoutNs;
|
||||
int[] additiveFields = metadata == null ? new int[0] : metadata.mAdditiveFields;
|
||||
if (additiveFields == null) {
|
||||
additiveFields = new int[0];
|
||||
}
|
||||
|
||||
synchronized (sLock) {
|
||||
try {
|
||||
IStatsManagerService service = getIStatsManagerServiceLocked();
|
||||
@@ -551,7 +563,6 @@ public final class StatsManager {
|
||||
*
|
||||
* @param atomTag The tag of the atom of which to unregister
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public void unregisterPullAtomCallback(int atomTag) {
|
||||
synchronized (sLock) {
|
||||
@@ -577,21 +588,26 @@ public final class StatsManager {
|
||||
|
||||
@Override
|
||||
public void onPullAtom(int atomTag, IPullAtomResultReceiver resultReceiver) {
|
||||
mExecutor.execute(() -> {
|
||||
List<StatsEvent> data = new ArrayList<>();
|
||||
int successInt = mCallback.onPullAtom(atomTag, data);
|
||||
boolean success = successInt == PULL_SUCCESS;
|
||||
StatsEventParcel[] parcels = new StatsEventParcel[data.size()];
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
parcels[i] = new StatsEventParcel();
|
||||
parcels[i].buffer = data.get(i).getBytes();
|
||||
}
|
||||
try {
|
||||
resultReceiver.pullFinished(atomTag, success, parcels);
|
||||
} catch (RemoteException e) {
|
||||
Slog.w(TAG, "StatsPullResultReceiver failed for tag " + mAtomId);
|
||||
}
|
||||
});
|
||||
long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
mExecutor.execute(() -> {
|
||||
List<StatsEvent> data = new ArrayList<>();
|
||||
int successInt = mCallback.onPullAtom(atomTag, data);
|
||||
boolean success = successInt == PULL_SUCCESS;
|
||||
StatsEventParcel[] parcels = new StatsEventParcel[data.size()];
|
||||
for (int i = 0; i < data.size(); i++) {
|
||||
parcels[i] = new StatsEventParcel();
|
||||
parcels[i].buffer = data.get(i).getBytes();
|
||||
}
|
||||
try {
|
||||
resultReceiver.pullFinished(atomTag, success, parcels);
|
||||
} catch (RemoteException e) {
|
||||
Slog.w(TAG, "StatsPullResultReceiver failed for tag " + mAtomId);
|
||||
}
|
||||
});
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(token);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -599,7 +615,6 @@ public final class StatsManager {
|
||||
* Metadata required for registering a StatsPullAtomCallback.
|
||||
* All fields are optional, and defaults will be used for fields that are unspecified.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static class PullAtomMetadata {
|
||||
private final long mCoolDownNs;
|
||||
@@ -614,22 +629,27 @@ public final class StatsManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new PullAtomMetadata.Builder object for constructing PullAtomMetadata for
|
||||
* StatsManager#registerPullAtomCallback
|
||||
* Temp for while migrations are in progress.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static PullAtomMetadata.Builder newBuilder() {
|
||||
return new PullAtomMetadata.Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Builder for PullAtomMetadata.
|
||||
* Builder for PullAtomMetadata.
|
||||
*/
|
||||
public static class Builder {
|
||||
private long mCoolDownNs;
|
||||
private long mTimeoutNs;
|
||||
private int[] mAdditiveFields;
|
||||
|
||||
private Builder() {
|
||||
/**
|
||||
* Returns a new PullAtomMetadata.Builder object for constructing PullAtomMetadata for
|
||||
* StatsManager#registerPullAtomCallback
|
||||
*/
|
||||
public Builder() {
|
||||
mCoolDownNs = DEFAULT_COOL_DOWN_NS;
|
||||
mTimeoutNs = DEFAULT_TIMEOUT_NS;
|
||||
mAdditiveFields = null;
|
||||
@@ -662,7 +682,7 @@ public final class StatsManager {
|
||||
* will be combined when the non-additive fields are the same.
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setAdditiveFields(int[] additiveFields) {
|
||||
public Builder setAdditiveFields(@NonNull int[] additiveFields) {
|
||||
mAdditiveFields = additiveFields;
|
||||
return this;
|
||||
}
|
||||
@@ -705,14 +725,13 @@ public final class StatsManager {
|
||||
/**
|
||||
* Callback interface for pulling atoms requested by the stats service.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public interface StatsPullAtomCallback {
|
||||
/**
|
||||
* Pull data for the specified atom tag, filling in the provided list of StatsEvent data.
|
||||
* @return {@link #PULL_SUCCESS} if the pull was successful, or {@link #PULL_SKIP} if not.
|
||||
*/
|
||||
int onPullAtom(int atomTag, List<StatsEvent> data);
|
||||
int onPullAtom(int atomTag, @NonNull List<StatsEvent> data);
|
||||
}
|
||||
|
||||
private class StatsdDeathRecipient implements IBinder.DeathRecipient {
|
||||
|
||||
@@ -173,7 +173,6 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
@@ -349,14 +348,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
}
|
||||
private void registerWifiBytesTransfer() {
|
||||
int tagId = StatsLog.WIFI_BYTES_TRANSFER;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {2, 3, 4, 5})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullWifiBytesTransfer(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullWifiBytesTransfer(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -441,14 +440,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
|
||||
private void registerWifiBytesTransferBackground() {
|
||||
int tagId = StatsLog.WIFI_BYTES_TRANSFER_BY_FG_BG;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {3, 4, 5, 6})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullWifiBytesTransferBackground(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullWifiBytesTransferBackground(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -479,14 +478,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
|
||||
private void registerMobileBytesTransfer() {
|
||||
int tagId = StatsLog.MOBILE_BYTES_TRANSFER;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {2, 3, 4, 5})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullMobileBytesTransfer(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullMobileBytesTransfer(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -517,14 +516,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
|
||||
private void registerMobileBytesTransferBackground() {
|
||||
int tagId = StatsLog.MOBILE_BYTES_TRANSFER_BY_FG_BG;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {3, 4, 5, 6})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullMobileBytesTransferBackground(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullMobileBytesTransferBackground(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -555,14 +554,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
|
||||
private void registerBluetoothBytesTransfer() {
|
||||
int tagId = StatsLog.BLUETOOTH_BYTES_TRANSFER;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {2, 3})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullBluetoothBytesTransfer(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullBluetoothBytesTransfer(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -634,8 +633,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
/* PullAtomMetadata */ null,
|
||||
(atomTag, data) -> pullKernelWakelock(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullKernelWakelock(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -670,14 +669,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
|
||||
private void registerCpuTimePerFreq() {
|
||||
int tagId = StatsLog.CPU_TIME_PER_FREQ;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {3})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullCpuTimePerFreq(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullCpuTimePerFreq(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -701,14 +700,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
|
||||
private void registerCpuTimePerUid() {
|
||||
int tagId = StatsLog.CPU_TIME_PER_UID;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {2, 3})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullCpuTimePerUid(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullCpuTimePerUid(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -730,14 +729,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
// the throttling is 3sec, handled in
|
||||
// frameworks/base/core/java/com/android/internal/os/KernelCpuProcReader
|
||||
int tagId = StatsLog.CPU_TIME_PER_UID_FREQ;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {4})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullCpuTimeperUidFreq(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullCpuTimeperUidFreq(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -762,14 +761,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
// the throttling is 3sec, handled in
|
||||
// frameworks/base/core/java/com/android/internal/os/KernelCpuProcReader
|
||||
int tagId = StatsLog.CPU_ACTIVE_TIME;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {2})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullCpuActiveTime(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullCpuActiveTime(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -789,14 +788,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
// the throttling is 3sec, handled in
|
||||
// frameworks/base/core/java/com/android/internal/os/KernelCpuProcReader
|
||||
int tagId = StatsLog.CPU_CLUSTER_TIME;
|
||||
PullAtomMetadata metadata = PullAtomMetadata.newBuilder()
|
||||
PullAtomMetadata metadata = new PullAtomMetadata.Builder()
|
||||
.setAdditiveFields(new int[] {3})
|
||||
.build();
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
metadata,
|
||||
(atomTag, data) -> pullCpuClusterTime(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullCpuClusterTime(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -913,8 +912,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
/* metadata */ null,
|
||||
(atomTag, data) -> pullBluetoothActivityInfo(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullBluetoothActivityInfo(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -949,8 +948,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
null, // use default PullAtomMetadata values
|
||||
(atomTag, data) -> pullSystemUptime(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullSystemUptime(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1232,8 +1231,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
/* PullAtomMetadata */ null,
|
||||
(atomTag, data) -> pullIonHeapSize(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullIonHeapSize(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1511,8 +1510,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
/* PullAtomMetadata */ null,
|
||||
(atomTag, data) -> pullPowerProfile(atomTag, data),
|
||||
Executors.newSingleThreadExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullPowerProfile(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1681,8 +1680,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
mStatsManager.registerPullAtomCallback(
|
||||
tagId,
|
||||
null, // use default PullAtomMetadata values
|
||||
(atomTag, data) -> pullBuildInformation(atomTag, data),
|
||||
BackgroundThread.getExecutor()
|
||||
BackgroundThread.getExecutor(),
|
||||
(atomTag, data) -> pullBuildInformation(atomTag, data)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user