בהמשך מפורטים נתוני הגרסה של Android Studio מגרסה 3.6 ומטה, ושל פלאגין Android Gradle מגרסה 3.6.0 ומטה.
גרסאות ישנות יותר של Android Studio
3.6 (פברואר 2020)
Android Studio 3.6 היא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
אנחנו רוצים גם להודות לכל התורמים לקהילה שעזרו לנו בהשקה הזו.
3.6.3 (אפריל 2020)
העדכון הקטן הזה כולל תיקוני באגים שונים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.6.2 (מרץ 2020)
העדכון הקטן הזה כולל תיקוני באגים שונים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.6.1 (פברואר 2020)
העדכון הקטן הזה כולל תיקוני באגים שונים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
כלי עיצוב
הגרסה הזו של Android Studio כוללת עדכונים לכמה כלי עיצוב, כולל Layout Editor ומנהל המשאבים.
תצוגה מפוצלת והגדלה בכלי עריכה של עיצובים

הגרסה הזו כוללת את העדכונים הבאים בכלי העריכה של העיצוב החזותי:
-
בכלי עריכת העיצוב, כמו Layout Editor ו-Navigation Editor, יש עכשיו תצוגת פיצול שמאפשרת לראות בו-זמנית את תצוגת העיצוב ואת תצוגת הקוד של ממשק המשתמש. בפינה השמאלית העליונה של חלון העריכה, יש עכשיו שלושה לחצנים
להחלפה בין אפשרויות התצוגה:-
כדי להפעיל את התצוגה המפוצלת, לוחצים על סמל הפיצול
.
-
כדי להפעיל את תצוגת מקור ה-XML, לוחצים על סמל המקור
.
-
כדי להפעיל את תצוגת העיצוב, לוחצים על סמל העיצוב
.
-
כדי להפעיל את התצוגה המפוצלת, לוחצים על סמל הפיצול
-
הפקדים להתקרבות ולהזזה בתוך עורכי העיצוב הועברו לחלונית צפה בפינה השמאלית התחתונה של חלון העורך.
מידע נוסף זמין במאמר יצירת ממשק משתמש באמצעות כלי הפריסה.
כרטיסיית המשאבים של בוחר הצבעים
כדי לעזור לכם לעדכן במהירות את ערכי משאבי הצבע באפליקציה כשאתם משתמשים בכלי לבחירת צבעים ב-XML או בכלי העיצוב, סביבת הפיתוח המשולבת (IDE) מאכלסת עכשיו את ערכי משאבי הצבע בשבילכם.

מנהל המשאבים
במנהל המשאבים בוצעו העדכונים הבאים:
- מנהל המשאבים תומך עכשיו ברוב סוגי המשאבים.
- כשמחפשים משאב, מנהל המשאבים מציג עכשיו תוצאות מכל מודולי הפרויקט. בעבר, בחיפושים התקבלו תוצאות רק מהמודול שנבחר.
- לחצן המסנן מאפשר לכם להציג משאבים ממודולים מקומיים שתלויים זה בזה, מספרייה חיצונית וממסגרת Android. אפשר גם להשתמש במסנן כדי להציג מאפייני עיצוב.
- מעכשיו אפשר לשנות את השם של משאבים במהלך תהליך הייבוא. לשם כך, לוחצים בתיבת הטקסט שמעל המשאב.
מידע נוסף זמין במאמר בנושא ניהול משאבי ממשק המשתמש של האפליקציה באמצעות מנהל המשאבים.
עדכונים בפלאגין של Android Gradle
הגרסה העדכנית של פלאגין של Android Gradle כוללת הרבה עדכונים, כולל אופטימיזציות למהירות ה-build, תמיכה ב-Maven publishing plugin ותמיכה ב-View Binding. מידע נוסף זמין בהערות המוצר המלאות.
הצגת הקישור
View binding מאפשר לכתוב קוד שמתקשר עם תצוגות בקלות רבה יותר, על ידי יצירת מחלקה של binding לכל קובץ פריסת XML. המחלקות האלה מכילות הפניות ישירות לכל התצוגות שיש להן מזהה בפריסה המתאימה.
החלפת findViewById() באמצעות view binding מבטלת את הסיכון לחריגות של מצביע null שנובעות ממזהה תצוגה לא תקין.
כדי להפעיל את view binding, צריך להשתמש בפלאגין של Android Gradle בגרסה 3.6.0 ואילך, ולכלול את הקוד הבא בכל קובץ build.gradle של מודול:
מגניב
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
החלת השינויים
עכשיו אפשר להוסיף מחלקה ואז לפרוס את השינוי בקוד לאפליקציה הפעילה על ידי לחיצה על החלת שינויים בקוד או על החלת שינויים והפעלה מחדש של הפעילות .
מידע נוסף על ההבדל בין שתי הפעולות האלה זמין במאמר בנושא החלת שינויים.
שינוי מבנה של אפשרות בתפריט כדי להפעיל תמיכה באפליקציות ללא התקנה
אחרי שיוצרים את פרויקט האפליקציה, אפשר להפעיל את מודול הבסיס באופן מיידי בכל שלב, כך:
- פותחים את החלונית Project (פרויקט) על ידי בחירה באפשרות View > Tool Windows > Project (תצוגה > חלונות כלים > פרויקט) בסרגל התפריטים.
- לוחצים לחיצה ימנית על מודול הבסיס, שבדרך כלל נקרא app, ובוחרים באפשרות Refactor > Enable Instant Apps Support (שינוי מבנה > הפעלת תמיכה באפליקציות מיידיות).
- בתיבת הדו-שיח שמופיעה, בוחרים את מודול הבסיס מהתפריט הנפתח.
- לוחצים על אישור.
הערה: האפשרות להפעיל באופן מיידי את מודול אפליקציית הבסיס מתוך האשף Create New Project (יצירת פרויקט חדש) הוסרה.
מידע נוסף זמין במאמר סקירה כללית של Google Play Instant.
ביטול ההסתרה של קוד בייט של מחלקה ושיטה בכלי לניתוח APK
כשמשתמשים בהכלי לניתוח APK כדי לבדוק קובצי DEX, אפשר לפענח קוד מעורפל של בייטקוד של מחלקות ושיטות באופן הבא:
- בסרגל התפריטים, בוחרים באפשרות Build > Analyze APK (בנייה > ניתוח APK).
- בתיבת הדו-שיח שמופיעה, עוברים אל קובץ ה-APK שרוצים לבדוק ובוחרים אותו.
- לוחצים על פתיחה.
- בכלי לניתוח APK, בוחרים את קובץ ה-DEX שרוצים לבדוק.
- בכלי לצפייה בקובץ DEX, טוענים את קובץ המיפוי של ProGuard עבור קובץ ה-APK שמנתחים.
- לוחצים לחיצה ימנית על הכיתה או על השיטה שרוצים לבדוק ובוחרים באפשרות הצגת קוד בייט.
כלים מקוריים
העדכונים הבאים תומכים בפיתוח מותאם (C/C++) ב-Android Studio.
תמיכה ב-Kotlin
התכונות הבאות של NDK ב-Android Studio, שבעבר נתמכו ב-Java, נתמכות עכשיו גם ב-Kotlin:
-
אפשר לעבור מהצהרת JNI לפונקציית ההטמעה המתאימה ב-C/C++. כדי לראות את המיפוי הזה, מעבירים את העכבר מעל סמן הפריט C או C++ ליד מספר השורה בקובץ קוד המקור המנוהל.
-
יצירה אוטומטית של פונקציית הטמעה של קטע קוד חלופי עבור הצהרת JNI. קודם מגדירים את הצהרת ה-JNI ואז מקלידים jni או את שם השיטה בקובץ C/C++ כדי להפעיל אותה.

-
פונקציות הטמעה מקוריות שלא נעשה בהן שימוש מסומנות כאזהרה בקוד המקור. הצהרות JNI עם הטמעות חסרות מודגשות גם הן כשגיאה.
-
כשמשנים את השם (מבצעים רפקטורינג) של פונקציית הטמעה מקורית, כל הצהרות ה-JNI התואמות מתעדכנות. משנים את השם של הצהרת JNI כדי לעדכן את פונקציית ההטמעה המקורית.
-
בדיקת חתימה להטמעות JNI שקשורות באופן מרומז.
שיפורים אחרים ב-JNI
עורך הקוד ב-Android Studio תומך עכשיו בתהליך עבודה חלק יותר של פיתוח JNI, כולל רמזים משופרים לגבי סוגים, השלמה אוטומטית, בדיקות ושינוי מבנה הקוד.
טעינה מחדש של קובץ APK לספריות Native {:#3.6-reload-apk}
כבר לא צריך ליצור פרויקט חדש כשקובץ ה-APK בפרויקט מתעדכן מחוץ לסביבת הפיתוח המשולבת (IDE). Android Studio מזהה שינויים ב-APK ומציע לכם לייבא אותו מחדש.

צירוף מקורות של חבילות APK ב-Kotlin בלבד
עכשיו אפשר לצרף מקורות חיצוניים של חבילות APK שמבוססות על Kotlin בלבד כשמבצעים פרופיל ובאגים של חבילות APK מוכנות מראש. מידע נוסף זמין במאמר בנושא צירוף מקורות Kotlin/Java.
זיהוי דליפות ב-Memory Profiler
כשמנתחים תמונת מצב של הזיכרון בכלי Memory Profiler, עכשיו אפשר לסנן נתוני פרופילים ש-Android Studio חושב שעשויים להצביע על דליפות זיכרון במופעים של Activity ושל Fragment באפליקציה.
סוגי הנתונים שמוצגים במסנן כוללים את הנתונים הבאים:
-
מופעי
Activityשהושמדו אבל עדיין יש הפניה אליהם. -
Fragmentמקרים שבהם איןFragmentManagerתקף, אבל עדיין יש הפניה אליו.
צירוף מקורות של חבילות APK ב-Kotlin בלבד
עכשיו אפשר לצרף מקורות חיצוניים של חבילות APK שמבוססות על Kotlin בלבד כשמבצעים פרופיל ובאגים של חבילות APK מוכנות מראש. מידע נוסף זמין במאמר בנושא צירוף מקורות Kotlin/Java.
זיהוי דליפות ב-Memory Profiler
כשמנתחים תמונת מצב של הזיכרון בכלי Memory Profiler, עכשיו אפשר לסנן נתוני פרופילים ש-Android Studio חושב שעשויים להצביע על דליפות זיכרון במופעים של Activity ושל Fragment באפליקציה.
סוגי הנתונים שמוצגים במסנן כוללים את הנתונים הבאים:
-
מופעי
Activityשהושמדו אבל עדיין יש הפניה אליהם. -
Fragmentמקרים שבהם איןFragmentManagerתקף, אבל עדיין יש הפניה אליו.
במצבים מסוימים, כמו אלה שמופיעים בהמשך, יכול להיות שהמסנן יחזיר תוצאות חיוביות שגויות:
- נוצר
Fragmentאבל עדיין לא נעשה בו שימוש. - מתבצעת שמירה במטמון של
Fragment, אבל לא כחלק מFragmentTransaction.
כדי להשתמש בתכונה הזו, קודם צריך ליצור dump של ה-heap או לייבא קובץ dump של ה-heap אל Android Studio. כדי להציג את הפעילויות והקטעים שעשויים לגרום לדליפת זיכרון, מסמנים את תיבת הסימון Activity/Fragment Leaks בחלונית של dump ה-heap בכלי Memory Profiler.
סינון תמונת מצב של הזיכרון כדי למצוא דליפות זיכרון.
אמולטורים
Android Studio 3.6 מאפשר לכם ליהנות מכמה עדכונים שכלולים ב-אמולטור Android מגרסה 29.2.7 ומעלה, כמו שמתואר בהמשך.
תמיכה משופרת במיקום
אמולטור Android מגרסה 29.2.7 ואילך מספק תמיכה נוספת בהדמיה של קואורדינטות GPS ומידע על מסלולים. כשפותחים את האפשרות Emulators (אמולטורים) Extended controls (אמצעי בקרה מתקדמים), האפשרויות בכרטיסייה Location (מיקום) מאורגנות עכשיו בשתי כרטיסיות: Single points (נקודות בודדות) ו-Routes (מסלולים).
נקודות בודדות
בכרטיסייה נקודות בודדות, אפשר להשתמש בתצוגת האינטרנט של מפות Google כדי לחפש מוקדי עניין, בדיוק כמו כשמשתמשים במפות Google בטלפון או בדפדפן. כשמחפשים מיקום במפה או לוחצים עליו, אפשר לשמור אותו על ידי בחירה באפשרות 'שמירת נקודה' בחלק התחתון של המפה. כל המיקומים השמורים מופיעים בצד שמאל של החלון אמצעי בקרה מתקדמים.
כדי להגדיר את המיקום של האמולטור למיקום שבחרתם במפה, לוחצים על הלחצן הגדרת מיקום בפינה הימנית התחתונה של חלון אמצעי בקרה מתקדמים.
.
מסלולים
בדומה לכרטיסייה נקודות בודדות, הכרטיסייה מסלולים מספקת תצוגת אינטרנט של מפות Google שבה אפשר ליצור מסלול בין שני מיקומים או יותר. כדי ליצור ולשמור מסלול:
- בתצוגת המפה, משתמשים בשדה הטקסט כדי לחפש את היעד הראשון במסלול.
- בוחרים את המיקום מתוצאות החיפוש.
- לוחצים על הכפתור ניווט.
- בוחרים במפה את נקודת ההתחלה של המסלול.
- (אופציונלי) לוחצים על הוספת יעד כדי להוסיף עוד עצירות למסלול.
- כדי לשמור את המסלול, לוחצים על שמירת המסלול בתצוגת המפה.
- מזינים שם לנתיב ולוחצים על שמירה.
כדי לדמות את האמולטור במסלול ששמרתם, בוחרים את המסלול מתוך רשימת המסלולים השמורים ולוחצים על הפעלת המסלול בפינה השמאלית התחתונה של חלון ההגדרות המתקדמות. כדי להפסיק את הסימולציה, לוחצים על הפסקת המסלול.
.
כדי לדמות באופן רציף את האמולטור לפי המסלול שצוין, מפעילים את המתג שליד הפעלת הסרטון בלופ. כדי לשנות את המהירות שבה האמולטור עוקב אחרי המסלול שצוין, בוחרים באפשרות מהתפריט הנפתח מהירות ההפעלה.
תמיכה בתצוגה מרובת מסכים
עכשיו אפשר ב-אמולטור Android לפרוס את האפליקציה לכמה מסכים, שתומכים במאפיינים שניתנים להתאמה אישית ויכולים לעזור לכם לבדוק אפליקציות שתומכות בריבוי חלונות ובמסכים מרובים. בזמן שמכשיר וירטואלי פועל, אפשר להוסיף עד שני מסכים נוספים באופן הבא:
-
פותחים את אמצעי בקרה מתקדמים ועוברים לכרטיסייה תצוגות.
-
כדי להוסיף עוד מסך, לוחצים על הוספת מסך משני.
-
בתפריט הנפתח שמתחת למסכים משניים, מבצעים אחת מהפעולות הבאות:
-
בחירת אחד מיחסי הגובה-רוחב המוגדרים מראש
-
בוחרים באפשרות בהתאמה אישית ומגדירים את הגובה, הרוחב וה-dpi של המסך המותאם אישית.
-
(אופציונלי) לוחצים על הוספת מסך משני כדי להוסיף מסך שלישי.
-
לוחצים על החלת שינויים כדי להוסיף את המסכים שצוינו למכשיר הווירטואלי הפועל.

מכשירים וירטואליים חדשים ותבניות פרויקט ל-Android Automotive OS
כשיוצרים פרויקט חדש באמצעות Android Studio, אפשר לבחור מתוך שלוש תבניות בכרטיסייה Automotive (רכב) באשף Create New Project (יצירת פרויקט חדש): No Activity (ללא פעילות), Media service (שירות מדיה) ו-Messaging service (שירות הודעות). בפרויקטים קיימים, אפשר להוסיף תמיכה במכשירי Android Automotive על ידי בחירה באפשרות קובץ > חדש > מודול חדש מסרגל התפריטים, ואז בחירה באפשרות מודול Automotive. אשף Create New Module (יצירת מודול חדש) ידריך אתכם בתהליך יצירת מודול חדש באמצעות אחת מתבניות הפרויקט של Android Automotive.
.
בנוסף, עכשיו אפשר ליצור מכשיר וירטואלי של Android (AVD) למכשירי Android Automotive OS על ידי בחירה באחת מהאפשרויות הבאות בכרטיסייה Automotive באשף Virtual Device Configuration.
- Polestar 2: יוצרים מכשיר AVD שמדמה את מערכת המולטימדיה של Polestar 2.
- Automotive (לרוחב, 1024p): יוצרים AVD ליחידות מרכזיות של Android Automotive בגודל כללי של 1024 x 768 px.
.
הורדות SDK שניתן להמשיך
כשמורידים רכיבים וכלים של SDK באמצעות SDK Manager, אפשר עכשיו ב-Android Studio לחדש הורדות שהופסקו (לדוגמה, בגלל בעיה ברשת) במקום להפעיל מחדש את ההורדה מההתחלה. השיפור הזה שימושי במיוחד להורדות גדולות, כמו Android Emulator או תמונות מערכת, כשחיבור האינטרנט לא יציב.
בנוסף, אם יש לכם משימת הורדה של SDK שפועלת ברקע, עכשיו אתם יכולים להשהות או להפעיל מחדש את ההורדה באמצעות אמצעי הבקרה בסרגל המצב.
משימת הורדה ברקע בסרגל הסטטוס עם פקדים חדשים שמאפשרים להשהות או להמשיך את ההורדה.
הוצאה משימוש של Win32
גרסת 32 הביט של Android Studio ל-Windows לא תקבל יותר עדכונים אחרי דצמבר 2019, ולא תקבל יותר תמיכה אחרי דצמבר 2020. אפשר להמשיך להשתמש ב-Android Studio. עם זאת, כדי לקבל עדכונים נוספים, צריך לשדרג את תחנת העבודה לגרסת 64 ביט של Windows.
מידע נוסף בבלוג בנושא הוצאה משימוש של Windows 32-bit
אפשרות חדשה לאופטימיזציה של זמן הסנכרון של Gradle
בגרסאות קודמות, Android Studio אחזר את רשימת כל משימות Gradle במהלך סנכרון Gradle. בפרויקטים גדולים, אחזור רשימת המשימות עלול לגרום לזמני סנכרון ארוכים.
כדי לשפר את הביצועים של Gradle Sync, עוברים אל File > Settings > Experimental ובוחרים באפשרות Do not build Gradle task list during Gradle sync.
כשמפעילים את האפשרות הזו, Android Studio מדלג על בניית רשימת המשימות במהלך הסנכרון, כך שהסנכרון של Gradle מסתיים מהר יותר וההיענות של ממשק המשתמש משתפרת. חשוב לזכור: אם סביבת הפיתוח המשולבת (IDE) מדלגת על בניית רשימת המשימות, רשימות המשימות בחלונית Gradle ריקות, וההשלמה האוטומטית של שמות המשימות בקובצי build לא פועלת.
מיקום חדש להחלפת מצב האופליין של Gradle
כדי להפעיל או להשבית את מצב האופליין של Gradle, קודם בוחרים באפשרות View > Tool Windows > Gradle (תצוגה > חלונות כלים > Gradle) בסרגל התפריטים. לאחר מכן, בחלק העליון של החלון Gradle, לוחצים על החלפת מצב לא מקוון
.
IntelliJ IDEA 2019.2
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA דרך גרסה 2019.2.
מידע נוסף על השיפורים מגרסאות אחרות של IntelliJ שכלולים באופן מצטבר בגרסה 2019.2 זמין בדפים הבאים:
תורמי תוכן לקהילה
תודה לכל התורמים לקהילה שעזרו לנו לגלות באגים ודרכים אחרות לשפר את Android Studio 3.6. בפרט, אנחנו רוצים להודות לאנשים הבאים שדיווחו על באגים:
|
|
|
|
3.5 (אוגוסט 2019)
Android Studio 3.5 היא גרסה ראשית והיא תוצאה של Project Marble. החל מגרסה Android Studio 3.3, יוזמת Project Marble התפרסה על פני כמה גרסאות שהתמקדו בשיפור שלושה תחומים עיקריים של סביבת הפיתוח המשולבת (IDE): תקינות המערכת, שיפור התכונות ותיקון באגים.
מידע על העדכונים האלה ועדכונים נוספים של Project Marble מופיע בפוסט בבלוג של Android Developers או בקטעים הבאים.
אנחנו רוצים גם להודות לכל התורמים לקהילה שעזרו לנו בהשקה הזו.
3.5.3 (דצמבר 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים.
3.5.2 (נובמבר 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.5.1 (אוקטובר 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
Project Marble: תקינות המערכת
בקטע הזה מתוארים השינויים ב-Android Studio 3.5 שמתמקדים בשיפור תקינות המערכת.
הגדרות מומלצות של זיכרון
Android Studio מודיע לכם עכשיו אם הוא מזהה שאפשר לשפר את הביצועים על ידי הגדלת כמות ה-RAM המקסימלית שמערכת ההפעלה צריכה להקצות לתהליכים של Android Studio, כמו הליבה של סביבת הפיתוח המשולבת (IDE), דמון Gradle ודמון Kotlin. אפשר לאשר את ההגדרות המומלצות בלחיצה על הקישור לפעולה בהתראה, או לשנות את ההגדרות באופן ידני. כדי לעשות זאת, בוחרים באפשרות קובץ > הגדרות (או Android Studio > העדפות ב-macOS), ואז מחפשים את הקטע הגדרות זיכרון בקטע מראה והתנהגות > הגדרות מערכת. מידע נוסף זמין במאמר בנושא גודל הערימה המקסימלי.
התראה לגבי הגדרות מומלצות של זיכרון.
דוח שימוש בזיכרון
לפעמים קשה לשחזר ולדווח על בעיות בזיכרון ב-Android Studio. כדי לפתור את הבעיה הזו, אפשר ליצור ב-Android Studio דוח על השימוש בזיכרון. לשם כך, לוחצים על Help > Analyze Memory Usage (עזרה > ניתוח השימוש בזיכרון) בסרגל התפריטים. כשעושים את זה, סביבת הפיתוח המשולבת (IDE) מנקה את הנתונים ממידע אישי באופן מקומי לפני שהיא שואלת אם רוצים לשלוח אותם לצוות של Android Studio כדי לעזור לזהות את המקור של בעיות הזיכרון. מידע נוסף זמין במאמר בנושא הרצת דוח על השימוש בזיכרון.
דוח שימוש בזיכרון.
Windows: אופטימיזציה של קלט/פלט של קובץ אנטי-וירוס
Android Studio בודק עכשיו באופן אוטומטי אם ספריות מסוימות בפרויקט לא נכללות בסריקת האנטי-וירוס בזמן אמת. אם אפשר לבצע שינויים כדי לשפר את ביצועי הבנייה, Android Studio ישלח לכם התראה ויספק הוראות לאופטימיזציה של הגדרות האנטי-וירוס. מידע נוסף זמין במאמר איך מצמצמים את ההשפעה של תוכנת אנטי-וירוס על מהירות ה-build.
Project Marble: ליטוש תכונות
בקטע הזה מתוארים השינויים ב-Android Studio 3.5 שמתמקדים בשיפור התכונות הקיימות.
החלת השינויים
התכונה 'Apply Changes' מאפשרת להעביר שינויים בקוד ובמשאבים לאפליקציה שפועלת, בלי להפעיל מחדש את האפליקציה, ובמקרים מסוימים, בלי להפעיל מחדש את הפעילות הנוכחית. התכונה 'Apply Changes' מיישמת גישה חדשה לחלוטין לשימור המצב של האפליקציה. בניגוד ל-Instant Run, שכתב מחדש את קוד הבייט של ה-APK, התכונה Apply Changes מגדירה מחדש את המחלקות תוך כדי תנועה באמצעות מכשור זמן הריצה שנתמך ב-Android 8.0 (רמת API 26) ומעלה.
מידע נוסף זמין במאמר בנושא החלת שינויים.
לחצני סרגל הכלים להחלת שינויים.
תהליך פריסת האפליקציה
ב-IDE יש תפריט נפתח חדש שמאפשר לבחור במהירות את המכשיר שבו רוצים לפרוס את האפליקציה. התפריט הזה כולל גם אפשרות חדשה שמאפשרת להריץ את האפליקציה בכמה מכשירים בו-זמנית.
תפריט נפתח לבחירת מכשיר יעד.
שיפור בסנכרון Gradle ובזיהוי מטמון
ה-IDE מזהה עכשיו טוב יותר מתי Gradle מנקה מעת לעת את מטמון ה-build כדי לצמצם את צריכת הדיסק הקשיח. בגרסאות קודמות, המצב הזה גרם לסביבת הפיתוח המשולבת (IDE) לדווח על תלות חסרה ולסנכרון של Gradle להיכשל. עכשיו, סביבת הפיתוח המשולבת פשוט מורידה את התלויות לפי הצורך כדי להבטיח שהסנכרון של Gradle יושלם בהצלחה.
שיפור הפלט של שגיאות build
בחלון Build
מוצג עכשיו דיווח שגיאות טוב יותר, כמו קישור לקובץ ולשורה
של השגיאה שדווחה, בתהליכי הבנייה הבאים:
- הידור וקישור של AAPT
- R8 ו-ProGuard
- Dexing
- מיזוג משאבים
- ניתוח קובץ XML
- קומפילציה של Javac, Kotlinc ו-CMake
שדרוגים של פרויקטים
שיפרנו את חוויית העדכון כדי לספק לכם יותר מידע ופעולות שיעזרו לכם לעדכן את סביבת הפיתוח המשולבת ואת הפלאגין של Android Gradle. לדוגמה, שגיאות נוספות בסנכרון ובבנייה כוללות פעולות שיעזרו לכם לצמצם את השגיאות במהלך העדכון.
חשוב לזכור שאפשר לעדכן את סביבת הפיתוח המשולבת (IDE) בנפרד מרכיבים אחרים, כמו פלאגין של Android Gradle. כך תוכלו לעדכן את ה-IDE ברגע שגרסה חדשה יותר תהיה זמינה, ולעדכן רכיבים אחרים מאוחר יותר.
כלי לעריכת פריסות
Android Studio 3.5 כולל כמה שיפורים בהדמיה, בניהול ובאינטראקציה של פריסות.
כשעובדים עם ConstraintLayout, בקטע Constraints החדש בחלונית Attributes מפורטים קשרי האילוצים של רכיב ממשק המשתמש שנבחר. אפשר לבחור אילוץ משטח העיצוב או מרשימת האילוצים כדי להדגיש את האילוץ בשני האזורים.
קשרי אילוצים לרכיב בממשק המשתמש שנבחר.
באופן דומה, עכשיו אפשר למחוק אילוץ על ידי בחירה בו והקשה על המקש Delete. אפשר גם למחוק אילוץ על ידי לחיצה ממושכת על המקש Control (Command ב-macOS) ולחיצה על נקודת העיגון של האילוץ. שימו לב: כשלוחצים על המקש Control או Command ומעבירים את העכבר מעל נקודת עיגון, כל האילוצים המשויכים הופכים לאדומים כדי לציין שאפשר ללחוץ כדי למחוק אותם.
כשבוחרים תצוגה, אפשר ליצור אילוץ על ידי לחיצה על אחד מסמלי + בקטע Constraint Widget בחלונית Attributes, כמו שמוצג בתמונה הבאה. כשיוצרים אילוץ חדש, כלי העריכה של הפריסה בוחר ומדגיש את האילוץ, ומספק משוב חזותי מיידי לגבי מה שנוסף.
שימוש בווידג'ט של אילוצים כדי ליצור אילוצים .
כשיוצרים אילוץ, ב-Layout Editor מוצגות עכשיו רק נקודות העיגון המתאימות שאפשר להגביל אליהן. בעבר, Layout Editor הדגיש את כל נקודות העיגון בכל התצוגות, גם אם לא יכולתם להגביל את התצוגה אליהן. בנוסף, שכבת-על כחולה מדגישה עכשיו את היעד של האילוץ. ההדגשה הזו שימושית במיוחד כשמנסים להגביל את ההצגה לרכיב שחופף לרכיב אחר.
יצירת אילוץ לרכיב חופף ב-Android Studio 3.4.
יצירת אילוץ לרכיב חופף ב-Android Studio 3.5.
בנוסף לעדכונים שלמעלה, Android Studio 3.5 כולל גם את השיפורים הבאים בכלי Layout Editor:
- בווידג'ט Constraint ובתפריט הנפתח של שולי ברירת המחדל אפשר עכשיו להשתמש במשאבי מאפיינים לשוליים.
- בסרגל הכלים של Layout Editor, רשימת המכשירים שקובעים את הגודל של משטח העיצוב עודכנה. בנוסף, שופרה ההתנהגות של ההצמדה בזמן שינוי הגודל, וידיות שינוי הגודל באזור העיצוב תמיד גלויות עכשיו. כשמשנים את הגודל, מופיעות שכבות-על חדשות שמציגות גדלים נפוצים של מכשירים.
- ל-Layout Editor יש ערכת צבעים חדשה שמשפרת את העקביות ומפחיתה את הניגודיות בין רכיבים, טקסט ואילוצים.
- מצב השרטוט כולל עכשיו תמיכה בטקסט בחלק מהרכיבים שבהם הטקסט לא הוצג.
מידע נוסף על השינויים האלה זמין במאמר Android Studio Project Marble: Layout Editor.
קישור נתונים
בנוסף להוספת תמיכה בעיבוד מצטבר של הערות עבור Data Binding, סביבת הפיתוח המשולבת משפרת את התכונות והביצועים של העורך החכם כשיוצרים ביטויי Data Binding ב-XML.
ביצועים של עורך הקוד ב-Android Studio 3.4.
שיפרנו את הביצועים של עריכת קוד ב-Android Studio 3.5.
תמיכה משופרת בפרויקטים של C/C++
Android Studio 3.5 כולל כמה שינויים שמשפרים את התמיכה בפרויקטים של C/C++.
שיפורים בחלונית 'יצירת וריאציות' לסנכרון של וריאציה יחידה
עכשיו אפשר לציין את וריאנט ה-build הפעיל ואת ממשק ה-ABI הפעיל בחלונית Build Variants. התכונה הזו מפשטת את תצורת build לכל מודול, ויכולה גם לשפר את ביצועי הסנכרון של Gradle.
מידע נוסף זמין במאמר בנושא שינוי וריאנט build.
החלונית Build Variants (יצירת וריאנטים) עם בחירת וריאנט יחיד לפי ABI.
גרסאות זו לצד זו של NDK
עכשיו אפשר להשתמש בכמה גרסאות של NDK זו לצד זו. התכונה הזו מאפשרת לכם גמישות רבה יותר בהגדרת הפרויקטים – למשל, אם יש לכם פרויקטים שמשתמשים בגרסאות שונות של NDK באותה מכונה.
אם הפרויקט שלכם משתמש בפלאגין של Android Gradle בגרסה 3.5.0 ואילך, אתם יכולים גם לציין את גרסת ה-NDK שכל מודול בפרויקט צריך להשתמש בה. אתם יכולים להשתמש בתכונה הזו כדי ליצור גרסאות build שניתן לשחזר וכדי לצמצם את חוסר התאימות בין גרסאות NDK לבין הפלאגין של Android Gradle.
מידע נוסף זמין במאמר בנושא התקנה והגדרה של NDK, CMake ו-LLDB.
ChromeOS Support
Android Studio תומך עכשיו באופן רשמי במכשירי ChromeOS, כמו HP Chromebook x360 14, Acer Chromebook 13/Spin 13 ועוד. אפשר לקרוא על כך בדרישות המערכת. כדי להתחיל, מורידים את Android Studio למכשיר ChromeOS התואם ופועלים לפי הוראות ההתקנה.
הערה: נכון לעכשיו, Android Studio ב-ChromeOS תומך בפריסת האפליקציה רק במכשיר חומרה מחובר. מידע נוסף מופיע במאמר בנושא הפעלת אפליקציות במכשיר חומרה.
הפצה מותנית של מודולים של תכונות
העברה מותנית מאפשרת לכם להגדיר דרישות מסוימות להגדרת המכשיר כדי שמודולים של תכונות יורדו אוטומטית במהלך התקנת האפליקציה. לדוגמה, אפשר להגדיר מודול של תכונות שכולל פונקציונליות של מציאות רבודה (AR) שתהיה זמינה בהתקנת האפליקציה רק במכשירים שתומכים ב-AR.
מנגנון המסירה הזה תומך כרגע בשליטה בהורדה של מודול בזמן התקנת האפליקציה, על סמך הגדרות המכשיר הבאות:
- תכונות החומרה והתוכנה של המכשיר, כולל גרסת OpenGL ES
- המדינה של המשתמש
- רמת ממשק API:
אם מכשיר לא עומד בכל הדרישות שציינתם, המודול לא יורד בזמן התקנת האפליקציה. עם זאת, יכול להיות שהאפליקציה תבקש בהמשך להוריד את המודול לפי דרישה באמצעות ספריית Play Core. מידע נוסף על הגדרת משלוח מותנה
IntelliJ IDEA 2019.1
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA דרך גרסה 2019.1, כמו התאמה אישית של ערכות נושא.
הגרסה האחרונה של IntelliJ שנכללה ב-Android Studio הייתה 2018.3.4. למידע נוסף על השיפורים מגרסאות אחרות של IntelliJ שנכללים באופן מצטבר בגרסה הזו של Android Studio, אפשר לעיין בעדכונים הבאים לתיקון באגים:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
עדכונים ב-Android Gradle Plugin 3.5.0
מידע על החידושים בפלאגין של Android Gradle 3.5.0, כמו תמיכה משופרת בעיבוד מצטבר של הערות ובבדיקות יחידה שניתנות לשמירה במטמון, זמין בנתוני הגרסה.
תורמי תוכן לקהילה
תודה לכל חברי הקהילה שעזרו לנו לגלות באגים ודרכים אחרות לשפר את Android Studio 3.5. בפרט, אנחנו רוצים להודות לאנשים הבאים שדיווחו על באגים ברמה P0 ו-P1:
|
|
|
3.4 (אפריל 2019)
Android Studio 3.4 היא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
3.4.2 (יולי 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.4.1 (מאי 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.4.0 בעיות מוכרות
הפרופיל מושבת כשפורסים את האפליקציה במכשיר עם Android Q Beta.
- כשמשתמשים בספריית Data Binding, יכול להיות שהפעולה
LiveDataListener.onChanged()תיכשל עם NPE. תיקון לבעיה הזו ייכלל ב-Android Studio 3.4.1, וכבר זמין בגרסת ה-Preview העדכנית של Android Studio 3.5. (ראו בעיה מספר 122066788)
IntelliJ IDEA 2018.3.4
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA דרך גרסה 2018.3.4.
עדכונים של פלאגין של Android Gradle 3.4.0
מידע על החידושים בפלאגין של Android Gradle 3.4.0 זמין בהערות על הגרסה.
תיבת דו-שיח חדשה של מבנה הפרויקט
בתיבת הדו-שיח החדשה Project Structure (מבנה הפרויקט, PSD) קל יותר לעדכן תלויות ולהגדיר היבטים שונים של הפרויקט, כמו מודולים, וריאציות של בנייה, הגדרות חתימה ומשתני בנייה.
אפשר לפתוח את קובץ ה-PSD על ידי בחירה באפשרות File > Project Structure (קובץ > מבנה הפרויקט) בסרגל התפריטים. אפשר גם לפתוח את ה-PSD על ידי הקשה על Ctrl+Shift+Alt+S ב-Windows וב-Linux, או על Command+; (נקודה ופסיק) ב-macOS. בהמשך מופיעים תיאורים של חלק מהקטעים החדשים והמעודכנים ב-PSD.
משתנים
בקטע החדש של המשתנים ב-PSD אפשר ליצור ולנהל משתני build, כמו משתנים ששומרים על עקביות של מספרי הגרסאות של התלויות בפרויקט.

- אפשר להציג ולערוך במהירות משתני build שכבר קיימים בסקריפטים של Gradle build בפרויקט.
- אפשר להוסיף משתני build חדשים ברמת הפרויקט או המודול ישירות מקובץ ה-PSD.
הערה: אם קובצי תצורת ה-build הקיימים שלכם מקצים ערכים באמצעות סקריפטים מורכבים של Groovy, יכול להיות שלא תוכלו לערוך את הערכים האלה באמצעות ה-PSD. בנוסף, אי אפשר לערוך קובצי build שנכתבו ב-Kotlin באמצעות ה-PSD.
מודולים
אפשר להגדיר מאפיינים שחלים על כל הווריאציות של ה-build במודול קיים, או להוסיף מודולים חדשים לפרויקט בקטע Modules (מודולים). לדוגמה, כאן אפשר להגדיר מאפיינים של defaultConfig או לנהל הגדרות של חתימה.
פניות קשורות
כדי לבדוק ולהציג את כל יחסי התלות בתרשים יחסי התלות של הפרויקט, כפי ש-Gradle פותר אותם במהלך סנכרון הפרויקט, פועלים לפי השלבים הבאים:
- בחלונית הימנית של ה-PSD, בוחרים באפשרות תלויות.
- בחלונית Modules, בוחרים מודול שרוצים לבדוק את התלות שלו.
- בצד שמאל של ה-PSD, פותחים את החלונית Resolved Dependencies, שמוצגת למטה.

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

וריאנטים של Build
בקטע הזה של ה-PSD, יוצרים ומגדירים וריאציות של גרסאות build וטעמים של מוצרים לכל מודול בפרויקט. אפשר להוסיף placeholders למניפסט, להוסיף קבצי ProGuard, להקצות מפתחות חתימה ועוד.

הצעות
בקטע הצעות מוצגים עדכונים מומלצים לתלות בפרויקט ולמשתני build, כמו שמוצג בהמשך.

מנהל המשאבים החדש
המרכז לניהול משאבים הוא חלון כלים חדש שמאפשר לייבא, ליצור, לנהל ולהשתמש במשאבים באפליקציה. כדי לפתוח את חלון הכלים, בוחרים באפשרות View > Tool Windows > Resource Manager (תצוגה > חלונות כלים > המרכז לניהול משאבים) בסרגל התפריטים. באמצעות Resource Manager אפשר:

- הדמיה של משאבים: אפשר לראות תצוגה מקדימה של משאבים מסוג drawable, צבעים ופריסות כדי למצוא במהירות את המשאבים שאתם צריכים.
- ייבוא בכמות גדולה: אפשר לייבא כמה נכסים מסוג drawable בבת אחת. כדי לעשות זאת, אפשר לגרור אותם לחלון של הכלי מנהל המשאבים או להשתמש באשף Import drawables. כדי לגשת לאשף, לוחצים על הלחצן (+) בפינה הימנית העליונה של חלון של הכלי, ואז בוחרים באפשרות Import Drawables בתפריט הנפתח.
-
המרת קובצי SVG לאובייקטים מסוג
VectorDrawable: אפשר להשתמש באשף Import Drawables כדי להמיר את תמונות ה-SVG לאובייקטים מסוגVectorDrawable. - גרירה ושחרור של נכסים: בחלון הכלים מנהל המשאבים, אפשר לגרור ולשחרר רכיבים מסוג drawable לתצוגות העיצוב וה-XML של Layout Editor.
- הצגת גרסאות חלופיות: עכשיו אפשר להציג גרסאות חלופיות של המשאבים. כדי לעשות זאת, לוחצים לחיצה כפולה על משאב בחלון כלי. בתצוגה הזו מוצגות הגרסאות השונות שיצרתם והמסננים שנכללו.
- תצוגת משבצות ותצוגת רשימה: אתם יכולים לשנות את התצוגה בחלון של הכלי כדי לראות את המשאבים בסידורים שונים.
מידע נוסף זמין במדריך בנושא ניהול משאבי אפליקציות.
בדיקת מזהי build כשמבצעים פרופיל וניפוי באגים של קובצי APK
כשמספקים קובצי סמלים לניפוי באגים עבור הספריות המשותפות .so בתוך קובץ ה-APK, Android Studio מוודא שמזהה ה-build של קובצי הסמלים שסופקו תואם למזהה ה-build של הספריות .so בתוך קובץ ה-APK.
אם אתם יוצרים את הספריות המקומיות ב-APK עם מזהה build, Android Studio בודק אם מזהה ה-build בקובצי הסמלים תואם למזהה ה-build בספריות המקומיות, ואם יש אי התאמה, הוא דוחה את קובצי הסמלים. אם לא השתמשתם במזהה build, יכול להיות שבעיות בניפוי באגים יקרו אם תספקו קובצי סמלים שגויים.
ההגדרה R8 מופעלת כברירת מחדל
R8 משלב את הפעולות desugaring, shrinking, obfuscating, optimizing ו-dexing בשלב אחד – וכתוצאה מכך הביצועים של הבנייה משתפרים באופן משמעותי. הכלי R8 הוצג בפלאגין של Android Gradle 3.3.0, ועכשיו הוא מופעל כברירת מחדל גם בפרויקטים של אפליקציות וגם בפרויקטים של ספריות Android באמצעות פלאגין 3.4.0 ואילך.
בתמונה הבאה מוצגת סקירה כללית של תהליך ההידור לפני ההשקה של R8.

עכשיו, עם R8, כל הפעולות האלה – desugaring, shrinking, obfuscating, optimizing ו-dexing (D8) – מתבצעות בשלב אחד, כמו שמוצג באיור שלמטה.

חשוב לזכור ש-R8 מיועד לעבוד עם כללי ProGuard הקיימים, ולכן סביר להניח שלא תצטרכו לבצע פעולות כלשהן כדי ליהנות מהיתרונות של R8. עם זאת, מכיוון שמדובר בטכנולוגיה שונה מ-ProGuard, שנועדה במיוחד לפרויקטים של Android, יכול להיות שהכיווץ והאופטימיזציה יגרמו להסרת קוד ש-ProGuard לא היה מסיר. לכן, במצב הלא סביר הזה, יכול להיות שתצטרכו להוסיף כללים נוספים כדי לשמור את הקוד הזה בפלט של הבנייה.
אם נתקלתם בבעיות בשימוש ב-R8, כדאי לעיין בתשובות לשאלות הנפוצות בנושא תאימות ל-R8 כדי לבדוק אם יש פתרון לבעיה. אם הפתרון לא מתועד, אפשר לדווח על באג.
כדי להשבית את R8, מוסיפים אחת מהשורות הבאות לקובץ gradle.properties של הפרויקט:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
הערה: אם מגדירים את useProguard ל-false בקובץ build.gradle של מודול האפליקציה עבור סוג מסוים של build, הפלאגין של Android Gradle משתמש ב-R8 כדי לכווץ את הקוד של האפליקציה עבור סוג ה-build הזה, גם אם משביתים את R8 בקובץ gradle.properties של הפרויקט.
הכלי לעריכת ניווט תומך עכשיו בכל סוגי הארגומנטים
עכשיו יש תמיכה ב-Navigation Editor בכל סוגי הארגומנטים שנתמכים ברכיב Navigation. מידע נוסף על סוגים נתמכים זמין במאמר העברת נתונים בין יעדים.
שיפורים ב-Layout Editor {:#layout-editor}
החלונית Attributes ב-Layout Editor עברה אופטימיזציה והיא מוצגת עכשיו בדף אחד עם קטעים שאפשר להרחיב כדי לראות את המאפיינים שניתנים להגדרה. החלונית מאפיינים כוללת גם את העדכונים הבאים:
- בקטע החדש Declared Attributes (מאפיינים מוצהרים) מפורטים המאפיינים שצוינו בקובץ הפריסה, ואפשר להוסיף מאפיינים חדשים במהירות.
- בנוסף, בחלונית מאפיינים מופיעים עכשיו גם אינדיקטורים לצד כל מאפיין. האינדיקטורים מלאים אם הערך של המאפיין הוא הפניה למשאב, וריקים אחרת.
- מאפיינים עם שגיאות או אזהרות מודגשים עכשיו. הדגשות באדום מציינות שגיאות (לדוגמה, כשמשתמשים בערכי פריסה לא חוקיים), והדגשות בכתום מציינות אזהרות (לדוגמה, כשמשתמשים בערכים שמוגדרים בהארדקוד).
פעולת כוונה חדשה לייבוא מהיר של יחסי תלות
אם מתחילים להשתמש בקוד במחלקות מסוימות של Jetpack ו-Firebase, פעולת כוונה חדשה מציעה להוסיף לפרויקט את התלות הנדרשת בספריית Gradle, אם עדיין לא עשיתם זאת. לדוגמה, אם אתם מפנים למחלקה WorkManager בלי לייבא קודם את התלות הנדרשת android.arch.work:work-runtime, פעולת כוונה מאפשרת לכם לעשות זאת בקלות בלחיצה אחת, כמו שמוצג בהמשך.

בפרט, מכיוון ש-Jetpack ארז מחדש את ספריית התמיכה לחבילות נפרדות שקל יותר לנהל ולעדכן, פעולת הכוונה הזו עוזרת לכם להוסיף במהירות רק את יחסי התלות שאתם צריכים לרכיבי Jetpack שבהם אתם רוצים להשתמש.
3.3 (ינואר 2019)
Android Studio 3.3 היא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
3.3.2 (מרץ 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.3.1 (פברואר 2019)
העדכון הקטן הזה כולל תיקוני באגים שונים ושיפורי ביצועים.
IntelliJ IDEA 2018.2.2
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA באמצעות גרסה 2018.2.2.
עדכונים של פלאגין של Android Gradle
מידע על החידושים בפלאגין של Android Gradle זמין בהערות על הגרסה.
כלי הניווט
Navigation Editor מאפשר לכם ליצור במהירות תמונה חזותית של הניווט באפליקציה שלכם ולבנות אותו באמצעות רכיב ארכיטקטורת הניווט.

מידע נוסף זמין במאמר בנושא הטמעת ניווט באמצעות רכיב ארכיטקטורת הניווט.
מחיקת ספריות של Android Studio שלא נמצאות בשימוש
כשמפעילים גרסה ראשית של Android Studio בפעם הראשונה, המערכת מחפשת ספריות שמכילות מטמון, הגדרות, אינדקסים ויומנים של גרסאות של Android Studio שלא נמצאה התקנה תואמת שלהן. לאחר מכן מוצגת תיבת הדו-שיח Delete Unused Android Studio Directories (מחיקת ספריות לא בשימוש ב-Android Studio) עם המיקומים, הגדלים והזמנים של השינויים האחרונים בספריות האלה, ומוצגת אפשרות למחוק אותן.
הרשימה הבאה כוללת את הספריות ש-Android Studio שוקל למחוק:
- Linux:
~/.AndroidStudio[Preview]X.Y - ב-Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y - ב-Windows:
%USER%.AndroidStudio[Preview]X.Y

שיפורים באיתור שגיאות בקוד
הפעלת Lint מ-Gradle מהירה משמעותית – בפרויקטים גדולים, הפעלת Lint יכולה להיות מהירה פי ארבע.
האשף ליצירת פרויקט חדש
לאשף Create New Project (יצירת פרויקט חדש) יש מראה חדש והוא כולל עדכונים שעוזרים לייעל את יצירת הפרויקטים החדשים ב-Android Studio.

מידע נוסף מופיע במאמר יצירת פרויקט.
עדכונים בכלי לניתוח ביצועים (Profiler)
Android Studio 3.3 כולל עדכונים לכמה מהפרופילים האישיים.
ביצועים משופרים
על סמך משוב ממשתמשים, שיפרנו מאוד את ביצועי העיבוד בזמן השימוש בכלי הפרופילים. נשמח אם תמשיכו לשלוח משוב, במיוחד אם אתם ממשיכים לראות בעיות בביצועים.
אפשרויות מעקב אחר הקצאת זיכרון ב-Profiler
כדי לשפר את ביצועי האפליקציה במהלך יצירת פרופיל, Memory Profiler דוגם עכשיו הקצאות של זיכרון באופן תקופתי כברירת מחדל. אם רוצים, אפשר לשנות את ההתנהגות הזו באמצעות התפריט הנפתח Allocation Tracking כשבודקים במכשירים עם Android מגרסה 8.0 (רמת API 26) ומעלה.

בתפריט הנפתח מעקב אחר הקצאה, אפשר לבחור מבין המצבים הבאים:
-
מלא: מתעד את כל הקצאות הזיכרון של האובייקטים. הערה: אם יש לכם אפליקציה שמקצה הרבה אובייקטים, יכול להיות שתיתקלו בבעיות משמעותיות בביצועים במהלך יצירת הפרופיל.
-
Sampled: מתעד דגימה תקופתית של הקצאות זיכרון לאובייקטים. זוהי התנהגות ברירת המחדל, וההשפעה שלה על ביצועי האפליקציה במהלך יצירת הפרופיל קטנה יותר. יכול להיות שתיתקלו בבעיות בביצועים של אפליקציות שמקצות הרבה אובייקטים בפרק זמן קצר.
-
מושבת: השבתה של הקצאת הזיכרון. אם האפשרות הזו לא נבחרה, היא מופעלת אוטומטית בזמן הקלטה של CPU, ואז חוזרת להגדרה הקודמת כשההקלטה מסתיימת. אפשר לשנות את ההתנהגות הזו בתיבת הדו-שיח של הגדרת הקלטת נתוני CPU.
המעקב משפיע גם על אובייקטים של Java וגם על הפניות של JNI.
בדיקת נתוני רינדור פריימים
בCPU Profiler, אפשר עכשיו לבדוק כמה זמן לוקח לאפליקציית Java לרנדר כל פריים בשרשור UI הראשי וב-RenderThread. הנתונים האלה יכולים להיות שימושיים כשבודקים צווארי בקבוק שגורמים לבעיות בממשק המשתמש ולשיעורי פריימים נמוכים. לדוגמה, כל פריים שזמן הרינדור שלו ארוך מ-16 אלפיות השנייה, שזה הזמן שנדרש לשמירה על קצב פריימים חלק, מוצג באדום.
כדי לראות נתוני עיבוד של פריימים, מתעדים נתוני מעקב באמצעות הגדרה שמאפשרת מעקב אחר קריאות למערכת. אחרי שמקליטים את העקבות, מחפשים מידע על כל פריים לאורך ציר הזמן של ההקלטה בקטע FRAMES, כמו שמוצג בהמשך.

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

צפייה בטקסט מעוצב של מטען ייעודי (payload) של חיבורים בכלי ליצירת פרופילים של רשתות
בעבר, הכלי Network profiler הציג רק טקסט גולמי ממטען ייעודי (payload) של חיבורים. ב-Android Studio 3.3, פורמטים מסוימים של טקסט, כולל JSON, XML ו-HTML, מוגדרים כברירת מחדל. בכרטיסיות תשובה ובקשה, לוחצים על הקישור הצגת הניתוח כדי להציג טקסט מעוצב, ולוחצים על הקישור הצגת המקור כדי להציג טקסט גולמי.

מידע נוסף זמין במאמר בנושא בדיקת תנועת הרשת באמצעות הכלי לניתוח הרשת.
הורדה אוטומטית של רכיבי SDK
כשפרויקט צריך רכיב SDK מפלטפורמות ה-SDK, NDK או CMake, Gradle מנסה עכשיו להוריד באופן אוטומטי את החבילות הנדרשות, כל עוד אישרתם בעבר את הסכמי הרישיון הרלוונטיים באמצעות SDK Manager.
מידע נוסף זמין במאמר בנושא הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
תמיכה ב-Clang-Tidy
Android Studio כולל עכשיו תמיכה בניתוח סטטי של קוד באמצעות Clang-Tidy לפרויקטים שכוללים קוד Native. כדי להפעיל תמיכה ב-Clang-Tidy, צריך לעדכן את NDK לגרסה r18 ואילך.
אחר כך תוכלו להפעיל או להפעיל מחדש את הבדיקות. כדי לעשות את זה, פותחים את תיבת הדו-שיח הגדרות או העדפות ועוברים אל עורך > בדיקות > C/C++ > כללי > Clang-Tidy. כשבוחרים את הבדיקה הזו בתיבת הדו-שיח הגדרות או העדפות, אפשר לראות גם את רשימת הבדיקות של Clang-Tidy שמופעלות ומושבתות בקטע אפשרות בחלונית הימנית ביותר. כדי להפעיל בדיקות נוספות, מוסיפים אותן לרשימה ולוחצים על החלה.
כדי להגדיר את Clang-Tidy עם אפשרויות נוספות, לוחצים על Configure Clang-Tidy Checks Options ומוסיפים אותן בתיבת הדו-שיח שנפתחת.
הסרה של אפשרויות להתאמה אישית של C++
האפשרויות הבאות הוסרו מתיבת הדו-שיח Customize C++ Support:
- תמיכה בחריגים (-fexceptions)
- תמיכה במידע על סוג זמן הריצה (-ftti)
ההתנהגויות הרלוונטיות מופעלות בכל הפרויקטים שנוצרו באמצעות Android Studio.
CMake גרסה 3.10.2
גרסה 3.10.2 של CMake נכללת עכשיו ב-SDK Manager. הערה: Gradle עדיין משתמש בגרסה 3.6.0 כברירת מחדל.
כדי לציין גרסת CMake לשימוש ב-Gradle, מוסיפים את הקוד הבא לקובץ build.gradle של המודול:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
מידע נוסף על הגדרת CMake ב-build.gradle זמין במאמר בנושא הגדרה ידנית של Gradle.
תחביר חדש עם סימן '+' לציון גרסאות מינימום של CMake
כשמציינים גרסה של CMake בקובץ build.gradle של המודול הראשי, אפשר עכשיו לצרף את הסימן '+' כדי להתאים להתנהגות של הפקודה cmake_minimum_required() של CMake.
זהירות: לא מומלץ להשתמש בתחביר '+' עם תלות ב-build אחרות, כי תלות דינמית עלולה לגרום לעדכוני גרסה בלתי צפויים ולקושי בפתרון הבדלים בין גרסאות.
קובצי Android App Bundle תומכים עכשיו באפליקציות ללא התקנה
עכשיו אפשר ליצור ב-Android Studio קובצי Android App Bundle עם תמיכה מלאה ב-Google Play ללא התקנה. במילים אחרות, עכשיו אפשר ליצור ולפרוס גם אפליקציה להתקנה וגם חוויית שימוש מיידי מתוך פרויקט יחיד ב-Android Studio, ולכלול אותן בקובץ Android App Bundle אחד.
אם אתם יוצרים פרויקט חדש ב-Android Studio באמצעות תיבת הדו-שיח Create New Project (יצירת פרויקט חדש), הקפידו לסמן את התיבה לצד Configure your project > This project will support instant apps (הגדרת הפרויקט > הפרויקט הזה יתמוך באפליקציות מיידיות). Android Studio יוצר פרויקט אפליקציה חדש כרגיל, אבל כולל את המאפיינים הבאים במניפסט כדי להוסיף תמיכה באפליקציה מיידית למודול הבסיס של האפליקציה:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
אחר כך אפשר ליצור מודול של תכונה דינמית בגרסה ללא התקנה: בסרגל התפריטים, לוחצים על File > New > New Module (קובץ > חדש > מודול חדש), ואז בתיבת הדו-שיח Create New Module (יצירת מודול חדש) בוחרים באפשרות Instant Dynamic Feature Module (מודול של תכונה דינמית בגרסה ללא התקנה). חשוב לזכור: כשיוצרים את המודול הזה, מופעל באופן מיידי גם מודול הבסיס של האפליקציה.
כדי לפרוס את האפליקציה במכשיר מקומי כחוויית שימוש מיידי, עורכים את הגדרות ההרצה ומסמנים את התיבה שליד General > Deploy as instant app (כללי > פריסה כאפליקציה ללא התקנה).
סנכרון פרויקט עם וריאנט יחיד
סנכרון הפרויקט עם הגדרות ה-build הוא שלב חשוב כדי ש-Android Studio יבין את מבנה הפרויקט. עם זאת, התהליך הזה יכול להיות ארוך בפרויקטים גדולים. אם הפרויקט שלכם משתמש בכמה וריאציות של build, עכשיו אתם יכולים לייעל את הסנכרון של הפרויקט על ידי הגבלת הסנכרון רק לווריאציה שבחרתם כרגע.
כדי להפעיל את האופטימיזציה הזו, צריך להשתמש ב-Android Studio מגרסה 3.3 ואילך עם פלאגין של Android Gradle מגרסה 3.3.0 ואילך. כשעומדים בדרישות האלה, סביבת הפיתוח המשולבת (IDE) מציעה להפעיל את האופטימיזציה הזו כשמסנכרנים את הפרויקט. כברירת מחדל, האופטימיזציה מופעלת גם בפרויקטים חדשים.
כדי להפעיל את האופטימיזציה הזו באופן ידני, לוחצים על File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle ב-Mac) ומסמנים את התיבה Only sync the active variant.
הערה: נכון לעכשיו, האופטימיזציה הזו תומכת בפרויקטים שכוללים רק את שפת התכנות Java. לדוגמה, אם סביבת הפיתוח המשולבת מזהה קוד Kotlin או C++ בפרויקט, היא לא מפעילה את האופטימיזציה הזו באופן אוטומטי, ואסור להפעיל אותה באופן ידני.
מידע נוסף זמין במאמר הפעלת סנכרון של פרויקט עם וריאציה אחת.
שליחת משוב מהיר
אם בחרתם לשתף נתוני שימוש כדי לעזור לנו לשפר את Android Studio, שני הסמלים החדשים האלה יופיעו בשורת הסטטוס בחלק התחתון של חלון ה-IDE:
פשוט לוחצים על הסמל שמייצג בצורה הכי טובה את החוויה הנוכחית שלכם עם סביבת הפיתוח המשולבת. כשאתם עושים את זה, סביבת הפיתוח המשולבת שולחת נתונים סטטיסטיים על השימוש, שמאפשרים לצוות של Android Studio להבין טוב יותר את דעתכם. במקרים מסוימים, למשל כשמציינים חוויה שלילית עם סביבת הפיתוח המשולבת, תהיה לכם אפשרות לספק משוב נוסף.
אם עוד לא עשיתם את זה, אתם יכולים להפעיל את השיתוף של נתוני השימוש. לשם כך, פותחים את תיבת הדו-שיח הגדרות (העדפות ב-Mac), עוברים אל מראה והתנהגות > הגדרות מערכת > שיתוף נתונים ומסמנים את האפשרות שליחת נתוני שימוש אל Google.
3.2 (ספטמבר 2018)
Android Studio 3.2 היא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
3.2.1 (אוקטובר 2018)
העדכון הזה ל-Android Studio 3.2 כולל את השינויים והתיקונים הבאים:
- גרסת Kotlin שצורפה היא עכשיו 1.2.71.
- גרסת ברירת המחדל של כלי הבנייה היא עכשיו 28.0.3.
- בספריית הניווט, שמות סוגי הארגומנטים שונו מ-
typeל-argType. - הבאגים הבאים תוקנו:
- כשמשתמשים בספריית Data Binding, שמות משתנים עם קווים תחתונים גורמים לשגיאות קומפילציה.
- CMake גרם לכשל ב-IntelliSense ובתכונות אחרות של CLion.
- הוספה של
SliceProviderגרמה לשגיאות קומפילציה בפרויקטים שלא נעשה בהם שימוש בספריותandroidx.*. - חלק מהבדיקות של יחידות קוד ב-Kotlin לא הופעלו.
- בעיה באיגוד הנתונים גרמה ל
PsiInvalidElementAccessException. - רכיבי
<merge>גרמו לפעמים לקריסה של Layout Editor.
בעיות מוכרות בגרסה 3.2.0
הערה: הבעיות האלה נפתרו ב-Android Studio 3.2.1
מומלץ מאוד לא להשתמש ב-Kotlin בגרסה 1.2.70.
ב-Kotlin גרסה 1.2.61 תוקן באג שיכול לגרום ל-Android Studio להיתקע, אבל התיקון הזה לא נכלל ב-Kotlin 1.2.70.
עם זאת, גרסאות Kotlin 1.2.71 ואילך כוללות את התיקון הזה.
-
בדרך כלל לא צריך לציין את גרסת כלי ה-build, אבל אם משתמשים בפלאגין של Android Gradle בגרסה 3.2.0 עם
renderscriptSupportModeEnabledשמוגדר ל-true, צריך לכלול את השורות הבאות בכל קובץbuild.gradleשל מודול:android.buildToolsVersion "28.0.3"
מה חדש ב-Assistant
עוזר חדש מודיע לכם על השינויים האחרונים ב-Android Studio.
העוזר נפתח כשמפעילים את Android Studio אחרי התקנה חדשה או עדכון, אם הוא מזהה שיש מידע חדש להציג. אפשר גם לפתוח את העוזר על ידי בחירה באפשרות Help > What's new in Android Studio (עזרה > מה חדש ב-Android Studio).
Android Jetpack
Android Jetpack עוזר להאיץ את פיתוח האפליקציות ל-Android באמצעות רכיבים, כלים והנחיות שמבטלים משימות חוזרות ומאפשרים לכם ליצור אפליקציות איכותיות שניתנות לבדיקה, מהר יותר ובקלות רבה יותר. Android Studio כולל את העדכונים הבאים לתמיכה ב-Jetpack. מידע נוסף מופיע במאמרי העזרה בנושא Jetpack.
כלי הניווט
הכלי החדש לעריכת ניווט משולב עם רכיבי הניווט של Android Jetpack, ומספק תצוגה גרפית ליצירת מבנה הניווט של האפליקציה. הכלי לעריכת ניווט מפשט את העיצוב וההטמעה של הניווט בין יעדים באפליקציה.
ב-Android Studio 3.2, כלי העריכה של הניווט הוא תכונה ניסיונית. כדי להפעיל את כלי העריכה של הניווט, לוחצים על File > Settings (קובץ > הגדרות) (Android Studio > Preferences (העדפות) ב-Mac), בוחרים בקטגוריה Experimental (ניסיוני) בחלונית הימנית, מסמנים את התיבה לצד Enable Navigation Editor (הפעלת כלי העריכה של הניווט) ומפעילים מחדש את Android Studio.
מידע נוסף זמין במסמכי התיעוד של כלי הניווט.
העברה ל-AndroidX
במסגרת Jetpack, אנחנו מעבירים את ספריות התמיכה של Android לספריית הרחבות חדשה של Android באמצעות מרחב השמות androidx. מידע נוסף מופיע בסקירה הכללית על AndroidX.
Android Studio 3.2 כולל תכונה חדשה להעברה, שתעזור לכם בתהליך הזה.
כדי להעביר פרויקט קיים אל AndroidX, בוחרים באפשרות Refactor > Migrate to AndroidX. אם יש לכם יחסי תלות ב-Maven שלא הועברו למרחב השמות של AndroidX, מערכת ה-build של Android Studio גם ממירה באופן אוטומטי את יחסי התלות האלה בפרויקט.
פלאגין של Android Gradle מספק את הדגלים הגלובליים הבאים שאפשר להגדיר בקובץ gradle.properties:
-
android.useAndroidX: אם מגדירים את הדגל הזה לערךtrue, המשמעות היא שרוצים להתחיל להשתמש ב-AndroidX מעכשיו. אם הדגל לא מופיע, Android Studio מתנהג כאילו הדגל הוגדר לערךfalse. -
android.enableJetifier: כשהערך מוגדר ל-true, הדגל הזה מציין שרוצים לקבל תמיכה בכלי (מהתוסף Android Gradle) כדי להמיר באופן אוטומטי ספריות קיימות של צד שלישי כאילו הן נכתבו עבור AndroidX. אם הדגל לא מופיע, Android Studio מתנהג כאילו הדגל הוגדר לערךfalse.
שני הדגלים מוגדרים ל-true כשמשתמשים בפקודה Migrate to AndroidX.
אם אתם רוצים להתחיל להשתמש בספריות AndroidX באופן מיידי ולא צריכים להמיר ספריות קיימות של צד שלישי, אתם יכולים להגדיר את הדגל android.useAndroidX לערך true ואת הדגל android.enableJetifier לערך false.
קובץ Android App Bundle
קובץ Android App Bundle הוא פורמט העלאה חדש שכולל את כל הקוד והמשאבים המהודרים של האפליקציה, אבל דוחה את יצירת ה-APK והחתימה שלו ל-Google Play Store.
מודל חדש להצגת אפליקציות ב-Google Play משתמש בקובץ ה-App Bundle שלכם כדי ליצור חבילות APK שעברו אופטימיזציה ולהציג אותן לכל משתמש בהתאם לתצורת המכשיר שלו. כך כל משתמש מוריד רק את הקוד והמשאבים שהוא צריך כדי להריץ את האפליקציה. אתם כבר לא צריכים ליצור, לחתום ולנהל כמה חבילות APK, והמשתמשים מקבלים הורדות קטנות יותר שעברו אופטימיזציה.
בנוסף, אפשר להוסיף מודולים של תכונות לפרויקט האפליקציה ו לכלול אותם בקובץ ה-AAB. המשתמשים יוכלו להוריד ולהתקין את התכונות של האפליקציה לפי הצורך.
כדי ליצור חבילה, בוחרים באפשרות Build > Build Bundle(s) / APK(s) > Build Bundle(s).
מידע נוסף, כולל הוראות לבנייה ולניתוח של קובץ Android App Bundle, זמין במאמר בנושא Android App Bundle.
נתונים לדוגמה ב-Layout Editor
בפריסות רבות של Android יש נתונים בזמן ריצה, ולכן קשה לדמיין את המראה והתחושה של פריסה בשלב העיצוב של פיתוח האפליקציה. עכשיו אפשר לראות בקלות תצוגה מקדימה של התצוגה בכלי לעריכת פריסות, עם נתונים לדוגמה. כשמוסיפים תצוגה, מופיע לחצן
מתחת לתצוגה בחלון העיצוב. לחיצה על הלחצן הזה תגדיר את מאפייני התצוגה בזמן העיצוב. אתם יכולים לבחור מתוך מגוון תבניות של נתונים לדוגמה ולציין את מספר הפריטים לדוגמה שיוצגו בתצוגה.
כדי לנסות להשתמש בנתונים לדוגמה, מוסיפים את התג
RecyclerView
לפריסה חדשה, לוחצים על לחצן המאפיינים של זמן העיצוב
מתחת לתצוגה, ובוחרים אפשרות מתוך קרוסלת התבניות של נתונים לדוגמה.
פרוסות
רכיבי Slice מספקים דרך חדשה להטמעת חלקים מהפונקציונליות של האפליקציה בממשקי משתמש אחרים ב-Android. לדוגמה, בעזרת Slices אפשר להציג תכונות האפליקציה ותוכן בהצעות החיפוש בחיפוש Google.
ב-Android Studio 3.2 יש תבנית מובנית שעוזרת להרחיב את האפליקציה באמצעות ממשקי ה-API החדשים של Slice Provider, וגם בדיקות lint חדשות כדי לוודא שאתם פועלים לפי השיטות המומלצות כשאתם יוצרים את ה-Slices.
כדי להתחיל, לוחצים לחיצה ימנית על תיקיית פרויקט ובוחרים באפשרות New > Other > Slice Provider (חדש > אחר > ספק פלחים).
מידע נוסף, כולל הוראות לבדיקת האינטראקציות עם ה-Slices, מופיע במדריך לתחילת השימוש ב-Slices.
Kotlin 1.2.61
Android Studio 3.2 כולל את Kotlin 1.2.61, ו-Android SDK החדש משתלב טוב יותר עם Kotlin. מידע נוסף זמין בבלוג למפתחי Android.
IntelliJ IDEA 2018.1.6
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA דרך גרסה 2018.1.6.
כלי פרופיל ל-Android
כדאי לנסות את התכונות החדשות הבאות של Android Profiler ב-Android Studio 3.2.
פעילויות באתר
עכשיו אפשר לשמור נתונים של כלי הפרופיל בתור סשנים כדי לחזור אליהם ולבדוק אותם מאוחר יותר. הכלי ליצירת פרופילים שומר את נתוני הסשן עד שמפעילים מחדש את סביבת הפיתוח המשולבת.
כש מתעדים מעקב אחר שיטה או מצלמים תמונת מצב של הערימה, סביבת הפיתוח המשולבת מוסיפה את הנתונים האלה (יחד עם פעילות הרשת של האפליקציה) כרשומה נפרדת לסשן הנוכחי, ואפשר לעבור בקלות בין ההקלטות כדי להשוות את הנתונים.
איסוף עקבות המערכת
ב-CPU Profiler, בוחרים בהגדרה החדשה System Trace כדי לבדוק את פעילות ה-CPU וה-thread במערכת של המכשיר. הגדרת המעקב הזו מבוססת על systrace והיא שימושית לחקירת בעיות ברמת המערכת, כמו תנודות בממשק המשתמש.
במהלך השימוש בהגדרת המעקב הזו, אפשר לסמן באופן חזותי שגרות קוד חשובות בציר הזמן של כלי לניתוח ביצועים (profiler) על ידי הוספת קוד למעקב לקוד C/C++ באמצעות native tracing API או לקוד Java באמצעות המחלקה Trace.
בדיקת הפניות ל-JNI בכלי Memory Profiler
אם אתם פורסים את האפליקציה במכשיר עם Android 8.0 (רמת API 26) ואילך, עכשיו אתם יכולים לבדוק את הקצאות הזיכרון לקוד JNI של האפליקציה באמצעות Memory Profiler.
בזמן שהאפליקציה פועלת, בוחרים חלק מהציר הזמן שרוצים לבדוק ובוחרים באפשרות JNI heap מהתפריט הנפתח שמעל רשימת המחלקות, כמו שמוצג בהמשך. אחר כך אפשר לבדוק אובייקטים ב-heap כמו שבודקים בדרך כלל, וללחוץ לחיצה כפולה על אובייקטים בכרטיסייה Allocation Call Stack כדי לראות איפה מוקצים ומשוחררים הפניות ל-JNI בקוד.
ייבוא, ייצוא ובדיקה של קובצי תמונת מצב של הזיכרון
מעכשיו אפשר לייבא, לייצא ולבדוק קובצי .hprof תמונות מצב של הזיכרון שנוצרו באמצעות Memory Profiler.
כדי לייבא את קובץ ה-.hprof, לוחצים על Start new profiler session (התחלת סבב חדש של פרופילר)
בחלונית Sessions (סבבים) של הפרופילר, ואז בוחרים באפשרות Load from file (טעינה מקובץ). אחר כך תוכלו לבדוק את הנתונים שלו בכלי Memory Profiler, כמו כל תמונת מצב אחרת של הזיכרון.
כדי לשמור נתוני תמונת מצב של הזיכרון לבדיקה מאוחרת יותר, משתמשים בלחצן Export Heap Dump (ייצוא תמונת מצב של הזיכרון) משמאל לערך Heap Dump (תמונת מצב של הזיכרון) בחלונית Sessions (סשנים). בתיבת הדו-שיח Export As שמופיעה, שומרים את הקובץ עם הסיומת .hprof של שם הקובץ.
תיעוד פעילות ה-CPU במהלך הפעלת האפליקציה
עכשיו אפשר לתעד את פעילות המעבד במהלך הפעלת האפליקציה, באופן הבא:
- בתפריט הראשי, בוחרים באפשרות הפעלה > עריכת הגדרות.
- בכרטיסייה Profiling (פרופיל) של הגדרת ההרצה הרצויה, מסמנים את התיבה שליד Start recording a method trace on startup (התחלת הקלטה של מעקב אחר שיטות בהפעלה).
- בוחרים הגדרת הקלטה של מעבד לשימוש מהתפריט הנפתח.
- כדי לפרוס את האפליקציה במכשיר עם Android 8.0 (רמת API 26) ומעלה, בוחרים באפשרות Run > Profile (הפעלה > פרופיל).
ייצוא של עקבות השימוש במעבד
אחרי שמקליטים את פעילות המעבד באמצעות הכלי CPU Profiler, אפשר לייצא את הנתונים כקובץ .trace כדי לשתף אותם עם אחרים או לבדוק אותם מאוחר יותר.
כדי לייצא את הנתונים של מעקב אחרי פעילות המעבד אחרי שסיימתם להקליט אותם:
- לוחצים לחיצה ימנית על ההקלטה שרוצים לייצא מציר הזמן של ה-CPU.
- בתפריט הנפתח, בוחרים באפשרות Export trace (ייצוא נתוני מעקב).
- עוברים למיקום שבו רוצים לשמור את הקובץ ולוחצים על שמירה.
ייבוא ובדיקה של קבצים של פרטי ההעברה של המעבד
עכשיו אפשר לייבא ולבדוק קובצי .trace שנוצרו באמצעות Debug API או CPU Profiler. (בשלב הזה אי אפשר לייבא הקלטות של System Trace).
כדי לייבא את קובץ המעקב, לוחצים על Start new profiler session (התחלת סשן חדש של כלי הפרופיל)
בחלונית Sessions (סשנים) של כלי הפרופיל, ואז בוחרים באפשרות Load from file (טעינה מקובץ). לאחר מכן תוכלו לבדוק את הנתונים שלו ב-CPU Profiler, בדומה לאופן שבו אתם בדרך כלל עושים זאת, עם החריגים הבאים:
- הפעילות של ה-CPU לא מיוצגת בציר הזמן של ה-CPU.
- ציר הזמן של פעילות השרשור מציין רק איפה נתוני המעקב זמינים לכל שרשור, ולא את המצבים בפועל של השרשור (כמו פעיל, בהמתנה או במצב שינה).
תיעוד פעילות המעבד באמצעות Debug API
מעכשיו אפשר להתחיל ולהפסיק את ההקלטה של פעילות המעבד בכלי CPU Profiler באמצעות הטמעה של Debug API באפליקציה. אחרי שמפעילים את האפליקציה במכשיר, הכלי ליצירת פרופילים מתחיל להקליט באופן אוטומטי את פעילות המעבד (CPU) כשהאפליקציה קוראת ל-startMethodTracing(String tracePath), והוא מפסיק להקליט כשהאפליקציה קוראת ל-stopMethodTracing(). במהלך תיעוד פעילות ה-CPU שמופעלת באמצעות ה-API הזה, ה-CPU Profiler מציג את Debug API כהגדרת התיעוד של ה-CPU שנבחרה.
Energy Profiler
בEnergy Profiler מוצגת ויזואליזציה של צריכת האנרגיה המשוערת של האפליקציה, וגם של אירועי מערכת שמשפיעים על צריכת האנרגיה, כמו נעילות השכמה, משימות מתוזמנות ועבודות.
הכלי Energy Profiler מופיע כשורה חדשה בחלק התחתון של חלון Profiler כשמריצים את האפליקציה במכשיר מחובר או ב-אמולטור Android עם Android מגרסה 8.0 (API 26) ומעלה.
לוחצים על השורה Energy כדי להגדיל את התצוגה של Energy Profiler. ממקמים את מצביע העכבר מעל אחד מהפסי ציר הזמן כדי לראות פירוט של צריכת האנרגיה לפי משאבי המעבד, הרשת והמיקום (GPS), וגם אירועים רלוונטיים במערכת.
אירועים במערכת שמשפיעים על צריכת האנרגיה מסומנים בציר הזמן של המערכת מתחת לציר הזמן של האנרגיה. כשבוחרים טווח זמן בציר הזמן של האנרגיה, בחלונית האירועים מוצגים פרטים של אירועי מערכת בטווח הזמן שצוין.
כדי לראות את סטאק הביצוע ופרטים אחרים של אירוע מערכת, כמו wakelock, בוחרים אותו בחלונית האירועים. כדי לעבור לקוד שאחראי לאירוע מערכת, לוחצים לחיצה כפולה על הרשומה בסטאק ביצוע.
בדיקת Lint
Android Studio 3.2 כולל הרבה תכונות חדשות ומשופרות לבדיקות lint.
בדיקות ה-lint החדשות עוזרות לכם למצוא ולזהות בעיות נפוצות בקוד, החל מאזהרות לגבי בעיות פוטנציאליות בשימושיות ועד לשגיאות בעדיפות גבוהה לגבי נקודות חולשה פוטנציאליות באבטחה.
בדיקות Lint לשילוב עם מערכות חיצוניות ב-Java/Kotlin
כדי לוודא שקוד Java פועל בצורה חלקה עם קוד Kotlin, בדיקות חדשות של lint אוכפות את השיטות המומלצות שמתוארות במדריך Kotlin Interop. דוגמאות לבדיקות כאלה כוללות חיפוש של הערות בנושא Nullability, שימוש במילות מפתח קשיחות של Kotlin והצבת פרמטרים של lambda בסוף.
כדי להפעיל את הבדיקות האלה, לוחצים על File > Settings (Android Studio > Preferences ב-Mac) כדי לפתוח את תיבת הדו-שיח Settings, עוברים אל הקטע Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability ובוחרים את הכללים שרוצים להפעיל.
כדי להפעיל את הבדיקות האלה בגרסאות build משורת הפקודה, מוסיפים את השורות הבאות לקובץ build.gradle:
android {
lintOptions {
check 'Interoperability'
}
}
בדיקות Lint לפרוסות
בדיקות חדשות של lint עבור Slices עוזרות לוודא שאתם יוצרים Slices בצורה נכונה. לדוגמה, בדיקות lint מזהירות אתכם אם לא הקציתם פעולה ראשית ל-Slice.
יעד חדש של Gradle
אפשר להשתמש במשימת Gradle החדשה lintFix כדי להחיל את כל התיקונים הבטוחים שהוצעו על ידי בדיקת ה-lint ישירות על קוד המקור. דוגמה לבדיקת lint שמציעה תיקון בטוח שאפשר להחיל היא SyntheticAccessor.
עדכוני מטא-נתונים
מטא-נתונים שונים, כמו בדיקת ההעברה של השירות, עודכנו כדי שבדיקות lint יפעלו ב-Android 9 (רמת API 28).
אזהרה אם מריצים lint על וריאנט חדש
הכלי Lint מתעד עכשיו את הווריאנט והגרסה שבהם נרשם ערך הבסיס, והוא מציג אזהרה אם מפעילים פתרונות חכמים על וריאנט שונה מזה שבו נוצר ערך הבסיס.
שיפורים בבדיקות ה-lint הקיימות
Android Studio 3.2 כולל הרבה שיפורים בבדיקות lint הקיימות. לדוגמה, בדיקות מחזור המשאבים חלות עכשיו על סוגים נוספים של משאבים, והכלי לזיהוי תרגומים יכול למצוא תרגומים חסרים תוך כדי עבודה, בכלי העריכה.
קל יותר למצוא מזהים של בעיות
מזהי בעיות מוצגים עכשיו ביותר מקומות, כולל בחלון תוצאות הבדיקה. כך קל יותר למצוא את המידע שדרוש להפעלה או להשבתה של בדיקות ספציפיות באמצעות lintOptions ב-build.gradle.
מידע נוסף זמין במאמר בנושא הגדרת אפשרויות של lint באמצעות Gradle.
קישור נתונים מגרסה 2
התכונה Data Binding V2 מופעלת עכשיו כברירת מחדל ותואמת לגרסה 1. המשמעות היא שאם יש לכם יחסי תלות בספריות שקומפלו באמצעות V1, אתם יכולים להשתמש בהם בפרויקטים שמשתמשים ב-Data Binding V2. עם זאת, חשוב לזכור שבפרויקטים שמשתמשים בגרסה 1 אי אפשר להשתמש בתלות שנערכו באמצעות גרסה 2.
הסרת סוכר תחבירי ב-D8
ב-Android Studio 3.1, שילבנו את שלב ה-desugaring בכלי D8 כתכונה ניסיונית, וכך קיצרנו את זמן הבנייה הכולל. ב-Android Studio 3.2, desugaring עם D8 מופעל כברירת מחדל.
כיווץ קוד חדש
R8 הוא כלי חדש לצמצום קוד וערפול קוד (obfuscation) שמחליף את ProGuard. כדי להתחיל להשתמש בגרסת הטרום-השקה של R8, צריך לכלול את השורות הבאות בקובץ gradle.properties של הפרויקט:
android.enableR8 = true
ממשקי ה-ABI שמוגדרים כברירת מחדל לחבילות APK מרובות שונו
כשיוצרים כמה חבילות APK שכל אחת מהן מטרגטת ממשק ABI שונה, התוסף כבר לא יוצר חבילות APK לממשקי ה-ABI הבאים כברירת מחדל: mips, mips64 ו-armeabi.
אם רוצים ליצור קובצי APK שמטרגטים את ממשקי ה-ABI האלה, צריך להשתמש ב-NDK r16b או בגרסה מוקדמת יותר ולציין את ממשקי ה-ABI בקובץ build.gradle, כמו שמוצג בהמשך:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
הערה: השינוי הזה בהתנהגות כלול גם ב-Android Studio 3.1 RC1 ובגרסאות מתקדמות יותר.
שיפורים בתכונות העריכה של קובצי build של CMake
אם אתם משתמשים ב-CMake כדי להוסיף קוד C ו-C++ לפרויקט, ב-Android Studio יש עכשיו תכונות עריכה משופרות שיעזרו לכם לערוך את סקריפטים ה-build של CMake, כמו התכונות הבאות:
- הדגשת תחביר והשלמת קוד: סביבת הפיתוח המשולבת (IDE) מדגישה ומציעה השלמת קוד לפקודות נפוצות של CMake. בנוסף, אפשר ללחוץ על קובץ תוך כדי לחיצה על מקש Control (או Command ב-Mac) כדי לעבור אליו.
- עיצוב מחדש של קוד: עכשיו אפשר להשתמש באפשרות לעיצוב מחדש של קוד ב-IntelliJ כדי להחיל סגנונות קוד על סקריפטים של בניית CMake.
- שינוי מבנה קוד בטוח: כלי שינוי מבנה הקוד המובנים ב-IDE בודקים עכשיו גם אם אתם משנים את השם של קבצים או מוחקים קבצים שמופיעים בהפניה בסקריפטים של בניית CMake.
ניווט בקובצי כותרת חיצוניים
כשמשתמשים בחלון Project בגרסאות קודמות של Android Studio, אפשר לנווט ולבדוק רק את קובצי הכותרת ששייכים לספריות שיוצרים מפרויקט מקומי. בגרסה הזו, אפשר גם להציג ולבדוק קובצי כותרת שכלולים בתלות בספרייה חיצונית של C/C++ שאתם מייבאים לפרויקט האפליקציה.
אם כבר הוספתם קוד וספריות של C/C++ לפרויקט, פותחים את החלון Project (פרויקט) בצד ימין של סביבת הפיתוח המשולבת (IDE). לשם כך, בוחרים באפשרות View > Tool Windows > Project (תצוגה > חלונות כלים > פרויקט) בתפריט הראשי ובוחרים באפשרות Android (אנדרואיד) בתפריט הנפתח. בספרייה cpp, כל הכותרות שנמצאות בהיקף של פרויקט האפליקציה מסודרות מתחת לצומת include לכל אחת מהתלויות בספרייה המקומית C/C++, כמו שמוצג בהמשך.
האפשרות Native multidex מופעלת כברירת מחדל
בגרסאות קודמות של Android Studio, הפעלתם native multidex כשפרסתם את גרסת הניפוי באגים של אפליקציה במכשיר עם Android ברמת API 21 ומעלה. מעכשיו, בין אם אתם פורסים לאפליקציה במכשיר או יוצרים קובץ APK לפרסום, הפלאגין של Android ל-Gradle מאפשר שימוש ב-multidex מקורי לכל המודולים שמוגדרים בגרסה minSdkVersion=21 ומעלה.
הכלי AAPT2 עבר למאגר ה-Maven של Google
החל מ-Android Studio 3.2, המקור של AAPT2 (Android Asset Packaging Tool 2) הוא מאגר Maven של Google.
כדי להשתמש ב-AAPT2, צריך לוודא שיש תלות ב-google() בקובץ build.gradle, כמו שמוצג כאן:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
בגרסה החדשה של AAPT2 תוקנו הרבה בעיות, כולל שיפור הטיפול בתווים שהם לא-ASCII ב-Windows.
הסרה של הגדרות לפי דרישה
ההעדפה Configure on demand הוסרה מ-Android Studio.
Android Studio כבר לא מעביר את הארגומנט --configure-on-demand ל-Gradle.
ADB Connection Assistant
הכלי החדש לחיבור ADB מספק הוראות מפורטות שיעזרו לכם להגדיר מכשיר ולהשתמש בו דרך חיבור Android Debug Bridge (ADB).
כדי להפעיל את הכלי, בוחרים באפשרות Tools > Connection Assistant (כלים > כלי עזר לחיבור).
הכלי 'עזרה בחיבור ADB' מספק הוראות, אמצעי בקרה בהקשר ורשימה של מכשירים מחוברים בסדרת דפים בחלונית העזרה.
שיפורים באמולטור
עכשיו אפשר לשמור ולטעון תמונות מצב של מכשיר אנדרואיד וירטואלי (AVD) בכל שלב באמולטור Android, וכך לחזור במהירות ובקלות למצב מוכר של מכשיר מדומה לצורך בדיקה. כשעורכים מכשיר וירטואלי ל-Android (AVD) באמצעות AVD Manager, אפשר לציין איזו תמונת מצב של ה-AVD לטעון כשה-AVD מתחיל לפעול.
אמצעי הבקרה לשמירה, לטעינה ולניהול של תמונות מצב של AVD נמצאים עכשיו בכרטיסייה Snapshots בחלון Extended controls של האמולטור.
פרטים נוספים זמינים במאמר בנושא תמונות מצב.
מידע נוסף על החידושים והשינויים באמולטור זמין בהערות הגרסה של האמולטור.
3.1 (מרץ 2018)
Android Studio 3.1.0 היא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
3.1.4 (אוגוסט 2018)
העדכון הזה ל-Android Studio 3.1 כולל את השינויים והתיקונים הבאים:
- גרסת Kotlin בחבילה היא עכשיו 1.2.50.
-
פרויקטים חדשים נוצרים עם
kotlin-stdlib-jdk* artifacts, ולא עם ארטיפקטים שלkotlin-stdlib-jre*, שהוצאו משימוש. - השיפורים שבוצעו בניתוח של כללי ProGuard ב-R8
- הבאגים הבאים תוקנו:
-
הניסיון להפעיל את המחלקה הראשית של Kotlin נכשל עם השגיאה:
"Error: Could not find or load main class..." - הכלי R8 נכנס ללולאה אינסופית במהלך ביצוע אופטימיזציות מסוימות.
- השימוש בפקודה Rerun failed tests (הפעלה מחדש של בדיקות שנכשלו) בחלון Run (הפעלה) החזיר לפעמים באופן שגוי את ההודעה "No tests were found" (לא נמצאו בדיקות).
-
D8 לא טיפל נכון במקרים של
invoke-virtual, מה שגרם לקריסה עםVerifyError:invoke-super/virtual can't be used on private method -
הקומפיילר של Data Binding הסתמך על גרסה ישנה של
com.android.tools:annotations. הקומפיילר משתמש עכשיו בהערות של כלי הפרויקט הבסיסי, אם הן זמינות. - Android Studio קורס במהלך מעברים בין רכיבי Fragment כשמשתמשים בכלי פרופיל.
- ניפוי הבאגים קרס כשניסיתי לנפות באגים בפריסה עם תיבת טקסט.
- הייתה בעיה ב-D8 בקריאת קובצי ZIP מסוימים עם תווים מיוחדים.
3.1.3 (יוני 2018)
העדכון הזה ל-Android Studio 3.1 כולל תיקונים לבאגים הבאים:
- היו דליפות זיכרון שגרמו ל-Android Studio לפעול באיטיות ולא להגיב אחרי שהשתמשתם ב-Layout Editor. העדכון הזה כולל תיקונים לרוב הבעיות האלה. אנחנו מתכוונים לפרסם בקרוב עדכון נוסף כדי לטפל בדליפות זיכרון נוספות.
- חלק מהאפליקציות שנבנו באמצעות D8 קרסו בחלק מהטאבלטים של Verizon Ellipsis.
-
התקנה של אפליקציות שנבנו באמצעות D8 נכשלה עם שגיאה
INSTALL_FAILED_DEXOPTבמכשירים שמריצים Android 5.0 או 5.1 (רמת API 21 או 22). - חלק מהאפליקציות שהשתמשו בספריית OkHttp ונבנו באמצעות D8 קרסו במכשירים עם Android 4.4 (רמת API 19).
-
לפעמים ההפעלה של Android Studio נכשלה, עם
ProcessCanceledExceptionבמהלך הפעלת המחלקה עבורcom.intellij.psi.jsp.JspElementType.
3.1.2 (אפריל 2018)
העדכון הזה ל-Android Studio 3.1 כולל תיקונים לבאגים הבאים:
- במקרים מסוימים, Android Studio נתקע ללא הגבלת זמן במהלך היציאה.
-
כשמפעילים את התכונה 'הפעלה מיידית', בנייה שהוגדרה עם ערכות מקור נכשלת ומוצגת ההודעה הבאה:
"The SourceSet name is not recognized by the Android Gradle Plugin." - כשהתכונה 'הפעלה מיידית' הייתה מופעלת, בנייה של פרויקטים חדשים של Kotlin נכשלה כשמופעלת הפקודה Run.
-
במהלך העריכה של קובץ
build.gradle, לפעמים היה עיכוב ניכר בין הקלדת התו לבין הופעתו במסך. -
במהלך יצירת קובץ ה-DEX בחלק מהפרויקטים עם מספר גדול של מודולים או תלות חיצונית, נתקלו בכשלים בבנייה עם הודעת השגיאה הבאה:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker" - בחישוב של רשימת ה-DEX הראשית של D8 לא נלקחו בחשבון חלק מהקריאות הרפלקטיביות.
העדכון הזה כולל גם שינויים שמזרזים משמעותית את ההרצה של בדיקות lint מ-Gradle בתרחישים מסוימים.
3.1.1 (אפריל 2018)
העדכון הזה ל-Android Studio 3.1 כולל תיקונים לבאגים הבאים:
-
במקרים מסוימים, כשפרויקט שנוצר ב-Android Studio 3.0 נפתח בפעם הראשונה ב-Android Studio 3.1, משימת ה-Make שמודעת ל-Gradle הוסרה מהאזור Before launch ב-Run/Debug Configurations. התוצאה הייתה שהפרויקטים לא נוצרו כשלוחצים על הלחצן Run (הפעלה) או Debug (ניפוי באגים), מה שגרם לכשלים כמו פריסה של קובצי APK שגויים וקריסות כשמשתמשים ב-Instant Run.
כדי לפתור את הבעיה הזו, ב-Android Studio 3.1.1 נוספה משימת ה-Make שמודעת ל-Gradle להגדרת ההרצה של פרויקטים שחסר בהם הערך הזה. השינוי הזה מתרחש אחרי הסנכרון הראשון של Gradle, כשהפרויקט נטען.
- ניפוי הבאגים קרס כשניסיתם לנפות באגים בפריסה עם תיבת טקסט אם הפרופיל המתקדם היה מופעל.
- Android Studio קפא אחרי שלחצתם על Build Variants.
- קבצים מסוג AAR (ארכיון Android) חולצו פעמיים, פעם אחת במהלך תהליך הסנכרון של Gradle ופעם אחת במהלך תהליך ה-build של Gradle.
- חלק מהרכיבים חסרו בקובצי וקטורים שניתנים לציור שיובאו מקובצי SVG.
-
האזהרה לגבי הוצאה משימוש של הגדרת התלות
compileעודכנה, ועכשיו היא כוללת הנחיות טובות יותר לגבי ההגדרותimplementationו-api. פרטים על מעבר משימוש בהגדרותcompileזמינים במאמר בנושא הגדרות חדשות של תלות.
תכנות/IDE
IntelliJ 2017.3.3
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA דרך גרסה 2017.3.3. השיפורים כוללים ניתוח טוב יותר של זרימת הבקרה באוספים ובמחרוזות, שיפור בהסקת מסקנות לגבי ערכי null, תיקונים מהירים חדשים ועוד.
פרטים נוספים זמינים בהערות על הגרסה של JetBrains לגרסאות IntelliJ IDEA 2017.2 ו-2017.3, וגם בהערות על הגרסה של JetBrains בנושא עדכונים לתיקון באגים.
שיפורים בעריכת SQL באמצעות Room
כשמשתמשים בספריית מסד הנתונים של Room, אפשר ליהנות מכמה שיפורים בעריכת SQL:
- השלמת קוד בתוך התג
Queryמבינה טבלאות SQL (ישויות), עמודות, פרמטרים של שאילתות, כינויים, שאילתות איחוד (join), שאילתות משנה ופסקי WITH. - הדגשת התחביר של SQL פועלת עכשיו.
- אפשר ללחוץ לחיצה ימנית על שם של טבלה ב-SQL ולשנות את השם שלה. הפעולה הזו גם כותבת מחדש את קוד Java או Kotlin התואם (כולל, למשל, סוג ההחזרה של השאילתה). שינוי השם פועל גם בכיוון ההפוך, כך ששינוי השם של מחלקת Java או שדה Java משנה את קוד ה-SQL המתאים.
- שימושים ב-SQL מוצגים כשמשתמשים באפשרות Find usages (לוחצים לחיצה ימנית ובוחרים באפשרות Find usages בתפריט ההקשר).
- כדי לעבור להצהרה של ישות SQL בקוד Java או Kotlin, אפשר ללחוץ על הישות תוך כדי החזקת מקש Control (או Command ב-Mac).
מידע על שימוש ב-SQL עם Room זמין במאמר בנושא שמירת נתונים במסד נתונים מקומי באמצעות Room.
עדכונים בנושא קישור נתונים
העדכון הזה כולל כמה שיפורים בקישור נתונים:
-
עכשיו אפשר להשתמש באובייקט
LiveDataכשדה שניתן לצפייה בביטויים של קישור נתונים. המחלקהViewDataBindingכוללת עכשיו את ה-method החדשsetLifecycle()שמשמש לצפייה באובייקטיםLiveData. -
המחלקות
ObservableFieldיכולות עכשיו לקבל אובייקטים אחרים שלObservableבבונה שלהן. -
אפשר לראות תצוגה מקדימה של מהדר מצטבר חדש עבור מחלקות של קישור נתונים. פרטים על הקומפיילר החדש הזה והוראות להפעלה שלו זמינים במאמר בנושא Data Binding Compiler V2.
היתרונות של הקומפיילר החדש כוללים:
-
מחלקות
ViewBindingנוצרות על ידי הפלאגין של Android ל-Gradle לפני קומפיילר Java. - הספריות שומרות את מחלקות הקישור שנוצרו כשהאפליקציה עוברת קומפילציה, במקום ליצור אותן מחדש בכל פעם. כך אפשר לשפר משמעותית את הביצועים בפרויקטים עם כמה מודולים.
-
מחלקות
קומפיילר ו-Gradle
D8 הוא מהדר DEX שמוגדר כברירת מחדל
המהדר D8 משמש עכשיו כברירת מחדל ליצירת קוד בייט של DEX.
קומפיילר ה-DEX החדש מציע כמה יתרונות, כולל:
- יצירת קובץ dex מהירה יותר
- הפחתת השימוש בזיכרון
- שיפור ביצירת קוד (הקצאת רגיסטרים טובה יותר, טבלאות מחרוזות חכמות יותר)
- חוויה טובה יותר של ניפוי באגים כשמבצעים מעבר שלב אחר שלב בקוד
כדי ליהנות מהיתרונות האלה, לא צריך לבצע שינויים בקוד או בתהליך העבודה של הפיתוח, אלא אם השבתתם בעבר באופן ידני את מהדר D8.
אם הגדרתם את android.enableD8 לערך false ב-gradle.properties, צריך למחוק את הדגל הזה או להגדיר אותו לערך true:
android.enableD8=true
פרטים נוספים זמינים במאמר בנושא מהדר DEX חדש.
הסרת סוכר תחבירי מצטברת
בפרויקטים שמשתמשים בתכונות של שפת Java 8, מופעל כברירת מחדל תהליך הסרה של סוכר תחבירי מצטבר, שיכול לשפר את משך זמן של תהליך build.
תהליך הסרה של סוכר תחבירי ממיר סוכר תחבירי לפורמט שהקומפיילר יכול לעבד בצורה יעילה יותר.
כדי להשבית את ההסרה ההדרגתית של תחביר מסובך, צריך לציין את ההגדרה הבאה בקובץ gradle.properties של הפרויקט:
android.enableIncrementalDesugaring=false
חלון פלט פשוט
Gradle Console הוחלף בחלון Build, שכולל את הכרטיסיות Sync ו-Build.
פרטים על השימוש בחלון Build החדש והפשוט יותר זמינים במאמר בנושא מעקב אחרי תהליך ה-build.
עדכונים באצווה ואינדוקס במקביל
תהליכי הסנכרון של Gradle והוספה לאינדקס של IDE יעילים הרבה יותר עכשיו, מה שמקטין את הזמן שמתבזבז על פעולות מיותרות רבות של הוספה לאינדקס.
C++ ו-LLDB
ביצענו שיפורים רבים באיכות ובביצועים בשלבי הקידוד, הסנכרון, הבנייה והניפוי של פיתוח C++. השיפורים כוללים:
-
אם אתם עובדים על פרויקטים גדולים ב-C++, אתם אמורים להבחין בשיפור משמעותי בצמצום הזמן שנדרש לבניית סמלים. גם זמן הסנכרון של פרויקטים גדולים קצר בהרבה.
-
הביצועים בתהליך הבנייה והסנכרון עם CMake השתפרו בזכות שימוש חוזר אגרסיבי יותר בתוצאות שנשמרו במטמון.
-
הוספנו מעצבי פורמט (pretty printers) למבני נתונים נוספים ב-C++, כדי שיהיה קל יותר לקרוא את הפלט של LLDB.
-
LLDB פועל עכשיו רק עם Android מגרסה 4.1 (רמת API 16) ומעלה.
הערה: ניפוי באגים מקורי באמצעות Android Studio 3.0 או גרסה מתקדמת יותר לא פועל ב-Windows ב-32 ביט. אם אתם משתמשים ב-Windows 32 bit ואתם צריכים לנפות באגים בקוד Native, אתם צריכים להשתמש ב-Android Studio 2.3.
Kotlin
שודרגה גרסת Kotlin ל-1.2.30
Android Studio 3.1 כולל Kotlin בגרסה 1.2.30.
קוד Kotlin מנותח עכשיו באמצעות בדיקת lint בשורת הפקודה
הפעלת lint משורת הפקודה מנתחת עכשיו את מחלקות Kotlin.
בכל פרויקט שרוצים להריץ עליו את הכלי lint, צריך לכלול את מאגר ה-Maven של Google בקובץ build.gradle ברמה העליונה. מאגר Maven כבר כלול בפרויקטים שנוצרו ב-Android Studio מגרסה 3.0 ואילך.
כלים לשיפור הביצועים
דגימת תהליכי C++ מקומיים באמצעות CPU Profiler
CPU Profiler כולל עכשיו הגדרת ברירת מחדל לתיעוד של עקבות דגימה של השרשורים המקומיים של האפליקציה. כדי להשתמש בהגדרה הזו, צריך לפרוס את האפליקציה במכשיר עם Android 8.0 (רמת API 26) ומעלה, ואז לבחור באפשרות Sampled (Native) (דגימה (מקומי)) בתפריט הנפתח של הגדרות ההקלטה בכלי CPU Profiler. אחרי זה, מתעדים ובודקים את הנתונים כרגיל.
אפשר לשנות את הגדרות ברירת המחדל, כמו מרווח הדגימה, על ידי יצירת הגדרות הקלטה.
כדי לחזור למעקב אחרי השרשורים של Java, בוחרים באחת מההגדרות הבאות: Sampled (Java) או Instrumented (Java).
סינון של עקבות מעבד (CPU), תוצאות של הקצאת זיכרון ו-heap dumps
הכלי CPU Profiler והכלי Memory Profiler כוללים תכונת חיפוש שמאפשרת לסנן תוצאות מהקלטה של תיעוד method, הקצאות זיכרון או תמונת מצב של הזיכרון.
כדי לחפש, לוחצים על סינון
בפינה השמאלית העליונה של החלונית, מקלידים
את השאילתה ולוחצים על Enter.
טיפ: אפשר גם לפתוח את שדה החיפוש על ידי הקשה על Control + F (או על Command + F ב-Mac).
בכרטיסייה Flame Chart של CPU Profiler, מחסניות קריאות שכוללות שיטות שקשורות לשאילתת החיפוש מודגשות ומועברות לצד הימני של התרשים.
מידע נוסף על סינון לפי שיטה, מחלקה או שם חבילה זמין במאמר בנושא תיעוד ובדיקה של עקבות שיטות.
הכרטיסייה 'בקשה' בכלי לניתוח הרשת
הכלי לניתוח הרשת כולל עכשיו כרטיסייה בשם Request שמספקת פרטים על בקשות לאחזור מהרשת במהלך ציר הזמן שנבחר. בגרסאות קודמות, הכלי Network Profiler סיפק רק מידע על תגובות של הרשת.
תצוגת השרשור בכלי לניתוח הרשת
אחרי שבוחרים חלק מציר הזמן בהכלי לניתוח הרשת, אפשר לבחור אחת מהכרטיסיות הבאות כדי לראות פרטים נוספים על פעילות הרשת במהלך פרק הזמן הזה:
- Connection View: מספק את אותו מידע כמו בגרסאות קודמות של Android Studio – מוצגת רשימה של קבצים שנשלחו או התקבלו במהלך החלק שנבחר בציר הזמן בכל השרשורים של מעבד ה-CPU באפליקציה. לכל בקשה אפשר לבדוק את הגודל, הסוג, הסטטוס ומשך השידור.
- תצוגת שרשור: מציגה את פעילות הרשת של כל אחד משרשורי ה-CPU של האפליקציה. בתצוגה הזו אפשר לבדוק אילו מה-Threads באפליקציה אחראים לכל בקשה לאחזור מהרשת.
כלי לבדיקת פריסות
נוספו תכונות חדשות לLayout Inspector, כולל פונקציונליות שבעבר סופקה על ידי כלי Hierarchy Viewer ו-Pixel Perfect שהוצאו משימוש:
- לחצני זום ומקשי קיצור לניווט ולבדיקה של פריסות
- שכבת-על של רשת רפרנס
- אפשרות לטעון תמונת הפניה ולהשתמש בה כשכבת-על (שימושי להשוואה בין הפריסה שלכם לבין מוקאפ של ממשק משתמש)
- Render subtree preview (הצגת תצוגה מקדימה של עץ משנה) כדי לבודד תצוגה בפריסה מורכבת
כלי לעריכת פריסות
בוצעו שיפורים רבים בלוח בעורך הפריסות:
- ארגון מחדש של קטגוריות לתצוגות ולפריסות.
- קטגוריה חדשה בשם Common (נפוץ) לתצוגות ולפריסות, שאפשר להוסיף לה פקודה של Favorite (מועדף).
- שיפרנו את החיפוש של תצוגות ופריסות.
- פקודות חדשות לפתיחת תיעוד של תצוגה ספציפית או רכיב פריסה.
אפשר להשתמש בפקודה החדשה Convert view (המרת תצוגה) בComponent tree (עץ הרכיבים) או בעורך העיצוב כדי להמיר תצוגה או פריסה לסוג אחר של תצוגה או פריסה.
עכשיו אפשר ליצור בקלות אילוצים לפריטים שקרובים לתצוגה שנבחרה באמצעות הלחצנים החדשים ליצירת חיבור
בחלק העליון של חלון המאפיינים בכלי לבדיקת התצוגה.
הרצה והרצה מיידית
ההתנהגות של האפשרות שימוש באותה בחירה בהשקות עתידיות בתיבת הדו-שיח בחירת יעד פריסה עכשיו עקבית יותר. אם האפשרות שימוש באותה בחירה מופעלת, תיבת הדו-שיח בחירת יעד הפריסה תיפתח רק בפעם הראשונה שמשתמשים בפקודה הפעלה, עד שהמכשיר שנבחר לא יהיה מחובר יותר.
כשמטרגטים מכשיר עם Android 8.0 (רמת API 26) ואילך, Instant Run יכול לפרוס שינויים במשאבים בלי לגרום להפעלה מחדש של האפליקציה. האפשרות הזו קיימת כי המשאבים כלולים בקובץ APK מפוצל.
מכשיר הדמיה
לפרטים על מה חדש ומה השתנה באמולטור Android מאז Android Studio 3.0, אפשר לעיין בנתוני הגרסה של אמולטור Android מגרסה 27.0.2 עד גרסה 27.1.12.
השיפורים העיקריים כוללים:
- תמונות מצב של הפעלה מהירה לשמירת מצב האמולטור והפעלה מהירה יותר, עם אפשרות להשתמש בפקודה שמירה עכשיו כדי לשמור מצב התחלה מותאם אישית.
- מסך אמולטור ללא חלון.
- תמונות מערכת ל-Android 8.0 (רמת API 26), ל-Android 8.1 (רמת API 27) ולתצוגה מקדימה למפתחים של Android P.
שיפורים בממשק המשתמש ובחוויית המשתמש
עוד תיאורי כלים, מקשי קיצור והודעות מועילות
הוספנו הרבה הודעות שימושיות וחלונות קופצים עם הסברים במקומות שונים ב-Android Studio.
כדי לראות את מקשי הקיצור של הרבה פקודות, פשוט מעבירים את מצביע העכבר מעל לחצן עד שמופיע תיאור הכלי.
הוסר התפריט 'כלים' > 'Android'
התפריט Tools > Android הוסר. פקודות שהיו קודם בתפריט הזה הועברו.
- הרבה פקודות הועברו ישירות מתחת לתפריט כלים.
- הפקודה Sync project with gradle files עברה לתפריט File.
- הפקודה Device Monitor הוסרה, כמו שמתואר בהמשך.
הכלי 'מעקב אחרי מכשירים' זמין משורת הפקודה
ב-Android Studio 3.1, תפקיד הכלי Device Monitor מצומצם יותר מבעבר. במקרים רבים, הפונקציונליות שהייתה זמינה דרך הכלי Device Monitor מסופקת עכשיו על ידי כלים חדשים ומשופרים.
הוראות להפעלת כלי מעקב המכשירים משורת הפקודה ופרטים על הכלים שזמינים דרך כלי מעקב המכשירים מופיעים במסמכי התיעוד של כלי מעקב המכשירים.
3.0 (אוקטובר 2017)
Android Studio 3.0.0 היא גרסה מרכזית שכוללת מגוון של תכונות ושיפורים חדשים.
משתמשי macOS: אם אתם מעדכנים גרסה ישנה יותר של Android Studio, יכול להיות שיוצג לכם תיבת דו-שיח של שגיאת עדכון עם ההודעה 'נמצאו כמה קונפליקטים באזור ההתקנה'. פשוט מתעלמים מהשגיאה הזו ולוחצים על ביטול כדי להמשיך בהתקנה.
3.0.1 (נובמבר 2017)
זהו עדכון קל ל-Android Studio 3.0 שכולל תיקוני באגים כלליים ושיפורי ביצועים.
Android Plugin for Gradle 3.0.0
פלאגין Android ל-Gradle החדש כולל מגוון שיפורים ותכונות חדשות, אבל הוא משפר בעיקר את ביצועי ה-build בפרויקטים עם מספר גדול של מודולים. כשמשתמשים בתוסף החדש עם פרויקטים גדולים כאלה, אמורים לראות את הדברים הבאים:
- זמני ההגדרה של ה-build מהירים יותר בזכות פתרון חדש של תלות מושהית.
- פתרון תלויות שמודע לווריאציות רק עבור הפרויקטים והווריאציות שאתם יוצרים.
- זמני בנייה מצטברים מהירים יותר כשמחילים שינויים פשוטים על קוד או על משאבים.
הערה: השיפורים האלה דרשו שינויים משמעותיים שמשבשים חלק מההתנהגויות, ה-DSL וממשקי ה-API של הפלאגין. שדרוג לגרסה 3.0.0 עשוי לדרוש שינויים בקובצי ה-build ובפלאגינים של Gradle.
הגרסה הזו כוללת גם את הפריטים הבאים:
- תמיכה ב-Android 8.0.
- תמיכה ביצירת קובצי APK נפרדים על סמך משאבי שפה.
- תמיכה בספריות Java 8 ובתכונות של שפת Java 8 (ללא מהדר Jack).
- תמיכה ב-Android Test Support Library 1.0 (Android Test Utility ו-Android Test Orchestrator).
- שיפור מהירויות ה-build של ndk-build ו-cmake.
- שיפור מהירות הסנכרון של Gradle.
- הכלי AAPT2 מופעל עכשיו כברירת מחדל.
- השימוש ב-
ndkCompileמוגבל יותר עכשיו. במקום זאת, צריך לעבור אל באמצעות CMake או ndk-build כדי לקמפל קוד Native שרוצים לארוז ב-APK. מידע נוסף זמין במאמר בנושא העברה מ-ndkcompile.
מידע נוסף על השינויים זמין בנתוני הגרסה של פלאגין Android ל-Gradle.
אם אתם מוכנים לשדרג לפלאגין החדש, כדאי לעיין במאמר בנושא מעבר לפלאגין Android ל-Gradle 3.0.0.
תמיכה ב-Kotlin
כפי שהודענו ב-Google I/O 2017, שפת התכנות Kotlin נתמכת עכשיו באופן רשמי ב-Android. לכן, בגרסה הזו, Android Studio כולל תמיכה בשפת Kotlin לפיתוח ל-Android.
כדי לשלב את Kotlin בפרויקט, אפשר להמיר קובץ Java ל-Kotlin (לוחצים על Code > Convert Java File to Kotlin File) או ליצור פרויקט חדש עם Kotlin באמצעות האשף New Project.
כדי להתחיל, מומלץ לקרוא איך מוסיפים Kotlin לפרויקט.
תמיכה בתכונות של שפת Java 8
עכשיו אפשר להשתמש בתכונות מסוימות של שפת Java 8 ולצרוך ספריות שנבנו באמצעות Java 8. אין יותר צורך ב-Jack, ולכן קודם צריך להשבית את Jack כדי להשתמש בתמיכה המשופרת ב-Java 8 שמוטמעת בשרשרת הכלים שמוגדרת כברירת מחדל.
כדי לעדכן את הפרויקט כך שיתמוך בערכת הכלים החדשה של Java 8, צריך לעדכן את Source Compatibility (תאימות המקור) ואת Target Compatibility (תאימות היעד) ל-1.8 בתיבת הדו-שיח Project Structure (מבנה הפרויקט) (לוחצים על File > Project Structure (קובץ > מבנה הפרויקט)). איך משתמשים בתכונות של שפת Java 8
Android Profiler
הכלי החדש Android Profiler מחליף את הכלי Android Monitor ומספק חבילה חדשה של כלים למדידת השימוש במעבד (CPU), בזיכרון וברשת באפליקציה בזמן אמת. אתם יכולים לבצע מעקב אחר שיטות שמבוסס על דגימה כדי לתזמן את הביצוע של הקוד, לצלם תמונות מצב של ערימת הזיכרון (heap snapshot), לראות את הקצאות הזיכרון ולבדוק את הפרטים של קבצים שמועברים ברשת.
כדי לפתוח את הכלי, לוחצים על View > Tool Windows > Android Profiler (תצוגה > חלונות כלים > Android Profiler) או על Android Profiler בסרגל הכלים.
ציר הזמן של האירוע בחלק העליון של החלון מציג אירועי מגע, לחיצות על מקשים ושינויים בפעילות, כדי לספק לכם יותר הקשר להבנת אירועי ביצועים אחרים בציר הזמן.
הערה: גם התצוגה Logcat הועברה לחלון נפרד (היא הייתה קודם ב-Android Monitor, שהוסר).
בציר הזמן של סקירת Android Profiler, לוחצים על ציר הזמן CPU, MEMORY או NETWORK כדי לגשת לכלי הפרופיל המתאימים.
CPU Profiler
הכלי CPU Profiler עוזר לכם לנתח את השימוש בשרשור המעבד (CPU) של האפליקציה על ידי הפעלה של דגימה או של מעקב אחר המעבד (CPU) עם מכשור. לאחר מכן, תוכלו לפתור בעיות בביצועי המעבד באמצעות מגוון תצוגות נתונים ומסננים.
מידע נוסף זמין במדריך ל-CPU Profiler.
כלי לניתוח ביצועי הזיכרון
הכלי Memory Profiler עוזר לכם לזהות דליפות זיכרון והעמסת זיכרון שעלולים לגרום לגמגום, להקפאה ואפילו לקריסות של האפליקציה. בכרטיסייה מוצג גרף בזמן אמת של השימוש בזיכרון של האפליקציה, והיא מאפשרת לכם לצלם תמונת מצב של הזיכרון, להפעיל איסוף של נתונים מיותרים ולעקוב אחרי הקצאות זיכרון.
מידע נוסף זמין במדריך ל-Memory Profiler.
Network Profiler
הכלי Network Profiler מאפשר לכם לעקוב אחרי הפעילות ברשת של האפליקציה, לבדוק את מטען הנתונים של כל אחת מהבקשות לרשת ולקשר חזרה לקוד שיצר את הבקשה לרשת.
מידע נוסף זמין במדריך Network Profiler.
ניפוי באגים ופרופילים של קובצי APK
עכשיו אפשר ב-Android Studio ליצור פרופיל ולנפות באגים בכל קובץ APK בלי לבנות אותו מפרויקט Android Studio – כל עוד קובץ ה-APK נוצר עם אפשרות לניפוי באגים ויש לכם גישה לסמלי ניפוי הבאגים ולקובצי המקור.
כדי להתחיל, לוחצים על Profile or debug APK (פרופיל או ניפוי באגים ב-APK) במסך הפתיחה של Android Studio. לחלופין, אם כבר פתוח פרויקט, לוחצים על קובץ > פרופיל או ניפוי באגים של APK בסרגל התפריטים. יוצגו קובצי ה-APK שחולצו, אבל הקוד לא יעבור דה-קומפילציה. לכן, כדי להוסיף נקודות עצירה ולצפות במעקב אחר מחסנית הקריאות בצורה תקינה, צריך לצרף קובצי מקור של Java וסמלים מקומיים של ניפוי באגים.
מידע נוסף מופיע במאמר בנושא יצירת פרופיל וניפוי באגים של קובצי APK מוכנים מראש.
סייר קבצים במכשיר
סייר הקבצים החדש במכשיר מאפשר לכם לבדוק את מערכת הקבצים של המכשיר המחובר ולהעביר קבצים בין המכשיר למחשב. הכלי הזה מחליף את הכלי של מערכת הקבצים שזמין ב-DDMS.
כדי לפתוח, לוחצים על View > Tool Windows > Device File Explorer (תצוגה > חלונות כלים > סייר קבצים במכשיר).
מידע נוסף זמין במאמר בנושא מדריך ל-Device File Explorer.
תמיכה באפליקציות ללא התקנה
נוסף תמיכה חדשה באפליקציות ללא התקנה ל-Android, שמאפשרת ליצור אפליקציות ללא התקנה בפרויקט באמצעות שני סוגים חדשים של מודולים: מודולים של אפליקציות ללא התקנה ומודולים של תכונות (כדי להשתמש בהם צריך להתקין את Instant Apps Development SDK).
ב-Android Studio יש גם פעולת refactoring חדשה של מודולריזציה שעוזרת לכם להוסיף תמיכה באפליקציות מיידיות בפרויקט קיים. לדוגמה, אם רוצים לשנות את מבנה הפרויקט כדי להעביר כמה מחלקות למודול של תכונה באפליקציה מיידית, בוחרים את המחלקות בחלון Project (פרויקט) ולוחצים על Refactor > Modularize (שינוי מבנה > מודולריזציה). בתיבת הדו-שיח שמופיעה, בוחרים את המודול שאליו רוצים להעביר את הכיתות ולוחצים על אישור.
כשמוכנים לבדוק את האפליקציה המיידית, אפשר ליצור ולהפעיל את מודול האפליקציה המיידית במכשיר מחובר. לשם כך, צריך לציין את כתובת ה-URL של האפליקציה המיידית באפשרויות ההפעלה של הגדרות ההרצה: בוחרים באפשרות Run > Edit Configurations (הפעלה > עריכת הגדרות), בוחרים את מודול האפליקציה המיידית ומגדירים את כתובת ה-URL בקטע Launch Options (אפשרויות הפעלה).
מידע נוסף זמין במאמר בנושא אפליקציות ללא התקנה ל-Android.
מודולים של Android Things
תבניות חדשות של Android Things באשפי New Project (פרויקט חדש) ו-New Module (מודול חדש) שיעזרו לכם להתחיל לפתח למכשירי IoT מבוססי Android.
מידע נוסף זמין במאמר בנושא יצירת פרויקט Android Things.
אשף הסמלים הדינמיים
Image Asset Studio תומך עכשיו בקבצים וקטוריים מסוג drawable ומאפשר ליצור סמלים דינמיים של אפליקציות ל-Android 8.0, ובו-זמנית ליצור סמלים רגילים (סמלים מדור קודם) למכשירים ישנים יותר.
כדי להתחיל, לוחצים לחיצה ימנית על התיקייה res בפרויקט ואז לוחצים על New > Image Asset (חדש > נכס תמונה). בחלון Asset Studio, בוחרים באפשרות Launcher Icons (Adaptive and Legacy) (סמלי אפליקציות (אדפטיביים ומדור קודם)) כסוג הסמל.
הערה: כדי להשתמש בסמלי הפעלה דינמיים, צריך להגדיר את compileSdkVersion ל-26 ומעלה.
מידע נוסף זמין במאמר בנושא סמלים דינמיים.
תמיכה במשאבי גופנים
כדי לתמוך במשאבי הגופן החדשים ב-Android 8.0, Android Studio כולל כלי לבחירת משאבי גופן שיעזור לכם לארוז גופנים באפליקציה או להגדיר את הפרויקט כך שהגופנים יורדו למכשיר (אם הם זמינים). בעורך הפריסה אפשר גם לראות תצוגה מקדימה של הגופנים בפריסה.
כדי לנסות גופנים להורדה, צריך לוודא שבמכשיר או באמולטור פועלת גרסה 11.2.63 ואילך של Google Play Services. מידע נוסף זמין במאמר בנושא גופנים להורדה.
Firebase App Indexing Assistant
עודכן מדריך חדש ב-Firebase Assistant לבדיקת הוספת אפליקציות לאינדקס. כדי לפתוח את הכלי, בוחרים באפשרות Tools > Firebase (כלים > Firebase). לאחר מכן בוחרים באפשרות הוספה לאינדקס של אפליקציות > בדיקה של הוספה לאינדקס של אפליקציות.
המדריך כולל לחצנים חדשים לבדיקת יצירת אינדקס של תוכן ציבורי ואישי:
- בשלב 2, לוחצים על תצוגה מקדימה של תוצאות החיפוש כדי לוודא שכתובות ה-URL מופיעות בתוצאות החיפוש ב-Google.
- בשלב 3, לוחצים על Check for errors כדי לוודא שהאובייקטים שאפשר להוסיף לאינדקס באפליקציה נוספו לאינדקס התוכן האישי.
Android App Links Assistant
App Links Assistant עודכן עם היכולות החדשות הבאות:
-
מוסיפים בדיקות של כתובות URL לכל מיפוי של כתובת URL כדי לוודא שמסנני הכוונות מטפלים בכתובות URL מהעולם האמיתי.
אפשר גם להגדיר את הבדיקות האלה של כתובות URL באופן ידני באמצעות התג
<tools:validation>שמתואר בהמשך. -
יוצרים קובץ Digital Asset Links עם רשומת האובייקט המתאימה כדי לתמוך ב-Google Smart Lock, ומוסיפים את התג
asset_statements<meta-data>המתאים לקובץ המניפסט.
כלי לאימות מסנן Intent של כתובת URL
Android Studio תומך עכשיו בתג מיוחד בקובץ המניפסט, שמאפשר לכם לבדוק את כתובות ה-URL של מסנן ה-Intent. אלה אותם תגים שהכלי App Links Assistant יכול ליצור בשבילכם.
כדי להצהיר על כתובת URL לבדיקה
של מסנן Intent, מוסיפים רכיב <tools:validation> לצד
רכיב <intent-filter> המתאים. לדוגמה:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
חשוב לכלול גם את xmlns:tools="http://schemas.android.com/tools" בתג <manifest>.
אם אחת מכתובות ה-URL לבדיקה לא עוברת את ההגדרה של מסנן Intent, מופיעה שגיאת lint. שגיאה כזו עדיין מאפשרת ליצור גרסאות לניפוי באגים, אבל היא תשבש את גרסאות ההפצה.
כלי לעריכת פריסות
כלי פריסת הדפים עודכן עם מספר שיפורים, כולל:
- פריסה וסמלים חדשים בסרגל הכלים.
- הפריסה עודכנה בעץ הרכיבים.
- שיפרנו את האפשרות להוסיף תצוגות באמצעות גרירה ושחרור.
- חלונית שגיאות חדשה מתחת לכלי העריכה, שבה מוצגות כל הבעיות עם הצעות לתיקון (אם יש).
- ביצענו שיפורים שונים בממשק המשתמש של
ConstraintLayout, כולל:- תמיכה חדשה ביצירת מחסומים.
- תמיכה חדשה ביצירת קבוצות: בסרגל הכלים, בוחרים באפשרות הנחיות > הוספת קבוצה (נדרשת גרסה ConstraintLayout 1.1.0 beta 2 או גרסה מתקדמת יותר)
- ממשק משתמש חדש ליצירת שרשורים: בוחרים כמה תצוגות, לוחצים לחיצה ימנית ואז בוחרים באפשרות שרשור.
כלי לבדיקת פריסות
Layout Inspector כולל שיפורים שמקלים על ניפוי באגים בפריסות של האפליקציות, כולל קיבוץ מאפיינים לקטגוריות משותפות ופונקציונליות חיפוש חדשה בחלוניות View Tree ו-Properties.
הכלי לניתוח APK
עכשיו אפשר להשתמש בכלי לניתוח APK משורת הפקודה באמצעות הכלי apkanalyzer.
גם הכלי לניתוח APK עודכן, והשיפורים הבאים נוספו לו:
- אם קובצי ה-APK נוצרו באמצעות ProGuard, אפשר לטעון קובצי מיפוי של ProGuard שמוסיפים יכולות לצפייה ב-DEX, כולל:
- צמתים מודגשים שמציינים שלא צריך להסיר את הצמתים כשמכווצים את הקוד.
- לחצן להצגת צמתים שהוסרו במהלך תהליך הכיווץ.
- לחצן שמשחזר את השמות המקוריים של הצמתים בתצוגת העץ שעברו טשטוש על ידי ProGuard.
- ב-DEX Viewer מוצגת עכשיו ההשפעה המשוערת של כל חבילה, מחלקה ושיטה על הגודל.
- אפשרויות סינון חדשות בחלק העליון, להצגה ולהסתרה של שדות ושיטות.
- בתצוגת העץ, צמתים שהם הפניות שלא מוגדרות בקובץ DEX מופיעים באותיות מוטות.
מידע נוסף זמין במאמר ניתוח של ה-Build באמצעות הכלי לניתוח APK.
תצוגה מקדימה של מהדר D8 DEX
Android Studio 3.0 כולל קומפיילר DEX חדש אופציונלי בשם D8. בסופו של דבר הוא יחליף את מהדר DX, אבל אפשר להפעיל את מהדר D8 החדש כבר עכשיו.
הידור DEX משפיע ישירות על משך זמן של תהליך build של האפליקציה, .dex על גודל הקובץ ועל ביצועי זמן הריצה. בהשוואה לקומפיילר DX הנוכחי, קומפיילר D8 החדש מבצע קומפילציה מהר יותר ומפיק קובצי .dex קטנים יותר, וביצועי זמן הריצה של האפליקציה זהים או טובים יותר.
כדי לנסות את התכונה הזו, מגדירים את הערכים הבאים בקובץ gradle.properties של הפרויקט:
android.enableD8=true
מידע נוסף זמין בפוסט בבלוג בנושא מהדר D8.
מאגר Maven של Google
מעכשיו, Android Studio משתמש במאגר Maven של Google כברירת מחדל, במקום להסתמך על Android SDK Manager כדי לקבל עדכונים לספריית התמיכה של Android, ל-Google Play Services, ל-Firebase ולתלויות אחרות. כך קל יותר לעדכן את הספריות, במיוחד כשמשתמשים במערכת שילוב רציף (CI).
כל הפרויקטים החדשים כוללים עכשיו את מאגר Maven של Google כברירת מחדל. כדי לעדכן את הפרויקט הקיים, מוסיפים את google() לבלוק repositories בקובץ build.gradle ברמה העליונה:
allprojects {
repositories {
google()
}
}
מידע נוסף על מאגר Maven של Google
שינויים אחרים
- ניפוי באגים מקורי באמצעות Android Studio כבר לא תומך ב-Windows בגרסת 32 ביט. החלטנו להתמקד בפלטפורמות אחרות כי רק מעט מפתחים משתמשים בפלטפורמה הזו. אם אתם משתמשים ב-Windows 32 ביט ואתם מתכננים לבצע ניפוי באגים בקוד מקורי, כדאי להמשיך להשתמש ב-Android Studio 2.3.
- שדרגנו את סביבת הפיתוח המשולבת הבסיסית ל-IntelliJ 2017.1.2, שכוללת מספר תכונות חדשות מ-2016.3 ומ-2017.1, כמו שינוי מבנה של שפת Java 8, רמזים לפרמטרים, הדגשה סמנטית, נקודות עצירה שניתן לגרור, תוצאות מיידיות בחיפוש ועוד.
- נוספו הרבה בדיקות חדשות של Lint.
- אפשר גם לעיין בעדכונים האחרונים של אמולטור Android.
2.3 (מרץ 2017)
Android Studio 2.3.0 הוא בעיקר גרסה שכוללת תיקוני באגים ושיפורים ביציבות, אבל היא כוללת גם מספר תכונות חדשות.
2.3.3 (יוני 2017)
זהו עדכון קל שנועד להוסיף תמיכה ב-Android O (רמת API 26).
2.3.2 (אפריל 2017)
זהו עדכון קל ל-Android Studio 2.3 שכולל את השינויים הבאים:
- עדכונים ל-AVD Manager כדי לתמוך ב-Google Play בקובצי אימג' של המערכת.
- תיקוני באגים ב-NDK builds כשמשתמשים ב-R14+ של NDK.
אפשר גם לעיין בעדכונים התואמים ל-אמולטור Android 26.0.3.
2.3.1 (אפריל 2017)
זהו עדכון קל ל-Android Studio 2.3 שמתקן בעיה שבה חלק ממכשירי Android פיזיים לא פעלו כראוי עם Instant Run (ראו Issue #235879).
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
New > Vector Asset</b>), you can now filter the list of available icons by
category or by icon name. For more information, see <a href=
"/studio/write/vector-asset-studio.html#materialicon">Adding a material
icon</a>.
</li>
<li>
<a href="/studio/write/annotations.html#accessibility">New and updated
annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
classes, and packages lets you restrict an API. The updated
<code>@VisibleForTesting</code> annotation now has an optional
<code>otherwise</code> argument that lets you designate what the visibility
of a method should be if not for the need to make it visible for testing.
Lint uses the <code>otherwise</code> option to enforce the intended
visibility of the method.
</li>
<li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
allows you to use a snapshot of your project's current set of warnings as a
baseline for future inspection runs so only new issues are reported. The
baseline snapshot lets you start using lint to fail the build for new issues
without having to go back and address all existing issues first.
</li>
<li>New lint checks, including the following:
<ul>
<li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
code that checks for SDK versions.
</li>
<li>Object Animator Validation: Lint analyzes your code to make sure that
your <code>ObjectAnimator</code> calls reference valid methods with the
right signatures and checks that those methods are annotated with <code>
@Keep</code> to prevent ProGuard from renaming or removing them during
release builds.
</li>
<li>Unnecessary Item Decorator Copy: Older versions of the
<code>RecyclerView</code> library did not include a divider decorator
class, but one was provided as a sample in the support demos. Recent
versions of the library have a divider decorator class. Lint looks for
the old sample and suggests replacing it with the new one.
</li>
<li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.3.0.</a>
</p>
<p class="note">
<b>Known issue:</b> Some device manufacturers block apps from automatically
launching after being installed on the device. When deploying your app to a
physical device using Android Studio 2.3, this restriction breaks the
intended behavior of Instant Run and causes the following error output:
<code>Error: Not found; no service started</code>. To avoid this issue,
either <a href="/studio/run/emulator.html">use the emulator</a> or enable
automatic launching for your app in your device's settings. The procedure
for doing this is different for each device, so check the instructions
provided by the manufacturer. To learn more about this issue, see
<a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
#235879</a>.
</p>
2.2 (ספטמבר 2016)
2.2.3 (דצמבר 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a bug fixes
focused around gradle, the core IDE, and lint.
</p>
<p>
Highlighted build changes:
</p>
<ul>
<li>ProGuard version rollback. Due to a <a href=
"https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
have worked with the ProGuard team on getting a fix quickly, and we expect
to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
</li>
<li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
not working properly (<a href="http://b.android.com/224167">issue
224167</a>)
</li>
<li>Bug fix for Gradle autodownload for Constraint Layout library
(<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
212128</a>)
</li>
<li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
"http://b.android.com/227729">issue 227729</a>)
</li>
</ul>
<p>
<a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.2.3</a>.
</p>
2.2.2 (אוקטובר 2016)
<p>
This is a minor update to Android Studio 2.2. It includes a number of small
changes and bug fixes, including:
</p>
<ul>
<li>When reporting Instant Run issues through the IDE, the report now also
includes logcat output for <code>InstantRun</code> events. To help us
improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</li>
<li>A number of small bug fixes for Gradle.
</li>
<li>A fix for problems with generating multiple APKs.
</li>
</ul>
2.2.1 (אוקטובר 2016)
<p>
This is a minor update to Android Studio 2.2. It includes several bug fixes
and a new feature to enable extra logging to help us troubleshoot Instant
Run issues—to help us improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</p>
חדש
- Layout Editor חדש לגמרי עם כלים שנוצרו במיוחד לתמיכה ב-ConstraintLayout.
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <strong>Network type</strong> control.
</li>
<li>Added simulated vertical swipes for scrolling through vertical menus
with a mouse wheel.
</li>
</ul>
</li>
<li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
Configuration</a></strong> features:
<ul>
<li>The <strong>Debugger</strong> tab of the Android App and Android
Tests templates now contain several new options for debugging with LLDB.
</li>
<li>The <strong>Profiling</strong> tab of the Android App and Android
Tests templates now contain a <strong>Capture GPU Commands</strong>
option for enabling GPU tracing. You can display GPU traces in the GPU
Debugger (a beta feature).
</li>
<li>The Android Tests template now has a <strong>Firebase Test Lab Device
Matrix</strong> option for the <strong>Deployment Target</strong>.
</li>
<li>The Native Application template has been deprecated. If you use this
template in a project, Android Studio automatically converts it to the
Android App template.
</li>
<li>The Android Application template has been renamed to Android App.
</li>
</ul>
</li>
<li>Improved installation, configuration, performance, and UI features in the
<strong><a href="/studio/debug/am-gpu-debugger.html">GPU
Debugger</a></strong> (currently in beta).
</li>
<li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
Existing projects still use the JDK specified in <strong>File > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > SDK
Location</strong> and checking the <strong>Use embedded JDK</strong>
checkbox.
</li>
<li>Added new <strong>help menus and buttons</strong> in the UI so you can
more easily find the online documentation.
</li>
שינויים
- עדכנו את בסיס הקוד של סביבת הפיתוח המשולבת מ-IntelliJ 15 ל-IntelliJ 2016.1
- כדי להשתמש ב-Instant Run, צריך להתקין את ה-SDK של הפלטפורמה שמתאים לרמת ה-API של מכשיר היעד.
- התכונה 'הפעלה מיידית' מושבתת אוטומטית אם המשתמש מפעיל את האפליקציה בפרופיל עבודה או כמשתמש משני.
- נפתרו הרבה בעיות אמינות ב-Instant Run שגרמו לכך שהשינויים
לא נפרסו או שהאפליקציה קרסה:
- חלק מנכסי האפליקציה לא נפרסו באפליקציה הפועלת. ( באג: #213454)
- האפליקציה קורסת כשמשתמש עובר בין סשנים של הפעלה מיידית לבין סשנים של הפעלה לא מיידית, אם לא מוגדר serialVersionUID למחלקה Serializable. (באג: #209006)
- שינויים בסגנון לא משתקפים באמצעות Instant Run. (באג: #210851)
- הסשן של Instant Run לא אמין וגורם ל-FileNotFoundException. (באג: #213083)
- שינויים בפריטים מסוג drawable לא משתקפים עד שמבצעים בנייה מחדש מלאה ב-KitKat. (באג: #21530)
- שינויים במשאבים לא משתקפים באמצעות Instant Run כש-sourceSets מותאמים אישית מכילים נתיבים מקוננים. (באג: #219145)
- החלפה חמה והחלפה חמימה לא פועלות אם המחלקה שהשתנתה מכילה הערה עם ערך enum. (באג: #209047)
- שינויים בנתוני ההערות לא משתקפים באמצעות Instant Run. (באג: #210089)
- התכונה 'הפעלה מיידית' לא מזהה שינויים בקוד אם מבצעים שינויים מחוץ ל-IDE. (באג: #213205)
- הסשן של ההפעלה המיידית לא אמין בגלל טוקן אבטחה לא תואם. (באג: #211989
- החלפה קרה נכשלת במכשירים שלא תומכים כראוי בהרצת תוכנה בתור משתמש אחר. (באג: #210875)
- קריסת האפליקציה אחרי הפעלה מחדש של ההפעלה המיידית. (באג: #219744)
- ClassNotFoundException נצפה כשעוברים מ-Instant Run ל-Instant Debug. (באג: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (אפריל 2016)
השינויים העיקריים בעדכון הזה מספקים תמיכה בפיתוח באמצעות גרסת הטרום-השקה של Android N.
2.1.3 (אוגוסט 2016)
העדכון הזה מוסיף תאימות ל-Gradle 2.14.1, שכולל שיפורים בביצועים, תכונות חדשות ותיקון חשוב לפגיעות באבטחה. פרטים נוספים זמינים בהערות המוצר של Gradle.
כברירת מחדל, פרויקטים חדשים ב-Android Studio 2.1.3 משתמשים ב-Gradle 2.14.1. בפרויקטים קיימים, סביבת הפיתוח המשולבת (IDE) תציג בקשה לשדרוג ל-Gradle 2.14.1 ול-Android plugin ל-Gradle 2.1.3, שנדרש כשמשתמשים ב-Gradle 2.14.1 ובגרסאות מתקדמות יותר.
2.1.2 (יוני 2016)
העדכון הזה כולל מספר שינויים קטנים ותיקוני באגים:
- עדכונים ותיקוני באגים ב-Instant Run.
- שיפורים בביצועים של LLDB ובהתראות על קריסות.
- תוקנה רגרסיה בעדכון האבטחה של Android Studio 2.1.1 שגרמה לכשל ב-
git rebase.
2.1.1 (מאי 2016)
עדכון של גרסת אבטחה.
פלטפורמת Android N מוסיפה תמיכה בתכונות של שפת Java 8, שדורשות קומפיילר ניסיוני חדש בשם Jack. הגרסה העדכנית של Jack נתמכת כרגע רק ב-Android Studio 2.1. לכן, אם רוצים להשתמש בתכונות של שפת Java 8, צריך להשתמש ב-Android Studio 2.1 כדי לבנות את האפליקציה.
הערה: הפעלה מיידית מושבתת כשמפעילים את מהדר Jack, כי כרגע הם לא תואמים.
למרות ש-Android Studio 2.1 יציב עכשיו, מהדר Jack עדיין ניסיוני, וצריך להפעיל אותו באמצעות המאפיין jackOptions בקובץ build.gradle.
בנוסף לשינויים לתמיכה בגרסת N Preview, Android Studio 2.1 כולל תיקוני באגים קלים ושיפורים נוספים:
- מאגר הבאגים של C++ עם תמיכה ב-Java מופעל עכשיו כברירת מחדל כשמשתמשים במכשיר או באמולטור מסוג N ובוחרים במצב מאגר באגים Native (בכרטיסייה Debugger של הגדרת ההרצה או ניפוי הבאגים).
כדי ליהנות משיפורים אחרים ב-build, כולל קומפילציה מצטברת של Java ו-dexing-in-process,צריך לעדכן את הפלאגין של Android ל-Gradle לגרסה 2.1.0.
2.0 (אפריל 2016)
הערה: אם אתם מפתחים לגרסת הטרום-השקה של N Developer, אתם צריכים להשתמש בגרסת הטרום-השקה של Android Studio 2.1. Android Studio 2.0 לא תומך בכל התכונות שנדרשות כדי לטרגט את גרסת הטרום-השקה של N.
הפעלה מיידית:
- מעכשיו, Android Studio פורס גרסאות build נקיות מהר יותר מאי פעם. בנוסף, דחיפה של שינויים מצטברים בקוד לאמולטור או למכשיר פיזי מתבצעת עכשיו כמעט באופן מיידי. בודקים את העדכונים בלי לפרוס מחדש גרסת build לניפוי באגים חדשה, או במקרים רבים בלי להפעיל מחדש את האפליקציה.
- התכונה 'הרצה מיידית' תומכת בדחיפת השינויים הבאים לאפליקציה שפועלת:
- שינויים בהטמעה של שיטת מופע קיימת או שיטה סטטית
- שינויים במשאב קיים של אפליקציה
- שינויים בקוד המבני, כמו חתימת שיטה או שדה סטטי (נדרש מכשיר יעד עם רמת API ברמה 21 ומעלה).
- מידע נוסף על הפעלה מיידית
הערה: התכונה 'הפעלה מיידית' נתמכת רק כשפורסים את וריאנט ה-build של ניפוי הבאגים, כשמשתמשים בפלאגין Android ל-Gradle בגרסה 2.0.0 ואילך, וכשמגדירים את הקובץ
build.gradleברמת המודול של האפליקציה לגרסהminSdkVersion 15ואילך. כדי להשיג את הביצועים הכי טובים, מומלץ להגדיר את האפליקציה ל-minSdkVersion 21ומעלה.
תוספות חדשות ל-Lint:
- בדיקה של הצהרות
switchבאמצעות מספרים שלמים עם הערות@IntDefכדי לוודא שכל הקבועים מטופלים. כדי להוסיף במהירות הצהרות חסרות, משתמשים בתפריט הנפתח של פעולת הכוונה ובוחרים באפשרות Add Missing @IntDef Constants (הוספת קבועים חסרים של @IntDef). - דגלים לניסיונות שגויים להשתמש בהצבת מחרוזות כדי להוסיף מספרי גרסאות בקובץ
build.gradle. - דגלים לכיתות אנונימיות שמרחיבות את המחלקה
Fragment. - דגלים לקוד Native במיקומים לא בטוחים, כמו התיקיות
res/ו-asset/. הדגל הזה מעודד אחסון של קוד Native בתיקייהlibs/, שאחר כך נארז בצורה מאובטחת בתיקייהdata/app-lib/של האפליקציה בזמן ההתקנה. AOSP: #169950 - התרעות על שיחות לא בטוחות ל-
Runtime.load()ושיחות ל-System.load(). AOSP: #179980 - כדי למצוא ולהסיר משאבים שלא נעשה בהם שימוש, בוחרים באפשרות Refactor > Remove Unused Resources (ארגון מחדש > הסרת משאבים שלא נעשה בהם שימוש) בסרגל התפריטים. התכונה 'זיהוי משאבים לא בשימוש' תומכת עכשיו במשאבים שמופנים רק על ידי משאבים לא בשימוש, בהפניות בקבצים גולמיים כמו הפניות לתמונות
.html, ובמאפייניםtools:keepו-tools:discardשמשמשים את הכלי Gradle resource shrinker. בנוסף, התכונה מתחשבת במערכי מקור לא פעילים (כמו משאבים שמשמשים בטעמים אחרים של build) ומטפלת בצורה נכונה בייבוא של שדות סטטיים. - בודק שהפניות משתמעות ל-API נתמכות בכל הפלטפורמות
שמטורגטות על ידי
minSdkVersion. - סימון שימוש לא תקין ב-
RecyclerViewוב-Parcelable. - בדיקות של
@IntDef, @IntRangeו-@Sizeכוללות עכשיו גם בדיקות של מערכים וארגומנטים משתנים (varargs) שלint.
שיפורים נוספים:
- הוא מותאם ל-Android Emulator 2.0, שהוא מהיר יותר מאי פעם, תומך במגוון רחב יותר של מכשירים וירטואליים וכולל ממשק משתמש משופר באופן משמעותי. מידע נוסף על האמולטור החדש זמין בנתוני הגרסה של SDK Tools.
- שיפורים במנהל המכשירים הווירטואליים של Android
(AVD):
- תמונות המערכת מסווגות עכשיו בכרטיסיות הבאות: מומלצות, x86 ואחרות.
- בהגדרות המתקדמות, אפשר להפעיל תמיכה בריבוי ליבות ולציין את מספר הליבות שבהן האמולטור יכול להשתמש.
- בקטע 'הגדרות מתקדמות', אפשר לבחור באחת מהאפשרויות הבאות כדי לקבוע איך הגרפיקה תוצג באמולטור:
- חומרה: שימוש בכרטיס המסך של המחשב לרינדור מהיר יותר.
- תוכנה: שימוש ברינדור מבוסס-תוכנה.
- אוטומטי: מאפשר לאמולטור להחליט מהי האפשרות הטובה ביותר. זו הגדרת ברירת המחדל.
- שיפור זמני האריזה של AAPT על ידי ציון יעד הפריסה לפני בניית האפליקציה. כך Android Studio יכול לארוז ביעילות רק את המשאבים שנדרשים למכשיר הספציפי.
- נוסף שילוב של Cloud Test Lab כדי לספק בדיקות אפליקציות לפי דרישה, עם הנוחות והגמישות של שירות ענן. מידע נוסף על השימוש ב-Cloud Test Lab עם Android Studio
- הוספנו תצוגה מקדימה של כלי חדש לניפוי באגים ב-GPU. עכשיו אפשר לעבור באופן ויזואלי על קוד OpenGL ES כדי לבצע אופטימיזציה לאפליקציה או למשחק, במיוחד אם מדובר באפליקציות עם גרפיקה עשירה.
- נוספה בדיקה של אינדוקס אפליקציות של Google. כדי להגדיל את התנועה לאפליקציה, לגלות איזה תוכן באפליקציה נמצא בשימוש הכי נרחב ולמשוך משתמשים חדשים, כדאי להוסיף לאפליקציות תמיכה בכתובות URL, באינדוקס של האפליקציה ובפונקציית חיפוש. אפשר לבדוק ולאמת כתובות URL באפליקציה, והכול ב-Android Studio. אפשר לעיין במאמר בנושא תמיכה בכתובות URL ובהוספה לאינדקס של אפליקציות ב-Android Studio.
- שדרוגים מהגרסה האחרונה של IntelliJ 15, כולל שיפורים בניתוח הקוד ובביצועים. במאמר מה חדש ב-IntelliJ מופיע תיאור מפורט של התכונות והשיפורים החדשים.
- ההשלמה האוטומטית בעורך XML מוסיפה עכשיו מרכאות כשמשלימים מאפיינים. כדי לבדוק אם האפשרות הזו מופעלת, פותחים את תיבת הדו-שיח הגדרה או העדפות, עוברים אל עורך > כללי > מקשי קיצור חכמים ומסמנים את התיבה לצד הוספת מרכאות לערך מאפיין בהשלמת מאפיין. בעיה: 195113
- עכשיו יש ב-XML Editor תמיכה בהשלמת קוד לביטויים של data binding.
גרסה 1.5.1 של Android Studio (דצמבר 2015)
תיקונים ושיפורים:
- תוקנה בעיה שגרמה לכשל בעיבוד ב-Layout Editor. בעיה: 194612
- נוספה האפשרות לשנות את
descriptionמאפייני המניפסט בהתאם להגדרה. בעיה: 194705 - שיפרנו את הניגודיות של עיצוב Darcula ב-Android Studio ב-Vector Asset Studio. בעיה: 191819
- הוספנו תמיכה בכפתור עזרה ל-Vector Asset Studio.
- הוספנו תמיכה באופרטור
%לקישור נתונים. בעיה: 194045 - תוקנה בעיה שבה הפעלת אפליקציה לניפוי באגים גרמה למנפה הבאגים להתחבר למכשיר הלא נכון. בעיה: 195167
- תוקנה חריגת מצביע null שיכולה להתרחש כשמנסים להפעיל אפליקציה בתרחישים מסוימים.
גרסה 1.5.0 של Android Studio (נובמבר 2015)
תיקונים ושיפורים:
- הוספנו ל-Android Monitor יכולות חדשות לניתוח Memory Monitor. כשמציגים קובץ HPROF שצולם מהמסך הזה, התצוגה עכשיו מועילה יותר, כך שאפשר לאתר בעיות כמו דליפות זיכרון מהר יותר. כדי להשתמש בכלי הזה, לוחצים על Android Monitor בתחתית החלון הראשי. ב-Android Monitor, לוחצים על הכרטיסייה Memory (זיכרון). בזמן שהמסך פועל, לוחצים על הסמל Dump Java Heap ואז לוחצים על Captures בחלון הראשי ולוחצים לחיצה כפולה על הקובץ כדי להציג אותו. בצד שמאל, לוחצים על ניתוח התמונה. (אי אפשר להפעיל את Android Device Monitor ואת Android Monitor בו-זמנית).
- נוספה תמיכה חדשה בקישורי עומק ובקישורי אפליקציות. עורך הקוד יכול ליצור אוטומטית מסנן Intent לקישורי עומק בקובץ
AndroidManifest.xml. הוא יכול גם ליצור קוד שיעזור לכם לשלב את API של הוספת אפליקציות לאינדקס בפעילות בקובץ Java. תכונה לבדיקת קישורי עומק עוזרת לכם לוודא שקישור עומק מסוים יכול להפעיל אפליקציה. בכרטיסייה General (כללי) בתיבת הדו-שיח Run/Debug Configurations (הגדרות הפעלה/ניפוי באגים), אתם יכולים לציין אפשרויות להפעלת קישור עומק. אפשר גם לבדוק קריאות ל-API של הוספת אפליקציות לאינדקס בפעילות באמצעות התצוגה logcat של Android Monitor. בכליlintל-Android מוצגות עכשיו אזהרות לגבי בעיות מסוימות שקשורות לקישורי עומק ול-API של הוספת אפליקציות לאינדקס. - הוספנו את האפשרות להשתמש בכינויים כשמשלימים קוד של תצוגות מותאמות אישית בעורך הקוד.
- הוספנו תמיכה בעוד רכיבי
VectorDrawableל-Vector Asset Studio לצורך תאימות לאחור. הכלי Vector Asset Studio יכול להשתמש באלמנטים האלה כדי להמיר נכסי וקטור לציור לתמונות רסטר מסוג PNG לשימוש ב-Android מגרסה 4.4 (רמת API 20) ומטה. - הוספנו
lintבדיקות חדשות ל-Android TV ול-Android Auto כדי לספק לכם משוב מיידי ופרקטי ב-Android Studio, יחד עם כמה תיקונים מהירים. לדוגמה, ב-Android TV, הוא יכול לדווח על בעיות בהרשאות, בחומרה שלא נתמכת, באלמנטuses-featureובבאנר חסר, ולספק פתרון מהיר לבעיות האלה. ב-Android Auto, הכלי יכול לאמת את השימוש הנכון בקובץ התיאור שאליו מתייחס קובץAndroidManifest.xml, לדווח אם אין מסנן Intent למחלקהMediaBrowserServiceולזהות בעיות מסוימות בפעולות קוליות. - נוספו בדיקות חדשות של
lintלגבי מקלטי שידור לא מאובטחים, שימושים במחלקהSSLCertificateSocketFactoryו-HostnameVerifier, וקריאות ל-File.setReadable()ו-File.setWritable(). הוא גם מזהה חיפושים לא תקינים של משאבי מניפסט, במיוחד משאבים שמשתנים בהתאם להגדרה. - תוקנו מספר בעיות יציבות.
גרסה 1.4.1 של Android Studio (אוקטובר 2015)
תיקונים ושיפורים:
- תוקנה בעיה במטמון של מודל Gradle שיכולה לגרום לסנכרון מוגזם של Gradle כשמפעילים מחדש את ה-IDE.
- תוקנה בעיה של קיפאון בניפוי באגים של Native.
- תוקנה בעיה שחסמה משתמשים במערכת לניהול גרסאות Subversion 1.9.
- תוקנה בעיה בתיבת הדו-שיח Device Chooser, שבה אחרי חיבור מכשיר לא מורשה אי אפשר היה יותר לבחור את האמולטור. בעיה: 189658
- תוקנה בעיה שגרמה לדיווח שגוי על שגיאות תרגום בלוקאלים שיש להם מסווג אזורי ותרגום באזור (אבל לא בלוקאל הבסיסי). בעיה: 188577
- תוקנה בעיית חסימה בעורך העיצוב שקשורה לאינטראקציה שלו עם עורך הפריסה. בעיה: 188070
- תוקנה בעיה בעורך העיצוב שגרמה לעימות בין טעינה מחדש לעריכה, ולכך שהמאפיינים לא עודכנו כמו שצריך. בעיה: 187726
- שיפור הביצועים של כלי העיצוב.
- תוקנה בעיה שבה המערכת התעלמה מהמאפיין
android:requiredבקובץ המניפסט. בעיה: 187665
גרסה 1.4.0 של Android Studio (ספטמבר 2015)
תיקונים ושיפורים:
- הוספנו את הכלי Vector Asset Studio לייבוא של גרפיקה וקטורית, כמו סמלי Material וקבצי SVG. כדי להשתמש בכלי הזה, בתצוגת Android של חלון הפרויקט, לוחצים לחיצה ימנית על התיקייה res ובוחרים באפשרות New (חדש) > Vector Asset (נכס וקטורי).
- נוספו פונקציות חדשות ל-Android Monitor: GPU ו-Network. כדי להשתמש בצגים האלה, לוחצים על Android Monitor בתחתית החלון הראשי. אי אפשר להפעיל את Android Device Monitor בו-זמנית עם Android Monitor.
- נוספה תצוגה מקדימה מוקדמת של כלי חדש לעריכת ערכות נושא. כדי להשתמש בתכונה הזו, בוחרים באפשרות Tools > Android > Theme Editor.
- עדכנו את תבניות Android בספריית התמיכה בעיצוב. התבניות כוללות עכשיו תמיכה במפרט של Material Design, וגם ב-
appcompatSupport Library (ספריית התמיכה) לצורך תאימות לאחור.
גרסה 1.3.2 של Android Studio (אוגוסט 2015)
תיקונים ושיפורים:
- נוספה תמיכה ב-Android 6.0 (רמת API 23), כולל סמלים חדשים ותמיכה ב-AVD Manager ליצירת מכשירים עם רמות חדשות של צפיפות פיקסלים.
- תוקנה חריגה שהתרחשה במהלך בדיקות עדכון. בעיה: 183068
- תוקנה בעיה שבה קואורדינטות לא פתורות של תצוגה יכלו לגרום לקריסה של כלי העריכה של הפריסה. בעיה: 178690
- תוקנה בעיה שקשורה לאזהרות על סוג מקור מידע לא תקין. בעיה: 182433
- תוקנה בדיקת lint שסימנה בטעות משאבים כפרטיים. בעיה: 183120
גרסה 1.3.1 של Android Studio (אוגוסט 2015)
תיקונים ושיפורים:
- תוקנה התמיכה ביצירת מכשיר וירטואלי של Android (AVD) ב-Android Wear ב-Windows.
- העדכון של אשף הפרויקטים מאפשר להשתמש בשם הפרויקט שהוזן.
- נוספה תמיכה שמאפשרת לאחסן את Android SDK בספרייה לקריאה בלבד.
- הפלאגין של Android ל-Gradle עודכן לגרסה 1.3.0.
- תוקנו בעיות בהפעלת סשן ניפוי באגים ממעטפת Unix של ממשק הגישור של Android (adb).
- תוקן באג שגרם להודעה על שינוי השם של חבילת Java להציג את שם החבילה הלא נכון.
גרסה 1.3.0 של Android Studio (יולי 2015)
תיקונים ושיפורים:
- הוספנו אפשרויות להפעלת שירותים למפתחים, כמו Google AdMob ו-Analytics, באפליקציה מתוך Android Studio.
- הוספנו הערות נוספות, כמו
@RequiresPermission,@CheckResultsו-@MainThread. - הוספנו את היכולת ליצור dump של ה-heap ב-Java ולנתח הקצאות של שרשורים מתוך Memory Monitor. אפשר גם להמיר קבצים בפורמט בינארי HPROF ספציפי ל-Android לפורמט HPROF רגיל מתוך Android Studio.
- שילבנו את SDK Manager ב-Android Studio כדי לפשט את הגישה לחבילות ולכלים, וכדי לספק התראות על עדכונים.
הערה: מנהל ה-SDK העצמאי עדיין זמין משורת הפקודה, אבל מומלץ להשתמש בו רק בהתקנות של SDK עצמאי.
- נוספה הפקודה
fingerבמסוף האמולטור כדי לדמות אימות באמצעות טביעת אצבע. - נוספה הצהרת משאב
<public>כדי לציין משאבי ספרייה כמשאבים ציבוריים ופרטיים.הערה: נדרשת גרסה 1.3 ואילך של פלאגין Android ל-Gradle.
- נוספה תמיכה בקישור נתונים כדי ליצור פריסות הצהרתיות שמקשרות את הלוגיקה של האפליקציה לרכיבי הפריסה.
- נוספה תמיכה במודול APK נפרד לבדיקה כדי ליצור קובצי APK לבדיקה ב-Android Studio.
- עדכנו את AVD Manager עם אופטימיזציות של HAXM ושיפורים בהתראות.
- הוספנו תמיכה באמולטורים של 64-bit ARM ו-MIPS עבור QEMU 2.1.
- הוספנו תיקונים מהירים כדי לפשט את הפתרון של אזהרות Lint, כמו יצירה אוטומטית של הטמעה של Parcelable.
- נוספה תמיכה בתבניות פעילות להוספה מהירה של קטעי קוד.
גרסה 1.2.2 של Android Studio(יוני 2015)
תיקונים ושיפורים:
- תוקנו בעיות ב-build שגרמו לכך שה-builds לא הושלמו.
גרסה 1.2.1 של Android Studio (מאי 2015)
תיקונים ושיפורים:
- תוקנו בעיות קלות בביצועים ובתכונות.
גרסה 1.2.0 של Android Studio (אפריל 2015)
תיקונים ושיפורים:
- עדכנו את חלון זמן הריצה של Android כדי לכלול את הכלי Memory Monitor, והוספנו כרטיסייה למעקב אחרי ביצועי המעבד (CPU).
- הוספנו כרטיסייה בשם Captures בשוליים הימניים כדי להציג את קובצי הנתונים של הביצועים שקשורים לזיכרון ולמעבד, כמו מעקב אחר שיטת המעבד ותמונות מצב של ערימת הזיכרון (heap snapshot).
- תמיכה מורחבת בהערות עם הערות נוספות של מטא-נתונים ומאפיין מוסק המציין אם ערך יכול להיות ריק (nullability).
- שיפרנו את כלי התרגום עם תמיכה נוספת בתקן BCP 47, שמשתמש בקודים של שפה ואזור בני 3 אותיות.
- שילבנו תכונות של IntelliJ 14 ו-14.1 כדי לשפר את ניתוח הקוד ואת הביצועים:
-
- ניפוי באגים משופר שמאפשר להציג ערכים מוטבעים של משתנים ואובייקטים של מקורות הפניה, וגם לבצע הערכה בתוך השורה של ביטויי למדה ואופרטורים.
- נוסף מנגנון לזיהוי סגנון קוד בשביל גודל כרטיסיות וכניסות פיסקאות.
- הוספנו קבצים זמניים לניסויים בקוד וליצירת אב טיפוס ללא קבצי פרויקט.
- נוספה האפשרות להוסיף בו-זמנית תגים פותחים וסוגרים בקובצי HTML ו-XML.
- נוסף כלי מובנה להידור לאחור של מחלקת Java, כדי שתוכלו לראות מה יש בספרייה שקוד המקור שלה לא זמין.
במאמר מה חדש ב-IntelliJ מופיע תיאור מפורט של התכונות והשיפורים החדשים.
- הוספנו תצוגות פרויקט נוספות לטיוטות, קובצי פרויקט, בעיות, ייצור ובדיקות כדי לשפר את ניהול הפרויקטים והגישה אליהם.
- שיפרנו את התפריט קובץ > הגדרות ואת תיבות הדו-שיח כדי לשפר את הגישה להגדרות ואת הניהול שלהן.
- הוספנו תמיכה במסכים עם דחיסות גבוהה של פיקסלים ב-Windows וב-Linux.
- הוספנו תמיכה במשאבים ברזולוציה של 280dpi בתיקייה
res/drawable-280dpi/.
גרסה 1.1.0 של Android Studio (פברואר 2015)
תיקונים ושיפורים שונים:
- הוספנו תמיכה בתבנית של שעון Android Wear.
- שינינו את תהליך היצירה של פרויקטים ומודולים חדשים כך שיכלול תיקיות
res/mipmapלסמלי אפליקציות ספציפיים לצפיפות. התיקיות האלהres/mipmapמחליפות את התיקיותres/drawableשל סמלי מרכז האפליקציות. - עדכנו את הסמלים במרכז האפליקציות כך שיהיה להם מראה של Material Design והוספנו סמל של
xxxhdpiבמרכז האפליקציות. - הוספנו שיפורים לבדיקות Lint לשילובי אזורים ושפות, לסמלים של מרכז האפליקציות, לשמות של משאבים ולבעיות נפוצות אחרות בקוד.
- הוספנו תמיכה בתג שפה 47 של Best Current Practice (BCP).
גרסה 1.0.1 של Android Studio (דצמבר 2014)
תיקונים ושיפורים שונים:
- תוקנה בעיה ב-AVD Manager ובנעילת הקובץ device.xml.
- תוקן יומן האמולטור במערכות Windows.
- נפתרה בעיה שקשורה ליצירת מכשירי AVD עם Android Studio ו-Android SDK שמותקנים בכוננים שונים במערכות Windows.
- ערוץ העדכון שמוגדר כברירת מחדל להורדות חדשות נקבע כיציב. אם התקנתם את גרסה 1.0.0 של Android Studio ואתם רוצים לקבל עדכונים של גרסה יציבה שמוכנה לייצור, אתם יכולים לעבור לערוץ העדכונים Stable (יציב) דרך File (קובץ) > Settings (הגדרות) > Updates (עדכונים).
גרסה 1.0 של Android Studio (דצמבר 2014)
הגרסה הראשונה של Android Studio.
גרסה 0.8.14 של Android Studio (אוקטובר 2014)
הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.8.6 של Android Studio (אוגוסט 2014)
הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.8.0 של Android Studio (יוני 2014)
נוספה תמיכה בפרויקטים של Android Wear.
הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.5.2 של Android Studio (מאי 2014)
- הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.4.6 של Android Studio (מרץ 2014)
- הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.4.2 של Android Studio (ינואר 2014)
- הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.3.2 של Android Studio (אוקטובר 2013)
- הרשימה המלאה של השינויים מופיעה בכתובת tools.android.com.
גרסה 0.2.x של Android Studio (יולי 2013)
- בוצע מיזוג של השינויים האחרונים בבסיס הקוד של IntelliJ. העדכון כולל תיקונים לבעיות שדווחו על ידי משתמשי Studio, כמו שינויים בגדלי הגופנים ב-Linux ובעיבוד הגופנים.
- פלאגין Android Gradle עודכן לגרסה 0.5.0.
זהירות: הגרסה החדשה הזו לא תואמת לאחור. כשפותחים פרויקט שמשתמש בגרסה ישנה יותר של התוסף, מוצגת ב-Studio שגיאה עם הכיתוב Gradle <project_name> project refresh failed.
העדכון של Gradle plug-in כולל את השינויים הבאים:
- תוקן מודל IDE כך שיכיל את קובץ הפלט גם אם הוא מותאם אישית באמצעות DSL. בנוסף, בוצע תיקון ב-DSL כדי לקבל או להגדיר את קובץ הפלט באובייקט של הווריאציה, כך שלא צריך להשתמש ב-
variant.packageApplication or variant.zipAlign - תוקן תהליך ההחלטה לגבי תלות, כך שהשילוב של (הגדרת ברירת מחדל, סוגי build, טעמים) נפתר יחד במקום בנפרד.
- תוקנה תלות של בדיקות בפרויקט של ספרייה, כך שכל התלויות של הספרייה עצמה נכללות בצורה תקינה.
- תוקן מקרה שבו לשני יחסי תלות יש אותו שם עלה.
- תוקנה בעיה שבה לא ניתן להחיל קובץ כללי Proguard על גרסאות שונות של האפליקציה.
כל נתוני הגרסה של פלאגין Gradle זמינים כאן: http://tools.android.com/tech-docs/new-build-system.
- תוקן מודל IDE כך שיכיל את קובץ הפלט גם אם הוא מותאם אישית באמצעות DSL. בנוסף, בוצע תיקון ב-DSL כדי לקבל או להגדיר את קובץ הפלט באובייקט של הווריאציה, כך שלא צריך להשתמש ב-
- שגיאות Gradle מ-aapt כבר לא מצביעות על קובצי פלט שמוזגו בתיקייה build/, אלא מצביעות על מיקומי המקור האמיתיים.
- גרסאות Build מקבילות. עכשיו אפשר להשתמש ב-Gradle כדי ליצור כמה גרסאות של האפליקציה במקביל. חשוב לדעת שגרסאות build מקבילות נמצאות בשלב 'הדגרה' (ראו מסמכי התיעוד של Gradle). כברירת מחדל, תכונה זו מושבתת. כדי להפעיל את האפשרות הזו, עוברים אל העדפות > קומפיילר ומסמנים את התיבה קומפילציה של מודולים עצמאיים במקביל.
- המשכנו לעבוד על מאגר המשאבים החדש שמשמש לעיבוד פריסות, לקיפול משאבים בעורך ועוד:
- תמיכה בסיסית בתלויות של הפרויקט בספריית .aar (למשל, שימוש בספרייה ללא עותק מקומי של המקורות). עדיין לא פועל לאימות XML של משאבים ולניווט בכלי עריכה של מקורות.
- זיהוי מעגליות בהפניות למשאבים.
- האפשרות 'תיעוד מהיר' (F1), שמאפשרת לראות את כל התרגומים של המחרוזת מתחת לסמן הטקסט, תציג עכשיו גם את כל שכבות-העל של המשאבים מכל הגרסאות וסוגי ה-build של Gradle, וגם מספריות. הם מופיעים בסדר הפוך של שכבות-על של משאבים, עם קו חוצה על הגרסאות של המחרוזת שמוסתרות.
- בוצעו תיקונים לטיפול בעדכון המשאבים הממוזגים כשמערך התלויות של המודול משתנה.
- תיקונים של עיבוד XML כדי לטפל בצורה נכונה בהצהרות של ישויות תווים ובתווים מיוחדים ב-XML וב-Unicode.
- הוספנו תמיכה בשמירת צילומי מסך בחלונות של תצוגה מקדימה של פריסה ועורך פריסה.
- תיקוני באגים בתבניות.
- תיקוני באגים ב-Lint.
- ביצענו תיקונים שונים בדוחות קריסה. תודה, ונשמח לקבל עוד דיווחים על קריסות!
גרסה 0.1.x של Android Studio (מאי 2013)
- תיקוני באגים שונים, כולל תיקון של בעיה נפוצה בהתקנה ב-Windows.
גרסאות קודמות של פלאגין של Android Gradle
3.6.0 (פברואר 2020)
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
-
Gradle 5.6.4. מידע נוסף זמין בקטע בנושא עדכון Gradle.
-
SDK Build Tools 28.0.3 ואילך.
העדכון הקטן הזה תומך בתאימות להגדרות ברירת מחדל חדשות ולתכונות של חבילות גלויות ב-Android 11.
פרטים נוספים זמינים בהערות הגרסה 4.0.1.
תכונות חדשות
הגרסה הזו של פלאגין של Android Gradle כוללת את התכונות החדשות הבאות.
הצגת הקישור
הצגת הקישור מספקת בטיחות בזמן ההידור כשמפנים לתצוגות בקוד. עכשיו אפשר להחליף את findViewById() בהפניה למחלקת הקישור שנוצרה באופן אוטומטי. כדי להתחיל להשתמש ב-View binding,
צריך לכלול את השורה הבאה בקובץ build.gradle של כל מודול:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
מידע נוסף זמין במאמר בנושא הצגת מסמכי Binding.
תמיכה בתוסף Maven Publish
הפלאגין של Android Gradle כולל תמיכה בפלאגין Maven Publish Gradle, שמאפשר לכם לפרסם ארטיפקטים של build במאגר Apache Maven. הפלאגין של Android Gradle יוצר רכיב לכל ארטיפקט של וריאנט build במודול האפליקציה או הספרייה, שאפשר להשתמש בו כדי להתאים אישית פרסום במאגר Maven.
מידע נוסף זמין בדף בנושא שימוש בתוסף Maven Publish.
כלי ברירת מחדל חדש ליצירת חבילות התקנה
כשיוצרים את גרסת הניפוי באגים של האפליקציה, הפלאגין משתמש בכלי אריזה חדש שנקרא zipflinger כדי ליצור את קובץ ה-APK. הכלי החדש הזה אמור לשפר את מהירות הבנייה. אם כלי האריזה החדש לא פועל כמו שציפיתם, אתם יכולים לדווח על באג. אפשר לחזור לשימוש בכלי הישן לאריזה על ידי הוספת השורות הבאות לקובץ gradle.properties:
android.useNewApkCreator=false
שיוך של בנייה מקורית
עכשיו אפשר לקבוע את משך הזמן שנדרש ל-Clang כדי לבנות ולקשר כל קובץ C/C++ בפרויקט. Gradle יכול להפיק מעקב ב-Chrome שכולל חותמות זמן לאירועי הקומפיילר האלה, כדי שתוכלו להבין טוב יותר כמה זמן נדרש לבניית הפרויקט. כדי ליצור את קובץ השיוך הזה של הגרסה:
-
מוסיפים את הדגל
-Pandroid.enableProfileJson=trueכשמריצים build של Gradle. לדוגמה:gradlew assembleDebug -Pandroid.enableProfileJson=true -
פותחים את דפדפן Chrome ומקלידים
chrome://tracingבסרגל החיפוש. -
לוחצים על הלחצן טעינה ועוברים אל
<var>project-root</var>/build/android-profileכדי למצוא את הקובץ. שם הקובץ הואprofile-<var>timestamp</var>.json.gz.
אפשר לראות את נתוני השיוך של הגרסה המקורית בחלק העליון של הצופה:

שינויים בהתנהגות
כשמשתמשים בגרסה הזו של התוסף, יכול להיות שיהיו שינויים בהתנהגות.
ספריות מקוריות שנארזות ללא דחיסה כברירת מחדל
כשמפתחים את האפליקציה, הפלאגין מגדיר עכשיו את הערך extractNativeLibs ל-"false" כברירת מחדל. כלומר, ספריות ה-Native שלכם מיושרות לדף וארוזות ללא דחיסה. התוצאה היא גודל העלאה גדול יותר, אבל המשתמשים נהנים מהיתרונות הבאים:
- גודל ההתקנה של האפליקציה קטן יותר כי הפלטפורמה יכולה לגשת לספריות המקוריות ישירות מתוך ה-APK המותקן, בלי ליצור עותק של הספריות.
- גודל ההורדה קטן יותר כי הדחיסה בחנות Play בדרך כלל טובה יותר כשכוללים ספריות Native לא דחוסות ב-APK או בקובץ Android App Bundle.
אם רוצים שפלאגין של Android Gradle יארוז במקום זאת ספריות Native דחוסות, צריך לכלול את השורה הבאה במניפסט של האפליקציה:
<application
android:extractNativeLibs="true"
... >
</application>
הערה: המאפיין extractNativeLibs manifest
הוחלף באפשרות useLegacyPackaging DSL. מידע נוסף זמין בהערת הגרסה בנושא שימוש ב-DSL לאריזת ספריות מקוריות דחוסות.
גרסת ברירת המחדל של NDK
אם מורידים כמה גרסאות של NDK, פלאגין של Android Gradle בוחר עכשיו גרסת ברירת מחדל לשימוש בהידור של קובצי קוד המקור.
בעבר, הפלאגין בחר בגרסה האחרונה שהורדה של NDK.
כדי לשנות את ברירת המחדל שנבחרה על ידי הפלאגין, משתמשים במאפיין android.ndkVersion בקובץ build.gradle של המודול.
יצירת כיתות R פשוטה יותר
פלאגין של Android Gradle מפשט את נתיב המחלקה של הקומפילציה על ידי יצירת מחלקה אחת בלבד של R לכל מודול ספרייה בפרויקט ושיתוף המחלקות האלה של R עם תלויות אחרות של מודולים. האופטימיזציה הזו אמורה להוביל לבנייה מהירה יותר, אבל חשוב לזכור את הדברים הבאים:
- מכיוון שהקומפיילר משתף מחלקות R עם תלות במודולים במעלה הזרם, חשוב שכל מודול בפרויקט ישתמש בשם חבילה ייחודי.
- הרשאות הגישה של מחלקת R של ספרייה ליחסי תלות אחרים בפרויקט נקבעות לפי ההגדרה שמשמשת לכלול את הספרייה כיחס תלות. לדוגמה, אם Library A כוללת את Library B כתלות מסוג 'api', ל-Library A ולספריות אחרות שתלויות ב-Library A יש גישה למחלקה R של Library B. עם זאת, יכול להיות שלספריות אחרות לא תהיה גישה למחלקה R של ספרייה ב'. אם ספרייה א' משתמשת בהגדרת התלות
implementation. מידע נוסף על הגדרות של יחסי תלות
הסרת משאבים שחסרים בהגדרות ברירת המחדל
במודולים של ספריות, אם כוללים משאב לשפה שלא נכללת בקבוצת ברירת המחדל של המשאבים – לדוגמה, אם כוללים את hello_world כמשאב מחרוזת ב-/values-es/strings.xml אבל לא מגדירים את המשאב הזה ב-/values/strings.xml – פלאגין של Android Gradle כבר לא כולל את המשאב הזה כשמבצעים קומפילציה של הפרויקט. השינוי הזה בהתנהגות אמור להוביל לפחות Resource Not Found חריגות בזמן ריצה ולשיפור במהירות ה-build.
D8 מכבד עכשיו את מדיניות השמירה של CLASS לגבי הערות
כשמבצעים קומפילציה של האפליקציה, D8 מתחשב עכשיו במקרים שבהם הערות מיישמות מדיניות שמירה של CLASS, וההערות האלה כבר לא זמינות בזמן הריצה. ההתנהגות הזו מתרחשת גם כשמגדירים את ה-SDK לטירגוט של האפליקציה לרמת API 23, שבעבר אפשרה גישה להערות האלה במהלך זמן הריצה כשמבצעים קומפילציה של האפליקציה באמצעות גרסאות ישנות יותר של Android Gradle Plugin ו-D8.
שינויים אחרים בהתנהגות
-
הפונקציה
aaptOptions.noCompressכבר לא רגישה לאותיות רישיות בכל הפלטפורמות (גם ל-APK וגם לחבילות), והיא מתייחסת לנתיבים שבהם נעשה שימוש באותיות רישיות. -
קישור הנתונים מתבצע עכשיו באופן מצטבר כברירת מחדל. מידע נוסף זמין בבעיה מספר 110061530.
-
כל בדיקות היחידות, כולל בדיקות היחידות של Roboelectric, ניתנות עכשיו לשמירה במטמון. מידע נוסף זמין בבעיה מספר 115873047.
תיקוני באגים
הגרסה הזו של פלאגין של Android Gradle כוללת את תיקוני הבאגים הבאים:
- מעכשיו יש תמיכה בבדיקות יחידה של Robolectric במודולים של ספריות שנעשה בהם שימוש ב-data binding. מידע נוסף זמין בבעיה מספר 126775542.
- עכשיו אפשר להריץ משימות
connectedAndroidTestבכמה מודולים בו-זמנית כשמופעל מצב ההרצה המקבילית של Gradle parallel.
בעיות מוכרות
בקטע הזה מתוארות בעיות ידועות שקיימות בפלאגין של Android Gradle 3.6.0.
ביצועים איטיים של משימת Android Lint
יכול להיות שייקח הרבה יותר זמן להשלים את Android Lint בחלק מהפרויקטים בגלל רגרסיה בתשתית הניתוח שלו, וכתוצאה מכך החישוב של סוגים משוערים לביטויי למדה במבני קוד מסוימים יהיה איטי יותר.
הבעיה מדווחת כבאג ב-IDEA והיא תיפתר בפלאגין של Android Gradle 4.0.
חסרה מחלקת מניפסט {:#agp-missing-manifest}
אם האפליקציה מגדירה הרשאות בהתאמה אישית במניפסט שלה, בדרך כלל התוסף Android Gradle יוצר מחלקה Manifest.java שכוללת את ההרשאות בהתאמה אישית כקבועי מחרוזת. חבילות הפלאגין
כוללות את המחלקה הזו באפליקציה, כך שקל יותר להתייחס להרשאות האלה בזמן הריצה.
הפקת מחלקת המניפסט לא פועלת ב-Android Gradle plugin 3.6.0.
אם תבנו את האפליקציה באמצעות הגרסה הזו של הפלאגין, והיא תפנה אל
מחלקת המניפסט, יכול להיות שתראו חריגה ClassNotFoundException. כדי לפתור את הבעיה תוכלו לנסות אחד מהפתרונות הבאים:
-
אפשר להפנות להרשאות המותאמות אישית לפי השם המלא שלהן. לדוגמה,
"com.example.myapp.permission.DEADLY_ACTIVITY". -
מגדירים קבועים משלכם, כמו שמוצג בהמשך:
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (אוגוסט 2019)
פלאגין של Android Gradle 3.5.0, יחד עם Android Studio 3.5, הם גרסה מרכזית והתוצאה של Project Marble, שמתמקדת בשיפור שלושה תחומים עיקריים של כלי הפיתוח של Android: תקינות המערכת, ליטוש התכונות ותיקון באגים. חשוב לציין ששיפור מהירות הבנייה של הפרויקט היה אחד מהדברים העיקריים שהתמקדו בהם בעדכון הזה.
מידע על העדכונים האלה ועל עדכונים אחרים של Project Marble מופיע בפוסט הזה בבלוג של Android Developers או בקטעים שבהמשך.
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
-
Gradle 5.4.1. מידע נוסף זמין בקטע בנושא עדכון Gradle.
-
SDK Build Tools 28.0.3 ואילך.
העדכון הקטן הזה תומך בתאימות להגדרות ברירת מחדל חדשות ולתכונות של חבילות גלויות ב-Android 11.
פרטים נוספים זמינים בהערות הגרסה 4.0.1.
3.5.3 (דצמבר 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.5.3 וכולל תיקוני באגים שונים ושיפורי ביצועים.
3.5.2 (נובמבר 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.5.2 וכולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.5.1 (אוקטובר 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.5.1 וכולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
עיבוד מצטבר של הערות
מעבד אנוטציות (Annotation processor) Data Binding תומך בעיבוד מצטבר של אנוטציות אם מגדירים את android.databinding.incremental=true בקובץ gradle.properties. האופטימיזציה הזו משפרת את הביצועים של בנייה מצטברת. רשימה מלאה של מעבדי הערות משופרים מופיעה בטבלה של מעבדי הערות מצטברות.
בנוסף, KAPT מגרסה 1.3.30 ואילך תומך גם במעבדי הערות מצטברים, שאפשר להפעיל אותם על ידי הוספת kapt.incremental.apt=true לקובץ gradle.properties.
בדיקות יחידה שניתנות לשמירה במטמון
כשמפעילים בדיקות יחידה כדי להשתמש במשאבי Android, בנכסים ובמניפסטים על ידי הגדרת includeAndroidResources לערך true, הפלאגין של Android Gradle יוצר קובץ תצורה של בדיקה שמכיל נתיבים מוחלטים, מה שפוגע ביכולת להעביר את המטמון. אתם יכולים להנחות את הפלאגין ליצור את הגדרת הבדיקה באמצעות נתיבים יחסיים, וכך לאפשר שמשימת AndroidUnitTest תהיה ניתנת לשמירה במטמון באופן מלא. כדי לעשות זאת, צריך לכלול את השורה הבאה בקובץ gradle.properties:
android.testConfig.useRelativePath = true
בעיות מוכרות
-
כשמשתמשים בפלאגין Kotlin Gradle בגרסה 1.3.31 או בגרסה מוקדמת יותר, יכול להיות שתופיע האזהרה הבאה כשמבצעים build או סנכרון של הפרויקט:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.כדי לפתור את הבעיה הזו, צריך לשדרג את הפלאגין לגרסה 1.3.40 ואילך.
3.4.0 (אפריל 2019)
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
-
Gradle 5.1.1 ואילך. מידע נוסף זמין בקטע בנושא עדכון Gradle.
הערה: כשמשתמשים ב-Gradle בגרסה 5.0 ואילך, גודל ערימת הזיכרון של דמון Gradle שמוגדר כברירת מחדל קטן מ-1GB ל-512MB. יכול להיות שהדבר יוביל לרגרסיה בביצועי הבנייה. כדי לשנות את הגדרת ברירת המחדל הזו, מציינים את גודל ה-heap של Gradle daemon בקובץ
gradle.propertiesשל הפרויקט. -
SDK Build Tools 28.0.3 ואילך.
העדכון הקטן הזה תומך בתאימות להגדרות ברירת מחדל חדשות ולתכונות של חבילות גלויות ב-Android 11.
פרטים נוספים זמינים בהערות הגרסה 4.0.1.
3.4.2 (יולי 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.4.2 וכולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.4.1 (מאי 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.4.1 וכולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
תכונות חדשות
-
הגדרות חדשות של תלות בבדיקת lint: ההתנהגות של
lintChecksהשתנתה, והוצגה הגדרה חדשה של תלות,lintPublish, כדי לתת לכם יותר שליטה על בדיקות ה-lint שנכללות בספריות Android שלכם.-
lintChecks: זוהי הגדרה קיימת שצריך להשתמש בה לבדיקות Lint שרוצים להריץ רק כשמבצעים build של הפרויקט באופן מקומי. אם השתמשתם בעבר בהגדרת התלותlintChecksכדי לכלול בדיקות lint ב-AAR שפורסם, אתם צריכים להעביר את התלויות האלה להגדרה החדשהlintPublishשמתוארת בהמשך. -
lintPublish: משתמשים בהגדרה החדשה הזו בפרויקטים של ספריות לבדיקות lint שרוצים לכלול ב-AAR שפורסם, כמו שמוצג בהמשך. כלומר, בדיקות ה-lint האלה מוחלות גם על פרויקטים שמשתמשים בספרייה שלכם.
בדוגמת הקוד הבאה נעשה שימוש בשתי הגדרות התלות בפרויקט מקומי של ספריית Android.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
באופן כללי, אמור להיות שיפור במהירות הבנייה של משימות האריזה והחתימה. אם אתם מבחינים בירידה בביצועים שקשורה למשימות האלה, אתם מוזמנים לדווח על באג.
-
שינויים בהתנהגות
-
אזהרה לגבי הוצאה משימוש של פלאגין התכונות של אפליקציות ללא התקנה ל-Android: אם אתם עדיין משתמשים בפלאגין
com.android.featureכדי לבנות את האפליקציה ללא התקנה, תקבלו אזהרה לגבי הוצאה משימוש בגרסה 3.4.0 של פלאגין של Android Gradle. כדי לוודא שתוכלו להמשיך ליצור אפליקציה ללא התקנה בגרסאות עתידיות של הפלאגין, צריך להעביר את האפליקציה ללא התקנה לשימוש בפלאגין של תכונה דינמית. הפלאגין הזה מאפשר גם לפרסם את האפליקציה המותקנת ואת האפליקציה ללא התקנה מקובץ Android App Bundle יחיד. -
הכלי R8 מופעל כברירת מחדל: הכלי R8 משלב את הפעולות הבאות בשלב אחד: הסרת סוכר, צמצום, טשטוש, אופטימיזציה ו-dexing. כך מתקבלים שיפורים משמעותיים בביצועי הבנייה. הכלי R8 הוצג ב-פלאגין של Android Gradle 3.3.0 ועכשיו הוא מופעל כברירת מחדל גם בפרויקטים של אפליקציות וגם בפרויקטים של ספריות Android באמצעות פלאגין 3.4.0 ומעלה.
בתמונה הבאה מוצגת סקירה כללית של תהליך ההידור לפני ההשקה של R8.
עכשיו, עם R8, כל הפעולות האלה – desugaring, shrinking, obfuscating, optimizing ו-dexing (D8) – מתבצעות בשלב אחד, כמו שמוצג בהמשך.
חשוב לזכור ש-R8 מיועד לעבוד עם כללי ProGuard הקיימים, ולכן סביר להניח שלא תצטרכו לבצע פעולות כלשהן כדי ליהנות מ-R8. עם זאת, מכיוון שמדובר בטכנולוגיה שונה מ-ProGuard, שנועדה במיוחד לפרויקטים של Android, יכול להיות שהכיווץ והאופטימיזציה יגרמו להסרת קוד ש-ProGuard לא היה מסיר. לכן, במצב הלא סביר הזה, יכול להיות שתצטרכו להוסיף כללים נוספים כדי שהקוד הזה יישאר בפלט של הבנייה.
אם נתקלתם בבעיות בשימוש ב-R8, כדאי לעיין בתשובות לשאלות הנפוצות בנושא תאימות ל-R8 כדי לבדוק אם יש פתרון לבעיה. אם הפתרון לא מתועד, אפשר לדווח על באג.
כדי להשבית את R8, מוסיפים אחת מהשורות הבאות לקובץ gradle.properties של הפרויקט:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
הערה: אם מגדירים את useProguard ל-false בקובץ build.gradle של מודול האפליקציה, הפלאגין של Android Gradle משתמש ב-R8 כדי לכווץ את קוד האפליקציה עבור סוג build זה, גם אם משביתים את R8 בקובץ gradle.properties של הפרויקט.
-
הוצאנו משימוש את
ndkCompile: עכשיו מוצגת שגיאת בנייה אם מנסים להשתמש ב-ndkBuildכדי לקמפל את הספריות המקוריות. במקום זאת, צריך להשתמש ב-CMake או ב-ndk-build כדי להוסיף קוד C ו-C++ לפרויקט.
בעיות מוכרות
-
בשלב הזה, לא נאכף שימוש נכון בשמות חבילות ייחודיים, אבל בגרסאות מאוחרות יותר של הפלאגין תהיה הקפדה רבה יותר על כך. בפלאגין Android Gradle בגרסה 3.4.0, אפשר להוסיף את השורה הבאה לקובץ
gradle.propertiesכדי להפעיל את האפשרות לבדוק אם הפרויקט כולל שמות חבילות קבילים.android.uniquePackageNames = trueמידע נוסף על הגדרת שם חבילה באמצעות הפלאגין של Android Gradle זמין במאמר בנושא הגדרת מזהה האפליקציה.
3.3.0 (ינואר 2019)
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
-
Gradle 4.10.1 ואילך. מידע נוסף זמין בקטע בנושא עדכון Gradle.
הערה: כשמשתמשים ב-Gradle בגרסה 5.0 ואילך, גודל ה-heap של דמון Gradle שמוגדר כברירת מחדל קטן מ-1GB ל-512MB. הדבר עלול לגרום לרגרסיה בביצועי הבנייה. כדי לשנות את הגדרת ברירת המחדל הזו, מציינים את גודל ה-heap של Gradle daemon בקובץ
gradle.propertiesשל הפרויקט. -
SDK Build Tools 28.0.3 ואילך.
העדכון הקטן הזה תומך בתאימות להגדרות ברירת מחדל חדשות ולתכונות של חבילות גלויות ב-Android 11.
פרטים נוספים זמינים בהערות הגרסה 4.0.1.
3.3.2 (מרץ 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.3.2 וכולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
3.3.1 (פברואר 2019)
העדכון הקטן הזה תומך ב-Android Studio 3.3.1 וכולל תיקוני באגים שונים ושיפורי ביצועים.
תכונות חדשות
-
שיפור בסנכרון של classpath: כשמבצעים המרה של יחסי תלות ב-classpath של זמן הריצה ומשך הזמן לקימפול, הפלאגין של Android Gradle מנסה לתקן קונפליקטים מסוימים בגרסאות של יחסי תלות שמופיעים בכמה classpath.
לדוגמה, אם נתיב המחלקה של זמן הריצה כולל את Library A גרסה 2.0, ונתיב המחלקה של הקומפילציה כולל את Library A גרסה 1.0, הפלאגין מעדכן אוטומטית את התלות בנתיב המחלקה של הקומפילציה ל-Library A גרסה 2.0 כדי למנוע שגיאות.
עם זאת, אם נתיב המחלקה של זמן הריצה כולל את Library A בגרסה 1.0, והקומפילציה כוללת את Library A בגרסה 2.0, הפלאגין לא יבצע שדרוג לאחור של התלות בנתיב המחלקה של הקומפילציה ל-Library A בגרסה 1.0, ותוצג שגיאה. מידע נוסף זמין במאמר Fix conflicts between classpaths.
-
שיפור ההידור המצטבר של Java כשמשתמשים במעבדי הערות: העדכון הזה מקצר את משך זמן של תהליך build על ידי שיפור התמיכה בהידור מצטבר של Java כשמשתמשים במעבדי הערות.
הערה: התכונה הזו תואמת ל-Gradle 4.10.1 ומעלה, למעט Gradle 5.1 בגלל בעיה מספר 8194 ב-Gradle.
-
בפרויקטים שמשתמשים ב-Kapt (רוב הפרויקטים שמבוססים על Kotlin בלבד ופרויקטים היברידיים של Kotlin-Java): קומפילציה מצטברת של Java מופעלת, גם כשמשתמשים ב-data binding או בתוסף retro-lambda. העיבוד של ההערות על ידי משימת Kapt עדיין לא מצטבר.
-
לפרויקטים שלא משתמשים ב-Kapt (פרויקטים ב-Java בלבד): אם כל מעבדי ההערות שבהם אתם משתמשים תומכים בעיבוד הערות מצטבר, קומפילציית Java מצטברת מופעלת כברירת מחדל. כדי לעקוב אחרי ההטמעה של מעבד אנוטציות (Annotation processor) מצטבר, אפשר לעקוב אחרי בעיה מספר 5277 ב-Gradle.
עם זאת, אם אחד או יותר ממעבדי ההערות לא תומכים בבנייה מצטברת, ההידור המצטבר של Java לא מופעל. במקום זאת, אפשר לכלול את הדגל הבא בקובץ
gradle.properties:android.enableSeparateAnnotationProcessing=trueכשכוללים את הדגל הזה, פלאגין של Android Gradle מפעיל את מעבדי האנוטציות (Annotation processor) במשימה נפרדת ומאפשר למשימת הקומפילציה של Java לפעול באופן מצטבר.
-
-
מידע טוב יותר לניפוי באגים כשמשתמשים ב-API שיצא משימוש: כשהתוסף מזהה שאתם משתמשים ב-API שכבר לא נתמך, הוא יכול לספק עכשיו מידע מפורט יותר שיעזור לכם לקבוע איפה נעשה שימוש ב-API הזה. כדי לראות את המידע הנוסף, צריך לכלול את השורות הבאות בקובץ
gradle.propertiesשל הפרויקט:android.debug.obsoleteApi=trueאפשר גם להעביר את האפשרות
-Pandroid.debug.obsoleteApi=trueמשורת הפקודה כדי להפעיל את הדגל. -
אפשר להריץ בדיקות אינסטרומנטציה במודולים של תכונות משורת הפקודה.
שינויים בהתנהגות
-
הגדרת משימות עצלה: התוסף משתמש עכשיו ב-Gradle’s new task creation API כדי להימנע מאתחול והגדרה של משימות שלא נדרשות להשלמת הבנייה הנוכחית (או משימות שלא נמצאות בתרשים משימות ההפעלה). לדוגמה, אם יש לכם כמה וריאנטים של build, כמו וריאנטים של build מסוג release ו-debug, ואתם יוצרים את גרסת ה-debug של האפליקציה, הפלאגין לא יאתחל ולא יגדיר משימות לגרסת ה-release של האפליקציה.
יכול להיות שעדיין תצטרכו להגדיר משימות אם תשתמשו בשיטות ישנות יותר ב-Variants API, כמו
variant.getJavaCompile(). כדי לוודא שהגרסה שלכם עברה אופטימיזציה להגדרת משימות עצלה, מפעילים שיטות חדשות שמחזירות במקום זאת אובייקט TaskProvider, כמוvariant.getJavaCompileProvider().אם אתם מריצים משימות build בהתאמה אישית, כדאי לכם לקרוא על התאמה ל-API החדש ליצירת משימות של Gradle.
-
עכשיו, כשמגדירים
useProguard falseלסוג build מסוים, הפלאגין משתמש ב-R8 במקום ב-ProGuard כדי לכווץ ולהצפין את הקוד והמשאבים של האפליקציה. מידע נוסף על R8 זמין בפוסט הזה בבלוג של מפתחי Android. -
יצירה מהירה יותר של מחלקת R לפרויקטים של ספריות: בעבר, הפלאגין Android Gradle היה יוצר קובץ
R.javaלכל אחת מהתלויות של הפרויקט, ואז קומפילציה של מחלקות ה-R האלה לצד המחלקות האחרות של האפליקציה. התוסף יוצר עכשיו קובץ JAR שמכיל את המחלקה R המהודרת של האפליקציה ישירות, בלי ליצור קודם מחלקות ביניים שלR.java. האופטימיזציה הזו יכולה לשפר משמעותית את ביצועי ה-build בפרויקטים שכוללים הרבה פרויקטים משניים של ספריות ותלות, ולשפר את מהירות האינדוקס ב-Android Studio. -
כשיוצרים Android App Bundle, קובצי ה-APK שנוצרים ממנו ומטרגטים ל-Android 6.0 (רמת API 23) ואילך כוללים עכשיו כברירת מחדל גרסאות לא דחוסות של הספריות המקוריות. האופטימיזציה הזו מונעת את הצורך של המכשיר ליצור עותק של הספרייה, וכך מקטינה את הגודל של האפליקציה בדיסק. אם אתם מעדיפים להשבית את האופטימיזציה הזו, מוסיפים את השורה הבאה לקובץ
gradle.properties:android.bundle.enableUncompressedNativeLibs = false -
התוסף אוכף גרסאות מינימליות של כמה תוספים של צד שלישי.
-
סנכרון פרויקט עם וריאנט יחיד: סנכרון הפרויקט עם הגדרת ה-build הוא שלב חשוב כדי ש-Android Studio יבין את מבנה הפרויקט. עם זאת, התהליך הזה יכול להיות ארוך בפרויקטים גדולים. אם הפרויקט שלכם משתמש בכמה וריאציות של build, עכשיו אתם יכולים לייעל את הסנכרון של הפרויקט על ידי הגבלת הסנכרון רק לווריאציה שבחרתם כרגע.
כדי להפעיל את האופטימיזציה הזו, צריך להשתמש ב-Android Studio מגרסה 3.3 ואילך עם פלאגין של Android Gradle מגרסה 3.3.0 ואילך. כשעומדים בדרישות האלה, סביבת הפיתוח המשולבת (IDE) מציעה להפעיל את האופטימיזציה הזו כשמסנכרנים את הפרויקט. האופטימיזציה מופעלת כברירת מחדל גם בפרויקטים חדשים.
כדי להפעיל את האופטימיזציה הזו באופן ידני, לוחצים על File (קובץ) > Settings (הגדרות) > Experimental (ניסיוני) > Gradle (Android Studio > Preferences (העדפות) > Experimental (ניסיוני) > Gradle ב-Mac) ומסמנים את תיבת הסימון Only sync the active variant (סנכרון רק של הווריאציה הפעילה).
הערה: האופטימיזציה הזו תומכת באופן מלא בפרויקטים שכוללים את השפות Java ו-C++, ויש לה תמיכה מסוימת ב-Kotlin. כשמפעילים את האופטימיזציה לפרויקטים עם תוכן Kotlin, סינכרון Gradle חוזר לשימוש בווריאציות מלאות באופן פנימי.
-
הורדה אוטומטית של חבילות SDK חסרות: הרחבנו את הפונקציונליות הזו כדי לתמוך ב-NDK. מידע נוסף זמין במאמר בנושא הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
תיקוני באגים
-
פלאגין Android Gradle 3.3.0 מתקן את הבעיות הבאות:
- תהליך ה-build קורא ל-
android.support.v8.renderscript.RenderScriptבמקום לגרסת AndroidX, למרות ש-Jetifier מופעל - התנגשויות בגלל
androidx-rs.jarשכולל חבילה סטטית שלannotation.AnyRes - כשמשתמשים ב-RenderScript, כבר לא צריך להגדיר ידנית את הגרסה של כלי ה-Build בקובצי
build.gradle
- תהליך ה-build קורא ל-
3.2.0 (ספטמבר 2018)
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
- Gradle 4.6 ואילך. מידע נוסף זמין בקטע בנושא עדכון Gradle.
- SDK Build Tools 28.0.3 ואילך.
3.2.1 (אוקטובר 2018)
בעקבות העדכון הזה, אין יותר צורך לציין גרסה לכלי ה-Build של ה-SDK. פלאגין Android Gradle משתמש עכשיו בגרסה 28.0.3 כברירת מחדל.
תכונות חדשות
-
תמיכה ביצירת קובצי Android App Bundle: קובץ AAB הוא פורמט חדש להעלאה שכולל את כל הקוד והמשאבים המהודרים של האפליקציה, ומעביר את יצירת ה-APK והחתימה שלו לחנות Google Play. אתם לא צריכים יותר ליצור, לחתום ולנהל כמה קובצי APK, והמשתמשים מקבלים הורדות קטנות יותר שעברו אופטימיזציה למכשיר שלהם. מידע נוסף זמין במאמר בנושא קובץ Android App Bundle.
-
תמיכה במהירויות בנייה מצטברות משופרות כשמשתמשים במעבדי הערות: שפת התצורה
AnnotationProcessorOptionsDSL מרחיבה עכשיו אתCommandLineArgumentProvider, מה שמאפשר לכם או ליוצר מעבד ההערות להוסיף הערות לארגומנטים של המעבד באמצעות הערות מסוג מאפיין של בנייה מצטברת. השימוש בהערות האלה משפר את הדיוק והביצועים של בנייה מצטברת ושל בנייה של מטמון נקי. מידע נוסף זמין במאמר בנושא העברת ארגומנטים למעבדי הערות. -
כלי להעברה ל-AndroidX: כשמשתמשים בפלאגין Android Gradle 3.2.0 עם Android 3.2 ומעלה, אפשר להעביר את התלויות המקומיות והתלויות של Maven בפרויקט לשימוש בספריות החדשות של AndroidX. כדי לעשות זאת, בוחרים באפשרות Refactor > Migrate to AndroidX (שינוי מבנה > העברה ל-AndroidX) מסרגל התפריטים. בנוסף, השימוש בכלי ההעברה הזה מגדיר את הדגלים הבאים לערך
trueבקובץgradle.properties:-
android.useAndroidX: אם הערך הואtrue, הפלאגין ל-Android משתמש בספריית AndroidX המתאימה במקום בספריית תמיכה. אם לא מציינים את הדגל הזה, התוסף מגדיר אותו כ-falseכברירת מחדל. -
android.enableJetifier: אם הערך הואtrue, הפלאגין של Android מעביר באופן אוטומטי ספריות קיימות של צד שלישי לשימוש ב-AndroidX על ידי כתיבה מחדש של הקבצים הבינאריים שלהן. אם לא מציינים את הדגל הזה, התוסף מגדיר אותו כ-falseכברירת מחדל. אפשר להגדיר את הדגל הזה לערךtrueרק אם גםandroid.useAndroidXמוגדר לערךtrue, אחרת תתקבל שגיאת בנייה.מידע נוסף מופיע במאמר סקירה כללית על AndroidX.
-
-
כלי חדש לכיווץ קוד, R8: R8 הוא כלי חדש לכיווץ קוד ולהסתרת קוד שמחליף את ProGuard. כדי להתחיל להשתמש בגרסת הטרום-השקה של R8, צריך לכלול את השורות הבאות בקובץ
gradle.propertiesשל הפרויקט:android.enableR8 = true
android.enableR8 = true
שינויים בהתנהגות
-
ההגדרה Desugaring with D8 (הסרת סוכר באמצעות D8) מופעלת עכשיו כברירת מחדל.
-
AAPT2 זמין עכשיו במאגר Maven של Google. כדי להשתמש ב-AAPT2, מוודאים שהתלות
google()מופיעה בקובץbuild.gradle, כמו שמוצג בהמשך:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
התכונה Native multidex מופעלת עכשיו כברירת מחדל. בגרסאות קודמות של Android Studio, הפעלתם את native multidex כשפרסתם את גרסת ניפוי הבאגים של אפליקציה במכשיר עם Android ברמת API 21 ומעלה. מעכשיו, כשפורסים למכשיר או כשיוצרים APK לגרסה, הפלאגין של Android Gradle מאפשר שימוש ב-multidex מקורי לכל המודולים שמוגדרים ל-
minSdkVersion=21ומעלה. -
התוסף אוכף עכשיו גרסה מינימלית של תוסף ה-protobuf (0.8.6), של תוסף Kotlin (1.2.50) ושל תוסף Crashlytics (1.25.4).
-
הפלאגין של מודול התכונות,
com.android.feature, אוכף עכשיו את השימוש רק באותיות, בספרות ובקווים תחתונים כשמציינים שם של מודול. לדוגמה, אם שם מודול של תכונות כולל מקפים, תופיע שגיאת בנייה. ההתנהגות הזו זהה לזו של הפלאגין של התכונה הדינמית.
תיקוני באגים
- הפעולה JavaCompile ניתנת עכשיו לשמירה במטמון בפרויקטים עם קישור נתונים. (בעיה מספר 69243050)
- שיפור ההימנעות מהידור של מודולים בספרייה עם קישור נתונים. (בעיה מספר 77539932)
- אם השבתתם את התכונה configure-on-demand בגרסאות קודמות בגלל שגיאות בלתי צפויות ב-build, עכשיו אתם יכולים להפעיל אותה מחדש. (בעיה מספר 77910727)
3.1.0 (מרץ 2018)
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
-
Gradle 4.4 ואילך.
מידע נוסף זמין בקטע בנושא עדכון Gradle.
-
Build Tools 27.0.3 ומעלה.
חשוב לזכור: כבר לא צריך לציין גרסה לכלי הבנייה באמצעות המאפיין
android.buildToolsVersion– הפלאגין משתמש בגרסה המינימלית הנדרשת כברירת מחדל.
קומפיילר DEX חדש, D8
כברירת מחדל, Android Studio משתמש עכשיו במהדר DEX חדש שנקרא D8. קימפול DEX הוא תהליך של המרת בייטקוד .class לבייטקוד .dex עבור זמן הריצה ל-Android (או Dalvik, בגרסאות ישנות יותר של Android). בהשוואה לקומפיילר הקודם, שנקרא DX, קומפיילר D8 מבצע הידור מהר יותר ומפיק קובצי DEX קטנים יותר, וכל זאת תוך שמירה על ביצועים זהים או טובים יותר של זמן הריצה של האפליקציה.
השימוש ב-D8 לא אמור לשנות את תהליך העבודה היומיומי של פיתוח האפליקציה. עם זאת, אם נתקלים בבעיות שקשורות לקומפיילר החדש, אפשר לדווח על באג. אפשר להשבית את D8 באופן זמני ולהשתמש ב-DX על ידי הוספת השורה הבאה לקובץ gradle.properties של הפרויקט:
android.enableD8=false
בפרויקטים שבהם נעשה שימוש בתכונות של שפת Java 8, האפשרות 'הסרת סוכר מצטברת' מופעלת כברירת מחדל. כדי להשבית את התכונה, צריך לציין את הערכים הבאים בקובץ gradle.properties של הפרויקט:
android.enableIncrementalDesugaring=false.
משתמשי גרסת Preview: אם אתם כבר משתמשים בגרסת Preview של D8, שימו לב שהיא עכשיו עוברת קומפילציה מול ספריות שכלולות בכלי ה-SDK לבנייה, ולא ב-JDK. לכן, אם ניגשים לממשקי API שקיימים ב-JDK אבל לא בספריות של כלי ה-build של ה-SDK, מתקבלת שגיאת קומפילציה.
שינויים בהתנהגות
-
כשיוצרים כמה חבילות APK שכל אחת מהן מטרגטת ממשק ABI שונה, המערכת לא יוצרת יותר חבילות APK לממשקי ה-ABI הבאים כברירת מחדל:
mips,mips64ו-armeabi.אם רוצים ליצור קובצי APK שמטרגטים את ממשקי ה-ABI האלה, צריך להשתמש ב-NDK r16b או בגרסה מוקדמת יותר ולציין את ממשקי ה-ABI בקובץ
build.gradle, כמו שמוצג בהמשך:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
מטמון הבנייה של התוסף ל-Android מסלק עכשיו רשומות במטמון שנוצרו לפני יותר מ-30 יום.
-
העברת
"auto"אלresConfigכבר לא בוחרת באופן אוטומטי משאבי מחרוזות לאריזה ב-APK. אם תמשיכו להשתמש ב-"auto", התוסף יארוז את כל משאבי המחרוזות שהאפליקציה ויחסי התלות שלה מספקים. לכן, במקום זאת, צריך לציין כל לוקאל שרוצים שהפלאגין יארוז ב-APK. -
מכיוון שמודולים מקומיים לא יכולים להיות תלויים ב-APK של בדיקת האפליקציה, הוספת תלויות לבדיקות המכשיר באמצעות ההגדרה
androidTestApiבמקוםandroidTestImplementationגורמת ל-Gradle להציג את האזהרה הבאה:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
תיקונים
- תוקנה בעיה שבה Android Studio לא מזהה כראוי תלויות ב-composite builds.
- תוקנה בעיה שבה מוצגת שגיאה בסנכרון הפרויקט כשמעמיסים את הפלאגין של Android כמה פעמים בגרסה אחת – לדוגמה, כשכמה פרויקטים משניים כוללים את הפלאגין של Android בנתיב המחלקות של סקריפט הבנייה שלהם.
3.0.0 (אוקטובר 2017)
פלאגין של Android Gradle 3.0.0 כולל מגוון שינויים שמטרתם לפתור בעיות בביצועים בפרויקטים גדולים.
לדוגמה, בפרויקט לדוגמה עם כ-130 מודולים ומספר גדול של תלות חיצונית (אבל ללא קוד או משאבים), יכול להיות שתראו שיפורים בביצועים כמו אלה:
| גרסת פלאגין של Android + גרסת Gradle | פלאגין של Android 2.2.0 + Gradle 2.14.1 | פלאגין של Android 2.3.0 + Gradle 3.3 | פלאגין של Android 3.0.0 + Gradle 4.1 |
|---|---|---|---|
הגדרה (למשל, הפעלת ./gradlew --help) |
כ-2 דקות | ~9 שניות | ~2.5 שניות |
| שינוי של שורה אחת ב-Java (שינוי בהטמעה) | כ-2 דקות ו-15 שניות | ~29 שניות | ~6.4 שניות |
חלק מהשינויים האלה גורמים לכך שאי אפשר להשתמש בגרסאות קיימות. לכן, לפני שמשתמשים בתוסף החדש, כדאי להעריך את המאמץ שנדרש להעברת הפרויקט.
אם לא חוויתם את שיפורי הביצועים שמתוארים למעלה, אתם יכולים לדווח על באג ולצרף מעקב אחר ה-build באמצעות Gradle Profiler.
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
- Gradle 4.1 או גרסה מתקדמת יותר. מידע נוסף זמין בקטע בנושא עדכון Gradle.
-
Build Tools 26.0.2
או גרסה מתקדמת יותר. בעקבות העדכון הזה, כבר לא צריך לציין גרסה לכלי הבנייה – הפלאגין משתמש בגרסה המינימלית הנדרשת כברירת מחדל.
לכן, עכשיו אפשר להסיר את הנכס
android.buildToolsVersion.
3.0.1 (נובמבר 2017)
זהו עדכון קל לתמיכה ב-Android Studio 3.0.1, והוא כולל תיקוני באגים כלליים ושיפורי ביצועים.
אופטימיזציות
- מקביליות טובה יותר לפרויקטים מרובי מודולים באמצעות גרף משימות מפורט.
- כשמבצעים שינויים בתלות, Gradle מבצעת בנייה מהירה יותר כי היא לא מבצעת קומפילציה מחדש של מודולים שאין להם גישה לממשק ה-API של התלות הזו.
כדי להגביל את התלות של מודולים אחרים בממשקי API של מודולים מסוימים, צריך להשתמש בהגדרות התלות החדשות של Gradle:
implementation, api,compileOnlyו-runtimeOnly. - מהירות בנייה מצטברת גבוהה יותר בגלל dexing לכל מחלקה. כל מחלקה עוברת עכשיו קומפילציה לקובצי DEX נפרדים, ורק המחלקות שעברו שינוי עוברות מחדש DEX. בנוסף, צפוי שיפור במהירות הבנייה של אפליקציות שבהן הערך של
minSdkVersionהוא 20 או פחות, ושמשתמשות ב-legacy multi-dex. - שיפור מהירויות הבנייה על ידי אופטימיזציה של משימות מסוימות לשימוש בפלט שנשמר במטמון. כדי ליהנות מהאופטימיזציה הזו, צריך קודם להפעיל את מטמון ה-build של Gradle.
- שיפור העיבוד של משאבים מצטברים באמצעות AAPT2, שמופעל עכשיו כברירת מחדל. אם נתקלתם בבעיות במהלך השימוש ב-AAPT2,
אתם מוזמנים לדווח על באג. אפשר גם להשבית את AAPT2 על ידי הגדרת
android.enableAapt2=falseבקובץgradle.propertiesוהפעלה מחדש של Gradle daemon על ידי הרצת./gradlew --stopמשורת הפקודה.
תכונות חדשות
- ניהול תלויות עם תמיכה בווריאציות. כשיוצרים וריאציה מסוימת של מודול, התוסף מתאים עכשיו באופן אוטומטי וריאציות של תלות במודול של ספרייה מקומית לווריאציה של המודול שיוצרים.
- כולל פלאגין חדש של מודול תכונות לתמיכה באפליקציות ללא התקנה ל-Android וב-Android Instant Apps SDK (שאפשר להוריד באמצעות SDK Manager). למידע נוסף על יצירת מודולים של תכונות באמצעות הפלאגין החדש, אפשר לקרוא את המאמר מבנה של אפליקציה מיידית עם כמה תכונות.
- תמיכה מובנית בשימוש בתכונות שפה מסוימות של Java 8 ובספריות של Java 8. הכלי Jack הוצא משימוש ולא נדרש יותר, ולכן צריך להשבית אותו כדי להשתמש בתמיכה המשופרת ב-Java 8 שמוטמעת בשרשרת הכלים שמוגדרת כברירת מחדל. מידע נוסף זמין במאמר בנושא שימוש בתכונות של שפת Java 8.
-
נוספה תמיכה בהרצת בדיקות באמצעות Android Test Orchestrator, שמאפשרת להריץ כל אחת מהבדיקות של האפליקציה בתוך קריאה משלה של Instrumentation. מכיוון שכל בדיקה מופעלת במופע Instrumentation משלה, כל מצב משותף בין הבדיקות לא מצטבר במעבד או בזיכרון של המכשיר. גם אם בדיקה אחת קורסת, היא משביתה רק את המופע שלה של Instrumentation, כך שהבדיקות האחרות עדיין פועלות.
- נוספה האפשרות
testOptions.executionכדי לקבוע אם להשתמש בתיאום בדיקות במכשיר. אם רוצים להשתמש ב-Android Test Orchestrator, צריך לציין אתANDROID_TEST_ORCHESTRATOR, כמו שמוצג בהמשך. כברירת מחדל, הנכס הזה מוגדר ל-HOST, מה שמשבית את התיאום במכשיר וזו השיטה הרגילה להפעלת בדיקות.
מגניב
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- נוספה האפשרות
-
הגדרת תלות חדשה
androidTestUtilמאפשרת לכם להתקין עוד APK של כלי עזר לבדיקה לפני שמריצים את בדיקות המכשירים, כמו תזמור בדיקות ל-Android:מגניב
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
נוסף
testOptions.unitTests.includeAndroidResourcesכדי לתמוך בבדיקות יחידה שדורשות משאבי Android, כמו Roboelectric. כשמגדירים את המאפיין הזה לערךtrue, הפלאגין מבצע מיזוג של משאבים, נכסים ומניפסטים לפני שהוא מריץ את בדיקות היחידה. לאחר מכן, הבדיקות יכולות לבדוק אתcom/android/tools/test_config.propertiesבנתיב המחלקה לגבי המפתחות הבאים:-
android_merged_assets: הנתיב המוחלט לספריית הנכסים הממוזגים.הערה: במודולים של ספרייה, הנכסים הממוזגים לא מכילים את הנכסים של יחסי תלות (ראו בעיה מס' 65550419).
-
android_merged_manifest: הנתיב המוחלט לקובץ המניפסט שעבר מיזוג. -
android_merged_resources: הנתיב המוחלט לספריית המשאבים הממוזגים, שמכילה את כל המשאבים מהמודול וכל התלות שלו. -
android_custom_package: שם החבילה של המחלקה הסופית R. אם אתם משנים באופן דינמי את מזהה האפליקציה, יכול להיות ששם החבילה הזה לא יהיה זהה למאפייןpackageבמניפסט של האפליקציה.
-
- תמיכה בגופנים כמשאבים (תכונה חדשה שהושקה ב-Android 8.0 (רמת API 26)).
- תמיכה בחבילות APK ספציפיות לשפה עם Android Instant Apps SDK 1.1 ומעלה.
-
עכשיו אפשר לשנות את ספריית הפלט של פרויקט חיצוני לבנייה מקומית, כמו שמוצג בהמשך:
מגניב
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- עכשיו אפשר להשתמש ב-CMake 3.7 או בגרסה מתקדמת יותר כשבונים פרויקטים מקוריים מ-Android Studio.
-
הגדרת תלות חדשה
lintChecksמאפשרת ליצור קובץ JAR שמגדיר כללי lint מותאמים אישית, ולצרף אותו לפרויקטים של AAR ו-APK.כללי ה-lint המותאמים אישית צריכים להיות חלק מפרויקט נפרד שמפיק קובץ JAR יחיד וכולל רק תלות ב-
compileOnly. מודולים אחרים של אפליקציות וספריות יכולים להסתמך על פרויקט lint באמצעות ההגדרהlintChecks:מגניב
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
שינויים בהתנהגות
- בפלאגין Android 3.0.0 הוסרו ממשקי API מסוימים, וה-build ייכשל אם תשתמשו בהם. לדוגמה, אי אפשר יותר להשתמש ב-Variants API כדי לגשת לאובייקטים מסוג
outputFile()או להשתמש ב-processManifest.manifestOutputFile()כדי לקבל את קובץ המניפסט לכל וריאציה. מידע נוסף מופיע במאמר בנושא שינויים ב-API. - אין יותר צורך לציין גרסה לכלי הבנייה (לכן, עכשיו אפשר להסיר את המאפיין
android.buildToolsVersion). כברירת מחדל, הפלאגין משתמש אוטומטית בגרסה המינימלית הנדרשת של כלי הבנייה לגרסה של פלאגין של Android שבה אתם משתמשים. - עכשיו אתם יכולים להפעיל או להשבית את דחיסת ה-PNG בחסימה של
buildTypesכמו שמוצג למטה. התכונה PNG crunching מופעלת כברירת מחדל בכל גרסאות ה-build, למעט גרסאות build לניפוי באגים, כי היא מאריכה את זמני ה-build בפרויקטים שכוללים הרבה קובצי PNG. לכן, כדי לשפר את זמני הבנייה עבור סוגי בנייה אחרים, צריך להשבית את דחיסת ה-PNG או להמיר את התמונות לפורמט WebP.מגניב
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- הפלאגין של Android יוצר עכשיו באופן אוטומטי יעדים להפעלה שמוגדרים בפרויקטים חיצוניים של CMake.
- עכשיו צריך להוסיף מעבדי הערות לנתיב המחלקה של המעבד באמצעות הגדרת התלות
annotationProcessor. - השימוש בתכונה
ndkCompileשהוצאה משימוש מוגבל יותר עכשיו. במקום זאת, כדאי לעבור לשימוש ב-CMake או ב-ndk-build כדי לקמפל קוד Native שרוצים לארוז ב-APK. מידע נוסף זמין במאמר בנושא מעבר מ-ndkcompile.
3.0.0 (אוקטובר 2017)
פלאגין של Android Gradle 3.0.0 כולל מגוון שינויים שמטרתם לפתור בעיות בביצועים בפרויקטים גדולים.
לדוגמה, בפרויקט לדוגמה עם כ-130 מודולים ומספר גדול של תלות חיצונית (אבל ללא קוד או משאבים), יכול להיות שתראו שיפורים בביצועים כמו אלה:
| גרסת פלאגין של Android + גרסת Gradle | פלאגין של Android 2.2.0 + Gradle 2.14.1 | פלאגין של Android 2.3.0 + Gradle 3.3 | פלאגין של Android 3.0.0 + Gradle 4.1 |
|---|---|---|---|
הגדרה (למשל, הפעלת ./gradlew --help) |
כ-2 דקות | ~9 שניות | ~2.5 שניות |
| שינוי של שורה אחת ב-Java (שינוי בהטמעה) | כ-2 דקות ו-15 שניות | ~29 שניות | ~6.4 שניות |
חלק מהשינויים האלה גורמים לכך שאי אפשר להשתמש בגרסאות קיימות. לכן, לפני שמשתמשים בתוסף החדש, כדאי להעריך את המאמץ שנדרש להעברת הפרויקט.
אם לא חוויתם את שיפורי הביצועים שמתוארים למעלה, אתם יכולים לדווח על באג ולצרף מעקב אחר ה-build באמצעות Gradle Profiler.
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
- Gradle 4.1 או גרסה מתקדמת יותר. מידע נוסף זמין בקטע בנושא עדכון Gradle.
-
Build Tools 26.0.2
או גרסה מתקדמת יותר. בעקבות העדכון הזה, כבר לא צריך לציין גרסה לכלי הבנייה – הפלאגין משתמש בגרסה המינימלית הנדרשת כברירת מחדל.
לכן, עכשיו אפשר להסיר את הנכס
android.buildToolsVersion.
3.0.1 (נובמבר 2017)
זהו עדכון קל לתמיכה ב-Android Studio 3.0.1, והוא כולל תיקוני באגים כלליים ושיפורי ביצועים.
אופטימיזציות
- מקביליות טובה יותר לפרויקטים מרובי מודולים באמצעות גרף משימות מפורט.
- כשמבצעים שינויים בתלות, Gradle מבצעת בנייה מהירה יותר כי היא לא מבצעת קומפילציה מחדש של מודולים שאין להם גישה לממשק ה-API של התלות הזו.
כדי להגביל את התלות של מודולים אחרים בממשקי API של מודולים מסוימים, צריך להשתמש בהגדרות התלות החדשות של Gradle:
implementation, api,compileOnlyו-runtimeOnly. - מהירות בנייה מצטברת גבוהה יותר בגלל dexing לכל מחלקה. כל מחלקה עוברת עכשיו קומפילציה לקובצי DEX נפרדים, ורק המחלקות שעברו שינוי עוברות מחדש DEX. בנוסף, צפוי שיפור במהירות הבנייה של אפליקציות שבהן הערך של
minSdkVersionהוא 20 או פחות, ושמשתמשות ב-legacy multi-dex. - שיפור מהירויות הבנייה על ידי אופטימיזציה של משימות מסוימות לשימוש בפלט שנשמר במטמון. כדי ליהנות מהאופטימיזציה הזו, צריך קודם להפעיל את מטמון ה-build של Gradle.
- שיפור העיבוד של משאבים מצטברים באמצעות AAPT2, שמופעל עכשיו כברירת מחדל. אם נתקלתם בבעיות במהלך השימוש ב-AAPT2,
אתם מוזמנים לדווח על באג. אפשר גם להשבית את AAPT2 על ידי הגדרת
android.enableAapt2=falseבקובץgradle.propertiesוהפעלה מחדש של Gradle daemon על ידי הרצת./gradlew --stopמשורת הפקודה.
תכונות חדשות
- ניהול תלויות עם תמיכה בווריאציות. כשיוצרים וריאציה מסוימת של מודול, התוסף מתאים עכשיו באופן אוטומטי וריאציות של תלות במודול של ספרייה מקומית לווריאציה של המודול שיוצרים.
- כולל פלאגין חדש של מודול תכונות לתמיכה באפליקציות ללא התקנה ל-Android וב-Android Instant Apps SDK (שאפשר להוריד באמצעות SDK Manager). למידע נוסף על יצירת מודולים של תכונות באמצעות הפלאגין החדש, אפשר לקרוא את המאמר מבנה של אפליקציה מיידית עם כמה תכונות.
- תמיכה מובנית בשימוש בתכונות שפה מסוימות של Java 8 ובספריות של Java 8. הכלי Jack הוצא משימוש ולא נדרש יותר, ולכן צריך להשבית אותו כדי להשתמש בתמיכה המשופרת ב-Java 8 שמוטמעת בשרשרת הכלים שמוגדרת כברירת מחדל. מידע נוסף זמין במאמר בנושא שימוש בתכונות של שפת Java 8.
-
נוספה תמיכה בהרצת בדיקות באמצעות Android Test Orchestrator, שמאפשרת להריץ כל אחת מהבדיקות של האפליקציה בתוך קריאה משלה של Instrumentation. מכיוון שכל בדיקה מופעלת במופע Instrumentation משלה, כל מצב משותף בין הבדיקות לא מצטבר במעבד או בזיכרון של המכשיר. גם אם בדיקה אחת קורסת, היא משביתה רק את המופע שלה של Instrumentation, כך שהבדיקות האחרות עדיין פועלות.
- נוספה האפשרות
testOptions.executionכדי לקבוע אם להשתמש בתיאום בדיקות במכשיר. אם רוצים להשתמש ב-Android Test Orchestrator, צריך לציין אתANDROID_TEST_ORCHESTRATOR, כמו שמוצג בהמשך. כברירת מחדל, הנכס הזה מוגדר ל-HOST, מה שמשבית את התיאום במכשיר וזו השיטה הרגילה להפעלת בדיקות.
מגניב
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- נוספה האפשרות
-
הגדרת תלות חדשה
androidTestUtilמאפשרת לכם להתקין עוד APK של כלי עזר לבדיקה לפני שמריצים את בדיקות המכשירים, כמו תזמור בדיקות ל-Android:מגניב
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
נוסף
testOptions.unitTests.includeAndroidResourcesכדי לתמוך בבדיקות יחידה שדורשות משאבי Android, כמו Roboelectric. כשמגדירים את המאפיין הזה לערךtrue, הפלאגין מבצע מיזוג של משאבים, נכסים ומניפסטים לפני שהוא מריץ את בדיקות היחידה. לאחר מכן, הבדיקות יכולות לבדוק אתcom/android/tools/test_config.propertiesבנתיב המחלקה לגבי המפתחות הבאים:-
android_merged_assets: הנתיב המוחלט לספריית הנכסים הממוזגים.הערה: במודולים של ספרייה, הנכסים הממוזגים לא מכילים את הנכסים של יחסי תלות (ראו בעיה מס' 65550419).
-
android_merged_manifest: הנתיב המוחלט לקובץ המניפסט שעבר מיזוג. -
android_merged_resources: הנתיב המוחלט לספריית המשאבים הממוזגים, שמכילה את כל המשאבים מהמודול וכל התלות שלו. -
android_custom_package: שם החבילה של המחלקה הסופית R. אם אתם משנים באופן דינמי את מזהה האפליקציה, יכול להיות ששם החבילה הזה לא יהיה זהה למאפייןpackageבמניפסט של האפליקציה.
-
- תמיכה בגופנים כמשאבים (תכונה חדשה שהושקה ב-Android 8.0 (רמת API 26)).
- תמיכה בחבילות APK ספציפיות לשפה עם Android Instant Apps SDK 1.1 ומעלה.
-
עכשיו אפשר לשנות את ספריית הפלט של פרויקט חיצוני לבנייה מקומית, כמו שמוצג בהמשך:
מגניב
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- עכשיו אפשר להשתמש ב-CMake 3.7 או בגרסה מתקדמת יותר כשבונים פרויקטים מקוריים מ-Android Studio.
-
הגדרת תלות חדשה
lintChecksמאפשרת ליצור קובץ JAR שמגדיר כללי lint מותאמים אישית, ולצרף אותו לפרויקטים של AAR ו-APK.כללי ה-lint המותאמים אישית צריכים להיות חלק מפרויקט נפרד שמפיק קובץ JAR יחיד וכולל רק תלות ב-
compileOnly. מודולים אחרים של אפליקציות וספריות יכולים להסתמך על פרויקט lint באמצעות ההגדרהlintChecks:מגניב
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
שינויים בהתנהגות
- בפלאגין Android 3.0.0 הוסרו ממשקי API מסוימים, וה-build ייכשל אם תשתמשו בהם. לדוגמה, אי אפשר יותר להשתמש ב-Variants API כדי לגשת לאובייקטים מסוג
outputFile()או להשתמש ב-processManifest.manifestOutputFile()כדי לקבל את קובץ המניפסט לכל וריאציה. מידע נוסף מופיע במאמר בנושא שינויים ב-API. - אין יותר צורך לציין גרסה לכלי הבנייה (לכן, עכשיו אפשר להסיר את המאפיין
android.buildToolsVersion). כברירת מחדל, הפלאגין משתמש אוטומטית בגרסה המינימלית הנדרשת של כלי הבנייה לגרסה של פלאגין של Android שבה אתם משתמשים. - עכשיו אתם יכולים להפעיל או להשבית את דחיסת ה-PNG בחסימה של
buildTypesכמו שמוצג למטה. התכונה PNG crunching מופעלת כברירת מחדל בכל גרסאות ה-build, למעט גרסאות build לניפוי באגים, כי היא מאריכה את זמני ה-build בפרויקטים שכוללים הרבה קובצי PNG. לכן, כדי לשפר את זמני הבנייה עבור סוגי בנייה אחרים, צריך להשבית את דחיסת ה-PNG או להמיר את התמונות לפורמט WebP.מגניב
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- הפלאגין של Android יוצר עכשיו באופן אוטומטי יעדים להפעלה שמוגדרים בפרויקטים חיצוניים של CMake.
- עכשיו צריך להוסיף מעבדי הערות לנתיב המחלקה של המעבד באמצעות הגדרת התלות
annotationProcessor. - השימוש בתכונה
ndkCompileשהוצאה משימוש מוגבל יותר עכשיו. במקום זאת, כדאי לעבור לשימוש ב-CMake או ב-ndk-build כדי לקמפל קוד Native שרוצים לארוז ב-APK. מידע נוסף זמין במאמר בנושא מעבר מ-ndkcompile.
2.3.0 (פברואר 2017)
2.3.3 (יוני 2017)
זהו עדכון קל שמוסיף תאימות ל-Android Studio 2.3.3.
2.3.2 (מאי 2017)
זהו עדכון קל שמוסיף תאימות ל-Android Studio 2.3.2.
2.3.1 (אפריל 2017)
זהו עדכון קל לפלאגין של Android 2.3.0 שפותר בעיה שבה מכשירי Android פיזיים מסוימים לא פעלו כראוי עם Instant Run (ראו Issue #235879).
- תלויות:
-
- Gradle מגרסה 3.3 ואילך.
- Build Tools 25.0.0 או גרסה מתקדמת יותר.
- הפרטים החדשים:
-
- משתמש ב-Gradle 3.3, שכולל שיפורים בביצועים ותכונות חדשות. פרטים נוספים זמינים בהערות המוצר של Gradle.
- מטמון build: מאחסן פלטים מסוימים שתוסף Android יוצר כשמבצעים build של הפרויקט (למשל קובצי AAR לא ארוזים ותלות מרחוק שעברו dexing מראש). ה-builds הנקיים שלכם מהירים הרבה יותר כשמשתמשים במטמון, כי מערכת ה-build יכולה פשוט לעשות שימוש חוזר בקבצים האלה ששמורים במטמון במהלך ה-builds הבאים, במקום ליצור אותם מחדש. בפרויקטים שמשתמשים בפלאגין של Android בגרסה 2.3.0 ומעלה, נעשה שימוש במטמון של ה-build כברירת מחדל. מידע נוסף מופיע במאמר שיפור מהירות הבנייה באמצעות מטמון הבנייה.
- כולל משימה
cleanBuildCacheשמנקה את מטמון הבנייה. - אם אתם משתמשים בגרסת הניסוי של מטמון ה-build (שנכללת בגרסאות קודמות של הפלאגין), כדאי לעדכן את הפלאגין לגרסה האחרונה.
- כולל משימה
- השינויים:
-
- תמיכה בשינויים ב-Instant Run שכלולים ב-Android Studio 2.3.
- זמני ההגדרה של פרויקטים גדולים מאוד צריכים להיות מהירים משמעותית.
- תוקנו בעיות בהורדה אוטומטית של ספריית פריסת האילוצים.
- הפלאגין משתמש עכשיו בגרסה 5.3.2 של ProGuard.
- הגרסה כוללת הרבה תיקונים של באגים שדווחו. אם נתקלתם בבעיות, אתם מוזמנים להמשיך לשלוח דוחות על באגים.
2.2.0 (ספטמבר 2016)
- תלויות:
-
- Gradle מגרסה 2.14.1 ואילך.
- Build Tools 23.0.2 או גרסה מתקדמת יותר.
- הפרטים החדשים:
-
- משתמש ב-Gradle 2.14.1, שכולל שיפורים בביצועים ותכונות חדשות, ומתקן פגיעות באבטחה שמאפשרת העלאת הרשאות מקומיות כשמשתמשים ב-Gradle daemon. פרטים נוספים זמינים ב הערות המוצר של Gradle.
- באמצעות
externalNativeBuild {}DSL, Gradle מאפשר עכשיו לקשר למקורות המקוריים ולבצע קומפילציה של ספריות מקוריות באמצעות CMake או ndk-build. אחרי שיוצרים את ספריות ה-Native, Gradle אורז אותן ב-APK. מידע נוסף על שימוש ב-CMake וב-ndk-build עם Gradle זמין במאמר הוספת קוד C ו-C++ לפרויקט. - כשמריצים build משורת הפקודה, Gradle מנסה עכשיו להוריד באופן אוטומטי רכיבי SDK חסרים או עדכונים שהפרויקט תלוי בהם. מידע נוסף זמין במאמר בנושא הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
- תכונה חדשה של שמירת נתונים במטמון (קאשינג) מאפשרת ל-Gradle להאיץ את זמני הבנייה באמצעות pre-dexing, אחסון ושימוש חוזר בגרסאות pre-dexed של הספריות. במדריך בנושא Build Cache מפורט מידע נוסף על השימוש בתכונה הניסיונית הזו.
- שיפור הביצועים של הבנייה באמצעות אימוץ צינור אריזה חדש שמוגדר כברירת מחדל, שמטפל בדחיסה, בחתימה וביישור זיפ במשימה אחת. אתם יכולים לחזור להשתמש בכלים הישנים יותר לאריזה על ידי הוספת
android.useOldPackaging=trueלקובץgradle.properties. כשמשתמשים בכלי האריזה החדש, המשימהzipalignDebugלא זמינה. עם זאת, אפשר ליצור כזה בעצמכם על ידי הפעלת השיטהcreateZipAlignTask(String taskName, File inputFile, File outputFile). - חתימה על APK מתבצעת עכשיו באמצעות APK Signature Scheme
v2 בנוסף לחתימה המסורתית על JAR. כל פלטפורמות Android מקבלות את קובצי ה-APK שנוצרים. כל שינוי בקובצי ה-APK האלה אחרי החתימה מבטל את תוקף החתימות שלהם בגרסה 2 ומונע את ההתקנה במכשיר. כדי להשבית את התכונה הזו, מוסיפים את השורה הבאה לקובץ
build.gradleברמת המודול:מגניב
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- בגרסאות build של multidex, אפשר עכשיו להשתמש בכללי ProGuard כדי לקבוע אילו מחלקות Gradle צריך לקמפל לקובץ ה-DEX הראשי של האפליקציה. מערכת Android טוענת קודם את קובץ ה-DEX הראשי כשמפעילים את האפליקציה, ולכן אפשר לתת עדיפות למחלקות מסוימות בהפעלה על ידי קומפילציה שלהן לקובץ ה-DEX הראשי. אחרי שיוצרים קובץ הגדרות של ProGuard במיוחד לקובץ ה-DEX הראשי, מעבירים את הנתיב של קובץ ההגדרות ל-Gradle באמצעות
buildTypes.multiDexKeepProguard. השימוש ב-DSL הזה שונה מהשימוש ב-buildTypes.proguardFiles, שכולל כללים כלליים של ProGuard לאפליקציה ולא מציין מחלקות לקובץ ה-DEX הראשי. - נוסף תמיכה בדגל
android:extractNativeLibs, שיכול לצמצם את גודל האפליקציה כשמתקינים אותה במכשיר. כשמגדירים את הדגל הזה לערךfalseבאלמנט<application>בקובץ מניפסט של אפליקציה, Gradle אורז גרסאות לא דחוסות ומיושרות של ספריות ה-Native עם ה-APK. הפעולה הזו מונעת מ-PackageManagerלהעתיק את הספריות המקוריות מקובץ ה-APK למערכת הקבצים של המכשיר במהלך ההתקנה, ויש לה גם יתרון נוסף: היא מקטינה את גודל העדכונים של האפליקציה. - עכשיו אפשר לציין
versionNameSuffixוapplicationIdSuffixלטעמים של מוצרים. (בעיה מספר 59614)
- השינויים:
-
-
getDefaultProguardFileמחזירה עכשיו את קובצי ברירת המחדל של ProGuard שפלאגין Android ל-Gradle מספק, ולא משתמשת יותר בקובצי ProGuard ב-Android SDK. - שיפורים בביצועים ובתכונות של מהדר Jack:
- הכלי Jack תומך עכשיו בכיסוי בדיקות של Jacoco כשמגדירים את
testCoverageEnabledל-true. - תמיכה משופרת במעבדי הערות. מעבדי הערות (Annotation) בנתיב המחלקות (classpath), כמו תלויות
compile, מוחלים אוטומטית על הבנייה. אתם יכולים גם לציין מעבד אנוטציות (Annotation processor) ב-build ולהעביר ארגומנטים באמצעות ה-DSLjavaCompileOptions.annotationProcessorOptions {}בקובץbuild.gradleברמת המודול:מגניב
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
אם רוצים להחיל מעבד אנוטציות בזמן ההידור, אבל לא לכלול אותו בקובץ ה-APK, צריך להשתמש ב
annotationProcessorהיקף התלות:מגניב
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- כברירת מחדל, אם גודל ה-heap של Gradle daemon הוא לפחות 1.5GB, Jack פועל עכשיו באותו תהליך כמו Gradle. כדי לשנות את גודל ה-heap של הדמון, מוסיפים את השורה הבאה לקובץ
gradle.properties:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
כדי לראות רשימה של הפרמטרים שאפשר להגדיר, מריצים את הפקודה הבאה משורת הפקודה:
java -jar /build-tools/jack.jar --help-properties
- הכלי Jack תומך עכשיו בכיסוי בדיקות של Jacoco כשמגדירים את
-
2.1.0 (אפריל 2016)
2.1.3 (אוגוסט 2016)
העדכון הזה דורש Gradle 2.14.1 ואילך. Gradle 2.14.1 כולל שיפורים בביצועים, תכונות חדשות ותיקון חשוב של פגיעות באבטחה. פרטים נוספים זמינים בהערות המוצר של Gradle.
- תלויות:
-
- Gradle מגרסה 2.10 ואילך.
- Build Tools 23.0.2 או גרסה מתקדמת יותר.
- הפרטים החדשים:
-
- הוספנו תמיכה ב-N תצוגה מקדימה למפתחים, ב-JDK 8 ובתכונות השפה Java 8 באמצעות ערכת הכלים Jack. מידע נוסף זמין במדריך לתצוגה מקדימה של N.
הערה: הפעלה מיידית לא פועלת כרגע עם Jack, והיא תושבת בזמן השימוש בשרשרת הכלים החדשה. צריך להשתמש ב-Jack רק אם מפתחים לגרסת הטרום-השקה של N ורוצים להשתמש בתכונות השפה הנתמכות של Java 8.
- נוספה תמיכה כברירת מחדל בהידור מצטבר של Java כדי לקצר את זמן ההידור במהלך הפיתוח. הוא עושה את זה על ידי קומפילציה מחדש רק של חלקים בקוד המקור שהשתנו או שצריך לבצע להם קומפילציה מחדש. כדי להשבית את התכונה הזו, מוסיפים את הקוד הבא לקובץ
build.gradleברמת המודול:מגניב
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
הוספנו תמיכה ב-dexing-in-process, שמבצע dexing בתהליך הבנייה ולא בתהליכי VM חיצוניים נפרדים. השינוי הזה לא רק מזרז את הבנייה המצטברת, אלא גם את הבנייה המלאה. התכונה מופעלת כברירת מחדל בפרויקטים שבהם הגודל המקסימלי של ה-heap של Gradle daemon מוגדר ל-2048MB לפחות. כדי לעשות את זה, צריך לכלול את השורות הבאות בקובץ
```none org.gradle.jvmargs = -Xmx2048m ```gradle.propertiesשל הפרויקט:אם הגדרתם ערך ל-
```none org.gradle.jvmargs = -Xmx3072m ```javaMaxHeapSizeבקובץbuild.gradleברמת המודול, צריך להגדיר אתorg.gradle.jvmargsלערך שלjavaMaxHeapSize+ 1024MB. לדוגמה, אם הגדרתם את הערך שלjavaMaxHeapSizeל-2048m, צריך להוסיף את השורה הבאה לקובץgradle.propertiesשל הפרויקט:כדי להשבית את תהליך ה-DEX, מוסיפים את הקוד הבא לקובץ
build.gradleברמת המודול:מגניב
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- הוספנו תמיכה ב-N תצוגה מקדימה למפתחים, ב-JDK 8 ובתכונות השפה Java 8 באמצעות ערכת הכלים Jack. מידע נוסף זמין במדריך לתצוגה מקדימה של N.
2.0.0 (אפריל 2016)
- תלויות:
-
- Gradle מגרסה 2.10 ואילך.
- Build Tools 21.1.1 או גרסה מתקדמת יותר.
- הפרטים החדשים:
-
- הוספנו אפשרות שמפעילה את Instant Run על ידי תמיכה בהחדרת בייטקוד (bytecode), ודחיפת עדכונים של קוד ומשאבים לאפליקציה שפועלת באמולטור או במכשיר פיזי.
- נוספה תמיכה בבנייה מצטברת, גם כשהאפליקציה לא פועלת. משך הזמן המלא של תהליכי build משתפרים על ידי העברת שינויים מצטברים דרך ממשק הגישור של Android (ADB) למכשיר המחובר.
- הוספנו את
maxProcessCountכדי לקבוע כמה תהליכי dex של worker יכולים להיות מופעלים בו-זמנית. הקוד הבא, בקובץbuild.gradleברמת המודול, מגדיר את המספר המקסימלי של תהליכים מקבילים ל-4:מגניב
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
Kotlin
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:מגניב
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
Kotlin
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- שינוי בהתנהגות:
-
- כשמגדירים את
minSdkVersionל-18 ומעלה, חתימת ה-APK מתבצעת באמצעות SHA256.
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul> - כשמגדירים את
- בעיות שתוקנו:
-
- נפתרה בעיה שגרמה לתלות כפולה ב-AAR בשתי תצורות ה-build, גם בבדיקה וגם ב-build הראשי.
פלאגין Android ל-Gradle, גרסה 1.5.0 (נובמבר 2015)
- תלויות:
-
- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- הערות כלליות:
-
- שילבנו את הפלאגין Data Binding בפלאגין Android ל-Gradle. כדי להפעיל אותו, מוסיפים את הקוד הבא לכל קובץ
build.gradleלכל פרויקט שמשתמש בפלאגין: - הוספנו Transform API חדש
כדי לאפשר לתוספים של צד שלישי לבצע מניפולציות בקובצי
.classשעברו קומפילציה לפני שהם מומרים לקובצי.dex. ממשק Transform API מפשט את ההחדרה של מניפולציות מותאמות אישית של מחלקות, ומציע יותר גמישות לגבי מה שאפשר לשנות. כדי להוסיף טרנספורמציה לבנייה, יוצרים מחלקה חדשה שמיישמת אחד מהממשקיםTransform, ורושמים אותה ב-android.registerTransform(theTransform)או ב-android.registerTransform(theTransform, dependencies). אין צורך לקשר בין המשימות. חשוב לדעת על Transform API: - אפשר להחיל טרנספורמציה על אחד או יותר מהרכיבים הבאים: הפרויקט הנוכחי, פרויקטים משניים וספריות חיצוניות.
- צריך לרשום את הטרנספורמציה באופן גלובלי, כדי שהיא תחול על כל הווריאציות.
- עיבוד פנימי של קוד, באמצעות Java Code Coverage Library (JaCoCo), ProGuard ו-MultiDex, מתבצע עכשיו באמצעות Transform API. עם זאת, ערכת הקומפיילר של Java Android (Jack) לא משתמשת ב-API הזה: רק בנתיב הקוד
javac/dx. - מערכת Gradle מריצה את הטרנספורמציות בסדר הזה: JaCoCo, פלאגינים של צד שלישי, ProGuard. סדר ההפעלה של תוספים של צד שלישי תואם לסדר שבו התוספים של צד שלישי מוסיפים את הטרנספורמציות. מפתחים של תוספים של צד שלישי לא יכולים לשלוט בסדר ההפעלה של הטרנספורמציות באמצעות API.
- הוצא משימוש ה-getter
dexמהמחלקהApplicationVariant. אי אפשר יותר לגשת למשימהDexדרך Variant API כי עכשיו היא מתבצעת באמצעות טרנספורמציה. אין כרגע תחליף לשליטה בתהליך dex. - תוקנה תמיכה מצטברת בנכסים.
- שיפרנו את התמיכה ב-MultiDex והפכנו אותה לזמינה לפרויקטים של בדיקות. בנוסף, הבדיקות כוללות עכשיו באופן אוטומטי את התלות
com.android.support:multidex-instrumentation. - נוספה האפשרות לגרום לתקלה ב-Gradle build ולדווח על סיבת השגיאה הבסיסית כש-Gradle build מפעיל משימות אסינכרוניות ויש תקלה בתהליך worker.
- הוספנו תמיכה בהגדרת Application Binary Interface (ABI) ספציפי בווריאציות שמכילות כמה ממשקי ABI.
- הוספנו תמיכה ברשימה של מספרים סידוריים של מכשירים שמופרדים בפסיקים עבור משתנה הסביבה
ANDROID_SERIALכשמתקינים או מריצים בדיקות. - תוקנה בעיה שגרמה לכשל בהתקנה במכשירים עם Android מגרסה 5.0 (רמת API 20) ואילך, אם שם ה-APK הכיל רווח.
- תוקנו בעיות שונות שקשורות לפלט השגיאות של Android Asset Packaging Tool (AAPT).
- נוספה תמיכה בהוספת מכשירים מצטברת של JaCoCo לבנייה מצטברת מהירה יותר. הפלאגין של Android ל-Gradle מפעיל עכשיו ישירות את הכלי JaCoCo instrumenter. כדי לכפות שימוש בגרסה חדשה יותר של JaCoCo instrumenter, צריך להוסיף אותה כתלות בסקריפט build.
- תוקנה התמיכה ב-JaCoCo כך שהמערכת מתעלמת מקבצים שהם לא מחלקות.
- הוספנו תמיכה ב-vector drawable כדי ליצור קובצי PNG בזמן הבנייה לצורך תאימות לאחור.
פלאגין Android ל-Gradle יוצר קובצי PNG לכל פריט גרפי וקטורי שניתן לשרטוט שנמצא בספריית משאבים שלא מצוינת בה גרסת API, או שמצוין בה מאפיין
android:minSdkVersionבערך 20 ומטה באלמנט<uses-sdk>בקובץ מניפסט של אפליקציה. אפשר להגדיר את הצפיפות של קובצי PNG באמצעות המאפייןgeneratedDensitiesבקטעיםdefaultConfigאוproductFlavorשל קובץbuild.gradle. - נוסף שיתוף של
android.jarשאפשר ליצור ממנו מוקאפ, שהתוסף יוצר רק פעם אחת ומשתמש בו לבדיקות יחידה. כמה מודולים, כמוappו-lib, משתפים עכשיו את אותו קובץ. כדי ליצור אותו מחדש, מוחקים את$rootDir/build. - השתנה העיבוד של משאבי Java, והוא מתבצע לפני משימות ההסתרה במקום במהלך האריזה של ה-APK. השינוי הזה מאפשר למשימות ההסתרה להתאים את משאבי Java אחרי הסתרת החבילות.
- תוקנה בעיה בשימוש בקוד Java Native Interface (JNI) בפלאגין של ספריית הניסויים.
- נוספה האפשרות להגדיר את גרסת הפלטפורמה בנפרד מהמאפיין
android:compileSdkVersionבתוסף של ספריית הניסויים.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- שילבנו את הפלאגין Data Binding בפלאגין Android ל-Gradle. כדי להפעיל אותו, מוסיפים את הקוד הבא לכל קובץ
פלאגין Android ל-Gradle, גרסה 1.3.1 (אוגוסט 2015)
תלויות:- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- תוקן באפשרות ZipAlign באג שגרם לכך שהפלט של המשימה הקודמת לא נקלט בצורה תקינה כשמשתמשים בשם קובץ מותאם אישית.
- תוקנה בעיה באריזת Renderscript באמצעות NDK.
- המשכנו לתמוך במשימת הבנייה
createDebugCoverageReport. - תוקנה התמיכה בשימוש מותאם אישית במאפיין
archiveBaseNameבקובץ ה-buildbuild.gradle. - תוקנה האזהרה
Invalid ResourceTypelint שנגרמה בגלל חיפוש הערות של שיטת פרמטרים כשמריצים את lint מחוץ ל-Android Studio.
פלאגין Android ל-Gradle, גרסה 1.3.0 (יולי 2015)
תלויות:- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
-
נוספה תמיכה במאפיין
com.android.build.threadPoolSizeכדי לשלוט בגודל של מאגר השרשורים של המשימהAndroidמקובץgradle.propertiesאו משורת הפקודה. בדוגמה הבאה, המאפיין הזה מוגדר ל-4.-Pcom.android.build.threadPoolSize=4 - מגדירים את התנהגות ה-build כברירת מחדל כך שקבצים מסוג
LICENSEו-LICENSE.txtלא ייכללו בקובצי ה-APK. כדי לכלול את הקבצים האלה ב-APK, צריך להסיר אותם מהמאפייןpackagingOptions.excludesבקובץbuild.gradle. לדוגמה:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- נוספה המשימה
sourceSetsלבדיקת קבוצת כל מקורות הנתונים הזמינים. - שיפרנו את התמיכה בבדיקות יחידה כדי לזהות תיקיות מקור של
build variant וכמה flavors. לדוגמה, כדי לבדוק אפליקציה עם כמה גרסאות
flavor1ו-flavorAעם סוג buildDebug, קבוצות מקורות הבדיקה הן:- בדיקה
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
בבדיקות של Android כבר יש זיהוי של תיקיות מקור מרובות.
- שיפרנו את התמיכה בבדיקות יחידה כדי:
- מריצים את הפקודה
javacבמקורות הראשיים ובמקורות הבדיקה, גם אם המאפייןuseJackמוגדר כ-trueבקובץ ה-build. - לזהות נכון את התלות של כל סוג build.
- מריצים את הפקודה
- נוספה תמיכה בהגדרת ארגומנטים של מפעיל בדיקות אינסטרומנטציה משורת הפקודה.
לדוגמה:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB נוספה תמיכה בפרמטרים נוספים שרירותיים של Android Asset Packaging Tool (AAPT) בקובץ
build.gradle. לדוגמה:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- נוספה תמיכה ב
מודול APK לבדיקה כמודול בדיקה נפרד, באמצעות המאפיינים
targetProjectPathו-targetVariantלהגדרת נתיב ה-APK והווריאציה של היעד.הערה: מודול APK לבדיקה לא תומך בטעמים של מוצרים ויכול להיות מיועד רק לווריאנט אחד. בנוסף, אין עדיין תמיכה ב-Jacoco.
- הוספנו אימות של שם המשאב לפני מיזוג משאבים.
- כשיוצרים חבילת AAR (Android ARchive) למודולים של ספריות, לא צריך לספק placeholder אוטומטי של
@{applicationId}בהגדרות של מיזוג המניפסט. במקום זאת, אפשר להשתמש בplaceholder אחר, כמו@{libApplicationId}, ולספק לו ערך אם רוצים לכלול מזהי אפליקציות בספריית הארכיון.
פלאגין Android ל-Gradle, גרסה 1.2.0 (אפריל 2015)
- תלויות:
-
- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- הערות כלליות:
-
- תמיכה משופרת בהרצת בדיקות יחידה באמצעות Gradle.
- נוספה תמיכה כדי לכלול משאבים בסגנון Java ב-classpath כשמריצים בדיקות יחידה ישירות מ-Gradle.
- נוספה תמיכה בתלות בבדיקות יחידה בשביל ארטיפקטים מסוג Android Archive (AAR).
- נוספה תמיכה במאפיין
unitTestVariants, כך שאפשר לבצע מניפולציות בווריאציות של בדיקות יחידה באמצעות הקובץbuild.gradle. - הוספנו את בלוק הקוד
unitTest.allמתחת ל-testOptions, כך שעכשיו אפשר להגדיר משימות בהתאמה אישית לבדיקת יחידות. בדוגמת הקוד הבאה אפשר לראות איך מוסיפים הגדרות של בדיקות יחידה באמצעות האפשרות החדשה הזו:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- תוקן אופן הטיפול בטיפוסים בני מנייה (enum) ובשדות של מופעים ציבוריים במארז של קובץ
mockable-android.jar. - תוקנו תלויות של משימות בפרויקט של ספרייה, כך שמחלקות בדיקה עוברות קומפילציה מחדש אחרי שינויים.
- נוסף המאפיין
testProguardFileכדי להחיל קובצי ProGuard כשמבצעים הקטנה של קובץ APK לבדיקה. - הוספנו את המאפיין
timeOutלבלוק הקודadbOptionsכדי להגדיר את זמן ההקלטה המקסימלי של המסך בממשק הגישור של Android (ADB). - הוספנו תמיכה במשאבים ברזולוציה של 280dpi.
- שיפרנו את הביצועים במהלך הערכת הפרויקט.
- תמיכה משופרת בהרצת בדיקות יחידה באמצעות Gradle.
פלאגין Android ל-Gradle, גרסה 1.1.3 (מרץ 2015)
- תלויות:
-
- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- הערות כלליות:
-
- תוקנה בעיה שגרמה לכפילות של יחסי תלות באפליקציית בדיקה, מה שהוביל לכשל ב-ProGuard.
- תוקן יישום של Comparator שלא עמד בדרישות של חוזה ה-Comparator של JDK ויצר שגיאה ב-JDK 7.
פלאגין Android ל-Gradle, גרסה 1.1.2 (פברואר 2015)
- תלויות:
-
- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- הערות כלליות:
-
- נתיב מנורמל כשיוצרים קובץ JAR שאפשר להשתמש בו לבדיקת יחידות.
- תוקנה ההגדרה
archivesBaseNameבקובץbuild.gradle. - תוקן הכשל של placeholder שלא נפתר במיזוג המניפסט כשמבצעים build של אפליקציית בדיקה של ספרייה.
פלאגין Android ל-Gradle, גרסה 1.1.1 (פברואר 2015)
- תלויות:
-
- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- הערות כלליות:
-
- שינוי וריאנטים של build כך שרק וריאנטים שמכילים טריגר של אפליקציית Wear יפעילו משימות build ספציפיות ל-Wear.
- שינינו את אופן הטיפול בבעיות שקשורות לתלות, כך שעכשיו הכשל מתרחש בזמן משך זמן של תהליך build ולא בזמן ניפוי הבאגים. ההתנהגות הזו מאפשרת לכם להריץ משימות אבחון (כמו 'תלויות') כדי לפתור את הבעיה.
- ה-method
android.getBootClasspath()תוקן, ועכשיו הוא מחזיר ערך.
פלאגין Android ל-Gradle, גרסה 1.1.0 (פברואר 2015)
- תלויות:
-
- Gradle מגרסה 2.2.1 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
- הערות כלליות:
-
- נוספה תמיכה חדשה בבדיקות יחידה
- הפעלנו בדיקות יחידה שיפעלו ב-JVM המקומי מול גרסה מיוחדת של קובץ
android.jarשתואמת למסגרות פופולריות ליצירת אובייקטים לניסוי, למשל Mockito. - נוספו משימות בדיקה חדשות
testDebug,testReleaseו-testMyFlavorDebugכשמשתמשים ב-product flavors. - הוספנו תיקיות מקור חדשות שמזוהות כבדיקות יחידה:
src/test/java/,src/testDebug/java/,src/testMyFlavor/java/. - נוספו הגדרות חדשות בקובץ
build.gradleלהצהרה על תלויות שרלוונטיות רק לבדיקות, למשלtestCompile 'junit:junit:4.11',testMyFlavorCompile 'some:library:1.0'.הערה: כרגע אין תאימות בין תלות שמוגדרת רק לבדיקות לבין Jack (Java Android Compiler Kit).
- נוספה האפשרות
android.testOptions.unitTests.returnDefaultValuesלשליטה בהתנהגות של android.jar שניתן ליצור ממנו mock. - הוחלף
Testבשמות של משימות בדיקה ב-AndroidTest. לדוגמה, המשימהassembleDebugTestהיא עכשיו המשימהassembleDebugAndroidTest. למשימות של בדיקות יחידה עדיין ישUnitTestבשם המשימה, לדוגמהassembleDebugUnitTest. - קובצי ההגדרות של ProGuard שונו כך שהם לא יחולו יותר על קובץ ה-APK לבדיקה. אם ההקטנה מופעלת, ProGuard מעבד את קובץ ה-APK לבדיקה ומחיל רק את קובץ המיפוי שנוצר כשמבצעים הקטנה של קובץ ה-APK הראשי.
- עדכון של ניהול התלות
- תוקנו בעיות בשימוש בהיקפי
providedו-package.הערה: ההיקפים האלה לא תואמים לחבילות AAR (Android ARchive) ויגרמו לכך שגרסת build עם חבילות AAR תיכשל.
- בוצע שינוי בפתרון התלות כדי להשוות בין התלויות של אפליקציה שנבדקת לבין אפליקציית הבדיקה. אם נמצא ארטיפקט עם אותה גרסה בשתי האפליקציות, הוא לא נכלל באפליקציית הבדיקה ונארז רק עם האפליקציה שנבדקת. אם נמצא ארטיפקט עם גרסה שונה בשתי האפליקציות, ה-build ייכשל.
- תוקנו בעיות בשימוש בהיקפי
- הוספנו תמיכה ב
anyDpiresource qualifier במיזוג משאבים. - שיפור במהירות ההערכה והסנכרון של סביבת הפיתוח המשולבת (IDE) בפרויקטים עם מספר גדול של מודולים של Android.
פלאגין Android ל-Gradle, גרסה 1.0.1 (ינואר 2015)
- תלויות:
-
-
Gradle 2.2.1 עד 2.3.x.
הערה: הגרסה הזו של פלאגין Android ל-Gradle לא תואמת ל-Gradle מגרסה 2.4 ומעלה.
- Build Tools מגרסה 21.1.1 ואילך.
-
- הערות כלליות:
-
- תוקנה בעיה שגרמה לתקלה ב-Gradle build בזמן גישה למודול
extractReleaseAnnotations. (בעיה מספר 81638). - תוקנה בעיה שקשורה להעברת ההגדרה
Disableאל--no-optimizeבבייטקוד ( bytecode) Dalvik Executable (dex). (בעיה מספר 82662). - תוקנו בעיות במיזוג המניפסטים כשמייבאים ספריות עם
targetSdkVersionנמוך מ-16. - תוקנה בעיה בסדר הצפיפות כשמשתמשים ב-Android Studio עם JDK 8.
- תוקנה בעיה שגרמה לתקלה ב-Gradle build בזמן גישה למודול
פלאגין Android ל-Gradle, גרסה 1.0.0 (דצמבר 2014)
- תלויות:
-
-
Gradle 2.2.1 עד 2.3.x.
הערה: הגרסה הזו של הפלאגין של Android ל-Gradle לא תואמת ל-Gradle מגרסה 2.4 ואילך.
- Build Tools מגרסה 21.1.1 ואילך.
-
- הערות כלליות:
-
- הגרסה הראשונה של הפלאגין.