אנדרואיד מרכזי

האם כל האנדרואידים נוצרו שווים? תוכנה עושה הבדל גדול

protection click fraud

דיברנו על איך החומרה בתוך הטלפון שלך יכולה לעשות את ההבדל בכל הנוגע לחוויית המשתמש. עכשיו הגיע הזמן לדבר על התוכנה.

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

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

מה זה אנדרואיד

זה אנדרואיד
קרדיט תמונה: פרויקט קוד פתוח של אנדרואיד.

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

בעוד הכל אתה צוֹרֶך כדי ליצור תמונת תוכנה ניתנת לאתחול כלולה בקוד המקור של אנדרואיד, אינך יכול ליצור תמונה אחת ומתקין שניתן להשתמש בהם עבור כל החומרה. יש להצהיר על תמיכה בחומרה הספציפית לפני שתנסה לבנות אותה למשהו שיפעל בפועל. ברגע שזה נעשה אתה יכול לבנות מערכת הפעלה Linux פועלת ולהתקין אותה ליעד המיועד.

עם זאת, לפני שתוכל לשלוח משהו, תצטרך לצבוט ולסובב הרבה ממנו - לזה אנחנו מתכוונים כשאנחנו אומרים אופטימיזציה.

מערכת ההפעלה

AT&T Galaxy S7

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

כל דגם אנדרואיד מריץ תוכנה אחרת.

אין שני דגמי אנדרואיד זהים. אפילו טלפונים מאותו יצרן עם אותו שם יכולים להפעיל תוכנות שונות באזורים שונים (או עבור לקוחות שונים - חברת הטלפונים שלך), והם עושים זאת. וזה הגיוני. אין לנו ג'יגה-בייט של שטח אחסון אז תמיכה בכל דגם אחר של סמסונג גלקסי S7 - יש יותר מ-30 גרסאות של אותו טלפון אחד - מובנה בתוכנה אחת, זה לא מעשי. זו הסיבה, למשל, שאינך יכול להוריד את עדכון Verizon עבור ה-S7 ולהשתמש בו בדגם AT&T שלך. אבל מחוץ לשינויים הקטנים שנעשו עבור SKUs שונים מאותו דגם, תוכנת הבסיס המשמשת בכל Galaxy S7 (עם ה-CPU של Qualcomm) זהה.

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

מהי אופטימיזציה?

קוד מקור

אופטימיזציה של תוכנה היא רע הכרחי. זה לוקח זמן וקשה. אבל בלי זה, חווית המשתמש תפגע. גוגל מבצעת אופטימיזציה מתמדת של קוד אנדרואיד ברמה בלתי תלויה בחומרה. טכניקות כמו פתיחת לולאה, שימוש בפחות קריאות פונקציה ושגרה יעילה יותר בזיכרון הן דברים שמרוויחים כֹּל מכשיר המריץ אנדרואיד. אבל סמסונג (בדוגמה שלנו) צריכה לקדם את אלה עבור החומרה שבה היא משתמשת כדי להקטין את אורך נתיב ההוראות הכולל (מספר מחזורי המעבד הנדרשים יורד עם פחות הוראות) ומפחית את טביעת הרגל של הזיכרון, כמו גם לבנות על דברים כמו תזמון ואופטימיזציה של מטמון עבור הדגם הספציפי שלהם של מעבד. כל זאת תוך הוספת תכונות ופונקציות נוספות למשתמש ושמירה על תאימות עם Google Play. באופן כללי, התהליך הולך בערך כך:

  • החליטו אילו תכונות הלקוחות שלכם רוצים. לאחר מכן זרוק 80% מהם והחליט אילו תכונות אפשריות.
  • הגדר את החומרה הספציפית שתשמש.
  • בנה גרסת אתחול של מערכת ההפעלה עם התכונות הנדרשות שכולן פועלות.
  • מצאו את צווארי הבקבוק, נסו לתקן אותם, שטפו וחזרו.

קשה למצוא את צווארי הבקבוק האלה. לתקן אותם זה אפילו יותר קשה. ויש כמה דרכים להתמודד עם הכל. דרך אחת היא לא להוסיף תכונות למערכת ההפעלה שיוצרות תקורה, מה שנותן לך פחות דברים שיכולים להשתבש. זה המקום שבו ה-Moto G 2015 ברח. זה היה טלפון בסיסי מאוד, עם תוכנה בסיסית מאוד. לאחר שצוות מוכשר ביצע אופטימיזציה של התוכנה שנשלחה בטלפון, זו הייתה אחת מחוויות האנדרואיד הזורמות ביותר של השנה - עד שהוספת קומץ אפליקציות מ-Google Play לתערובת. אז היה ברור שהחומרה בפנים לא מסוגלת לעשות הרבה דברים בבת אחת כמו טלפונים יקרים יותר. החומרה שבה נעשה שימוש הייתה זולה כך שהטלפון יכול להיות זול, ואופטימיזציית התוכנה רק במערכת ההפעלה הייתה מצוינת.

דרך שנייה היא להמשיך לייעל את הפלטפורמה שלך מבלי להסיר תכונות חשובות כלשהן, ולתת לחומרה טובה יותר לעזור למזער את ההשפעה. ה-Galaxy S7 הוא תוצר של כל פיסת עבודה שצוות פיתוח התוכנה של סמסונג עשה מאז הוצג Galaxy S המקורי, הפועל על גבי חומרה חזקה מספיק כדי לספק אותה בצורה חלקה וידידותית חֲבִילָה. התוצאה היא טלפון שזוכה לשבחים אוניברסליים הן מהתעשייה והן מהמשתמשים כאחד. צעדים שגויים עם ניהול זיכרון ואיטיות שראינו למעלה וכולל את ה-Galaxy S6 כמעט ונעלמו, ובין אם אתה אוהב או שונא את המוצר הסופי, אתה לא יכול להגיד שזה לא אחד ממכשירי האנדרואיד הטובים ביותר שאתה יכול לקנות היום בכל מה שקשור לביצועים.

ניהול זיכרון

ניהול זיכרון RAM

אנחנו לא יכולים להתרחק מהנושא הזה בלי להתייחס לניהול זיכרון. זה אחד מהמונחים האלה שמסתובבים בגלל שאנשים מסוימים רואים בעיה כלשהי כשהם עושים דברים מסוימים, והעגלה מתחילה להתגלגל. עם זאת, זו יכולה (והיה) בעיה אמיתית.

מערכת ההפעלה מחליטה מתי להרוג (כמו בסגירה ולא לרוץ ברקע) יישומים ותהליכים המאוחסנים ב-RAM. כתיבה וקריאה מ-RAM היא מהירה - הרבה יותר מהירה מכתיבה וקריאה מאחסון. אבל זה מוגבל. אפילו טלפון עם 6GB של זיכרון RAM עדיין צריך להגדיר פרמטרים לביצועים הטובים ביותר. ולא כל זיכרון ה-RAM המותקן בתוך הטלפון שלך זמין לשימוש מערכת ההפעלה. חלקים שמורים לריצת הליבה, ל-GPU לשימוש ולרדיו הסלולרי. בזמן האתחול, נפוץ לראות לפחות 512MB (או יותר) של זיכרון RAM בשימוש ואינו זמין. זה דבר טוב - הפונקציות האלה זקוקות לגישה "מיידית" למעבד.

מה שנשאר מנוהל בצורה מדורגת. לאפליקציות ותהליכים מסוימים יש עדיפות גבוהה יותר מאחרים, והם יוקצו לרמה גבוהה יותר מאשר דברים אחרים, לפעמים אופציונליים, שרצים ברקע. כאשר הכמות הכוללת של זיכרון RAM פנוי מתכווצת לרמה מוגדרת מראש, תהליכים נהרגים לפי עדיפות. המטרה היא להשאיר כמה שיותר דברים בחיים ברקע תוך השארת מספיק מקום להתחיל דברים חדשים. בזמן שהדברים החדשים האלה מתחילים, זיכרון ה-RAM נשטף עד שיש להם מספיק לטעון ו נשמר חיץ פנוי. זו הסיבה שאתה שומע אנשים אומרים "זיכרון RAM חינם הוא זיכרון RAM מבוזבז" כשמדברים על לינוקס - אנדרואיד פועל על גבי ליבת לינוקס.

כוונון ניהול זיכרון RAM הוא תהליך ניסוי וטעייה. ואז עוד ניסוי וטעייה. זה קשה.

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

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

כל זה ניתן לתיקון, בתנאי שיש מספיק זיכרון RAM מותקן. זהו חלק נוסף מתהליך האופטימיזציה, וקשה לבצע אותו נכון.

כל האנדרואידים לא נוצרו שווים

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

instagram story viewer