Android Studio 3.5 Canary מוסיף "החל שינויים", תחליף להפעלה מיידית

Android Studio 3.5 מציג את Apply Changes, היורש של תכונת ההפעלה המיידית של כלי פיתוח האפליקציות הפופולרי.

Android Studio 3.5 (כרגע בערוצי Canary ו-Dev) כולל כעת דרך חדשה לדחוף שינויי קוד לאפליקציה שלך ולראות את ההשפעות שלהם תוך כדי בלי צורך להפעיל מחדש את האפליקציה. המכונה בפשטות "החל שינויים", היא היורשת של תכונת "הרצה מיידית" בגרסאות קודמות של אנדרואיד סטודיו.

של גוגל בלוג מפתחי אנדרואיד אומר את הדברים הבאים על החל שינויים:

Apply Changes מאפשר לך לדחוף שינויים בקוד ומשאבים לאפליקציה הפועלת מבלי להפעיל מחדש את האפליקציה שלך - ובמקרים מסוימים, מבלי להפעיל מחדש את הפעילות הנוכחית. Apply Changes מחליף את ההפעלה המיידית בגישה חדשה לחלוטין לאופטימיזציה של בנייה. במקום לשכתב את קוד הבתים של ה-APK שלך במהלך זמן הבנייה, Apply Changes מגדיר מחדש מחלקות תוך כדי תנועה על ידי מינוף מכשור זמן הריצה הנתמך באנדרואיד 8.0 (API רמה 26) ומעלה.

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

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

  • הוספה או מחיקה של מחלקה, שיטה או שדה
  • שינוי המניפסט
  • שינוי חתימות שיטה
  • שינוי משנה של שיטות או מחלקות
  • שינוי שמות של כיתות
  • שינוי הירושה המעמדית
  • הוספה או הסרה של משאב

תחת "בעיות ידועות", הפוסט בבלוג מציין שמכיוון שגוגל תחילה תעדוף יציבות על פני ביצועים בתכונה החדשה הזו, "החל שינויים" יפעל לפעמים לאט יותר מהתכונה הקודמת שלה "ריצה מיידית". כמו כן, תמונות אמולטור x86_x64 אינן נתמכות, ולמטרות איתור באגים, רק Android Pie (API Level 28) נתמך. אתה יכול לראות את הרשימה המלאה של המגבלות והבעיות הידועות בקישור המקור למטה.

לתיאור מפורט יותר של ההבדל בין "החל שינויים" ו"הפעלה מיידית", עובד גוגל בצוות Android Studio אמר זאת ב Reddit:

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

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

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


מקור: בלוג מפתחי אנדרואיד