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

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

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

שכפול המאגר

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

Framework

בספרייה הזו נמצאים רכיבי הליבה של מסגרת בטיחות המסך.

ספרייה מטרה
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 בטוח של Rust ל-Impeller, שמבוסס על קישורי FFI שנוצרו.
graphics/impeller-renderer הטמעה של רכיב עיבוד ברמה גבוהה באמצעות Impeller כמנוע העיבוד הבסיסי.
har-layout רכיב wrapper ל-Taffy לחישוב פריסה לתצוגות ב-HAR.
har-monitoring ערכת כלים למעקב אחר ביצועים.
har-utils שירותים נפוצים.
harry Framework שישמש כבסיס לבניית אפליקציות HAR
harry-animation ממשק API להנפשה והטמעה של הארי
squoosh ייצוג ביניים ומנוע אנימציה לפרמטרים של תצוגה ב-Harry framework.
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 ומחשבת את היחס בין הצמתים לבין משתני העיצוב.