На этой странице описывается структура исходного кода Display Safety.
Для получения более подробной информации см. файл README.md в каждой директории.
Клонируйте репозиторий
Для получения доступа к репозиторию свяжитесь со своим техническим менеджером по работе с клиентами Google.
Рамки
В этом каталоге находятся основные компоненты системы обеспечения безопасности дисплея.
| Каталог | Цель |
|---|---|
api/har-platform-api | Набор абстракций подсистем платформы для создания приложений с высокой доступностью рендеринга (HAR) на поддерживаемых платформах. |
api/har-types | Типы уровней аппаратной абстракции. |
asset-manager | Инструменты для управления ресурсами приложений во время выполнения. |
audio/har-audio | Крейт для обработки воспроизведения аудио HAR |
customizations | Содержит API, реализации и макросы для создания индивидуальных настроек дизайна на основе приложения, использующего технологию HAR. |
derive/har-ui-model-derive | Процедурные макросы для вывода общих характеристик, используемых системой моделирования пользовательского интерфейса HAR. |
display_list | Определяет структуры и компоненты, описывающие сцену для рендеринга, независимо от какой-либо графической подсистемы. |
graphics/external-image | Ящик для внешнего представления изображений. |
graphics/har-gl-context | Определяет API графического контекста и включает в себя несколько реализаций на поддерживаемых платформах, как для отображения, так и для рендеринга за пределами экрана. |
graphics/impeller | Безопасный Rust API для Impeller, основанный на сгенерированных привязках FFI. |
graphics/impeller-renderer | Высокоуровневая реализация рендеринга с использованием Impeller в качестве базового механизма рендеринга. |
har-layout | Оболочка для Taffy, позволяющая рассчитывать компоновку представлений в HAR. |
har-monitoring | Набор инструментов для мониторинга производительности. |
har-utils | Общие коммунальные услуги. |
harry | Фреймворк, который будет использоваться в качестве основы для создания приложений, реагирующих на действия человека (HAR). |
harry-animation | API для анимации и реализация анимации для Гарри. |
squoosh | Промежуточный механизм представления и анимации параметров вида в рамках фреймворка Harry. |
task-scheduler | Утилита для планирования задач и их выполнения в фоновом потоке после заданной задержки. |
test_suites | Наборы тестов для запуска модульных тестов безопасности дисплея. |
Готовые сборки
В этой директории находятся предварительно созданные библиотеки и ресурсы.
| Каталог | Цель |
|---|---|
impeller/ | Предварительно собранные библиотеки для графического движка Impeller, организованные по операционным системам и архитектурам. |
impeller-rs-bindgen/ | Привязки Rust FFI для крыльчатки. |
impeller-rs-bindgen-wrapper/ | API-оболочка для привязок Impeller. |
Ссылка
В этом каталоге содержится эталонная реализация HAR, реализации для конкретных платформ, инструменты и тестовые артефакты.
| Каталог | Цель |
|---|---|
audio/tinyalsa-rs | Привязки Rust FFI для аудиобиблиотеки Tinyalsa. |
audio/tinyalsa-audio | Библиотека для воспроизведения аудио и управления устройствами, основанная на привязках FFI, созданных библиотекой `tinyalsa-rs`. |
camera/emulated-camera | Предоставляет реализацию эмулированной камеры с использованием трейта `Camera` из `har-platform-api`. |
graphics/gl-helpers | Вспомогательная библиотека, содержащая вспомогательные функции GL. |
har-user-input-evdev/ | Реализует базовую обработку ввода на основе evdev. Поддерживает события клавиатуры, мыши и касания (одиночное и множественное касание). |
harry-app/ | Эталонная реализация портативного приложения с высокой доступностью (HAR), созданного с использованием фреймворка `harry`. |
harry-app-core/ | Основная логика приложения, управление состоянием и определения модели пользовательского интерфейса для эталонного приложения `harry-app`. |
harry-app-utils/ | Вспомогательные функции и модули для справочного приложения `harry-app`. |
harry-control-api/ | API управления для эталонного приложения `harry-app`. |
harry-grpcio-server/ | gRPC-сервер (на основе grpcio). Используется только при сборке Android-версии с помощью soong. |
harry-tonic-server/ | gRPC-сервер (на основе Tonic). Используется только при сборке версии для Linux с помощью Cargo. |
harry-vehicle-data-grpc/ | Код gRPC для данных о транспортном средстве, сгенерированный из прототипных файлов данных о транспортном средстве. |
i18n/harry-app-i18n | Услуги по интернационализации и локализации для HAR. |
i18n/i18n-protos | Определяет протокол сообщений protobuf и генерацию кода Rust для данных интернационализации (i18n). |
libyuv-rs/ | Привязки Rust для libyuv. |
platforms/har-log | Определяет реализацию логирования и трассировки для каждой поддерживаемой платформы. |
platforms/har-looper-headless | Реализация зацикливания, не зависящая от платформы, для рендеринга в безголовом режиме. |
platforms/har-platform-android | Предоставляет реализации абстракций платформы `har-platform-api`, специфичные для Android. |
platforms/har-platform-linux | Предоставляет реализации абстракций платформы `har-platform-api`, специфичные для Linux. |
platforms/harry-app-platform-specific | Мост условной компиляции для harry-app, выбирающий правильную реализацию в зависимости от выбранной платформы. |
safety-monitor | Реализация эталонного монитора безопасности для Android. |
screencap | Утилита для захвата экрана, позволяющая извлекать скриншоты непосредственно из буферов кадров DRM. |
vehicle-data-scripts | Структуры и логика для создания скриптовых последовательностей данных о транспортных средствах. |
Услуга
В этом каталоге находятся службы Android, связанные с безопасностью дисплея.
| Каталог | Цель |
|---|---|
ds-cvd-toolkit | Инструмент командной строки для Display Safety, позволяющий запускать несколько устройств Cuttlefish одновременно. |
emulator | Поддержка эмулятором наложений ресурсов среды выполнения |
har-grpc-services | Содержит определения прототипов, используемые в эталонной реализации для установления каналов связи между приложением HAR и DriverUI, а также службами данных о транспортных средствах. |
har-sdv-service* | Предоставляет пакет сервисов SDV, используемый для предоставления услуг обработки данных HAR с использованием кода, сгенерированного из proto-файлов. |
har-tracing-common | Сервисы трассировки производительности для HAR |
harry-prebuilt/ | Предварительно созданные компоненты Harry (ресурсы, конфигурации и т. д.) |
ivi/ | Компоненты, относящиеся к Android IVI (автомобильная информационно-развлекательная система) |
libhar_graphics/ | Графическая библиотека на C++ для сервисов HAR. |
pdk/ | Метаданные выпуска PDK |
product/ | Конфигурации и ресурсы, специфичные для конкретного продукта |
SdvCameraPreviewApp | Приложение предварительного просмотра камеры для SDV. |
vehicledata | Реализован издатель данных SDV Data Tunnel для транспортных средств с использованием gRPC. |
Утилиты
В этом каталоге находятся общие утилиты для эталонных реализаций и тестирования.
| Каталог | Цель |
|---|---|
asset-manager-cli | Предоставляет интерфейс командной строки для генерации пакетов ресурсов. |
dcf-info/ | Инструмент для извлечения метаданных из документа DCF (Serialized Design Compose Figma). |
figma-utils | Предоставляет обертку командной строки для `figma_import`, позволяющую получать сериализованные документы Figma. |
gauge-test | Приложение предназначено для тестирования и демонстрации элементов пользовательского интерфейса циферблатов и индикаторов. |
gui-playground-app | Тестовая среда для проверки новых функций пользовательского интерфейса и анимации. |
har-platform-tests | Набор интеграционных тестов для реализации специфических для платформы характеристик. |
har-rendering-parity | Визуальный инструмент для проверки согласованности отображения между HAR, DesignCompose и Figma. |
harry-rpc-client | Предоставляет интерфейс командной строки для отправки команд Гарри через RPC. |
human-readable-report-generator | Инструмент для визуальной проверки средств обеспечения безопасности. |
ktx-utils | Предоставляет утилиты для кодирования и декодирования файлов текстур Khronos KTX 2.0. |
list-test-app | Служит средой тестирования и демонстрации управления списками в HAR. |
transfer-localizations | Утилита для преобразования XML-файлов локализации Android в формат HAR-прототипа. |
variable-density-analyzer | Анализирует документ Figma и вычисляет соотношение узлов к проектным переменным. |