หากต้องการลงทะเบียนผู้เผยแพร่โฆษณาที่ใช้ Java ในรีจิสทรีผู้เผยแพร่โฆษณาที่กำหนดค่าได้
คุณต้องระบุ Protobuf FileDescriptorSet ที่ซีเรียลไลซ์แล้วซึ่งมี
คำจำกัดความของข้อความ Protobuf ที่เผยแพร่แล้ว ดูข้อมูลเพิ่มเติมได้ที่
ข้อความที่อธิบายตัวเอง อย่างไรก็ตาม ในอุปกรณ์จะมีเฉพาะ Protobuf เวอร์ชัน "Lite" ของ
ไลบรารี Protobuf ของ Java ซึ่งไม่มีความสามารถในการสะท้อน Protobuf ที่จำเป็น
หากต้องการแก้ไขปัญหานี้ คุณสามารถใช้เครื่องมือสร้างตัวอธิบาย Protobuf ของ Java ที่อธิบายไว้ในหน้านี้เพื่อสร้างข้อมูลเมตาที่จำเป็นในเวลาสร้าง เครื่องมือนี้เป็นไบนารีที่คุณจะสร้างและเรียกใช้ด้วยตนเอง หรือใช้โดยอัตโนมัติเป็นส่วนหนึ่งของการสร้าง Android ก็ได้
เครื่องมือนี้จะสร้างคลาส Java ขั้นต่ำที่มี FileDescriptorSet ที่ซีเรียลไลซ์แล้ว
ซึ่งแสดงไฟล์ Protobuf (มีนามสกุล .proto) และการอ้างอิงของไฟล์ เราขอแนะนำให้ผสานรวมเข้ากับการสร้างโดยใช้ genrule
ใน Android.bp ตัวอย่างต่อไปนี้แสดงวิธีสร้างไฟล์ Example.java
ที่มี FileDescriptorSet ที่ทำให้เป็นอนุกรมจากไฟล์ 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"],
}
คุณสามารถรวม java_library ที่ได้ไว้ในแอปและใช้ร่วมกับไลบรารีรีจิสทรีผู้เผยแพร่โฆษณาที่กำหนดค่าได้ของ Telemetry SDK เพื่อลงทะเบียนผู้เผยแพร่โฆษณา
นอกจากนี้ คุณยังสร้างและเรียกใช้เครื่องมือด้วยตนเองได้โดยทำดังนี้
mm sdv_telemetry_sdk_descriptor_generator_java # Build
sdv_telemetry_sdk_descriptor_generator_java --help # Run