מערכת AOSP מציעה את האפשרויות הבאות לאחסון פרטי ההגדרה במכשיר:
- מאפייני מערכת
- מאפיינים של שיטת הפשטת חומרה (HAL)
- קובצי XML של הגדרות המערכת
- שכבות-על של משאבים (סטטיות וזמן ריצה)
מאפייני מערכת
מאפייני מערכת הם צמדים של מפתח/ערך מסוג מחרוזת שמאוחסנים במילון הגלובלי build.prop
. מאפייני מערכת הם משאבים ברמת המערכת שקל להשתמש בהם והם לא מעמיסים על הביצועים. כשמשתמשים במאפייני מערכת, לא צריך להשתמש בתקשורת בין תהליכים (IPC) גם אם מאפיין מערכת משותף בין כמה תהליכים. עם זאת, מאפייני המערכת דומים למשתנים גלובליים, ושימוש לא נכון בהם עלול לגרום נזק. שימוש לרעה במאפייני מערכת עלול לגרום לבעיות כמו נקודות תורפה באבטחה ואפליקציות שלא נגישות למשתמשים. לפני שמשתמשים במאפייני מערכת כדי לאחסן מידע על הגדרות, כדאי לשקול את אפשרויות ההגדרה האחרות.
מידע נוסף על מאפייני מערכת זמין במאמר הוספת מאפייני מערכת
מאפייני HAL
כשהמקור המהימן להגדרה הוא רכיב חומרה במכשיר, שכבת ה-HAL של החומרה צריכה לספק את המידע על הרכיב הזה. מגדירים שיטת HAL חדשה ב-HAL הקיים כדי לגשת להגדרה. מידע נוסף על פיתוח HAL זמין במאמר בנושא AIDL ל-HAL.
קובצי XML של הגדרות המערכת
אם נתוני ההגדרה סטטיים אבל מורכבים (מובנים), כדאי להשתמש ב-XML או בפורמטים דומים אחרים לנתוני ההגדרה. חשוב לוודא שסכימת הקובץ נשארת יציבה. בקבצי XML, אפשר להשתמש ב-xsd_config
כדי לשמור על יציבות הסכימה, וליהנות מניתוח XML שנוצר אוטומטית.
שכבת-על של משאבים
אפשר להשתמש בשכבות-על של משאבים כדי להתאים אישית מוצר. יש שני סוגים של שכבות-על של משאבים:
שכבת-על של משאב רגיל שמשמשת להתאמה אישית של מוצר בזמן הבנייה. מידע על שכבות-על סטנדרטיות של משאבים זמין במאמר התאמה אישית של ה-build באמצעות שכבות-על של משאבים.
שכבת-על של משאבים בזמן ריצה (RRO) משמשת לשינוי ערכי המשאבים של חבילת יעד בזמן ריצה. לדוגמה, אפליקציה שמותקנת בתמונת המערכת עשויה לשנות את ההתנהגות שלה על סמך הערך של משאב. במקום להגדיר את ערך המשאב כקבוע בזמן הבנייה, אפשר להשתמש ב-RRO שמותקן במחיצה אחרת כדי לשנות את ערכי המשאבים של האפליקציה בזמן הריצה. מידע נוסף על RROs זמין במאמר שינוי הערך של משאבי אפליקציה בזמן ריצה.