ל-Android O Developer Preview יש הגדרת נושא תצוגה מסתורית. XDA הגיעה למסקנה שמסגרת הנושא הזו מבוססת על ה-RRO של סוני.
למקרה שאתה עדיין לא מודע לכך, גוגל פרסמה את התצוגה המקדימה השנייה למפתחים של Android O (Android O DP2) במהלך אירוע ה-I/O של אתמול. אנחנו כבר צלל עמוק לתוך כל מה שמצאנו עד כה, אבל היה דבר אחד ב-DP2 שהטריד אותי. כל מי קיבל את עדכון הבטא או הבהב ידנית התמונות החדשות נפגשו במהירות עם א ממשק משתמש שונה בתכלית בהגדרות מהירות. למה בכלל גוגל החליטה לשנות את הנושא? אחרי עוד כמה בדיקות וחפירות, הגעתי למסקנה. מכל סיבה שהיא, גוגל החליטה לעשות את זה נושא "הפוך". נושא ברירת המחדל; אולי בזמן שהחברה הייתה באמצע בדיקת פתרון נושא מותאם אישית על בסיס שכבת המשאבים בזמן ריצה של סוני (RRO), הם לא הצליחו לגרום לנושא ברירת המחדל של Pixel לעבוד בזמן עבור מהדורת Android O Beta.
ערכת נושא מערכת ברירת מחדל ב-Android O Developer Preview 2
הגילוי שמסגרת הנושא של אנדרואיד O מבוססת על ה-RRO של סוני עשויה להיראות ברורה לחלק בהתחשב בכך שגוגל הטמיעה תמיכה עבור RRO באנדרואיד 6.0 מרשמלו, אם כי זה דרש ממך מכשיר שורשי. עם זאת, מכיוון שקוד המקור של Android O לא פורסם, זו הייתה ספקולציה טהורה להציע שנושא המערכת הזה באנדרואיד O הוא למעשה RRO. זו הסיבה שלנו
כיסוי ראשוני של התפאורה המסתורית הזו, כמו גם הסיקור שנעשה על ידי אתרים אחרים, לא יצר את הקשר הזה. אבל ישנן כמה ראיות הקושרות את התכונה הזו למסגרת הנושא שלדעתנו צריכה להראות באופן סופי נושא המכשיר של Android O מבוסס על RRO. עם תמיכת RRO על הסיפון, זה עשוי סוף סוף ספק את פתרון הנושא עבור משתמשים לא מושרשים שכולנו חיכינו לו.מהי שכבת משאבי ריצה (RRO)?
RRO היא מסגרת נושא שנוצרה על ידי מפתחי סוני שהפעילה ערכות הנושא Xperia של סוני. היופי ב-RRO הוא שהוא מאפשר לך להחליף משאבי יישום ללא צורך לשנות את קוד המקור של היישום. זה קורה באמצעות שימוש בשכבת-על, המכילה מחרוזות משאבים משלה, המשמשות להחלפת משאבי היישום המכוסה-על בזמן שהיישום נטען.
לאלו מכם שרואים "RRO" וחושבים "שכבות", אתם די קרובים. Layers היא גרסה שונה במקצת של ה-RRO של סוני, אבל ברמת הבסיס היא עובדת בצורה מאוד דומה. RRO/Layers "מתקין" ערכות APK ל-/system/ספק/שכבת-על. בעת האתחול, מנהל החבילות קורא את חבילות ה-APK הללו, מאמת אותן ואז משתמש idmap כדי לקשר אותו לטבלת משאבי המערכת. אתה יכול לקרוא שאלות נפוצות יותר יסודיות על ידי SykoPompos, המפתח של (הוצא משימוש) מנהל שכבות אפליקציה.
צילומי מסך של אפליקציית מנהל השכבות שהוצאה משימוש
קריאה מומלצת: היסטוריה קצרה של נושאים: מנושאים OEM ועד שכבות RRO
כמובן, מעטים בקהילת ה-ROM המותאמת אישית של אנדרואיד עדיין משתמשים במנוע ערכות נושא המבוסס על RRO. רובם עברו למנוע נושא אחר כגון תַת שִׁכבָה, שהיא אבולוציה של שכבות המבוססת כעת על שירות Overlay Manager (OMS). (CyanogenMod Theme Engine (CMTE) הייתה עוד מסגרת נושא פופולרית, עם זאת עתידו עדיין באוויר.) עם זאת, גם אם אינך משתמש ב-ROM מותאם אישית עם ה-OMS commits, ה- אפליקציית מנוע נושא התשתית עדיין תומך ביכולת להשתמש בערכות נושא "Substratum Legacy" שהן רק ערכות נושא RRO/Layers. ובגלל זה, המשתמשים החלו להבין שהנושאים של המכשירים וה-RRO של Android O זהים.
גוגל סוף סוף מציגה נושאים באמצעות RRO
מעל על קטע הערות של an משטרת אנדרואיד מאמר, מפתח מוכר XDA Maxr1998 פרסם צילום מסך בטענה שערכות נושא Substratum Legacy מופיעות בבוחר ערכות הנושא של Google.
בצד שמאל, אתה יכול לראות רשימה של APKs שכבת-על שהותקנו על ידי Maxr1998 ב-Android O Developer Preview 1. בצד ימין, אתה יכול לראות את שתי אפשרויות העיצוב ב-Android O Developer Preview 2. בעבר ב-Android O DP1, שתי האפשרויות היו "Pixel" ו-"Inverted" כאשר "Pixel" מוגדר כברירת המחדל בעוד "Inverted" דומה למראה והתחושה בקנה מידה אפור שהוא ברירת המחדל ב-O DP2.
אבל תסתכל בזהירות על השם של ערכת הנושא המוגדרת כברירת מחדל ב-O DP2. זה נקרא "android.auto_generated_rro." אכן שם מוזר מאוד, אבל ההכללה של "RRO" בשם היא מה שהביא אותי להאמין תחילה שאכן מדובר ב-RRO של סוני.
אז חשבתי, אם זה אכן RRO, איפה עוד אני יכול לחפש כדי לאשר זאת? המחשבות הללו הובילו אותי לבדוק /system/vendor/overlay, וכצפוי, אכן ישנם שני קבצי APK הממוקמים בתוכם: framework-res__auto_generated_rro.apk ו- PixelThemeOverlay.apk.
שני אלה תואמים את שמות הנושאים בהגדרות התצוגה. באופן מוזר, כשאתה בוחר בערכת הנושא Pixel בהגדרות התצוגה, זה לא עובד. אני לא מומחה בפיתוח ערכות נושא RRO, אז אני לא יכול לומר מדוע ערכת הנושא של Pixel לא עובדת, אם כי על ידי ביצוע פירוק APK של שני היישומים ברור שאלו הם אכן שכבת-על אפליקציות.
פירוק APK של PixelThemeOverlay.apk
[tabs][tab title ="AndroidManifest.xml"]
package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>
[/tab][tab title ="strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][tab title ="colors.xml"]
<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>
[/tab]
[/tabs]
אם אתה מרחף על התיעוד של RRO מסופק על ידי סוני, ברור שזה אמור להיות ערכת נושא RRO. בקובץ AndroidManifest, שורת השכבה מציינת שכיסוי זה מכוון לקובץ framework-res.apk ("אנדרואיד") ויש לו עדיפות של "1" שהיא העדיפות הגבוהה ביותר שניתן לתת לה.
מצד שני, בתוך הקובץ framework-res__auto_generated_rro.apk נמצא קובץ AndroidManifest.xml במראה דומה, אבל יש הרבה מחרוזות אחרות שאינן קשורות לנושא. אבל ניתן להסביר זאת בקלות על ידי העובדה שנושא ה-RRO הזה הוא בעצם גרסה מופשטת של ה-framework-res.apk של גוגל פיקסל, שחשבתי שהוא נכון מכיוון של-\res\values\bools.xml יש את השורה
שאני יודע מהודעה בפורום שלנו להיות קו שמשתמשים צריך להגדיר כדי אפשר תמיכה בסמל עגול בכל המערכת.
סיכום
הבוחן שלי עדיין לא הצליח להשיג גישת שורש ב-O DP2 כדי לנסות להריץ ערכת נושא Substratum Legacy/RRO, אבל בהתחשב בממצאים שלי ושל Maxr1998, זה בטוח לומר ש ייתכן שגוגל סוף סוף מתכוננת להביא נושאי RRO להמונים.
כמובן, אין שום ערובה שתכונה זו לא תבוטל באחת מהתבניות המאוחרות יותר של Android O. יתכן שגוגל מחליטה ש-RRO לא עובד כמו שהם רוצים ותבטל את התכונה. עם זאת, בהתחשב בהיסטוריה הענפה של RRO הן בידי סוני והן בידי קהילת הפיתוח שלנו, רבים מאתנו כבר מכירים את הגדולה של ה-Runtime Resource Overlay של Sony. ומכיוון שכבר יש המון ערכות נושא תואמות RRO, אם גוגל אי פעם תחליט לאפשר לנו להתקין ערכות נושא מותאמות אישית, הן יפתחו את שערי ההצפה לשוק רחב ממילא של ערכות נושא זמינות להנאת המשתמשים.
קרדיט לתמונה תכונה: SonyDevWorld