הצגת המבנה של קוד הבטיחות

בדף הזה מתואר המבנה של קוד המקור של Display Safety.

מידע נוסף מופיע בקובץ README.md בכל ספרייה.

שכפול המאגר

כדי לקבל גישה למאגר, צריך לפנות למנהל החשבונות הטכני של Google.

Framework

בספרייה הזו נמצאים רכיבי הליבה של מסגרת Display Safety.

ספרייה מטרה
api/har-platform-api אוסף של הפשטות של מערכות משנה בפלטפורמה לבניית אפליקציות רינדור (HAR) עם זמינות גבוהה בפלטפורמות נתמכות.
api/har-types סוגים של שיטת הפשטת חומרה (HAL).
asset-manager כלים לניהול נכסי אפליקציות בזמן ריצה.
audio/har-audio ‫Crate לטיפול בהפעלת אודיו של HAR
customizations מכיל ממשקי API, הטמעות ופקודות מאקרו נגזרות ליצירת התאמות אישיות של עיצוב מאפליקציה מבוססת-HAR.
derive/har-ui-model-derive פקודות מאקרו פרוצדורליות להפקת תכונות נפוצות שמשמשות את מערכת מודל ממשק המשתמש של HAR
display_list ההגדרה הזו מגדירה את המבנים והרכיבים שמתארים סצנה לצורך רינדור, ללא תלות ב-backend גרפי כלשהו.
graphics/external-image ‫crate לייצוגים של תמונות חיצוניות.
graphics/har-gl-context מגדיר את ממשק ה-API של הקשר הגרפי וכולל כמה הטמעות בפלטפורמות נתמכות, גם להצגה וגם לעיבוד מחוץ למסך.
graphics/impeller ממשק API ב-Safe Rust ל-Impeller, שמבוסס על קשרי FFI שנוצרו.
graphics/impeller-renderer הטמעה של רכיב עיבוד ברמה גבוהה באמצעות Impeller כמנוע העיבוד הבסיסי.
har-layout ‫Wrapper ל-Taffy לחישוב פריסה לתצוגות ב-HAR.
har-monitoring ערכת כלים למעקב אחר ביצועים.
har-utils שירותים נפוצים.
harry Framework שישמש כבסיס לבניית אפליקציות HAR
harry-animation ממשק API להנפשה והטמעה של האנימציה עבור הארי
squoosh ייצוג ביניים ומנוע אנימציה לפרמטרים של תצוגה ב-framework של Harry.
task-scheduler כלי לתזמון משימות ולהרצה שלהן בשרשור ברקע אחרי השהיה שצוינה.
test_suites חבילות בדיקה להפעלת בדיקות יחידה של בטיחות התצוגה

תצורות מוכנות מראש

בספרייה הזו יש ספריות ונכסים מוכנים מראש.

ספרייה מטרה
impeller/ ספריות מוכנות מראש למנוע הגרפיקה Impeller, מאורגנות לפי מערכת הפעלה וארכיטקטורה.
impeller-rs-bindgen/ קישורי Rust FFI ל-Impeller.
impeller-rs-bindgen-wrapper/ ‫API wrapper לקישורי Impeller.

חומרי עזר

בספרייה הזו יש את יישום ההפניה של HAR, יישומים ספציפיים לפלטפורמה, כלים וארטיפקטים של בדיקות.

ספרייה מטרה
audio/tinyalsa-rs ‫Rust FFI bindings לספריית האודיו 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 bindings for libyuv.
platforms/har-log הגדרות של הטמעות של יומנים ומעקב לכל פלטפורמה נתמכת.
platforms/har-looper-headless יישום של לולאה שאינו תלוי בפלטפורמה, עבור עיבוד ללא ממשק משתמש.
platforms/har-platform-android מספק הטמעות ספציפיות ל-Android של הפשטות הפלטפורמה `har-platform-api`.
platforms/har-platform-linux מספק הטמעות ספציפיות ל-Linux של הפשטות הפלטפורמה `har-platform-api`.
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 באמצעות הקוד שנוצר על ידי קובצי פרוטו
har-tracing-common שירותים למעקב אחר ביצועים עבור HAR
harry-prebuilt/ רכיבי Harry מוכנים מראש (נכסים, הגדרות וכו')
ivi/ רכיבים שקשורים ל-IVI (מערכת מידע ובידור ברכב) ב-Android
libhar_graphics/ ספריית גרפיקה של C++‎ לשירותי HAR.
pdk/ מטא-נתונים של גרסת ה-PDK
product/ הגדרות אישיות ונכסים ספציפיים למוצר
SdvCameraPreviewApp אפליקציה לתצוגה מקדימה של המצלמה ל-SDV.
vehicledata הטמעה של מפרסם של מנהרת נתונים של SDV לנתוני רכב באמצעות gRPC

Utils

בספרייה הזו יש כלי עזר כלליים להטמעות לדוגמה ולבדיקות.

ספרייה מטרה
asset-manager-cli מספק ממשק שורת פקודה ליצירת חבילות נכסים.
dcf-info/ כלי לחילוץ מטא-נתונים מ-DCF (מסמך Figma של Serialized Design Compose)
figma-utils מספק עטיפה של שורת פקודה ל-`figma_import`, כדי לאחזר מסמכי Figma שעברו סריאליזציה.
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 של Android לפורמט HAR proto.
variable-density-analyzer מנתחת מסמך Figma ומחשבת את היחס בין הצמתים לבין משתני העיצוב.