Loading apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +9 −1 Original line number Diff line number Diff line Loading @@ -1074,7 +1074,15 @@ public class JobSchedulerService extends com.android.server.SystemService uId, null, jobStatus.getBatteryName(), FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__SCHEDULED, JobProtoEnums.STOP_REASON_CANCELLED, jobStatus.getStandbyBucket(), jobStatus.getJobId()); jobStatus.getJobId(), jobStatus.hasChargingConstraint(), jobStatus.hasBatteryNotLowConstraint(), jobStatus.hasStorageNotLowConstraint(), jobStatus.hasTimingDelayConstraint(), jobStatus.hasDeadlineConstraint(), jobStatus.hasIdleConstraint(), jobStatus.hasConnectivityConstraint(), jobStatus.hasContentTriggerConstraint()); // If the job is immediately ready to run, then we can just immediately // put it in the pending list and try to schedule it. This is especially Loading apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +29 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.app.job.IJobCallback; import android.app.job.IJobService; import android.app.job.JobInfo; import android.app.job.JobParameters; import android.app.job.JobProtoEnums; import android.app.job.JobWorkItem; import android.app.usage.UsageStatsManagerInternal; import android.content.ComponentName; Loading @@ -45,6 +46,7 @@ import android.util.TimeUtils; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.IBatteryStats; import com.android.internal.util.FrameworkStatsLog; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.job.controllers.JobStatus; Loading Loading @@ -273,9 +275,20 @@ public final class JobServiceContext implements ServiceConnection { return false; } mJobPackageTracker.noteActive(job); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, job.getSourceUid(), null, job.getBatteryName(), FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED, JobProtoEnums.STOP_REASON_UNKNOWN, job.getStandbyBucket(), job.getJobId(), job.hasChargingConstraint(), job.hasBatteryNotLowConstraint(), job.hasStorageNotLowConstraint(), job.hasTimingDelayConstraint(), job.hasDeadlineConstraint(), job.hasIdleConstraint(), job.hasConnectivityConstraint(), job.hasContentTriggerConstraint()); try { mBatteryStats.noteJobStart(job.getBatteryName(), job.getSourceUid(), job.getStandbyBucket(), job.getJobId()); mBatteryStats.noteJobStart(job.getBatteryName(), job.getSourceUid()); } catch (RemoteException e) { // Whatever. } Loading Loading @@ -779,10 +792,21 @@ public final class JobServiceContext implements ServiceConnection { applyStoppedReasonLocked(reason); completedJob = mRunningJob; mJobPackageTracker.noteInactive(completedJob, mParams.getStopReason(), reason); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, completedJob.getSourceUid(), null, completedJob.getBatteryName(), FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, mParams.getStopReason(), completedJob.getStandbyBucket(), completedJob.getJobId(), completedJob.hasChargingConstraint(), completedJob.hasBatteryNotLowConstraint(), completedJob.hasStorageNotLowConstraint(), completedJob.hasTimingDelayConstraint(), completedJob.hasDeadlineConstraint(), completedJob.hasIdleConstraint(), completedJob.hasConnectivityConstraint(), completedJob.hasContentTriggerConstraint()); try { mBatteryStats.noteJobFinish(mRunningJob.getBatteryName(), mRunningJob.getSourceUid(), mParams.getStopReason(), mRunningJob.getStandbyBucket(), mRunningJob.getJobId()); mBatteryStats.noteJobFinish(mRunningJob.getBatteryName(), mRunningJob.getSourceUid(), mParams.getStopReason()); } catch (RemoteException e) { // Whatever. } Loading cmds/statsd/src/atoms.proto +11 −0 Original line number Diff line number Diff line Loading @@ -980,6 +980,17 @@ message ScheduledJobStateChanged { // The job id (as assigned by the app). optional int32 job_id = 6; // One flag for each of the API constraints defined by Jobscheduler. Does not include implcit // constraints as they are always assumed to be set. optional bool has_charging_constraint = 7; optional bool has_battery_not_low_constraint = 8; optional bool has_storage_not_low_constraint = 9; optional bool has_timing_delay_constraint = 10; optional bool has_deadline_constraint = 11; optional bool has_idle_constraint = 12; optional bool has_connectivity_constraint = 13; optional bool has_content_trigger_constraint = 14; } /** Loading core/java/com/android/internal/app/IBatteryStats.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -71,8 +71,8 @@ interface IBatteryStats { void noteSyncStart(String name, int uid); void noteSyncFinish(String name, int uid); void noteJobStart(String name, int uid, int standbyBucket, int jobid); void noteJobFinish(String name, int uid, int stopReason, int standbyBucket, int jobid); void noteJobStart(String name, int uid); void noteJobFinish(String name, int uid, int stopReason); void noteStartWakelock(int uid, int pid, String name, String historyName, int type, boolean unimportantForLogging); Loading services/core/java/com/android/server/am/BatteryStatsService.java +2 −11 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.am; import android.app.ActivityManager; import android.app.job.JobProtoEnums; import android.bluetooth.BluetoothActivityEnergyInfo; import android.content.ContentResolver; import android.content.Context; Loading Loading @@ -468,26 +467,18 @@ public final class BatteryStatsService extends IBatteryStats.Stub } /** A scheduled job was started. */ public void noteJobStart(String name, int uid, int standbyBucket, int jobid) { public void noteJobStart(String name, int uid) { enforceCallingPermission(); synchronized (mStats) { mStats.noteJobStartLocked(name, uid); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null, name, FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED, JobProtoEnums.STOP_REASON_UNKNOWN, standbyBucket, jobid); } } /** A scheduled job was finished. */ public void noteJobFinish(String name, int uid, int stopReason, int standbyBucket, int jobid) { public void noteJobFinish(String name, int uid, int stopReason) { enforceCallingPermission(); synchronized (mStats) { mStats.noteJobFinishLocked(name, uid, stopReason); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null, name, FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, stopReason, standbyBucket, jobid); } } Loading Loading
apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +9 −1 Original line number Diff line number Diff line Loading @@ -1074,7 +1074,15 @@ public class JobSchedulerService extends com.android.server.SystemService uId, null, jobStatus.getBatteryName(), FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__SCHEDULED, JobProtoEnums.STOP_REASON_CANCELLED, jobStatus.getStandbyBucket(), jobStatus.getJobId()); jobStatus.getJobId(), jobStatus.hasChargingConstraint(), jobStatus.hasBatteryNotLowConstraint(), jobStatus.hasStorageNotLowConstraint(), jobStatus.hasTimingDelayConstraint(), jobStatus.hasDeadlineConstraint(), jobStatus.hasIdleConstraint(), jobStatus.hasConnectivityConstraint(), jobStatus.hasContentTriggerConstraint()); // If the job is immediately ready to run, then we can just immediately // put it in the pending list and try to schedule it. This is especially Loading
apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +29 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.app.job.IJobCallback; import android.app.job.IJobService; import android.app.job.JobInfo; import android.app.job.JobParameters; import android.app.job.JobProtoEnums; import android.app.job.JobWorkItem; import android.app.usage.UsageStatsManagerInternal; import android.content.ComponentName; Loading @@ -45,6 +46,7 @@ import android.util.TimeUtils; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.IBatteryStats; import com.android.internal.util.FrameworkStatsLog; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.job.controllers.JobStatus; Loading Loading @@ -273,9 +275,20 @@ public final class JobServiceContext implements ServiceConnection { return false; } mJobPackageTracker.noteActive(job); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, job.getSourceUid(), null, job.getBatteryName(), FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED, JobProtoEnums.STOP_REASON_UNKNOWN, job.getStandbyBucket(), job.getJobId(), job.hasChargingConstraint(), job.hasBatteryNotLowConstraint(), job.hasStorageNotLowConstraint(), job.hasTimingDelayConstraint(), job.hasDeadlineConstraint(), job.hasIdleConstraint(), job.hasConnectivityConstraint(), job.hasContentTriggerConstraint()); try { mBatteryStats.noteJobStart(job.getBatteryName(), job.getSourceUid(), job.getStandbyBucket(), job.getJobId()); mBatteryStats.noteJobStart(job.getBatteryName(), job.getSourceUid()); } catch (RemoteException e) { // Whatever. } Loading Loading @@ -779,10 +792,21 @@ public final class JobServiceContext implements ServiceConnection { applyStoppedReasonLocked(reason); completedJob = mRunningJob; mJobPackageTracker.noteInactive(completedJob, mParams.getStopReason(), reason); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, completedJob.getSourceUid(), null, completedJob.getBatteryName(), FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, mParams.getStopReason(), completedJob.getStandbyBucket(), completedJob.getJobId(), completedJob.hasChargingConstraint(), completedJob.hasBatteryNotLowConstraint(), completedJob.hasStorageNotLowConstraint(), completedJob.hasTimingDelayConstraint(), completedJob.hasDeadlineConstraint(), completedJob.hasIdleConstraint(), completedJob.hasConnectivityConstraint(), completedJob.hasContentTriggerConstraint()); try { mBatteryStats.noteJobFinish(mRunningJob.getBatteryName(), mRunningJob.getSourceUid(), mParams.getStopReason(), mRunningJob.getStandbyBucket(), mRunningJob.getJobId()); mBatteryStats.noteJobFinish(mRunningJob.getBatteryName(), mRunningJob.getSourceUid(), mParams.getStopReason()); } catch (RemoteException e) { // Whatever. } Loading
cmds/statsd/src/atoms.proto +11 −0 Original line number Diff line number Diff line Loading @@ -980,6 +980,17 @@ message ScheduledJobStateChanged { // The job id (as assigned by the app). optional int32 job_id = 6; // One flag for each of the API constraints defined by Jobscheduler. Does not include implcit // constraints as they are always assumed to be set. optional bool has_charging_constraint = 7; optional bool has_battery_not_low_constraint = 8; optional bool has_storage_not_low_constraint = 9; optional bool has_timing_delay_constraint = 10; optional bool has_deadline_constraint = 11; optional bool has_idle_constraint = 12; optional bool has_connectivity_constraint = 13; optional bool has_content_trigger_constraint = 14; } /** Loading
core/java/com/android/internal/app/IBatteryStats.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -71,8 +71,8 @@ interface IBatteryStats { void noteSyncStart(String name, int uid); void noteSyncFinish(String name, int uid); void noteJobStart(String name, int uid, int standbyBucket, int jobid); void noteJobFinish(String name, int uid, int stopReason, int standbyBucket, int jobid); void noteJobStart(String name, int uid); void noteJobFinish(String name, int uid, int stopReason); void noteStartWakelock(int uid, int pid, String name, String historyName, int type, boolean unimportantForLogging); Loading
services/core/java/com/android/server/am/BatteryStatsService.java +2 −11 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.server.am; import android.app.ActivityManager; import android.app.job.JobProtoEnums; import android.bluetooth.BluetoothActivityEnergyInfo; import android.content.ContentResolver; import android.content.Context; Loading Loading @@ -468,26 +467,18 @@ public final class BatteryStatsService extends IBatteryStats.Stub } /** A scheduled job was started. */ public void noteJobStart(String name, int uid, int standbyBucket, int jobid) { public void noteJobStart(String name, int uid) { enforceCallingPermission(); synchronized (mStats) { mStats.noteJobStartLocked(name, uid); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null, name, FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED, JobProtoEnums.STOP_REASON_UNKNOWN, standbyBucket, jobid); } } /** A scheduled job was finished. */ public void noteJobFinish(String name, int uid, int stopReason, int standbyBucket, int jobid) { public void noteJobFinish(String name, int uid, int stopReason) { enforceCallingPermission(); synchronized (mStats) { mStats.noteJobFinishLocked(name, uid, stopReason); FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null, name, FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, stopReason, standbyBucket, jobid); } } Loading