서비스 번들 이름 지정 규칙

서비스 번들 이름은 계층 구조로 정의됩니다.

  • VM (VM 이름으로 식별됨)은 SDV Core 프로필 운영체제의 단일 배포입니다.

  • 패키지 (패키지 이름으로 식별됨)에는 여러 서비스 번들이 포함될 수 있습니다.

  • 서비스 번들 (서비스 번들 이름으로 식별됨)은 동일한 VM에서 여러 번 인스턴스화될 수 있습니다.

  • 서비스 번들 인스턴스 는 로드 시 할당된 서비스 번들 인스턴스 이름 으로 식별됩니다.

SDV VM 이름

VM 이름은 차량 VM 구성 (vvmconfig)에 지정된 대로 SDV Core 프로필의 각 배포에 연결된 고유한 이름 식별자입니다. VM 이름은 차량의 VM 경계를 따라 서비스를 논리적으로 분리하는 이름 지정에 사용됩니다. 예를 들면 다음과 같습니다.

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

다음 이름 지정 제한사항이 적용됩니다.

  • VM 이름은 문자 [a-z]로 시작해야 합니다.
  • VM 이름은 하이픈으로 끝나면 안 됩니다.
  • VM 이름은 31자(영문 기준)를 초과해서는 안 됩니다.
  • 모든 문자는 소문자 영숫자 또는 하이픈 [a-z0-9\-]이어야 합니다.
  • 이름의 하이픈은 연속으로 두 번 이상 표시되지 않아야 합니다.

VM 이름은 컴파일 시간 (정적 분석) 및 vvmconfig가 로드될 때 시스템 부팅 중에 고유한지 확인됩니다.

부팅 시간 유효성 검사에 실패하면 부팅 수준 오류가 발생합니다.

SDV 패키지 이름

표준 Android와 마찬가지로 SDV 패키지 이름은 시스템에 배포된 패키지를 고유하게 식별합니다. 각 패키지 이름에 고유한 APEX를 제공해야 합니다. 예를 들면 다음과 같습니다.

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

다음 제한사항이 적용됩니다.

  • 모든 파트너 소유 SDV APEX에는 com.<companyname>.sdv. 가 접두사로 붙어야 합니다(com.android.sdv.는 Google 소유 SDV APEX용으로 예약됨).
  • 모든 문자는 영숫자 또는 밑줄 [a-z0-9_]이어야 합니다.
  • 패키지 이름은 마침표로 구분된 세그먼트를 4개 이상 포함해야 합니다.
  • 패키지 이름은 마침표로 끝나면 안 됩니다.
  • 패키지 이름은 127자(영문 기준)를 초과해서는 안 됩니다.
  • 각 세그먼트는 문자로 시작해야 합니다.
  • 세그먼트에 연속된 밑줄 __이 있을 수 없습니다.
  • 세그먼트는 밑줄 _로 끝나면 안 됩니다.
  • 세그먼트는 비워 둘 수 없습니다 (연속된 마침표 없음).

서비스 번들 이름

표준 Android와 마찬가지로 각 서비스 번들에는 사람이 읽을 수 있는 이름이 있으며, 이 이름은 속한 패키지 이름으로 네임스페이스 처리됩니다. 예를 들면 다음과 같습니다.

  • SomeService
  • ImportantService

다음 이름 지정 제한사항이 적용됩니다.

  • 서비스 번들 이름은 대문자로 시작해야 합니다.
  • 서비스 번들 이름은 비워 둘 수 없습니다.
  • 서비스 번들 이름은 47자(영문 기준)를 초과해서는 안 됩니다.
  • 서비스 번들 이름에는 연속된 밑줄 __이 없어야 합니다.
  • 서비스 번들 이름은 밑줄 _로 시작하거나 끝나면 안 됩니다.
  • 모든 문자는 영숫자 또는 밑줄 [A-Za-z0-9_]이어야 합니다.

서비스 번들 인스턴스 이름

표준 Android 애플리케이션과 달리 AAOS SDV의 서비스 번들은 동일한 VM에서 여러 번 설치하고 로드할 수 있습니다. 따라서 동일한 서비스 번들에 동일한 AAOS SDV VM 내에서 실행되는 여러 인스턴스가 있을 수 있습니다. 이러한 인스턴스에는 사람이 읽을 수 있는 서비스 번들 인스턴스 이름 이 할당됩니다. 예를 들면 다음과 같습니다.

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

다음 제한사항이 적용됩니다.

  • 인스턴스 이름은 다음 조건을 충족해야 합니다.

    • 문자 [a-z]로 시작해야 합니다.
    • 하이픈으로 끝나면 안 됩니다.
    • 47자(영문 기준)를 초과해서는 안 됩니다.
    • 동일한 서비스의 동일한 VM에서 고유해야 합니다.
  • 모든 문자는 소문자 영숫자 또는 하이픈 [a-z0-9\-]이어야 합니다.

  • 하이픈은 연속으로 표시되지 않아야 합니다.

  • 각 서비스 인스턴스에는 서비스가 시작될 때 제공되거나 생성되는 고유한 인스턴스 이름이 있어야 합니다.

정규화된 서비스 번들 인스턴스 이름 (FQIN)

SDV VM 이름, 패키지 이름, 서비스 번들 이름, 서비스 번들 인스턴스 이름은 정규화된 서비스 번들 인스턴스 이름(FQIN)으로 결합됩니다. FQIN은 서비스 번들 인스턴스를 차량 전체에서 고유하게 식별합니다.

예를 들면 다음과 같습니다.

  • 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

서로 다른 패키지의 서비스 번들은 동일한 서비스 번들 이름을 가질 수 있습니다. 예를 들어 동일한 SDV VM (mechatronics)에 배포된 다음 두 서비스 번들 (각 FQIN으로 식별됨)에는 동일한 서비스 번들 이름 TirePressure가 있습니다.

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

이 예에서는 두 서비스 번들이 서로 다른 패키지 (com.yourcompany1.sdv.adas의 번들 하나와 com.yourcompany2.sdv.adas의 번들 하나)에 있으므로 이름 지정 충돌이 발생하지 않습니다.

주제 이름

주제는 지정된 메시지 유형에 대해 차량 전체에서 고유한 문자열로 식별됩니다.

주제 이름의 예는 다음과 같습니다.

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

제한사항:

  • 영숫자 또는 하이픈 [a-z0-9\-]이어야 합니다.
  • 문자로 시작해야 합니다.
  • 127자(영문 기준)를 초과해서는 안 됩니다.

채널 이름

채널은 이름 문자열로 식별됩니다.

채널 이름의 예는 다음과 같습니다.

  • main-control
  • high-priority
  • background

제한사항:

  • 영숫자 또는 하이픈 [a-z0-9\-]이어야 합니다.
  • 문자로 시작해야 합니다.
  • 127자(영문 기준)를 초과해서는 안 됩니다.

서비스 단위 이름

서비스 번들 개발자는 주로 주제채널과 상호작용합니다. 서비스 단위 이름은 기본 구현 세부정보이며 주로 dumpsys와 같은 디버깅 도구를 사용할 때 발생합니다.

서비스 단위는 SDV 서비스 검색에 등록될 때 서비스 단위 이름 을 제공해야 합니다. 이 서비스 단위 이름은 서비스 검색 시간에 사용할 수 있습니다. 다음 예에서는 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 )

단위 유형 이름

단위 유형 이름은 정규화된 Protobuf 유형 이름과 같습니다. 예를 들면 다음과 같습니다.

  • 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

요약

이름 지정 요구사항은 다음 표에 요약되어 있습니다.

항목 한도 허용되는 문자 케이스 유형
FQIN 256자(영문 기준) VM 이름, 패키지 이름, 서비스 번들 이름, 서비스 번들 인스턴스 이름으로 구성됩니다. 소문자로 작성
SDV VM 이름 30자(영문 기준)
  • 문자 a-z로 시작해야 합니다.
  • 하이픈 (-)으로 끝나면 안 됩니다.
  • 문자는 소문자 영숫자 또는 하이픈 (a-z0-9\-)이어야 합니다.
  • 하이픈은 연속으로 두 번 이상 표시되지 않아야 합니다.
소문자로 작성
SDV 패키지 이름 127자(영문 기준)
  • 세그먼트를 4개 이상 포함해야 합니다.
  • 문자로 시작해야 합니다.
  • 세그먼트에 연속된 밑줄이 있을 수 없습니다.
  • 세그먼트는 밑줄로 끝나면 안 됩니다.
  • 세그먼트는 비워 둘 수 없습니다.
  • 문자는 소문자 또는 하이픈 (a-z0-9\-)이어야 합니다.
소문자로 작성
서비스 번들 이름 30자(영문 기준)
  • 대문자로 시작해야 합니다.
  • 비워 둘 수 없습니다.
  • 연속된 밑줄 (__)이 포함되어서는 안 됩니다.
  • 밑줄 (_)로 시작하거나 끝나면 안 됩니다.
  • 문자는 영숫자 또는 밑줄 (A-Za-z0-9_)이어야 합니다.
대소문자 혼용
서비스 번들 인스턴스 이름 48자(영문 기준)
  • 문자 (a-z)로 시작해야 합니다.
  • 하이픈 (-)으로 끝나면 안 됩니다.
  • 동일한 서비스의 동일한 VM에서 고유해야 합니다.
  • 문자는 소문자 또는 하이픈 (a-z0-9\-)이어야 합니다.
  • 하이픈은 연속으로 표시되지 않아야 합니다.
소문자로 작성
주제 이름 127자(영문 기준)
  • 문자 (a-z)로 시작해야 합니다.
  • 문자는 소문자 영숫자 또는 하이픈 (a-z0-9\-)이어야 합니다.
소문자로 작성
채널 이름 127자(영문 기준)
  • 문자 (a-z)로 시작해야 합니다.
  • 문자는 소문자 영숫자 또는 하이픈 (a-z0-9\-)이어야 합니다.
소문자로 작성
서비스 단위 이름 48자(영문 기준)
  • 문자 (a-z)로 시작해야 합니다.
  • 하이픈 (-)으로 끝나면 안 됩니다.
  • 문자는 소문자 또는 하이픈 (a-z0-9\-)이어야 합니다.
  • 하이픈은 연속으로 두 번 이상 표시되지 않아야 합니다.
소문자로 작성