لتسجيل ناشر مستند إلى Java في سجلّ الناشرين القابل للضبط،
عليك تقديم FileDescriptorSet بتنسيق protobuf متسلسل يتضمّن
تعريف رسالة protobuf المنشورة. لمزيد من المعلومات، يُرجى الاطّلاع على
الرسائل ذات الوصف الذاتي. ومع ذلك، لا تتوفّر على الجهاز سوى النسخة "المخفّفة" من
مكتبة Java protobuf، وهي لا تتضمّن إمكانات انعكاس protobuf اللازمة.
لحلّ هذه المشكلة، يمكنك استخدام أداة إنشاء واصفات Java protobuf الموضّحة في هذه الصفحة لإنشاء البيانات الوصفية اللازمة في مدّة التصميم. الأداة هي برنامج ثنائي يمكنك إنشاؤه وتشغيله يدويًا أو استخدامه تلقائيًا كجزء من إصدار 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