ساختار کد ایمنی را نمایش دهید

این صفحه، سازماندهی کد منبع ایمنی نمایشگر را شرح می‌دهد.

برای اطلاعات بیشتر، به فایل README.md در هر پوشه مراجعه کنید.

مخزن را کلون کنید

برای دسترسی به مخزن، با مدیر حساب فنی گوگل خود تماس بگیرید.

چارچوب

این دایرکتوری شامل اجزای اصلی چارچوب Display Safety است.

دایرکتوری هدف
api/har-platform-api مجموعه‌ای از انتزاعات زیرسیستم‌های پلتفرم برای ساخت برنامه‌های رندرینگ با دسترسی بالا (HAR) روی پلتفرم‌های پشتیبانی‌شده.
api/har-types انواع لایه‌های انتزاعی سخت‌افزار
asset-manager ابزارهایی برای مدیریت دارایی‌های برنامه‌های کاربردی در زمان اجرا.
audio/har-audio جعبه‌ای برای مدیریت پخش صوتی HAR
customizations شامل APIها، پیاده‌سازی‌ها و ماکروهای مشتق‌شده برای تولید سفارشی‌سازی‌های طراحی از یک برنامه مبتنی بر HAR است.
derive/har-ui-model-derive ماکروهای رویه‌ای برای استخراج ویژگی‌های رایج مورد استفاده توسط سیستم مدل HAR UI
display_list ساختارها و اجزایی را تعریف می‌کند که صحنه‌ای را برای رندر کردن توصیف می‌کنند و از هرگونه رابط گرافیکی جدا هستند.
graphics/external-image جعبه‌ای برای نمایش تصاویر خارجی.
graphics/har-gl-context API زمینه گرافیکی را تعریف می‌کند و شامل پیاده‌سازی‌های متعددی در پلتفرم‌های پشتیبانی‌شده، هم برای نمایش و هم برای رندر خارج از صفحه نمایش، می‌شود.
graphics/impeller API ایمن برای جلوگیری از زنگ‌زدگی پروانه، که بر اساس اتصالات FFI تولید شده ساخته شده است.
graphics/impeller-renderer پیاده‌سازی رندر سطح بالا با استفاده از Impeller به عنوان موتور رندر پشتیبان.
har-layout یک پوشش برای Taffy جهت محاسبه طرح‌بندی نماها در HAR.
har-monitoring جعبه ابزار نظارت بر عملکرد
har-utils خدمات رفاهی مشترک.
harry چارچوبی که به عنوان پایه‌ای برای ساخت برنامه‌های HAR استفاده می‌شود
harry-animation یک API انیمیشن و پیاده‌سازی برای هری
squoosh موتور نمایش و انیمیشن سطح متوسط ​​برای پارامترهای نمایش در چارچوب هری.
task-scheduler ابزاری برای زمان‌بندی وظایف و اجرای آنها در یک نخ پس‌زمینه پس از یک تأخیر مشخص.
test_suites مجموعه‌های آزمایشی برای اجرای آزمون‌های واحد ایمنی نمایشگر

پیش‌ساخته‌ها

این دایرکتوری شامل کتابخانه‌ها و فایل‌های از پیش ساخته شده است.

دایرکتوری هدف
impeller/ کتابخانه‌های از پیش ساخته شده برای موتور گرافیکی Impeller، که بر اساس سیستم عامل و معماری سازماندهی شده‌اند.
impeller-rs-bindgen/ اتصالات FFI زنگ زده برای پروانه.
impeller-rs-bindgen-wrapper/ پوشش API برای اتصالات پروانه.

مرجع

این دایرکتوری شامل پیاده‌سازی مرجع 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). این فقط هنگام ساخت نسخه اندروید با soong استفاده می‌شود.
harry-tonic-server/ سرور gRPC (مبتنی بر تونیک). این فقط هنگام ساخت نسخه لینوکس با Cargo استفاده می‌شود.
harry-vehicle-data-grpc/ کد gRPC داده‌های خودرو، تولید شده از فایل‌های اولیه داده‌های خودرو.
i18n/harry-app-i18n خدمات بین‌المللی‌سازی و محلی‌سازی برای HAR.
i18n/i18n-protos پیام‌های protobuf و تولید کد Rust برای داده‌های i18n را تعریف می‌کند.
libyuv-rs/ اتصالات زنگ زدگی برای لیبیوو.
platforms/har-log پیاده‌سازی‌های لاگ و ردیابی را برای هر پلتفرم پشتیبانی‌شده تعریف می‌کند.
platforms/har-looper-headless یک پیاده‌سازی حلقه‌زن مستقل از پلتفرم برای رندرینگ بدون سر (headless).
platforms/har-platform-android پیاده‌سازی‌های خاص اندروید از انتزاع‌های پلتفرم `har-platform-api` را ارائه می‌دهد.
platforms/har-platform-linux پیاده‌سازی‌های خاص لینوکس از انتزاع‌های پلتفرم `har-platform-api` را ارائه می‌دهد.
platforms/harry-app-platform-specific پل کامپایل شرطی برای harry-app، که پیاده‌سازی صحیح را بر اساس پلتفرم انتخاب‌شده انتخاب می‌کند.
safety-monitor پیاده‌سازی یک مانیتور ایمنی مرجع برای اندروید.
screencap ابزار ضبط صفحه نمایش برای استخراج مستقیم تصاویر از فریم بافرهای DRM
vehicle-data-scripts ساختارها و منطق ایجاد توالی داده‌های اسکریپت‌شده‌ی خودرو

خدمات

این دایرکتوری شامل سرویس‌های اندروید مرتبط با ایمنی نمایشگر است.

دایرکتوری هدف
ds-cvd-toolkit یک ابزار خط فرمان برای ایمنی نمایش که امکان راه‌اندازی چندین دستگاه Cuttlefish را فراهم می‌کند.
emulator پشتیبانی شبیه‌ساز از Runtime Resource Overlays
har-grpc-services شامل تعاریف اولیه مورد استفاده در پیاده‌سازی مرجع برای ایجاد کانال‌های ارتباطی بین برنامه HAR و DriverUI و سرویس‌های داده خودرو است.
har-sdv-service* یک بسته خدمات SDV ارائه می‌دهد که برای ارائه خدمات داده به HAR با استفاده از کد تولید شده توسط فایل‌های اولیه استفاده می‌شود.
har-tracing-common خدمات ردیابی عملکرد برای HAR
harry-prebuilt/ کامپوننت‌های پیش‌ساخته هری (دارایی‌ها، پیکربندی‌ها و غیره)
ivi/ اجزای مرتبط با اندروید IVI (سیستم اطلاعات و سرگرمی درون خودرو)
libhar_graphics/ کتابخانه گرافیکی C++ برای سرویس‌های HAR
pdk/ فراداده انتشار PDK
product/ پیکربندی‌ها و دارایی‌های خاص محصول
SdvCameraPreviewApp برنامه پیش‌نمایش دوربین برای SDV.
vehicledata پیاده‌سازی یک ناشر تونل داده SDV برای داده‌های خودرو با استفاده از gRPC

ابزارها

این دایرکتوری شامل ابزارهای عمومی برای پیاده‌سازی‌های مرجع و آزمایش است.

دایرکتوری هدف
asset-manager-cli یک رابط خط فرمان برای تولید بسته‌های دارایی فراهم می‌کند.
dcf-info/ ابزاری برای استخراج فراداده از یک سند DCF (سند Serialized Design Compose Figma)
figma-utils یک پوشش خط فرمان برای `figma_import` فراهم می‌کند تا اسناد سریالی شده فیگما را دریافت کند.
gauge-test برنامه‌ای که برای آزمایش و نمایش عناصر رابط کاربری صفحه مدرج و گیج طراحی شده است.
gui-playground-app محیط سندباکس برای آزمایش رابط کاربری جدید و ویژگی‌های انیمیشن.
har-platform-tests مجموعه‌ای از تست‌های یکپارچه‌سازی برای پیاده‌سازی ویژگی‌های خاص پلتفرم.
har-rendering-parity ابزار بصری برای تأیید برابری رندر بین HAR، DesignCompose و Figma.
harry-rpc-client یک رابط خط فرمان برای ارسال دستورات به Harry از طریق RPC فراهم می‌کند.
human-readable-report-generator ابزاری برای تأیید بصری مصنوعات ایمنی.
ktx-utils ابزارهایی برای رمزگذاری و رمزگشایی فایل‌های بافت Khronos KTX 2.0 ارائه می‌دهد.
list-test-app به عنوان یک محیط آزمایشی و نمایشی برای مدیریت لیست در HAR عمل می‌کند.
transfer-localizations ابزاری برای تبدیل فایل‌های محلی‌سازی XML اندروید به فرمت HAR proto.
variable-density-analyzer یک سند فیگما را تجزیه و تحلیل می‌کند و نسبت گره‌ها به متغیرهای طراحی را محاسبه می‌کند.