README.md
1Conventions for the protos in this directory:
2
31. As in the rest of Android, use 4 spaces to indent instead of 2.
4
51. For protos based on Java files, use the same package as the Java file. For
6 example, `com.android.server.thing` instead of `com.android.server.thing.proto`.
7
81. If the proto describes the top level output of dumpsys, it should contain
9 `Dump`. This makes it easy to understand that the proto is the dumpsys output
10 of a certain service, not the data structure of that service, e.g.
11 `WindowManagerServiceDumpProto` vs `WindowManagerServiceProto`.
12
13 * Inner messages whose containing messages have the `Proto` suffix do not
14 need to have a `Proto` suffix. E.g:
15
16```
17message FooProto {
18 message Bar {
19 ...
20 }
21}
22```
23
24 vs
25
26```
27message FooProto {
28 message BarProto {
29 ...
30 }
31}
32```
33
341. If the proto represents the structure of an object, it should have `Proto` as
35 its suffix. Please also include the full package path of the original object
36 as a comment to the proto message.
37
381. Include units in the field names. For example, `screen_time_ms` vs
39 `screen_time`, or `file_size_bytes` or `file_size_mebibytes` vs `file_size`.
40
411. Leave field numbers 50,000 - 100,000 reserved for OEMs.
42