איך התשתית הביאה יותר בחירה ל-TouchWiz לא גמיש

click fraud protection

Sungstratum מהצוות [projekt.] מביאה את כל מוצרי העיצוב של RRO-OMS למכשירי Samsung Nougat דרך Substratum! המשך לקרוא כדי לדעת יותר!

עיצוב הנושא של אנדרואיד עבר כברת דרך, מעריכות פריצות ל-Substratum ועכשיו, סונגסטרטום. לפני שנים רבות, המילה "נושא" בדיונים באנדרואיד הוחלפה לעתים קרובות על ידי המילה "בוחר", הנהון ל ה-T-Mobile Theme Chooser שנמצא ב-CyanogenMod שהניח את היסודות שהפך את אנדרואיד ל-themer גַן עֶדֶן. היכולת לשנות את המראה של מערכת ההפעלה העניקה למשתמשים מימד נוסף של התאמה אישית, ואיפשרה להם לבצע שינויים שהופכים את המכשירים שלהם להרבה יותר מותאמים אישית.

העבודה הטובה נמשכה בשני כיוונים שונים. בוחר הנושא התפתח למנוע הנושא CyanogenMod, אך למרות שנות המאמצים שהושקעו במשאבי עיצוב הנושא, ה-CMTE התיישן כאשר צצו אלטרנטיבות אחרות.


RRO ושכבות

הבסיס לאחת החלופות הונח כאשר תרומת הקוד של סוני בדמות המסגרת החדשה התקשרה שכבת על משאבי זמן ריצה (RRO) התקבל ל-AOSP. מסגרת זו מספקת את היכולת להחליף משאבי יישומים במהלך זמן הריצה (ומכאן השם). "שכבות-על" כשלעצמן היו נוכחות ונתמכות באנדרואיד כבר מ-Gingerbread (ו אולי גם קודם לכן), משמש בעיקר להחלפת משאבים כדי לגרום ליישומים לעבוד על הספציפי הזה התקן. הגישה של סוני ל-RRO כללה שינוי של מנהל הנכסים לקבלת apks שהשתמשו במשאבים שמופו למשאבים מתאימים אחרים הקיימים במכשיר. המשאבים החדשים הללו מה-apk הוצבו אז על גבי משאבי הבסיס בזמן ריצה בלבד, מה שאפשר למערכת לעבוד יחד כאילו המשאבים החדשים האלה תמיד היו חלק ממנה.

מסגרת ה-RRO מוזגה ל-AOSP לפני ש-Lollipop 5.0 פורסמה, אך בגירסאות הבנות הראשונות של 5.0 נשברו חלקים מהמסגרת בגלל שינויים אחרים. תצוגות המקדימות למפתחים של אנדרואיד 6.0 מרשמלו היו הראשונות שהוסיפו במסגרת RRO פונקציונלית אם כי מוגבלת, פותחים את הדלתות להתאמה אישית ממש ברמת אנדרואיד במלאי. אז אלא אם כן יצרן ציוד מקורי ניסה בכוונה לחרוג מאפשרויות הנושא של אנדרואיד, בהחלט רמת העקביות יכולה להישמר בגישה של האופן שבו "נושאים" ייושמו ב דְמוּי אָדָם.

בעוד AOSP השתעשע עם RRO ובחן את הדרך הטובה ביותר לשלב את הכל, צוות מפתחים קרא BitSyko עבדו יחד על מאמץ קולקטיבי בשם "שכבות". שכבות התרחבו על פונקציונליות ה-RRO של המניות ב-Android 5.1 Lollipop כדי לאפשר החלפת משאבים מורכבת יותר ולאפשר יותר שליטה באלמנטים עבור ערכות נושא ממה שאפשר עם RRO במלאי. מכיוון ש-Layers בנויים כלפי מעלה על RRO, יצרני ROM היו צריכים להוסיף קוד נוסף כדי לאפשר פונקציונליות של Layers ב-ROM שלהם, מכיוון שלא כל ערכות הנושא של Layers יעבדו על מלאי RRO ב-Marshmallow.

בינתיים, סוני המשיכה במאמציה שלה לקראת עיצוב אנדרואיד. זה התחיל לעבוד OMS (שירות מנהל שכבות), לקוח לניהול שכבות-על שיאפשר לספקים לשלוט באופן דינמי על סדרי עדיפויות ולאפשר ולנטרל שכבות-על. OMS מתמזג לתוך AOSP ותעשה את דרכו לאנדרואיד O. מפתח מוכר XDA ניקולאשום הצליח לאשר באמצעות מקורותיו כי אנדרואיד O תציג "שכבות-על דינמיות", שלפי ההערכה היא התייחסות ל-OMS.

OMS גרם להתנגשויות עם Layers, שכן באופן מסורתי, פונקציות כאלה היו בשליטת ה-Themer. על מנת להתמודד עם הבעיות שהעלתה OMS כמו גם להרחיב את הפונקציונליות של Layers, BitSyko חברו שוב (ושינו את שמם ל [פרויקט.]) ליצור תַת שִׁכבָה. Substratum הוא לקוח עם פונקציונליות OMS שמנסה ליישב את פונקציונליות השכבות עם OMS, וגם שואל אלמנטים אחרים מפתרונות נושאים אחרים בעבר. שכבות-על לא היו עוד חופפות זו על זו כדי לעצב אלמנטים בודדים, שכן כעת, כל האלמנטים הדרושים הוזרקו לשכבת-על אחת. תכונות כמו קומפילציה במכשיר אפשרו להחיל ערכות נושא ללא צורך באתחול מחדש בין שינויים, מה שהופך אותו באופן משמעותי קל יותר למשתמשי קצה לנסות ערכות נושא ולהתנסות. התשתית נמצאת בפיתוח פעיל מאז הקמתה, ומפרטת את כל התכונות שלה ו פונקציונליות נוספת תהיה מחוץ לתחום המאמר הזה, אז נעבור לנושא האמיתי של זה לְחַבֵּר.


מצע לתוך סונגסטרטום

כפי שהוסבר בסעיף הקודם, Substratum החלה כדרך להרחיב את פונקציונליות ה-OMS של המניות וכן פונקציונליות ה-RRO המניות (באמצעות שכבות). התשתית נועדה לשמש לצד ROM מבוססי AOSP, מכיוון שרוב יצרני OEM אחרים היו מבצעים שינויים סותרים שלא יאפשר ל-Substratum להתקיים יחד עם השינויים שלהם על עור UX ערוך, כמו זה של סמסונג עבור דוגמא.

סמסונג, כשלעצמה, עבדה גם על פתרון נושא לשימוש בכל המכשירים שלה בנוגט. בניגוד לסוני, סמסונג לא הראתה עניין לתרום בחזרה את קוד הנושא ל-AOSP. אבל מכיוון שהפתרון של סמסונג היה בסיסי למדי, AOSP לא באמת הפסיד הרבה. פתרון הנושא של סמסונג שנאפה ב-Touchwiz עשה את הופעתו האמיתית ב-Samsung Galaxy S6, אבל כאמור, הוא היה מוגבל למדי במה שהוא יכול לנסות להשיג. לפני כן, היו ניסויים מוגבלים שהחלו ב-Galaxy Alpha, אם כי רוב רכיבי ממשק המשתמש של המערכת היו מחוץ לתחום שלו. ערכות נושא עשויות לשנות טפטים וסמלים, כמו גם כמה אפליקציות סמסונג במלאי כמו חייגן, אנשי קשר, הודעות ואזור ההודעות, למשל.

כפי שמתברר, מנוע הנושא של סמסונג משתרע RRO כפי שנמצא ב-AOSP. סמסונג גם יצרה מחדש גרסה פנימית משלהם של OMS לאחר הרחבת ה-RRO, כך שהמימושים שלהם של RRO ו-OMS שונים מ-AOSP. אבל באופן מפתיע, בכמות לא גדולה במיוחד - התנהגות חריגה כשלוקחים בחשבון את הייחודיות והמורכבות של Touchwiz. ערכות נושא שמשתמשות בספינות דגל חדשות יותר של סמסונג דיווחו שהם יכולים להתקין שכבות RRO ולהציע להם יישומי נושא של צד שלישי.

זה היה הרמז שצוות [projekt.] היה צריך כדי לבדוק תמיכה רשמית במכשירי סמסונג ב-Substratum. הצוות המיר כמות קטנה של קוד מקטע ה-RRO/Legacy שלהם באפליקציה שלהם, אבל במקום ביקשו שורש וביקשו לאתחל מחדש, הם ירו כוונות ספציפיות כדי שהשכבות יותקנו. לאחר מכן הצוות פעל כדי להבטיח שהיישומים המושפעים מהערכות נושא ייסגרו בכוח ברקע כדי להבטיח רענון מלא של הנכסים בהשקה הבאה.

שאלנו את XDA Recognized Developer ניקולאשום כדי לספק לנו כמה תובנות לגבי האתגרים שעמם התמודד הצוות כשעבד נגד יישום הקוד הסגור של סמסונג של RRO-OMS:

האתגרים שעמדנו בפניהם היו די סתומים ולא ידועים על ידי רבים שאין להם ידע רב הבנת מערכות עיצוב, בין אם קוד פתוח או סגור - לכל דבר יש ניסיון משלו שלב השגיאה. במקרה הזה, בעבודה עם סמסונג, נתקלתי בבעיות רבות, אבל העיקרית שבהן היא כוונות המערכת לא מופעל עבור שכבות-על לאחר השלמת ההתקנה - כגון שימוש במקלטי שידור עם "android.intent.action. PACKAGE_ADDED" - שירות הנושא שולל כל דבר שאינו חלק מחתימת המערכת עם סמסונג ספציפית הרשאת שירות נושאים מקבלת את זה, אז החלק הקשה ביותר הוא הדרכים לעקיפת הבעיה שהיינו צריכים למצוא דרך סְבִיב.

הדרך בה אנו משתמשים ב-Substratum לצד מנוע הנושא של סמסונג היא על ידי שימוש באותה מערכת כמו שהם עושים. הם משתמשים בגרסה שונה מאוד של מערכת Resource Runtime Overlay של סוני, המקוצרת RRO או ידועה כמורשת בקרב משתמשי Substratum. עם זאת, מה ששונה הוא שלערכות נושא של סמסונג יש הרשאה נוספת המסתירה את שכבות העל האלה מהגדרות, כך שלא תוכל להסיר את ההתקנה שלהן אחת אחת באופן ידני. אנו משתמשים באותה מערכת אולם אנו משתמשים ביישום של AOSP/Sony, וזו הסיבה ש-Samsung Themes יכולה לעצב את המסגרת המלאה, בעוד שכבות תשתית אינן יכולות לגעת ביעד מתווך שלא קיים "fwk" - כפי שכולנו יודעים, המסגרת היא רק חבילת "אנדרואיד" שֵׁם.

זה נראה מוזר ש[projekt.] הצליח לעבוד לצד יישום ה-RRO של סמסונג בקלות יחסית. כל מי שעבד אי פעם על מכשירי סמסונג יכול להעיד כמה קשה סמסונג עושה דברים לעתים קרובות. שאלנו עבור כל חסימה ספציפית שהצוות נתקל במהלך הנמל שלו:

אכן ישנו איזשהו מנגנון אבטחה שהשפיע על כמה משתמשים - כאשר שכבות-העל חוזרות בהפעלה. זה נובע מהאופן שבו סמסונג מאתחלת את המכשיר שלהם. מכיוון שכולנו משתמשים בעיקר ב-7.0 ב-TouchWiz/Samsung Experience, אנו משתמשים בשיטה חדשה של "אופטימיזציה של אפליקציות" (תוכל לראות זאת כאשר אתה מעדכן את הטלפון שלך, זה יציג התראה עם סמל אנדרואיד נוגט, האומר שהוא משתדרג ברקע), כך שדרך זו של אופטימיזציה של אפליקציות גם מורידה את היעד חבילות, בסופו של דבר משבשות את תהליך מיפוי ה-id באתחול (עקב חבילת יעד שאינה קיימת) ולפיכך, כמה אנשים חווים פריקת שכבת-על לאחר לְאַתחֵל.

אתה יכול גם לראות את זה קורה עם כמה ערכות נושא של סמסונג, במיוחד הנושא הכהה/שחור של @envy~ - הוא הופך את צבע סרגל הניווט המוגדר כברירת מחדל בתצוגה -> סרגל הניווט לשחור, כאשר צבע ברירת המחדל בפועל הוא לבן. לאחר הגדרתו לשחור, תוכלו לפתוח את המקלדת וסרגל הניווט נשאר שחור. זה יחזור באופן אקראי באתחול מחדש גם במכשירים רבים.

כשהנושאים חוזרים לבולטות, מה התוכניות של Substratum קדימה בענפים הצדדיים כמו Sungstratum?

בדרך קדימה, נמזג אפליקציה קטנה קטנה לתוך התוסף שלנו עבור המשתמשים הנוכחיים שלנו כך שהם יעשו זאת להיות מסוגל לעצור את שירות הנושא של Samsung אם כל ערכות הנושא המותקנות במכשירים שלהם מותקנים מ XDA. אז האנשים שישתמשו בערכות נושא בפורמט סמסונג מ-XDA, תוכלו להשתמש בתוסף כדי למנוע השירות של סמסונג מחזיר אותו לערכת נושא המלאי לאחר כל אתחול מחדש (מכיוון שהוא לא הותקן מחנות סמסונג רשמית). זה ידרוש מפתח מפתח סמסונג חינמי זמין כדי להשיג מהאתר שלהם, אבל זה יהיה מצורף מראש עם הורדת תוסף sungstratum.


עם השינויים האחרונים והמתקרבים ב-AOSP וב-Android O, נראה שלמערכת ההפעלה של גוגל, שהיתה בעבר, תעבור התאמה אישית רבה יותר למשתמש. יצרני OEM מסוימים אפילו מתכננים להיפטר ממשקי המשתמש המותאמים אישית ותוספות ה-UX שלהם לטובת AOSP, ואחרים כמו סמסונג מרחפים קרוב מספיק עם פתרונות עיצוב משלהם. אנו רואים עתיד שבו נושאים ממלאים תפקיד מרכזי בחוויית המשתמש של עוד יותר אנשים - מערכת הפעלה איפה אתה באמת שולט איך המכשיר שלך נראה, איפה האסתטיקה של ממשק המשתמש מותאמת על ידך עבור אתה. ולא נוכל להגיע לעתיד כזה ללא הכוח הקולקטיבי של הקהילה המדהימה הזו, ופרויקטים כמו Substratum.


בדוק את שילוב התשתית עבור סמסונג נוגט בפורומי התשתית שלנו!תשתית ב-GitHub