Contoh kode layanan Inti SDV di /system/software_defined_vehicle/samples memungkinkan Anda mulai membuat layanan. Setiap contoh berisi file README yang menjelaskan kasus penggunaan.
Menggunakan Logging API
Untuk mempelajari petunjuk yang diberikan lebih lanjut, lihat:
Contoh log dasar
logging.cpp menyajikan penulisan ke buffer main, system, dan radio.
Untuk membaca deskripsi singkat tentang buffer log yang tersedia, lihat
Menampilkan buffer log alternatif.
Untuk menjalankan contoh tanpa log bersyarat, seperti
ALOGI_IF:logging_sdv_sampleUntuk menjalankan contoh dan mencetak log bersyarat, seperti
ALOGI_IF:LOGIF=1 logging_sdv_sample
Contoh logging terstruktur
File contoh: structured_logging.cpp
Untuk menjalankan contoh, yang menulis log ke buffer log
events:structured_logging_sdv_sample
Buffer log event, security, dan stats menyimpan data terstruktur, bukan teks bebas.
Data terstruktur dicatat menggunakan event list API, yang selalu dicatat dengan prioritas INFO dan ID tag numerik.
File .logtags dapat ditentukan dengan atribut logtags di Android.bp.
Jika disediakan, logcat akan menggunakannya untuk mendapatkan nama tag dari ID tag numerik. Nama tag kemudian dapat digunakan untuk memfilter log terstruktur. Untuk mengetahui detail dan
deskripsi format file, lihat komentar di
logcat event.logtags
file.
Selama proses build, semua file logtags akan digabungkan dan ditempatkan ke dalam file /system/etc/event-log-tags di image sistem Android.
Mengompilasi contoh pemfilteran log waktu
File contoh: compile_time_log_filtering.cpp
Contoh ini berisi makro yang dapat Anda sesuaikan untuk menghapus beberapa log dari file yang dapat dieksekusi. Lihat kode sumber untuk mengetahui detailnya.
Contoh pemfilteran log: log_filtering.cpp
Untuk menjalankan contoh, menetapkan prioritas log minimum ke
WARN:LOGLEVEL=WARN log_filtering_sdv_sample
Pemfilteran log dipengaruhi oleh properti sistem. Untuk semua log dengan
log.tag.<tag>persist.log.tag.<tag>
Untuk semua log dalam sistem:
log.tagpersist.log.tag
Untuk memilih tingkat log yang dipilih, yang diperiksa secara berurutan, setiap nilai dapat ditetapkan ke V, D, I, W, atau E.
Tingkat log efektif adalah tingkat yang ditetapkan pada properti sistem pertama yang memiliki nilai, yang mungkin lebih rendah atau lebih tinggi dari tingkat log yang ditetapkan oleh aplikasi dengan panggilan __android_log_set_minimum_priority. Jika tidak ada properti yang
ditetapkan, tingkat yang dikonfigurasi dengan __android_log_set_minimum_priority akan diterapkan.
Untuk mengetahui detailnya, lihat Ringkasan sistem Logging.
Jalankan contoh, tetapkan tag log default ke
example_tag:LOGTAG=example_tag log_filtering_sdv_sample
Contoh ini juga berisi definisi makro LOG_TAG yang dikomentari yang dapat Anda gunakan untuk menetapkan tag log untuk semua pesan log. Tag yang ditetapkan dengan cara ini akan mengganti tag yang ditetapkan saat runtime dengan __android_log_set_default_tag.
Jika makro LOG_TAG tidak ditentukan dan aplikasi tidak memanggil __android_log_set_default_tag, tag default adalah hasil dari getprogname(). Misalnya, nama file yang dapat dieksekusi.