Quy ước đặt tên cho gói dịch vụ

Tên gói dịch vụ được xác định theo một hệ phân cấp.

  • Mỗi VM (được xác định bằng tên VM) là một lần triển khai hệ điều hành hồ sơ SDV Core.

  • Mỗi gói (được xác định bằng tên gói) có thể chứa nhiều gói dịch vụ.

  • Mỗi gói dịch vụ (được xác định bằng một tên gói dịch vụ) có thể được khởi tạo nhiều lần trên cùng một VM.

  • Mỗi thực thể gói dịch vụ được xác định bằng một tên thực thể gói dịch vụ được chỉ định tại thời gian tải.

Tên máy ảo SDV

Tên VM là giá trị nhận dạng tên riêng biệt được gắn vào mỗi lần triển khai hồ sơ SDV Core như được chỉ định trong Cấu hình VM của xe (vvmconfig). Tên VM được dùng trong quy trình đặt tên để tách biệt các dịch vụ một cách logic dọc theo ranh giới VM trong xe. Ví dụ:

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

Các quy định hạn chế về tên này sẽ được áp dụng.

  • Tên máy ảo phải bắt đầu bằng một chữ cái [a-z]
  • Tên máy ảo không được kết thúc bằng dấu gạch ngang
  • Tên máy ảo không được vượt quá 31 ký tự
  • Tất cả ký tự phải là chữ và số viết thường hoặc dấu gạch ngang [a-z0-9\-]
  • Dấu gạch ngang trong tên không được xuất hiện liên tiếp nhiều hơn một lần

Tên VM được xác minh là duy nhất trong thời gian biên dịch (phân tích tĩnh) và khi hệ thống khởi động khi vvmconfig được tải.

Lỗi ở cấp độ khởi động xảy ra khi quá trình xác thực tại thời điểm khởi động không thành công.

Tên gói SDV

Tương tự như Android tiêu chuẩn, tên gói SDV giúp nhận dạng duy nhất một gói được triển khai trên hệ thống. Bạn phải cung cấp một APEX riêng biệt cho mỗi tên gói. Ví dụ:

  • com.android.sdv.datatunnel
  • com.android.sdv.sample.datatunnel
  • com.yourcompany.sdv.adas

Các quy định hạn chế sau đây sẽ được áp dụng:

  • Tất cả các APEX SDV do đối tác sở hữu đều phải có tiền tố com.<companyname>.sdv. (com.android.sdv. được dành riêng cho các APEX SDV do Google sở hữu).
  • Tất cả ký tự phải có dạng chữ-số hoặc dấu gạch dưới, [a-z0-9_].
  • Tên gói phải chứa ít nhất 4 phân đoạn được phân tách bằng dấu chấm.
  • Tên gói không được kết thúc bằng dấu chấm.
  • Tên gói không được vượt quá 127 ký tự.
  • Mỗi phân đoạn phải bắt đầu bằng một chữ cái.
  • Không có phân đoạn nào có thể có dấu gạch dưới liên tiếp, __.
  • Không phân đoạn nào được kết thúc bằng dấu gạch dưới, _.
  • Các đoạn không được để trống (không có dấu chấm liên tiếp).

Tên gói dịch vụ

Tương tự như Android tiêu chuẩn, mỗi gói dịch vụ đều có một tên mà con người có thể đọc được, được đặt tên theo không gian tên trong tên gói mà gói dịch vụ đó thuộc về. Ví dụ:

  • SomeService
  • ImportantService

Các quy định hạn chế về tên sau đây sẽ được áp dụng:

  • Tên gói dịch vụ PHẢI bắt đầu bằng một chữ cái viết hoa
  • Không được để trống tên gói dịch vụ
  • Tên gói dịch vụ KHÔNG ĐƯỢC vượt quá 47 ký tự
  • Tên gói dịch vụ KHÔNG ĐƯỢC có dấu gạch dưới liên tiếp, __
  • Tên gói dịch vụ KHÔNG ĐƯỢC bắt đầu hoặc kết thúc bằng dấu gạch dưới, _
  • Tất cả ký tự PHẢI là chữ và số hoặc dấu gạch dưới, [A-Za-z0-9_]

Tên phiên bản gói dịch vụ

Không giống như các ứng dụng Android tiêu chuẩn, các gói dịch vụ trong AAOS SDV có thể được cài đặt và tải nhiều lần trên cùng một VM. Do đó, cùng một gói dịch vụ có thể có nhiều phiên bản chạy trong cùng một VM SDV AAOS. Những phiên bản này được chỉ định một tên phiên bản gói dịch vụ mà con người có thể đọc được. Ví dụ:

  • front-left
  • front-right
  • main
  • client
  • subscriber

Những quy định hạn chế sau đây sẽ được áp dụng:

  • Tên phiên bản phải:

    • Bắt đầu bằng một chữ cái [a-z]
    • Không được kết thúc bằng dấu gạch ngang
    • Không vượt quá 47 ký tự
    • Là duy nhất trên cùng một máy ảo cho cùng một dịch vụ
  • Tất cả ký tự phải là chữ và số viết thường hoặc dấu gạch ngang [a-z0-9\-]

  • Dấu gạch nối không được xuất hiện liên tiếp

  • Mỗi phiên bản dịch vụ phải có một Tên phiên bản riêng biệt (được cung cấp hoặc tạo khi dịch vụ bắt đầu).

Tên thực thể gói dịch vụ đủ điều kiện (FQIN)

Tên VM SDV, tên gói, tên gói dịch vụ và tên phiên bản gói dịch vụ được kết hợp thành tên phiên bản gói dịch vụ đủ điều kiện (FQIN). Mã này xác định duy nhất một phiên bản gói dịch vụ trên toàn bộ xe.

Một số ví dụ:

  • cdc:com.android.sdv.datatunnel.SomeService/instance1
  • cdc:com.android.sdv.datatunnel.SomeService/instance2
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-left
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-right
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/rear-right
  • pcu:com.android.sdv.cluster.InfoProvider/acceleration

Các gói dịch vụ trong các gói khác nhau có thể có cùng tên gói dịch vụ. Ví dụ: hai gói dịch vụ này (được xác định bằng FQIN tương ứng), được triển khai trong cùng một VM SDV (mechatronics), có cùng tên gói dịch vụ là TirePressure:

  • mechatronics:com.yourcompany1.sdv.adas.TirePressure/default
  • mechatronics:com.yourcompany2.sdv.adas.TirePressure/default

Trong ví dụ này, không xảy ra xung đột tên vì 2 gói dịch vụ nằm trong các gói khác nhau (một gói trong com.yourcompany1.sdv.adas và gói còn lại trong com.yourcompany2.sdv.adas).

Tên chủ đề

Các chủ đề được xác định bằng các chuỗi riêng biệt trên xe cho một loại thông báo nhất định.

Ví dụ về tên chủ đề:

  • left-tire
  • front-window
  • engine-coolant-temp

Giới hạn:

  • Phải là chữ và số hoặc dấu gạch ngang, [a-z0-9\-].
  • Phải bắt đầu bằng một chữ cái.
  • Không được vượt quá 127 ký tự.

Tên kênh

Các kênh được xác định bằng một chuỗi tên.

Ví dụ về tên kênh:

  • main-control
  • high-priority
  • background

Giới hạn:

  • Phải là chữ và số hoặc dấu gạch ngang, [a-z0-9\-].
  • Phải bắt đầu bằng một chữ cái.
  • Không được vượt quá 127 ký tự.

Tên đơn vị dịch vụ

Nhà phát triển gói dịch vụ chủ yếu tương tác với các chủ đềkênh. Tên đơn vị dịch vụ là một chi tiết triển khai cơ bản và chủ yếu gặp phải khi sử dụng các công cụ gỡ lỗi như dumpsys.

Các đơn vị dịch vụ, khi được đăng ký với SDV Service Discovery, phải cung cấp tên đơn vị dịch vụ. Tên đơn vị dịch vụ này có sẵn tại thời điểm Service Discovery. Các ví dụ này cho thấy tên đơn vị dịch vụ có FQIN:

  • ( cdc:com.android.sdv.adas.Service1/default-inst , tp-provider )
  • ( cdc:com.yourcompany.sdv.adas.TirePressure/instance1 , tp-provider-1 )
  • ( mech:com.yourcompany.sdv.adas.TirePressure/instance2 , tp-instance )

Tên loại đơn vị

Tên loại đơn vị bằng với tên loại Protobuf (đủ điều kiện). Ví dụ:

  • com.android.sdv.datatunnel.IComponentHandler
  • com.android.sdv.datatunnel.IComponentHandler
  • com.yourcompany.sdv.adas.TirePressure
  • com.android.sdv.cluster.IWheelInfoCallback
  • com.android.sdv.cluster.ISeatAlignmentCallback

Tóm tắt

Các yêu cầu về tên được tóm tắt trong bảng sau:

Mục Giới hạn Ký tự được phép Loại trường hợp
FQIN 256 ký tự Bao gồm tên VM, tên gói, tên gói dịch vụ và tên phiên bản gói dịch vụ. Chữ thường
Tên máy ảo SDV 30 ký tự
  • Phải bắt đầu bằng một chữ cái a-z.
  • Không được kết thúc bằng dấu gạch ngang (-).
  • Các ký tự phải là chữ và số viết thường hoặc dấu gạch ngang (a-z0-9\-).
  • Dấu gạch ngang không được xuất hiện liên tiếp nhiều hơn một lần.
Chữ thường
Tên gói SDV 127 ký tự
  • Phải có ít nhất 4 phân đoạn.
  • Phải bắt đầu bằng một chữ cái.
  • Không có phân đoạn nào được chứa dấu gạch dưới liên tiếp.
  • Không có phân đoạn nào được kết thúc bằng dấu gạch dưới.
  • Không được để trống phân đoạn.
  • Các ký tự phải là chữ thường hoặc dấu gạch ngang (a-z0-9\-).
Chữ thường
Tên gói dịch vụ 30 ký tự
  • Phải bắt đầu bằng một chữ cái viết hoa.
  • Không được để trống.
  • Không được chứa các dấu gạch dưới liên tiếp (__).
  • Không được bắt đầu hoặc kết thúc bằng dấu gạch dưới (_).
  • Ký tự phải có dạng chữ-số hoặc dấu gạch dưới (A-Za-z0-9_).
Chữ hoa và chữ thường lẫn lộn
Tên phiên bản gói dịch vụ 48 ký tự
  • Phải bắt đầu bằng một chữ cái (a-z).
  • Không được kết thúc bằng dấu gạch ngang (-).
  • Phải là duy nhất trên cùng một máy ảo cho cùng một dịch vụ.
  • Các ký tự phải là chữ thường hoặc dấu gạch ngang (a-z0-9\-).
  • Dấu gạch ngang không được xuất hiện liên tiếp.
Chữ thường
Tên chủ đề 127 ký tự
  • Phải bắt đầu bằng một chữ cái (a-z).
  • Các ký tự phải là chữ và số viết thường hoặc dấu gạch ngang (a-z0-9\-).
Chữ thường
Tên kênh 127 ký tự
  • Phải bắt đầu bằng một chữ cái (a-z).
  • Các ký tự phải là chữ và số viết thường hoặc dấu gạch ngang (a-z0-9\-).
Chữ thường
Tên đơn vị dịch vụ 48 ký tự
  • Phải bắt đầu bằng một chữ cái (a-z).
  • Không được kết thúc bằng dấu gạch ngang (-).
  • Các ký tự phải là chữ thường hoặc dấu gạch ngang (a-z0-9\-).
  • Dấu gạch ngang không được xuất hiện liên tiếp nhiều hơn một lần.
Chữ thường