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