Вы упоминаете Android, и вы упоминаете Java.Если вы пишете код на Java на Android, то на самом деле вы не сможете использовать protobuf-net, поскольку это зависит от .NET, но protobuf-net пытается упростить переход.В вашем существующем коде вы можете использовать:
var proto = Serializer.GetProto<YourRootType>();
, что даст вам схему .proto
, которая представляет модель YourRootType
(есть варианты «proto2» против «proto3» и т. Д.),Он обычно работает нормально, но если у вас есть такие вещи, как DateTime
и , которые не используют параметр DataFormat.WellKnown
, то он может стать немного неловким (совет: если возможно,переключитесь на опцию DataFormat.WellKnown
для любых свойств DateTime
/ TimeStamp
, но учтите, что это является серьезным изменением; при этом будут использоваться макеты google.protobuf.Timestamp
и google.protobuf.Duration
, добавленные Google на таймфрейме "proto3").
Затем вы запускаете эту схему .proto через protoc
, и вы должны получить пригодный для использования Java-код для той же модели.
Примечание: не стесняйтесь изменятьимена в сгенерированной схеме .proto, если вы хотите настроить ее;имена не имеют значения - номера полей и типы, однако: do.