/system/software_defined_vehicle/samples adresindeki SDV Core Services kod örnekleri, hizmetlerinizi oluşturmaya başlamanızı sağlar. Her örnekte, kullanım alanını açıklayan bir README dosyası bulunur.
Örnek dizine genel bakış
Aşağıdaki tabloda, system/software_defined_vehicle/samples içindeki referans örnek dizinleri ve bunlara karşılık gelen doküman kılavuzları listelenmiştir:
| Örnek dizin | Açıklama | Belge kılavuzu |
|---|---|---|
system/software_defined_vehicle/samples/quickstart |
Manager ve Monitor paketleri arasında VSIDL yayınlama, abonelik ve RPC'yi gösteren uçtan uca Rust hizmet paketi örneği.
|
Hızlı başlangıç: SDV hizmet paketleri oluşturma ve yürütme |
system/software_defined_vehicle/samples/vsidl |
VSIDL kataloğuna, protobuf tanımlarına ve hizmet paketi uygulama kalıplarına bakın. | İş mantığını uygulama |
system/software_defined_vehicle/samples/concal |
Araç yapılandırması ve kalibrasyon parametrelerini okumak ve güncellemek için istemci örneği. | Yapılandırma ve kalibrasyon |
system/software_defined_vehicle/samples/health |
Sağlık durumu izlenen hizmet paketi ve hizmet kalitesi (HK) izleme örnekleri. | Sağlık durumu izleme |
system/software_defined_vehicle/samples/oem_partition_update_client |
/oem_ab bölüm güncellemelerini tetiklemek ve geri almak için sdv_oem_updater sandığını kullanan örnek hizmet.
|
OEM AB bölümü güncellemeleri |
system/software_defined_vehicle/samples/sdv_gateway |
SDV Gateway üzerinden SDV Core hizmetleriyle iletişim kuran yerel ve Java IVI örnek uygulamaları (NativeSdvGatewayTestApp ve SdvCarMonitorTestApp).
|
IVI'da SDV Gateway'i kullanma |
system/software_defined_vehicle/samples/telemetry |
Cihaz üzerinde telemetri veri kaynağı ve simülatör örnekleri. | Veri kaynakları |
Logging API'yi kullanma
Sağlanan talimatlar hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Temel günlük örneği
logging.cpp, main, system ve radio arabelleklerine yazma işlemini gösterir.
Kullanılabilir günlük arabelleklerinin kısa bir açıklamasını okumak için Alternatif günlük arabelleklerini görüntüleme başlıklı makaleyi inceleyin.
Örneği
ALOGI_IFgibi koşullu günlükler olmadan çalıştırmak için:logging_sdv_sampleÖrneği çalıştırmak ve
ALOGI_IFgibi koşullu günlükleri yazdırmak için:LOGIF=1 logging_sdv_sample
Yapılandırılmış günlük kaydı örneği
Örnek dosya: structured_logging.cpp
Günlükleri
eventsgünlük arabelleğine yazan örneği çalıştırmak için:structured_logging_sdv_sample
event, security ve stats günlük arabellekleri, serbest metin yerine yapılandırılmış veriler içerir.
Yapılandırılmış veriler, her zaman INFO önceliği ve sayısal etiket kimliğiyle günlüğe kaydedilen etkinlik listesi API'si kullanılarak günlüğe kaydedilir.
Android.bp. içinde logtags özelliğiyle bir .logtags dosyası tanımlanabilir.
Sağlandığında logcat, etiket adını sayısal etiket kimliğinden türetmek için bunu kullanır. Etiket adı daha sonra yapılandırılmış günlükleri filtrelemek için kullanılabilir. Ayrıntılar ve dosya biçiminin açıklaması için logcat event.logtags dosyasındaki yoruma bakın.
Derleme işlemi sırasında tüm logtags dosyaları birleştirilir ve Android sistem görüntüsündeki /system/etc/event-log-tags dosyasına yerleştirilir.
Zaman günlüğü filtreleme örneği derleme
Örnek dosya: compile_time_log_filtering.cpp
Bu örnek, yürütülebilir dosyadan bazı günlükleri kaldırmak için ayarlayabileceğiniz makrolar içerir. Ayrıntılar için kaynak koduna bakın.
Günlük filtreleme örneği: log_filtering.cpp
Örneği çalıştırmak ve minimum günlük önceliğini
WARNolarak ayarlamak için:LOGLEVEL=WARN log_filtering_sdv_sample
Günlük filtreleme, sistem özelliklerinden etkilenir.
log.tag.<tag>persist.log.tag.<tag>
Sistemdeki tüm günlükler için:
log.tagpersist.log.tag
Sırayla kontrol edilen seçili günlük düzeyini belirlemek için her değer V, D, I, W veya E olarak ayarlanabilir.
Etkin günlük düzeyi, değeri olan ilk sistem özelliğinde ayarlanan düzeydir. Bu düzey, __android_log_set_minimum_priority çağrısıyla uygulama tarafından ayarlanan günlük düzeyinden daha düşük veya daha yüksek olabilir. Özelliklerin hiçbiri ayarlanmadığında __android_log_set_minimum_priority ile yapılandırılan düzey geçerli olur.
Ayrıntılar için Günlük kaydı sistemine genel bakış başlıklı makaleyi inceleyin.
Varsayılan günlük etiketini
example_tagolarak ayarlayarak örneği çalıştırın:LOGTAG=example_tag log_filtering_sdv_sample
Örnekte, tüm günlük mesajları için günlük etiketini ayarlamak üzere kullanabileceğiniz, açıklama satırı yapılmış bir LOG_TAG makro tanımı da bulunur. Bu şekilde ayarlanan etiket, çalışma zamanında __android_log_set_default_tag ile ayarlanan etiketi geçersiz kılar.
LOG_TAG makrosu tanımlanmamışsa ve uygulama __android_log_set_default_tag yöntemini çağırmıyorsa varsayılan etiket, getprogname() yönteminin sonucudur. Örneğin, yürütülebilir dosya adı.