Названия пакетов служб определяются в иерархическом порядке.
Каждая виртуальная машина (идентифицируемая по имени виртуальной машины ) представляет собой отдельное развертывание операционной системы профиля SDV Core.
Каждый пакет (обозначаемый именем пакета ) может содержать несколько пакетов услуг.
Каждый пакет служб (идентифицируемый по имени пакета служб ) может быть создан несколько раз на одной и той же виртуальной машине.
Каждый экземпляр пакета служб идентифицируется именем экземпляра пакета служб, присвоенным во время загрузки.
Имя виртуальной машины SDV
Имя виртуальной машины — это уникальный идентификатор, присваиваемый каждому развертыванию профиля SDV Core, как указано в конфигурации виртуальной машины транспортного средства (vvmconfig) . Имя виртуальной машины используется в именовании как логическое разделение служб по границам виртуальных машин в транспортном средстве. Примеры:
-
cdc -
mechatronics -
pcu -
telematics-unit
Действуют данные ограничения на наименование.
- Имя виртуальной машины должно начинаться с буквы
[az] - Имя виртуальной машины не должно заканчиваться дефисом.
- Имя виртуальной машины не должно превышать 31 символ.
- Все символы должны быть строчными буквенно-цифровыми или представлять собой дефис
[a-z0-9\-] - Дефисы в имени не должны встречаться подряд более одного раза.
Уникальность имени виртуальной машины проверяется во время компиляции (статический анализ) и при загрузке системы, когда загружается файл 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_]. - Название пакета должно содержать не менее четырех сегментов, разделенных точкой.
- Название пакета не должно заканчиваться точкой.
- Название пакета не должно превышать 127 символов.
- Каждый сегмент должен начинаться с буквы.
- В одном сегменте не может быть последовательных подчеркиваний,
__. - Ни один сегмент не может заканчиваться нижним подчеркиванием,
_. - Сегменты не должны быть пустыми (не должно быть последовательных периодов).
название пакета услуг
Подобно стандартному Android, каждый пакет служб имеет удобочитаемое имя, которое находится в пространстве имен пакета, к которому он принадлежит. Например:
-
SomeService -
ImportantService
Действуют следующие ограничения на наименование:
- Название пакета услуг ДОЛЖНО начинаться с заглавной буквы.
- Название пакета услуг НЕ ДОЛЖНО быть пустым.
- Название пакета услуг НЕ ДОЛЖНО превышать 47 символов.
- Название пакета услуг НЕ ДОЛЖНО содержать последовательные символы подчеркивания,
__ - Название пакета услуг НЕ ДОЛЖНО начинаться или заканчиваться нижним подчеркиванием,
_ - Все символы ДОЛЖНЫ быть либо буквенно-цифровыми, либо представлять собой символ подчеркивания,
[A-Za-z0-9_]
имя экземпляра пакета служб
В отличие от стандартных приложений Android, пакеты служб в AAOS SDV могут быть установлены и загружены несколько раз на одной и той же виртуальной машине. В результате один и тот же пакет служб может иметь несколько запущенных экземпляров в рамках одной виртуальной машины AAOS SDV. Этим экземплярам присваивается удобочитаемое имя экземпляра пакета служб . Например:
-
front-left -
front-right -
main -
client -
subscriber
Действуют следующие ограничения:
Имя экземпляра должно:
- Начните с буквы
[az] - Не заканчивать дефисом
- Не более 47 символов
- Обеспечьте уникальность на одной и той же виртуальной машине для одной и той же службы.
- Начните с буквы
Все символы должны быть строчными буквенно-цифровыми или представлять собой дефис
[a-z0-9\-]Дефисы не должны стоять подряд.
Каждый экземпляр службы должен иметь уникальное имя экземпляра (указанное или созданное при запуске службы).
Полное имя экземпляра пакета услуг (FQIN)
Имя виртуальной машины SDV, имя пакета, имя пакета услуг и имя экземпляра пакета услуг объединяются в полное квалифицированное имя экземпляра пакета услуг (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
Пакеты услуг в разных наборах могут иметь одинаковое имя. Например, эти два пакета услуг (идентифицированные по соответствующим FQIN), развернутые в одной и той же виртуальной машине SDV ( mechatronics ), имеют одинаковое имя пакета услуг 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
Краткое содержание
Требования к именованию суммированы в следующей таблице:
| Элемент | Лимит | Разрешенные символы | Тип дела |
|---|---|---|---|
| ФКИН | 256 символов | Состоит из имени виртуальной машины, имени пакета, имени пакета служб и имени экземпляра пакета служб. | строчные буквы |
| Имя виртуальной машины SDV | 30 символов |
| строчные буквы |
| Название пакета SDV | 127 символов |
| строчные буквы |
| название пакета услуг | 30 символов |
| Смешанный случай |
| имя экземпляра пакета служб | 48 символов |
| строчные буквы |
| Название темы | 127 символов |
| строчные буквы |
| Название канала | 127 символов |
| строчные буквы |
| Название сервисного подразделения | 48 символов |
| строчные буквы |