1. Some API calls (such as SyncManager calls) can result in multiple job schedule calls. Given that underlying implementation detail, we don't count jobs scheduled via proxy towards the source app's schedule limit. Calls using scheduleAsPackage for itself will still count. 2. Limit the number of times we log that a specific app has exceeded the limit to once per minute. 3. Update the error message and documentation to help developers identify what to do when they encounter the issue. Bug: 160796417 Test: atest JobSchedulerServiceTest Test: atest JobSchedulingTest Change-Id: Ia682aa889ec2a26d373d0309e8c0324570f7d816 Merged-In: Ia682aa889ec2a26d373d0309e8c0324570f7d816
Conventions for the protos in this directory:
-
As in the rest of Android, use 4 spaces to indent instead of 2.
-
For protos based on Java files, use the same package as the Java file. For example,
com.android.server.thinginstead ofcom.android.server.thing.proto. -
If the proto describes the top level output of dumpsys, it should contain
Dump. This makes it easy to understand that the proto is the dumpsys output of a certain service, not the data structure of that service, e.g.WindowManagerServiceDumpProtovsWindowManagerServiceProto.- Inner messages whose containing messages have the
Protosuffix do not need to have aProtosuffix. E.g:
- Inner messages whose containing messages have the
message FooProto {
message Bar {
...
}
}
vs
message FooProto {
message BarProto {
...
}
}
-
If the proto represents the structure of an object, it should have
Protoas its suffix. Please also include the full package path of the original object as a comment to the proto message. -
Include units in the field names. For example,
screen_time_msvsscreen_time, orfile_size_bytesorfile_size_mebibytesvsfile_size. -
Leave field numbers 50,000 - 100,000 reserved for OEMs.