Ferramenta geradora de descritores protobuf Java.

Para registrar um publisher baseado em Java no Registro de publishers configuráveis, é necessário fornecer um protobuf serializado FileDescriptorSet que contenha a definição da mensagem protobuf publicada. Para mais informações, consulte Mensagens autodescritivas. No entanto, no dispositivo, apenas a versão "lite" da biblioteca protobuf Java está disponível, que não tem os recursos de reflexão protobuf necessários.

Para resolver isso, use a ferramenta geradora de descritores protobuf Java descrita nesta página para gerar os metadados necessários no tempo de build. A ferramenta é um binário que pode ser criado e executado manualmente ou usado automaticamente como parte do build do Android.

Essa ferramenta gera uma classe Java mínima que contém o FileDescriptorSet serializado representando um arquivo protobuf (com uma extensão .proto) e suas dependências. Recomendamos integrar ao build usando um genrule em Android.bp. O exemplo a seguir mostra como gerar um arquivo Example.java que contém um FileDescriptorSet serializado de um arquivo Example.proto:

genrule {
    name: "example_descriptors_gen",
    tools: ["sdv_telemetry_sdk_descriptor_generator_java"],
    srcs: ["Example.proto"],
    out: ["Example.java"],
    cmd: "$(location sdv_telemetry_sdk_descriptor_generator_java) " +
        "--proto_file $(location Example.proto) " +
        "--proto_path $$(dirname $(location Example.proto)) " +
        "--message_full_name com.example.ExampleMessage " +
        "--output_file $(out) " +
        "--output_package com.example " +
        "--output_class Example "
}

java_library {
    name: "example_descriptors_lib",
    srcs: [":example_descriptors_gen"],
}

Você pode incluir o java_library resultante no app e usá-lo em conjunto com a biblioteca de registro de editores configurável do SDK de telemetria para registrar seu editor.

Também é possível criar e executar a ferramenta manualmente:

mm sdv_telemetry_sdk_descriptor_generator_java     # Build
sdv_telemetry_sdk_descriptor_generator_java --help # Run