אנדרואיד אוראו כולל תמיכה בממשק שורת פקודה עבור ערכות נושא RRO, מה שמרמז על כך שמערכת ההפעלה מתקרבת יותר ויותר לתמיכה בערכת נושא רחבה של המערכת.
עם השקת אנדרואיד אוראו מגיע זמן רב בחיפוש אחר חפצים נסתרים בקוד המקור. בעבר, צוות ההנדסה של אנדרואיד עשה זאת דיברתי על הפעלת עיצוב ב-Android O. דיווחנו במאי שהתצוגה המקדימה השנייה למפתחים של אנדרואיד O הייתה אולי רמז לכך שגוגל תומכת בשירות מנהל השכבות (OMS) וב-Runtime Resource Overlay (RRO), אבל עכשיו אנחנו יודעים בוודאות שכן. אנדרואיד אוראו עכשיו, באופן טכני, תומך בעיצוב OMS/RRO ואף מספק ממשק להפעלה או השבתה של ערכות נושא, בתנאי שאתה יכול להשתמש בשורת הפקודה.
עדכון: Substratum משתמש בפקודות אלה עם התצוגה המקדימה של המפתח ועכשיו עם Oreo מאז שהן היו זמינות!
מה הם RRO ו-OMS?
RRO פותחה באופן פנימי על ידי Sony עבור פונקציונליות ערכת נושא בקו Sony Xperia. מפתחים שזיהו את משמעותו פעלו להרחבת התמיכה שלה ל-ROMs אחרים, ואיתו הגיע עיצוב RRO על פני מספר רב של מכשירים - לא רק מכשירי סוני. זה החליף בצורה גאונית משאבים בזמן ריצת האפליקציה, קלות שימוש שלא נראתה מאפשרויות עיצוב אחרות באותה תקופה. זה התפתח ל-OMS, שגם פותח על ידי סוני. המפורסם
מנהל שכבות השתמש בעיצוב RRO במקור, אך OMS הותאם מאוחר יותר למה שמכונה כיום Substratum והיא מסגרת הנושא המוכרת ביותר למשתמשים בפורומים שלנו כעת. ROM בפורומים שלנו עם התחייבויות OMS אומר שהם תומכים במנוע הנושאים הסטנדרטי של Substratum. "מצב מדור קודם" בתוך Substratum משתמש בעיצוב RRO.אנדרואיד אוראו מציגה פקודות נושא
נראה שגוגל מעוניינת לתמוך באופן מלא בסוג ערכת נושא זה ב-AOSP, ואולי מתקדמת לקראת מנהל ערכות נושא מלא ונתמך במערכת. ב-Android Gerrit, גוגל ביצעה מספר שינויים בחודשים האחרונים (ועם Android Oreo) המציעים מהלכים להפעלת מנוע הנושאים בכל המערכת. השינויים מפורטים למטה, עם קישורים להתחייבויות שלהם.
- פקודות שכבת-על
- הוצג OverlayManagerService (OMS).
- הרשאה חדשה בשם CHANGE_OVERLAY_PACKAGES
כל השינויים הללו מסמלים מהלך של גוגל לעבר צורה כלשהי של אפליקציית ערכת נושא למערכת שתיכלל בעתיד. ההרשאה הרשומה לעיל דורשת הרשאות מערכת, ובכך פירושה שרק יישום מערכת (או יישום עם גישת שורש) יכול להפעיל הרשאה זו. זה מעניין בכל זאת, מכיוון שהוא מראה שגוגל סוף סוף עובדת לקראת משהו.
אז למה רק באופן טכני האם אנדרואיד אוראו תומך בעיצוב נושא? ובכן, התשובה הפשוטה היא שאמנם אתה יכול להפעיל את שיטת המערכת להתקנת ערכות נושא, אבל לעשות זאת יתברר כחסר טעם. הסיבה לכך היא שלמרות שאתה יכול להשתמש בממשק שורת הפקודה החדש כדי לנהל ערכות נושא מותקנות, אתה לא יכול למעשה התקן ערכות נושא חדשות ללא גישת שורש מכיוון שהערכות נושא צריכות להיכנס לספרייה המוגבלת מהמשתמש מֶרחָב. עם גישת שורש אתה יכול פשוט להפעיל ערכת נושא של Substratum בכל מקרה, כך שאין צורך לעשות זאת בדרך החדשה. גוגל לא כללה אפליקציית מערכת שתעצב את המכשיר, כך שעד אז אין שום תועלת מלנסות לעשות זאת בדרך החדשה שנכללה.
ממשק נושא שורת הפקודה
אנחנו ב-XDA בדקנו את הפקודה ב-Google Pixel שמריץ את מהדורת Android Oreo. החלטנו לבדוק כמה מהפקודות והשתמשנו קודם כל
cmd overlays list
כדי להציג את כל שכבות העל שהותקנו מראש. שמנו לב לקיומו של "com.google.android.theme.pixel", משבית אותו ובמקום זאת הפעלת "android.auto_generated_rro__" על ידי הפעלת הפקודות הבאות.
כפי שניתן לראות כאן, שכבת-העל הסטנדרטית מושבתת והזו שנוצרה אוטומטית מופעלת. הפעלת הפקודה שלנו כדי להציג שוב את שכבות-העל המותקנות שלנו, אנו רואים את הפלט הבא.
התוצאה היא אפליקציית הגדרות מערכת Android בנושא חדש ב-Google Pixel שלנו. שימו לב שרשימת השכבות שלעיל כוללת גם ערכות נושא שהותקנו באמצעות Substratum, והצלחנו להפעיל/לבטל אותן באותה קלות.
מצאנו גם פקודה נוספת בעת חפירה במקור. הפקודה היא כדלקמן
cmd overlay dump --user 0
נותן לנו את הפלט הבא.
תְפוּקָה
הגדרות
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
mUserId...: 0
mTargetPackageName.: אנדרואיד
mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk
mState...: STATE_ENABLED
mIsEnabled...: נכון
mIsStatic...: נכון
}
com.google.android.theme.pixel: 0 {
mPackageName...: com.google.android.theme.pixel
mUserId...: 0
mTargetPackageName.: אנדרואיד
mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mState...: STATE_DISABLED
mIsEnabled...: false
mIsStatic...: שקר
}
שכבות-על ברירת מחדל: com.google.android.theme.pixel
מטמון PackageInfo
2 חבילות
קרא עוד
אז כפי שניתן לראות, גוגל השקיעה עבודה רבה בפיתוח מנוע הנושא ושילובו במקור AOSP. נראה שאם זה היה מתווסף בכל המערכת, ערכות נושא יופעלו בתוך מקלט ממשק המשתמש של המערכת. לגוגל יש גם סיפק מידע עבור יצרני OEM, כך שייתכן שיצרני OEM נוספים יוכלו לאפשר בעתיד תמיכה בעיצוב נושא המבוסס על גרסת AOSP ב-Android Oreo.
בסך הכל, מדובר בהתפתחות מאוד מרגשת. עיצוב נושא הוא אחד מהחלקים הרבים המגדירים את אנדרואיד כמערכת הפעלה הניתנת להתאמה אישית מלאה בטלפון שלך, גם אם היא דורשת כרגע שורש לנושאים רחבי המערכת. בעתיד אם זה יאפשר לעבוד ללא גישת שורש, זה יהיה צעד גדול בכיוון של חופש המשתמש. כמובן, הוא עשוי להיות נעול במקלט ממשק המשתמש של המערכת למשך זמן רב (כיוון שנושאים שבורים יכולים לשבור אפליקציות) אך מאפשרים המשתמש אפילו לנצל את התמיכה בנושא עיצוב מקורי מלכתחילה הוא תוספת ענקית להפעלת הנייד מערכת.