Mã mẫu của dịch vụ SDV Core trong /system/software_defined_vehicle/samples giúp bạn bắt đầu xây dựng dịch vụ của mình. Mỗi mẫu đều chứa một tệp README mô tả trường hợp sử dụng.
Tổng quan về thư mục mẫu
Bảng sau đây liệt kê các thư mục mẫu tham chiếu trong system/software_defined_vehicle/samples và hướng dẫn tài liệu tương ứng:
| Thư mục mẫu | Mô tả | Hướng dẫn về tài liệu |
|---|---|---|
system/software_defined_vehicle/samples/quickstart |
Mẫu gói dịch vụ Rust hai đầu minh hoạ việc xuất bản, đăng ký và RPC VSIDL giữa các gói Manager và Monitor.
|
Bắt đầu nhanh: Tạo và thực thi các gói dịch vụ SDV |
system/software_defined_vehicle/samples/vsidl |
Tham khảo danh mục VSIDL, định nghĩa protobuf và các mẫu triển khai gói dịch vụ. | Triển khai logic kinh doanh |
system/software_defined_vehicle/samples/concal |
Mẫu ứng dụng để đọc và cập nhật cấu hình xe cũng như tham số hiệu chỉnh. | Cấu hình và hiệu chỉnh |
system/software_defined_vehicle/samples/health |
Mẫu giám sát chất lượng dịch vụ (QoS) và gói dịch vụ được giám sát tình trạng. | Theo dõi sức khoẻ |
system/software_defined_vehicle/samples/oem_partition_update_client |
Dịch vụ mẫu sử dụng thùng sdv_oem_updater để kích hoạt
và khôi phục bản cập nhật phân vùng /oem_ab.
|
Bản cập nhật phân vùng AB của OEM |
system/software_defined_vehicle/samples/sdv_gateway |
Các ứng dụng mẫu IVI gốc và Java (NativeSdvGatewayTestApp và SdvCarMonitorTestApp) giao tiếp với các dịch vụ SDV Core thông qua SDV Gateway.
|
Sử dụng Cổng SDV trên IVI |
system/software_defined_vehicle/samples/telemetry |
Nguồn dữ liệu đo từ xa trên thiết bị và mẫu trình mô phỏng. | Nguồn dữ liệu |
Sử dụng API ghi nhật ký
Để tìm hiểu thêm về hướng dẫn được cung cấp, hãy xem:
Mẫu nhật ký cơ bản
logging.cpp trình bày việc ghi vào vùng đệm main, system và radio.
Để đọc nội dung mô tả ngắn về các vùng đệm nhật ký hiện có, hãy xem phần Xem vùng đệm nhật ký thay thế.
Cách chạy mẫu mà không có nhật ký có điều kiện, chẳng hạn như
ALOGI_IF:logging_sdv_sampleĐể chạy mẫu và in nhật ký có điều kiện, chẳng hạn như
ALOGI_IF:LOGIF=1 logging_sdv_sample
Mẫu ghi nhật ký có cấu trúc
Tệp mẫu: structured_logging.cpp
Cách chạy mẫu (ghi nhật ký vào vùng đệm nhật ký
events):structured_logging_sdv_sample
Vùng đệm nhật ký event, security và stats lưu giữ dữ liệu có cấu trúc thay vì văn bản tự do.
Dữ liệu có cấu trúc được ghi lại bằng API danh sách sự kiện, luôn được ghi lại với mức độ ưu tiên INFO và mã nhận dạng thẻ dạng số.
Bạn có thể xác định tệp .logtags bằng thuộc tính logtags trong Android.bp.. Khi được cung cấp, logcat sẽ sử dụng tệp này để lấy tên thẻ từ mã nhận dạng thẻ dạng số. Sau đó, bạn có thể dùng tên thẻ để lọc nhật ký có cấu trúc. Để biết thông tin chi tiết và nội dung mô tả về định dạng tệp, hãy xem nhận xét trong tệp logcat event.logtags.
Trong quá trình tạo bản dựng, tất cả tệp logtags đều được hợp nhất và đặt vào tệp /system/etc/event-log-tags trong hình ảnh hệ thống Android.
Biên dịch mẫu lọc nhật ký thời gian
Tệp mẫu: compile_time_log_filtering.cpp
Mẫu này chứa các macro mà bạn có thể điều chỉnh để xoá một số nhật ký khỏi tệp thực thi. Hãy xem mã nguồn để biết thông tin chi tiết.
Mẫu lọc nhật ký: log_filtering.cpp
Để chạy mẫu, hãy đặt mức độ ưu tiên tối thiểu của nhật ký thành
WARN:LOGLEVEL=WARN log_filtering_sdv_sample
Việc lọc nhật ký chịu ảnh hưởng của các thuộc tính hệ thống. Đối với tất cả nhật ký có
log.tag.<tag>persist.log.tag.<tag>
Đối với tất cả nhật ký trong hệ thống:
log.tagpersist.log.tag
Để chọn cấp độ nhật ký đã chọn (được kiểm tra theo thứ tự), bạn có thể đặt mỗi giá trị thành V, D, I, W hoặc E.
Cấp độ nhật ký hiệu quả là cấp độ được đặt trên thuộc tính hệ thống đầu tiên có giá trị, có thể thấp hơn hoặc cao hơn cấp độ nhật ký do ứng dụng đặt bằng lệnh gọi __android_log_set_minimum_priority. Khi không có thuộc tính nào được đặt, cấp được định cấu hình bằng __android_log_set_minimum_priority sẽ áp dụng.
Để biết thông tin chi tiết, hãy xem phần Tổng quan về hệ thống ghi nhật ký.
Chạy mẫu, đặt thẻ nhật ký mặc định thành
example_tag:LOGTAG=example_tag log_filtering_sdv_sample
Mẫu này cũng chứa một định nghĩa macro LOG_TAG được đánh dấu là nội dung nhận xét mà bạn có thể dùng để đặt thẻ nhật ký cho tất cả thông điệp nhật ký. Thẻ được đặt theo cách này sẽ ghi đè thẻ được đặt trong thời gian chạy bằng __android_log_set_default_tag.
Nếu macro LOG_TAG không được xác định và ứng dụng không gọi __android_log_set_default_tag, thì thẻ mặc định sẽ là kết quả của getprogname(). Ví dụ: tên tệp thực thi.