האנדרויד בג'ונגל הסלולרי

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

8:00
  /  
02.11.2010
  
מאת: אריה אושרוב


בראשית ברא אלוהים את האייפון ויהי אור

כידוע בקיץ 2007 הושק מכשיר האייפון הראשון בעולם. כולנו היום יודעים שהמכשיר הזה בעצם הגדיר והמציא מחדש את מהותו של מכשיר סמארטפון והגדיר מהי חווית משתמש. על אף היתרונות המוחלטים שהיו למכשיר האייפון הראשון (והשני) היו להם גם מספר נקודות תורפה. רובם היו קשורים למודל הגן הסגור שחברת אפל יישמה על מכשירי האייפון שלה. מודל שאומר, "אני אפל..ואני היחידה שאבנה את המכשיר, היחידה שאבנה את מערכת ההפעלה למכשיר והיחידה שאחליט מה ירוץ על המערכת שלי". אפל מצד אחד הצליחה לייצר מכשיר ומערכת הפעלה שסחפה אחריה, בצדק, מיליונים ,בעיקר בגלל החוייה, פורצת הדרך.  אבל מצד שני מערכת ההפעלה שלהם הייתה סגורה ומוגבלת יחסית, לא ניתן היה לבצע בה קוסטומיזצייה, המכשירים הראשונים היו מוגבלים מאוד ביכולות החומרה שלהם (תמיכה רק בדור 2, מצלמה חלשה מאוד וכו) ומנגנון מפקח שמחליט למי מותר להיכנס לגן הסגור ומי לא (ראו ערך Google Voice ו Adobe Flash)….לרווח הלא צר כל כך שנוצר, נכנסה בדיוק גוגל עם מערכת הפעלה חדשה למכשירי מובייל, מערכת שהייתה כמעט ההפך הגמור מאפל ומהמערכת של אפל (iOS). אני כמובן מדבר על מערכת האנדרואיד

היסטוריה

ביולי 2005 רכשה גוגל את חברת אנדרואיד שפיתחה פלטפורמה לטלפונים ניידים המבוסס על ליבת לינוקס. מאז ועד סוף 2007 גוגל עבדה על בניית מערכת הפעלה המבוססת על מודל הקוד הפתוח שמרכזה הוא הליבה של לינוקס (קרנל). התיכנון היה לייצר מערכת למכשירי מובייל חזקים בעלי מסך מגע. מערכת אשר תספק יכולות מתקדמות מאוד שלא היו קיימות עדיין בשוק הזה, יכולות שמבוססות על גירסת ה OS של לינוקס (הליבה של לינוקס, הקרנל) שכבר הוכיחו את עוצמתן מזה כמעט עשור. בנוסף לכך, גוגל החליטה לייצר מערכת פתוחה שהקוד שלה נגיש לכולם. המטרה שלהם הייתה לסחוף את השוק (כמעט את כל החברות בשוק) ולא לעשות כסף על האנדרואיד עצמו, אלא על המסביב (עוד על כך בהמשך). בסוף שנת 2007 גוגל הכריזה על הגירסה הראשונה של האנדרואיד במקביל הוקמה ברית שנקראת Open Handset Alliance ומטרת הברית הזאת (לפחות בהצהרות) הייתה לפתח סטנדרטים פתוחים עבור התקנים ניידים. בברית הזאת היו מספר חברות ענק כגול TI, Broadcom, HTC, אינטל, מוטורולה, Nvidia , Qualcomm, סמסונג, Sprint ,  T-Mobile. שנה מאוחר יותר הצטרפו לקבוצה הזאת עוד חברות ענק כגון סוני אריקסון, טושיבה, ו Vodafone

באוקטובר 2008 גוגל שיחררה רשמית את הגירסה הראשונה של האנדרואיד גירסה 1.5 (שנקראת Cupcake)

מאז ועד היום

למרות שכבר בתחילת 2008 היו מספר מכשירי פרוטוטייפ שהריצו אנדרואיד, עדיין מכשיר האנדרואיד הראשון שיצא לעולם הוא ה HTC Dream שהושק ברשת T-Mobile ונקרא שםT-Mobile G1 (אגב, ממש בימים אלה T-Mobile משיקה את מכשיר ה T-Mobile G2). המכשיר השתחרר לחנויות בחודש אוקטובר 2008 (קצת יותר משנה אחרי שיחרור האייפון הראשון וכמה חודשים אחרי מכשיר האייפון (3G וזכה להצלחה רבה. ל G1 היה מפרט מרשים לתקופתו, הוא היה בעל מסך 3.2 אינצ´, שכולל מקלדת מלאה, מעבד בתדר של  528MHz, מצלמה 3MP ותמך ברשת דור 3. ה G1 הריץ בסופו של דבר גירסת אנדרואיד 1.5. כעבור חצי שנה מרגע ההשקה T-Mobile הכריזה שהיא מכרה יותר ממיליון מכשירי  G1בארה"ב. המכשיר הזה בעצם התחיל את המהפכה שהגדירה את שוק הסמארטפונים מחדש. חברת HTC דרך T-Mobile הוכיחה שניתן להעמיד אלטרנטיבה ראויה למכשירי האייפון, אלטרנטיבה שהשוק מקבל. הצמיחה של האנדרואיד היא פשוט מטאורית ואם בשנת 2008 הושק רק מכשיר אנדרואיד אחד לעולם אז בשנת 2009 הושקו כבר כמעט 20 מכשירים חדשים שהמוכרים ביניהם הם הסמסונג גלקסי, HTC Magic ו Hero ובשנת 2010 הושקו כבר מעל 50 מכשירים חדשים (והשנה עדיין לא נגמרה) וזה עוד בלי להתייחס לכל מכשירי הטאבלט שממש מתפוצצים עלינו בימים אלה, פשוט מגוון עצום של מכשירים מכל סוג וכל צורה.

 

אז: מכשיר האנדרויד הראשון – Dream

 

 


היום: הגלאקסי טאב

 

הסיבות להצלחה

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

  • הגורם הראשון הם כל יצרני המכשירים המובילים בעולם (למעט החברות המתחרות כמו אפל, מיקרוסופט, נוקיה, RIM וכו) שדוחפות את הפלטפורמה הזאת בכל הכוח ונמצאות מאוד חזק ביצור מכשירי אנרואיד חדשים ובשיתוף פעולה צמוד עם גוגל. החברות המוכרות כיום בתחום הזה הן: מוטורולה, HTC, סמסונג, LG, Acer, דל, Sony Ericsson.
  • הגורם השני הן המפעילות הגדולות (ה Carrier) שאימצו את מכשירים ודוחפים אותן ללקוחות בחבילות מאוד אטרקטיביות. המפעילות הגדולות בתחום הזה הן: T-Mobile, AT&T, Verizon, Sprint, ,Vodafone Orange וכו (כדוגמה אני אתן את הטאבלט החדש של סמסונג-הגלקסי טאב שהולך להיות מושק בקרוב בארה"ב ע"י 4 המפעילות הגדולות במדינה בו זמנית)

 

קצת על גירסאות ופרגמנטציה


מאז ההשקה ועד היום גוגל שיחררה לא פחות מ 4 גירסאות אנדרואיד חדשות ועוד שתיים בדרך (אני עוד מתייחס רק לגירסאות המרכזיות):

  • גירסה 1.5 (נקראת Cupcake) הושקה רשמית באפריל 2009
  • גירסה 1.6 (נקראת Donut) הושקה בספטמבר 2009
  • גירסה 2.1 (נקראת Eclair) הושקה בינואר 2010 (בדרך עוד יצאה גירסה 2.0)
  • גירסה 2.2 (נקראת FroYo) הושקה במאי 2010
  • עד סוף השנה תשתחרר גירסה חדשה שנקראת Gingerbread (מספרה יהיה 2.5 או 3.0)
  • ברבעון הראשון של שנה הבאה תשתחרר גירסה שנקראת Honeycomb (מספרה יהיה 3.0 או 3.5)

מדהים!
בקצת יותר משנה גוגל שיחררה 4 גירסאות חדשות לאנדרואיד שלכל אחת מהן יש תכונות ויכולות שמעצימות את הגירסה הקודמת (לדוגמה, בין היתר בגירסה 2.2 מעבר לקרנל חדש יש תמיכה באדובי פלאש, יש שיפור משמעותי מאוד בביצועי המערכת (בעקבות הוספת מנגנון JIT), יש תמיכה מובנית ב WiF hotspot ועוד)… אבל אלייה וקוץ בה. כל הגירסאות האלה וכל מגוון האינסופי של מכשירי האנדרואיד שמגיעים בכל מין, גודל וצורה (ממהירות מעבד, דרך תמיכה במקלדת מובנית, דרך תמיכה ב GPU, עד רזולוציות שונות ומשונות) גורמים לבעיות תאימות לא פשוטות:

  • ראשית, באחריות יצרני המכשירים לבצע שידרוג לגירסה חדשה יותר ולפעמים אין להם את המוטיבציה לעשות זאת (ראו ערך סמסונג גלקסי) וזה גורם למכשיר "להיתקע" עם מערכת ישנה ולמשתמש נשאר רק לסמוך על קהילת מפתחי הקוד הפתוח שיעשו את העבודה של היצרנים ולבנות תאימות לגירסאות חדשות.
  • בעייה נוספת היא שלכל חברה המייצרת מכשירים יש ממשק משתמש (UI) היושב מעל מערכת האנדרואיד ובעצם מוטמע ע"י החברה כחלק מגירסת המכשיר (הממשק של HTC נקרא Sense UI, הממשק של סמסונג נקרא TouchWiz והממשק של מוטורולה נקרא MotoBlur  וכו), הממשקים האלה אומנם מרשימים מאוד אבל הם יוצרים בעייה כפולה, הראשונה היא זמן, כלומר מרגע שגירסת אנדרואיד חדשה משתחררת עד הרגע שהיצרנית משחררת גירסה שלה למכשיר, עובר הרבה מאוד זמן (ועל זה עוד צריך להוסיף את הזמן שהמפעיל משחרר את הגירסה הזאת ללקוחות שלו). האיחור הזה, שיכול להימשך חודשים רבים, יוצר מירמור אצל המשתמש (לדוגמה רק עכשיו מכשיר ה Droid X של מוטורולה קיבל גירסה רשמית של פרויו). הבעייה השנייה היא שוב תאימות, הגירסאות האלה שהחברות מייצרות הן כמעט תת-גירסה של אנדרואיד וזה מייצר לאוכלוסיית המפתחים בעייה קשה של התאמת האפליקציות שלהם לכל מכשיר ומכשיר.
  • כהמשך לדברים שנרשמו בסוף הפיסקה הקודמת הבעייה החמורה ביותר למפתחי האפליקציות היא הצורך לבצע תאימות למגוון גדול של מכשירים שלכל אחד מהם יש גירסת אנדרואיד שונה, רזולוציה שונה ומפרט חומרתי שונה לגמרי וזה לעיתים יכול להיות סיוט לא קטן לבית תוכנה שמעוניין שהאפליקצייה שלו תרוץ על כמה שיותר מכשירים כדי להגיע לכמה שיותר לקוחות. ראו תמונה המציגה את תפוצת גירסאות אנדרואיד בעולם כיום ותבינו עד כמה בעיתיות יש כאן (תזכרו שלכל גירסת אנדרואיד יש ספריית פיתוח משלה)

 


ממשק ה Touch

 

 


התפלגות גרסאות האנדרויד בעולם

 

    

מודל הקוד פתוח

יש שלוש שאלות שאני נתקל בהן כל הזמן הקשורות לאנדרואיד:

  • האם האנדרואיד הוא באמת מערכת פתוחה?
  • האם האנדרואיד = לינוקס?
  • איזה מנגנון ריבוי משימות "טוב יותר"? זה של האייפון (iOS 4) או זה של האנדרואיד.

אני אנסה להתייחס לשתי השאלות הראשונות (השלישית אולי תקבל בעתיד מאמר משלה, קצת יותר טכני)

כמו שנכתב, גוגל החליטו לממש מערכת הפעלה פתוחה (זה שהם החליטו עדיין לא מחייב הצלחה), ואכן כמעט כל הקוד של מערכת האנדרואיד נכתב ברשיון הקוד הפתוח (צריך לזכור שאפילו שהמערכת נבנתה מעל לינוקס, עדיין לא היה הכרח לשחרר את קוד האנדרואיד לקהילה ואפשר היה להשאיר אותו סגור כמעט כמו iOS של אפל והPhone 7  Windows החדש של מיקרוסופט) ומשכך, כל אחד יכול לקחת את הקוד, לשנות אותו, להוסיף עליו יכולות ולייצר גירסאות שונות ומשונות על פי גחמתו. חשוב לא פחות הוא שמכיוון שהקוד הוא חופשי, אין צורך לשלם לגוגל תמלוגים כלשהם על שימוש במערכת הזאת (בשונה נניח ממערכות מיקרוסופט). גוגל הלכו אף רחוק מכך, וכתבו את רוב רכיבי האנדרואיד תחת רשיון קוד פתוח שנקרא רישיון אפאצ´י. בגסות אני אומר שהמשמעות של הרשיון הזה היא שכל אחד יכול לקחת את קוד המקור, לשכתב אותו מחדש ולייצר גירסה קניינית סגורה (אין חובה לפרסם את הקוד ברבים) ויתרה מכך הוא יכול אפילו למכור מכשיר אותו הוא ייצר, המריץ גירסה זאת כאילו היא שלו (זה בשונה מרשיון הקוד הפתוח המוכר יותר שנקרא גנו (לינוקס קרנל כתוב תחת הרשיון הזה), ברשיון ה-גנו (GNU) אתה חייב לפרסם את הקוד ששיכתבת תחת אותו רשיון הקוד הפתוח ולכן גם אסור לך למכור אותו (גם לגנו יש מספר גירסאות אבל זה נכון לכולם)). הסיבה למודל הפתוח כל כך בו גוגל הלכה הוא די פשוט, מטרתם הייתה למשוך כמה שיותר חברות חומרה (בעיקר מתחום הטלפוניה) להשתמש במערכת החזקה והחינמית הזאת. להשתמש במערכת הזאת שהפוטניצאל שלה לחברות החומרה האלה הוא אדיר. גוגל רוצים להשתלט על העולם הזה שנקרא מערכות הפעלה למכשירי סמארטפון והדרך שלהם לעשות זאת היא לייצר סוכריה לחברות המובילות, שפשוט אי אפשר לוותר עלייה ולכן "מחוסר ברירה" יסחוף אותן פנימה.

אני מניח שבשלב הזה חלקכם שואלים "אם המערכת לא עולה כסף, אז מאיפה לכל הרוחות גוגל מתכננים להרויח?!" אני אשאיר את השאלה הזאת קצת פתוחה, אבל כן אספר לכם שמנכ"ל גוגל אמר באחד הכנסים "תחשבו על זה שיהיו 1 מיליארד מכשירי אנדרואיד בעולם, עכשיו כל מה שאנחנו בגוגל צריכים לעשות זה סה"כ לקבל 10 דולר בשנה מכל בעל מכשיר כזה שמריץ אנדרואיד כדי שנרוויח ´לא רע´ מהמערכת הזאת"

אז האם האנדרואיד באמת פתוח?

העובדות היבשות אומרות שכן…היום אתה יכול לייצר מכשיר כלשהו (נניח טלויזיה) ולהכניס לתוך המכשיר שלך את האנדרואיד בלי כל אישור מגוגל ובלי כל צורך לשאול ולקבל קוד כלשהו מהם. דוגמה טובה לכך היא חברה סקנדינבית שנקראת People of Lava שרק עכשיו בתערוכת IFA בגרמניה הציגה מכשיר טלויזייה שמכיל בתוכו אנדרואיד כמעט מלא (גוגל בלשון המעטה  לא מרוצים מכך, וזה בעקבות שת"פ שלהם עם חברת סוני בכל נושא ה Google TV. סוני מפרסמת מזה תקופה את העובדה שמכשיר הטלויזייה האינטרנטי הראשון שיתמוך באנדרואיד יהיה שלהם (Google TV)…אבל ככה, כמעט משום מקום, הגיעה איזו חברה קטנה ופירסמה שהיא-היא תוציא את מסך האנדרואיד הראשון)….רשמתי שהמכשיר יכיל אנדרואיד כמעט מלא ולא מלא לגמרי והסיבה לכך נובעת מהעובדה שלגוגל יש מספר רכיבים קניינים באנדרואיד (הקוד שלהם הוא סגור ויש צורך לקבל אישור מגוגל להשתמש בהם). הרכיב המרכזי ביותר הוא ה Google Market, שזאת בעצם אותה החנות שדרכה כמעט כולם מורידים אפליקציות למכשירים שלהם. חוסר תמיכה במרקט מחייב את היצרניות "הלא מאושרות" להמציא תחליף לחנות הזאת, הן אומנם עושות את זה, אבל זה לעולם לא יהיה זהה ויוכל להתחרות בכמות, בפשטות ובאיכות של חנות הגוגל (יש עוד מספר תוכנות סגורות כגון ה Google Earth, Map, Gmail וכו אבל המרקט הוא "הבעייתי" מכולם)…ראו נספח המציג דיון נוקב וסוער שנערך בנוגע להאם גוגל באמת פתחה את האנדראויד…

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

האם אנדרואיד=לינוקס?

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

לינוקס זאת מערכת הפעלה שמבוססת על פרוייקט מפורסם שנכתב עוד בשנות ה 80 ונקרא גנו-GNU, פרוייקט הגנו יצר בעצם מערכת הפעלה "דמוית יוניקס" שלמה, שרכיבייה היו מבוססים רק מתוכנות חופשיות (אגב, ר"ת של GNU הן GNU´s Not Unix). רכיבי פרוייקט ה GNU והרמה העליונה של הלינוקס שסופק על ידי מנהל החלונות X (זאת שכבה חלונאית המממשת את הממשק, ה GUI (graphical user interface) בדומה קצת לממשק חלונות ממערכות Windows) היה קיים, אבל חלקי הרמה התחתונה, שהייתה מורכבת מהליבה (קרנל) הייתה ברובה חסרה. שיכבה זאת שמכילה דרייברים ושכבות ניהול המערכת. בגסות אני אספר שהקרנל זאת השכבה המקשרת בין חומרת המכשיר (מחשב) לבין התוכנה שזה בעצם השכבה הפרזנטטיבית, האפליקציות, ראו תמונה למטה. ליבת הלינוקס (לינוקס קרנל) נכתבה בתחילת שנות ה 90 ע"י בחור בשם לינוס טורבאלדס, בסופו של דבר הקרנל אותו הוא כתב, הופץ ברשיון הקוד פתוח (רשיון GNU-GPLv2). קוד המקור של הלינוקס קרנל זמין לשימוש, לשינוי ולהפצה בחינם לכל אחד (ראו תמונה למטה המציגה "בפשטות" את מיפוי רכיבי הלינוקס קרנל). לסיכום, כאשר מדברים על לינוקס צריך להתייחס ל 2 רכיבים:
1. הליבה (לינוקס הקרנל)
2. השיכבה האפליקטיבית (נהוג לקרוא לשיכבה הזאת גם GNU)

אז למה האנדרואיד לא שווה לינוקס?!
זה מכיוון שגוגל אומנם ביססו את האנדרואיד מעל שיכבת הליבה, הלינוקס קרנל, אבל שיכתבו מחדש את השיכבה "האפליקטיבית" (זה בעצם האנדרואיד). אפשר לומר שהמרכז של האנדרואיד מבוסס בעצם על ספריות ואפליקציות הכתובות בשפת Java ומנוהלות בזמן ריצה ע"י virtual machine שנקרא Dalvik (כדי לא לסבך יותר מידי אני לא אפרט יותר). צריך להדגיש שעצם ההחלטה להתבסס על Dalvik VM ולא על VM סטנדרטי של JAVA נובע מהרצון של גוגל לעשות אופטימיזצייה לאפליקציות שרצות על מכשירי מובייל שהם הרי מוגבלים במשאבי מערכת לעומת מחשבים אישים (שוב בלי לפרט יותר מידי אני אומר שכיום יש ויכוח לא קטן האם באמת ה Dalvik VM עדיף או לא לשימוש בעולם המובייל (אם מישהו רוצה להיכנס לעובי הקורה בהבדלים יכול לחפש חומר על VM המבוסס register-based ו  (stack-based). בנוסף לחוסר התמיכה ב VM סטנדרטים של Java, לאנדרואיד יש גם חוסר תמיכה ב Native C (אפליקציות שנכתבו בשפה הזאת) וכל זה בעצם לא מאפשר לבצע פורטינג פשוט של אפליקציות שנכתבו מלינוקס לעולם האנדרואיד. לכן אפשר בפשטות להבין שאנדרואיד הוא ממש לא עוד הפצה של לינוקס אלא מערכת הפעלה חדשה שנכתבה ברשיון קוד פתוח שהליבה שלו מבוססת על ליבת לינוקס ותו לא.

חייבים לציין את התביעה השנויה במחלוקת שכרגע עומדת של חברת אורקל כנגד גוגל בגין הפרת פטנטים הקשורים לאותו VM מפורסם בו הם משתמשים, ה Dalvik VM (אורקל לפני שנה וחצי רכשו את חברת סאן שהיא "הבעלים" של שפת Java)

 

התצורה של Kernel

תראו כמה"פשוט" מיפוי רכיבי הלינוקס קרנל 

קצת ארכיטקטורה של מערכת האנדרואיד

מערכת אנדרואיד בנויה במספר שכבות-ראו תמונה למטה כאשר רוב אנשי הפיתוח (מפתחי אפליקציות צד ג´) מתעסקים בשכבות הגבוהות ביותר וזה דרוש להם לצורך  ייצור התוכנות אבל מכיוון שקוד האנדרואיד הוא פתוח ונגיש לכולם יש זה מאפשר לקהילה לבצע שינויים, עידכונים, תיקונים לכלל המערכת (לדוגמה הוספת תמיכה של צילום וידאו של 720p ו 820.11n במכשירים אשר במקור לא תמכו בכך, לדוגמה לקחת מערכת של מכשיר א´ ולהריץ אותה על מכשיר ב´ (פורטינג))…
הנה השכבות ותאור טכני (לא מידי אני מקווה) של כל אחת מהן:

השכבה הנמוכה ביותר, זאת שנמצאת מעל החומרה, נקראת Linux Kernel:
השכבה הזאת מבוססת על מערכת הפעלה לינוקס (גרסה 2.6). בשכבה הזאת נמצאים כל האלמנטים שמטפלים ב: ניהול הזיכרון, דרייברים: שמדברים עם רכיבי החומרה, ניהול תהליכים (process, multitasking), ניהול הרשת (network stack) וכו

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

השכבה השלישית המקבילה לשכבה השנייה (ראו תרשים) זאת שכבת Android Runtime:
שכבה זאת מכליה שני רכיבים מרכזים:
-Dalvik virtual machine (המפורסם) שתפקידו הוא לתרגם את הקוד המקומפל בשפת java  לשפת מכונה בזמן אמת (זה לא מדויק לגמרי אבל מספיק להסבר). ברכיב הזה נעשה שינוי במערכת האנדרואיד החדשה, ה FroYo (שימוש ב JIT חדש) דבר שהביא לשיפור עצום בביצועי המערכת
-Core Libraries אלה ספריות הנחוצות לכל תוכנה שנכתבת בשפת java (כמעט כל האפליקציות במערכת שאנחנו משתמשים בהן)

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

השכבה האחרונה, החמישית, נקראת שכבת האפליקציות (Applications):
זאת השכבה בה נמצאים רוב האפליקציות במערכת. כולל כל התוכנות של גוגל שמגיעות עם המכשיר (תוכנות מייל, לוח שנה, מפות, מרקט, דפדפן וכו) וכמובן גם כל התוכנות צד שלישי שאנחנו מורדים כל הזמן מהמרקט. שפת התכנות ביצירת אפליקציית בשכבה זאת היא שפת java (מי שאחראי לתרגם את הקוד ה VM הזה לשפת מערכת הוא ה Dalvik VM שתיארתי בשכבה שלוש)…לכל המתכנתים אני אציין שרק שפת התכנות היא java ותו לא. כלמור ה VM שנכתב לאנדרואיד הוא לא VM סטנדרטי של Java.


ארכיטקטורת מערכת האנדרויד

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

הכל התחיל כאשר אחת הכתבים של Engadget  בשם Nilay Patel חיבר מאמר באתר שכותרתו היא:

 Google can´t keep implicitly condoning Android hacking unless it requires manufacturers to provide restore tools for every device

במאמר הוא מגולל סיפור אישי בו הוא ניסה לשדרג את גירסת האנדרואיד במכשיר הדרויד X שלו לגירסת פרויו, אך מכיוון שהגירסה הייתה אחת שדלפה לרשת ולא הייתה רשמית של חברת מוטורולה, הוא לא הצליח לשדרג את הגירסה שדלפה, אותה הוא התקין, לגירסה הרשמית שמוטורלה שיחררו כעבור מספר ימים (למוטורלה יש מנגנון דרקוני משהו שנקרא eFuse ומונע יכולת לשדרג מגירסה לא רשמית של החברה).
כדי לקצר את הסיפור אני אומר שאחרי המון נסיונות של הצליחו ואחרי שהוא כבר חשב שהמכשיר שלו הפך ללבנה ואין לו שום דרך להתקין גירסת מוטורולה רשמית (stock rom) במכשיר שלו, "הקהילה" מצאה לו פתרון שבסופו של דבר עזר, אבל פשוט זה לא היה. ראו בתמונה 8 מה הוא היה צריך לעשות למכשיר שלו על מנת לשנמך חזרה לגירסה אנדרואיד 2.1. דעתו בנוגע לאנדרואיד היא שגוגל חייבים להיות אחרים על המערכת שלהם ולא ייתכן שכל חברה יצרנית וספק סלולארי ייקח את המערכת של גוגל ויעשה שם מה שבא לו. הכעס שלו נובע מכך שמוטורלה לא שיחררה שום גירסת אנדרואיד רשמית, אשר במקרה של בעייה, הלקוח יוכל  לחזור ולהתקין את הגירסה הזאת. לדעתו, לא ייתכן שפעולת שידרוג פשוטה שלא הצליחה, תגרום למכשיר לההפך לעציץ. הוא ממשיל את זה למצב כאילו רכשתם מחשב שמריץ מערכת ההפעלה חלונות אבל את ה CD של חלונות לא קיבלתם ולכן במידה ותרצו יום אחד להתקין מחדש את מערכת ההפעלה על המחשב שלכם, לא תוכלו לעשות זאת עקב זה שהיצרן לא סיפק לכם את CD ההתקנה.
הוא טוען שהדרך של גוגל לשלוט ולכפות "סטנדרט" על היצרנים והמפעילים, במערכת שהיא סה"כ פתוחה ולכן לא נדרש שום אישור מגוגל לצורך השימוש בה, הוא יצירת מנגנון ברור לקבלת אישור ליצרנים להשתמש בשירות ה Google Market הקנייני שלהם, המנגנון הזה יאשר שימוש ב- Market רק למי שיעמוד בדרישות. לדוגמא, החובה להפיץ ברשת גירסאות רשמיות (stock). רק לציין שגם כיום גוגל לא נותנת אישור לכל יצרניות החומרה להשתמש במרקט שלהם, אבל הם לעולם לא פירסמו את הדרישות בהן היצרן צריך לעמוד על מנת לקבל Market certificate. באופן חצי רשמי גוגל טוענים שהסיבה לחוסר קבלת אישור נובעת מכך שהחומרה של המכשיר לא מתאימה לאפליקציות אנדרואיד. הכוונה היא בעיקר לרזולוציה גבוה מידי אשר לא תציג את האפליקציות בצורה טובה על המסך (בעייה שקיימת בעיקר בטאבלטים). במציאות העניין כנראה יותר מורכב מכיוון שקיימים לא מעט מכשירים שהמפרט שלהם דווקא מתאים, אך עדיין גוגל לא אישרו להם את השימוש במרקט (לדוגמה הנגנים בגדלים הקטנים של חברת Archos)

את הצד השני של המשוואה בפודקאסט (שאגב הם לא קוראים לזה פודקאסט עקב חוסר הרצון שלהם להשתמש במילה פוד) הציג לא אחר מאשר האיש שכיום הכי מזוהה בעולם הקוד הפתוח של האנדרויד Steve Kondik. רובכם מכירים אותו בניק שלו, סינוג´ן (Cyanogen). למי שלא מכיר אז סטיב הוא מפתח מבריק בכל רמ"ח אבריו וכיום הוא בעצם יצרן הרומים (גירסאות אנדרואיד משודרגות שנבנות ע"י הקהילה) המפורסם ביותר בעולם האנדרואיד (אין כמעט מכשיר שהוא לא אחראי על ייצור רום בשבילו). סטיב טוען שהמהות של המושג מערכת פתוחה היא שכל אחד יכול לקחת אותה ולעשות בה ככל העולה על רוחו. אם גוגל תחליט להשליט סדר וסטנדרט על היצרנים והמפעילים, אז בעצם כל הרעיון שהכל חופשי ופתוח הולך לאיבוד (הכל פתוח עד שאני אחליט שמשהו לא לרוחי ואז אתה תעשה בדיוק מה שאני אמר לך, אבל בעצם זה אומר שאין פה שום דבר פתוח). סטיב טוען שמי שאחראי "להשליט" סדר בעולם הזה ולבחור את הפתרון הטוב הוא הלקוח שעצם זה שיש לו בחירה גדולה כל כך, תגרום לו נניח לא לקחת מכשיר של מוטורולה בגלל המנגנון הדרקוני שלהם ולקחת לדוגמא מכשיר של חברת HTC מכיוון שהם מאפשרים פתיחות וניהול גדולים הרבה יותר במכשירים שלהם (כולל יכולת לפתוח את המכשיר להתקנת רומים, כולל שיחררור גירסאות רשמיות ברשת וכו). בקשר למקרה הספציפי של Nilay עם הדרויד X, אז סטיב (והפאנל) אמרו לו שהנסיון שלו לשדרג גירסה, משולה דווקא להתעסקות עם רכיב הביוס במחשב (חלק מהתהליך לאפשר התקנת רום על מכשיר הדרויד X דורש התעסקות עם רכיב תוכנתי שדומה קצת לביוס במחשב ונקרא Bootloader) ולכן מי שמוכן להתעסק עם "הביוס" מחשב צריך לקחת בחשבון שהמכשיר שלו ייתקע ויהרס.

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

Google´s Schmidt says requiring stock Android would violate ´the principle of open source

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

לסיכום:

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

לפני מספר שבועות אחד ממנהלי גוגל תיאר את רכישת חברת אנדרואיד במילים:
"best deal ever"….אני מניח שכל אחד מאיתנו מהנהן בראש ואומר "ת´אמת צודק!"

 

 

להמשך דיון במאמר

 


8:00
  /  
2.11.2010
  
מאת: אריה אושרוב

1