Catskinner כתב:אריה, לא ברור לי משהו בקשר ל AIR. כיצד אפליקציה המותקנת ב Android יכולה לעקוף את ה JAVA Core Libraries ולגשת ישירות ל Dalvik VM. בשביל לעשות זאת היא לא חייבת לעקוף לפחות שני נדבכים של מערכת ההפעלה? חשבתי שזה בלתי אפשרי ב Android.
...
Adobe Air לא ניגשת ל VM בכלל אלא רצה במקביל אליו!
הסוד הכמוס באנדרואיד הוא, שלא כל האפליקציות בשכבות למעלה, חייבות לרוץ דרך ה VM וניתן לייצר אפליקציות מיוחדות ויוצאות דופן שלא משתמשות במנוע של Dalvik לצורך הרצתן (אל תספר לאבי על זה)
להסבר ראה את הארכיטקטורה של מערכת האנדרואיד בתחתית:
אפליקציות באנדרואיד בשיכבה העליונה (שיכבת האפליקצייה) כתובות בשפת java ומורצות
כמעט כולן דרך Dalvik VM. גם השיכבה שמתחתיה שנקראת Application Framework כתובה בשפת java ורצות כמעט כולן דרך ה VM (השיכבה הזאת מכילה סט של שירותי מערכת שניתנים לשימוש ע"י כל אפליקצייה באנדרואיד באופן שקוף וזהה לגמרי לאפליקציות המובנות במערכת). בשיכבה שמתחת, העסק מתחיל להיות מעניין. בשיכבה הזאת יושב ה Dalvik VM ומימוש ה JIT החדש שלו (ומעליו יושבות ספריות ה core וביחד הם בעצם נותנים את סביבת ה Runtime של
רוב אפליקציות java במערכת)........המעניין הוא שבמקביל, בשיכבה הזאת, גם יש את רכיבי ה Libraries שהם כתובים בשפת C/C++ ורצים במקביל ל VM
ולא משתמשים בו. למרות זאת, ניתן לייצר מעטפת java-ית על מנת לקרוא לספריות המיוחדות האלה בשכבות שלמעלה ומעניין לא פחות הוא שניתן לייצר התקנה רגילה במערכת (apk.) בלי שהמשתמש יהיה מודע לכך שזאת אפליקצייה מיוחדת שלא רצה דרך ה VM הרגיל ובלי הצורך לבצע עידכון מרכזי ל core של המערכת (הרי אף אחד לא מצפה לעשות עידכון OTA להוספת יכולת ה Adobe Air).
ספריות וכלי הפיתוח בעולם האמיתי הזה (יסלחו לי כותבי האפליקציות) נקראות NDK (ר"ת של Android Native Development Kit) וכמובן שהשפה השלטת שם היא שפת C++ (וגם C). השיכבה הזאת נוצרה בעיקר על מנת לייצר אופצייה ליצירת רכיבים קריטים במערכת שדורשים ביצועים (performance-critical). לכאן אני מניח תכנס Adobe Air ותממש את הטכנולוגיה שלה מעל הספריות האלה. בנוסף אני מניח שאדובי תספק SDK שבשימוש איתו יכתבו אפליקציות ה AIR (ויומרו אפליקציות AIR שנכתבו לפלטפורמות אחרות) לצורך יצירת התקנה למכשירי אנדרואיד (אגב, לכן אפשר להבין למה בעצם על הנייר אפשר לייצר מערכת אנדרואיד מלאה שעובדת כולה מעל Adobe Air בלי הצורך בכלל ב VM)....
מקווה שזה לא יצא מתובסך מידי
[img2=550x394]
http://developer.android.com/images/sys ... ecture.jpg[/img2]