בהמשך מפורטות הערות על הגרסאות של 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 כוללת עדכונים לכמה כלי עיצוב, כולל כלי עריכת הפריסה ומנהל המשאבים.
תצוגה מפוצלת והגדלה בעורכי עיצוב

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

Resource Manager
העדכונים הבאים בוצעו ב-Resource Manager:
- מנהל המשאבים תומך עכשיו ברוב סוגי המשאבים.
- כשמחפשים משאב, מנהל המשאבים מציג עכשיו תוצאות מכל מודולי הפרויקט. בעבר, בחיפושים התקבלו תוצאות רק מהמודול שנבחר.
- לחצן המסנן מאפשר לכם להציג משאבים ממודולים מקומיים שתלויים זה בזה, מספריית חיצוניות וממסגרת Android. אפשר גם להשתמש במסנן כדי להציג מאפייני עיצוב.
- מעכשיו אפשר לשנות את השם של מקורות מידע במהלך תהליך הייבוא. לשם כך, לוחצים בתיבת הטקסט שמעל מקור המידע.
מידע נוסף זמין במאמר ניהול משאבי ממשק המשתמש של האפליקציה באמצעות Resource Manager.
עדכונים בפלאגין של Android Gradle
הגרסה העדכנית של Android Gradle plugin כוללת הרבה עדכונים, כולל אופטימיזציות למהירות ה-build, תמיכה ב-Maven publishing plugin ותמיכה ב-View Binding. מידע נוסף זמין בהערות המלאות על הגרסה.
הצגת הקישור
View binding מאפשר לכם לכתוב קוד שמקיים אינטראקציה עם תצוגות בקלות רבה יותר, על ידי יצירת מחלקה של binding לכל קובץ פריסת XML. המחלקות האלה מכילות הפניות ישירות לכל התצוגות המפורטות שיש להן מזהה בפריסה המתאימה.
החלפת findViewById() ב-view binding מבטלת את הסיכון לחריגות של מצביע null כתוצאה ממזהה תצוגה לא תקין.
כדי להפעיל את view binding, צריך להשתמש בפלאגין Android Gradle בגרסה 3.6.0 ואילך, ולכלול את הקוד הבא בכל קובץ build.gradle של מודול:
Groovy
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 ללא התקנה.
ביטול ההסתרה של קוד בייט של מחלקה ושיטה בכלי לניתוח APK
כשמשתמשים בכלי לניתוח קובצי APK כדי לבדוק קובצי DEX, אפשר לפענח קוד מעורפל של בייטקוד של מחלקות ושיטות באופן הבא:
- בסרגל התפריטים, בוחרים באפשרות Build > Analyze APK (בנייה > ניתוח APK).
- בתיבת הדו-שיח שמופיעה, עוברים אל קובץ ה-APK שרוצים לבדוק ובוחרים אותו.
- לוחצים על פתיחה.
- ב-APK Analyzer, בוחרים את קובץ ה-DEX שרוצים לבדוק.
- בכלי לצפייה בקובץ DEX, טוענים את קובץ המיפוי של ProGuard עבור קובץ ה-APK שמנתחים.
- לוחצים לחיצה ימנית על הכיתה או על השיטה שרוצים לבדוק ובוחרים באפשרות Show bytecode (הצגת קוד בייט).
כלים מקוריים
העדכונים הבאים תומכים בפיתוח מקורי (C/C++) ב-Android Studio.
תמיכה ב-Kotlin
התכונות הבאות של NDK ב-Android Studio, שבעבר נתמכו ב-Java, נתמכות עכשיו גם ב-Kotlin:
-
אפשר לעבור מהצהרת JNI לפונקציית ההטמעה התואמת ב-C/C++. כדי לראות את המיפוי הזה, מעבירים את העכבר מעל סמן הפריט C או C++ ליד מספר השורה בקובץ קוד המקור המנוהל.
-
יצירה אוטומטית של פונקציית הטמעה של stub להצהרת 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.
זיהוי דליפות בכלי לניתוח ביצועי הזיכרון
כשמנתחים dump של heap ב-Memory Profiler, אפשר עכשיו לסנן נתוני פרופילים שאולי מצביעים על דליפות זיכרון במופעים של Activity ושל Fragment באפליקציה.
סוגי הנתונים שמוצגים במסנן כוללים את הנתונים הבאים:
-
מופעי
Activityשהושמדו אבל עדיין יש הפניה אליהם. -
Fragmentמקרים שבהם איןFragmentManagerתקף, אבל עדיין יש הפניה אליו.
צירוף מקורות של קובצי APK ב-Kotlin בלבד
עכשיו אפשר לצרף מקורות חיצוניים של חבילות APK שמבוססות על Kotlin בלבד כשמבצעים פרופיל ובאגים של חבילות APK מוכנות מראש. מידע נוסף זמין במאמר בנושא צירוף מקורות Kotlin/Java.
זיהוי דליפות בכלי לניתוח ביצועי הזיכרון
כשמנתחים dump של heap ב-Memory Profiler, אפשר עכשיו לסנן נתוני פרופילים שאולי מצביעים על דליפות זיכרון במופעים של Activity ושל Fragment באפליקציה.
סוגי הנתונים שמוצגים במסנן כוללים את הנתונים הבאים:
-
מופעי
Activityשהושמדו אבל עדיין יש הפניה אליהם. -
Fragmentמקרים שבהם איןFragmentManagerתקין, אבל עדיין יש הפניה אליו.
במצבים מסוימים, כמו אלה שבהמשך, יכול להיות שהמסנן יחזיר תוצאות חיוביות שגויות:
- נוצר
Fragmentאבל עדיין לא נעשה בו שימוש. - מתבצעת שמירה במטמון של
Fragmentאבל לא כחלק מFragmentTransaction.
כדי להשתמש בתכונה הזו, קודם צריך ליצור dump של ה-heap או לייבא קובץ dump של ה-heap ל-Android Studio. כדי להציג את הפעילויות והקטעים שעשויים לגרום לדליפת זיכרון, מסמנים את תיבת הסימון Activity/Fragment Leaks בחלונית של dump ה-heap בכלי Memory Profiler.
סינון של dump ערימה כדי למצוא דליפות זיכרון.
אמולטורים
Android Studio 3.6 מאפשר לכם ליהנות מכמה עדכונים שכלולים ב-Android Emulator מגרסה 29.2.7 ומעלה, כמו שמתואר בהמשך.
תמיכה משופרת במיקום
גרסה 29.2.7 של Android Emulator ואילך מספקת תמיכה נוספת בהדמיה של קואורדינטות GPS ופרטי מסלול. כשפותחים את האפשרות Emulators (אמולטורים) Extended controls (אמצעי בקרה מתקדמים), האפשרויות בכרטיסייה Location (מיקום) מאורגנות עכשיו בשתי כרטיסיות: Single points (נקודות בודדות) ו-Routes (מסלולים).
נקודות בודדות
בכרטיסייה נקודות בודדות, אפשר להשתמש בתצוגת האינטרנט של מפות Google כדי לחפש מוקדי עניין, בדיוק כמו כשמשתמשים במפות Google בטלפון או בדפדפן. כשמחפשים מיקום במפה או לוחצים עליו, אפשר לשמור אותו על ידי בחירה באפשרות 'שמירת נקודה' בחלק התחתון של המפה. כל המיקומים השמורים מופיעים בצד שמאל של החלון הגדרות מתקדמות.
כדי להגדיר את המיקום של האמולטור למיקום שבחרתם במפה, לוחצים על הלחצן הגדרת מיקום ליד הפינה הימנית התחתונה של חלון אמצעי בקרה מתקדמים.
.
מסלולים
בדומה לכרטיסייה נקודות בודדות, הכרטיסייה מסלולים מספקת תצוגת אינטרנט של מפות Google שבה אפשר ליצור מסלול בין שני מיקומים או יותר. כדי ליצור ולשמור מסלול:
- בתצוגת המפה, משתמשים בשדה הטקסט כדי לחפש את היעד הראשון במסלול.
- בוחרים את המיקום מתוצאות החיפוש.
- לוחצים על הלחצן ניווט.
- בוחרים במפה את נקודת ההתחלה של המסלול.
- (אופציונלי) לוחצים על הוספת יעד כדי להוסיף עוד עצירות למסלול.
- כדי לשמור את המסלול, לוחצים על שמירת המסלול בתצוגת המפה.
- מזינים שם למסלול ולוחצים על שמירה.
כדי לדמות את האמולטור שנע לאורך המסלול ששמרתם, בוחרים את המסלול מתוך רשימת המסלולים השמורים ולוחצים על הפעלת המסלול בפינה השמאלית התחתונה של חלון הפקדים המתקדמים. כדי להפסיק את הסימולציה, לוחצים על הפסקת המסלול.
.
כדי להפעיל סימולציה רציפה של האמולטור לפי המסלול שצוין, מפעילים את המתג שליד הפעלת הסרטון בלופ. כדי לשנות את המהירות שבה האמולטור עוקב אחרי המסלול שצוין, בוחרים באחת מהאפשרויות בתפריט הנפתח מהירות ההפעלה.
תמיכה בתצוגה מרובת מסכים
ב-Android Emulator אפשר עכשיו לפרוס את האפליקציה בכמה מסכים שתומכים בממדים שניתנים להתאמה אישית, וכך לבדוק אפליקציות שתומכות בחלונות מרובים ובתצוגה מרובת מסכים. בזמן שמכשיר וירטואלי פועל, אפשר להוסיף עד שני מסכים נוספים באופן הבא:
-
פותחים את האמצעים המתקדמים לבקרה ועוברים לכרטיסייה תצוגות.
-
כדי להוסיף עוד מסך, לוחצים על הוספת מסך משני.
-
בתפריט הנפתח שמתחת למסכים משניים, מבצעים אחת מהפעולות הבאות:
-
בחירת אחד מיחסי הגובה-רוחב המוגדרים מראש
-
בוחרים באפשרות בהתאמה אישית ומגדירים את הגובה, הרוחב וה-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.
- רכב (לרוחב, 1024p): יוצרים AVD ליחידות מרכזיות כלליות של Android Automotive בגודל 1024x768 פיקסלים.
.
הורדות SDK שניתן להמשיך
כשמורידים רכיבים וכלים של SDK באמצעות SDK Manager, אפשר עכשיו ב-Android Studio לחדש הורדות שהופסקו (לדוגמה, בגלל בעיה ברשת) במקום להפעיל מחדש את ההורדה מההתחלה. השיפור הזה שימושי במיוחד להורדות גדולות, כמו Android Emulator או תמונות מערכת, כשחיבור האינטרנט לא אמין.
בנוסף, אם יש לכם משימת הורדה של SDK שפועלת ברקע, עכשיו אתם יכולים להשהות או להפעיל מחדש את ההורדה באמצעות אמצעי הבקרה בסרגל המצב.
משימת הורדה ברקע בסרגל הסטטוס עם אמצעי בקרה חדשים שמאפשרים להשהות או להמשיך את ההורדה.
הוצאה משימוש של Win32
גרסת 32 הביט של Android Studio ל-Windows לא תקבל יותר עדכונים אחרי דצמבר 2019, ולא תקבל יותר תמיכה אחרי דצמבר 2020. אפשר להמשיך להשתמש ב-Android Studio. עם זאת, כדי לקבל עדכונים נוספים, צריך לשדרג את תחנת העבודה לגרסת 64 ביט של Windows.
מידע נוסף על הוצאה משימוש של Windows בגרסת 32 ביט
אפשרות חדשה לאופטימיזציה של זמן הסנכרון של Gradle
בגרסאות קודמות, Android Studio אחזר את רשימת כל משימות Gradle במהלך סנכרון Gradle. בפרויקטים גדולים, אחזור רשימת המשימות עלול לגרום לזמני סנכרון ארוכים.
כדי לשפר את הביצועים של Gradle Sync, עוברים אל File > Settings > Experimental ובוחרים באפשרות Do not build Gradle task list during Gradle sync.
כשמפעילים את האפשרות הזו, Android Studio מדלג על בניית רשימת המשימות במהלך הסנכרון, וכך סנכרון Gradle מסתיים מהר יותר והיענות ממשק המשתמש משתפרת. חשוב לזכור: אם סביבת הפיתוח המשולבת מדלגת על בניית רשימת המשימות, רשימות המשימות בחלונית Gradle ריקות, וההשלמה האוטומטית של שמות המשימות בקובצי build לא פועלת.
מיקום חדש להחלפת מצב אופליין ב-Gradle
כדי להפעיל או להשבית את מצב האופליין של 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 היא גרסה ראשית והיא תוצאה של פרויקט Marble. החל מגרסה Android Studio 3.3, פרויקט 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, כמו הליבה של סביבת הפיתוח המשולבת, Gradle daemon ו-Kotlin daemon. אפשר לאשר את ההגדרות המומלצות בלחיצה על הקישור לפעולה בהתראה, או לשנות את ההגדרות באופן ידני. כדי לעשות זאת, בוחרים באפשרות File > Settings (או Android Studio > Preferences ב-macOS), ואז מחפשים את הקטע Memory Settings בקטע Appearance & Behavior > System Settings. מידע נוסף זמין במאמר בנושא גודל הערימה המקסימלי.
התראה לגבי הגדרות מומלצות של זיכרון.
דוח שימוש בזיכרון
לפעמים קשה לשחזר בעיות בזיכרון ב-Android Studio ולדווח עליהן. כדי לפתור את הבעיה הזו, אפשר ליצור ב-Android Studio דוח על השימוש בזיכרון. לשם כך, לוחצים על Help > Analyze Memory Usage (עזרה > ניתוח השימוש בזיכרון) בסרגל התפריטים. כשעושים את זה, סביבת הפיתוח המשולבת (IDE) מנקה את הנתונים ממידע אישי באופן מקומי לפני שהיא שואלת אם רוצים לשלוח אותם לצוות Android Studio כדי לעזור לזהות את המקור של בעיות הזיכרון. מידע נוסף מופיע במאמר בנושא הרצת דוח על השימוש בזיכרון.
דוח על השימוש בזיכרון.
Windows: אופטימיזציה של קלט/פלט של קובץ אנטי-וירוס
Android Studio בודק עכשיו באופן אוטומטי אם ספריות מסוימות בפרויקט מוחרגות מסריקת אנטי וירוס בזמן אמת. אם יש שינויים שאפשר לבצע כדי לשפר את ביצועי הבנייה, Android Studio ישלח לכם התראה ויספק הוראות לאופטימיזציה של הגדרות האנטי-וירוס. מידע נוסף זמין במאמר צמצום ההשפעה של תוכנת אנטי-וירוס על מהירות ה-build.
Project Marble: שיפור התכונות
בקטע הזה מתוארים השינויים ב-Android Studio 3.5 שמתמקדים בשיפור התכונות הקיימות.
החלת השינויים
התכונה 'החלת שינויים' מאפשרת להעביר שינויים בקוד ובמשאבים לאפליקציה שפועלת בלי להפעיל אותה מחדש, ובמקרים מסוימים, בלי להפעיל מחדש את הפעילות הנוכחית. התכונה 'החלת שינויים' מיישמת גישה חדשה לגמרי לשימור המצב של האפליקציה. בניגוד ל-Instant Run, שכתב מחדש את קוד הבייט של ה-APK, התכונה Apply Changes מגדירה מחדש את המחלקות תוך כדי תנועה באמצעות מכשור זמן הריצה שנתמך ב-Android 8.0 (רמת API 26) ומעלה.
מידע נוסף זמין במאמר בנושא החלת שינויים.
לחצני סרגל הכלים להחלת השינויים.
תהליך פריסת האפליקציה
ב-IDE יש תפריט נפתח חדש שמאפשר לבחור במהירות את המכשיר שרוצים לפרוס בו את האפליקציה. התפריט הזה כולל גם אפשרות חדשה שמאפשרת להריץ את האפליקציה בכמה מכשירים בו-זמנית.
תפריט נפתח לבחירת מכשיר יעד.
שיפור בסנכרון Gradle ובזיהוי מטמון
ה-IDE מזהה עכשיו טוב יותר מתי Gradle מנקה מעת לעת את מטמון ה-build כדי לצמצם את צריכת הדיסק הקשיח. בגרסאות קודמות, המצב הזה גרם לסביבת הפיתוח המשולבת (IDE) לדווח על תלות חסרה ולסנכרון של Gradle להיכשל. עכשיו, סביבת הפיתוח המשולבת פשוט מורידה את התלויות לפי הצורך כדי להבטיח שהסנכרון של Gradle יושלם בהצלחה.
שיפור הפלט של שגיאות בנייה
בחלון Build
מוצג עכשיו דיווח טוב יותר על שגיאות, כמו קישור לקובץ ולשורה
של השגיאה שדווחה, בתהליכי הבנייה הבאים:
- הידור וקישור של AAPT
- R8 ו-ProGuard
- Dexing
- מיזוג משאבים
- ניתוח קובץ XML
- קומפילציה של Javac, Kotlinc ו-CMake
שדרוגים של פרויקטים
שיפרנו את חוויית העדכון כדי לספק לכם יותר מידע ופעולות שיעזרו לכם לעדכן את סביבת הפיתוח המשולבת ואת הפלאגין של Android Gradle. לדוגמה, שגיאות נוספות בסנכרון ובבנייה כוללות פעולות שיעזרו לכם לצמצם את השגיאות במהלך העדכון.
חשוב לזכור שאפשר לעדכן את סביבת הפיתוח המשולבת בנפרד מרכיבים אחרים, כמו הפלאגין של Android Gradle. לכן, אפשר לעדכן את סביבת הפיתוח המשולבת (IDE) ברגע שגרסה חדשה יותר זמינה, ולעדכן רכיבים אחרים מאוחר יותר.
כלי לעריכת פריסות
Android Studio 3.5 כולל כמה שיפורים בהדמיה, בניהול ובאינטראקציה של פריסות.
כשעובדים עם ConstraintLayout, בקטע Constraints החדש בחלונית Attributes מפורטים קשרי האילוצים של רכיב ממשק המשתמש שנבחר. אפשר לבחור אילוץ משטח העיצוב או מרשימת האילוצים כדי להדגיש את האילוץ בשני האזורים.
קשרי אילוצים לרכיב בממשק המשתמש שנבחר.
באופן דומה, עכשיו אפשר למחוק אילוץ על ידי בחירה בו והקשה על המקש Delete. אפשר גם למחוק אילוץ על ידי לחיצה ממושכת על המקש Control (Command ב-macOS) ולחיצה על נקודת העיגון של האילוץ. שימו לב: כשלוחצים על המקש Control או Command ומעבירים את העכבר מעל נקודת עיגון, כל האילוצים המשויכים הופכים לאדומים כדי לציין שאפשר ללחוץ כדי למחוק אותם.
כשבוחרים תצוגה, אפשר ליצור אילוץ על ידי לחיצה על אחד מסמלי + בקטע Constraint Widget בחלונית Attributes, כמו שמוצג בתמונה הבאה. כשיוצרים אילוץ חדש, כלי העריכה של הפריסה בוחר ומדגיש את האילוץ, ומספק משוב חזותי מיידי לגבי מה שנוסף.
שימוש בווידג'ט של אילוצים כדי ליצור אילוצים .
כשיוצרים אילוץ, בכלי לעריכת פריסות מוצגות עכשיו רק נקודות העיגון המתאימות שאפשר להגביל אליהן. בעבר, בכלי לעריכת פריסות הודגשו כל נקודות העיגון בכל התצוגות, גם אם לא הייתה אפשרות להגביל אותן. בנוסף, שכבת-על כחולה מדגישה עכשיו את היעד של האילוץ. ההדגשה הזו שימושית במיוחד כשמנסים להגביל את הרכיב לרכיב אחר שחופף לו.
יצירת אילוץ לרכיב חופף ב-Android Studio 3.4.
יצירת אילוץ לרכיב חופף ב-Android Studio 3.5.
בנוסף לעדכונים שלמעלה, Android Studio 3.5 כולל גם את השיפורים הבאים בכלי Layout Editor:
- בווידג'ט ההגבלות ובתפריט הנפתח של שולי ברירת המחדל אפשר עכשיו להשתמש במשאבי מאפיינים לשוליים.
- בסרגל הכלים של כלי עריכת הפריסה, עודכנה רשימת המכשירים שקובעים את הגודל של אזור העיצוב. בנוסף, שופרה ההתנהגות של ההצמדה בזמן שינוי הגודל, וידיות שינוי הגודל באזור העיצוב מוצגות עכשיו תמיד. כשמשנים את הגודל, מופיעות שכבות-על חדשות שמציגות גדלים נפוצים של מכשירים.
- לכלי Layout Editor יש ערכת צבעים חדשה שמשפרת את העקביות ומפחיתה את הניגודיות בין רכיבים, טקסט ואילוצים.
- מצב התוכנית כולל עכשיו תמיכה בטקסט בחלק מהרכיבים שבהם הטקסט לא הוצג.
מידע נוסף על השינויים האלה זמין במאמר Android Studio Project Marble: Layout Editor.
כבילת נתונים
בנוסף להוספת תמיכה בעיבוד מצטבר של הערות לקישור נתונים, סביבת הפיתוח המשולבת משפרת את התכונות והביצועים של העורך החכם כשיוצרים ביטויי קישור נתונים ב-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 plugin 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, והוא כבר זמין בגרסת הטרום-השקה העדכנית של Android Studio 3.5. (ראו בעיה מספר 122066788)
IntelliJ IDEA 2018.3.4
סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה עם שיפורים מ-IntelliJ IDEA באמצעות גרסה 2018.3.4.
עדכונים של Android Gradle Plugin 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 שכבר קיימים בסקריפטים של build ב-Gradle בפרויקט.
- אפשר להוסיף משתני build חדשים ברמת הפרויקט או המודול ישירות מקובץ ה-PSD.
הערה: אם קובצי ההגדרות הקיימים שלכם מקצים ערכים באמצעות סקריפטים מורכבים של Groovy, יכול להיות שלא תוכלו לערוך את הערכים האלה באמצעות ה-PSD. בנוסף, אי אפשר לערוך קובצי build שנכתבו ב-Kotlin באמצעות ה-PSD.
מודולים
אפשר להגדיר מאפיינים שחלים על כל הווריאציות של הבנייה במודול קיים, או להוסיף מודולים חדשים לפרויקט בקטע Modules (מודולים). לדוגמה, כאן אפשר להגדיר מאפיינים של defaultConfig או לנהל הגדרות של חתימה.
תלויות
כדי לבדוק ולהציג כל יחס תלות בתרשים יחסי התלות של הפרויקט, כפי ש-Gradle פותר במהלך סנכרון הפרויקט, פועלים לפי השלבים הבאים:
- בחלונית הימנית של ה-PSD, בוחרים באפשרות תלויות.
- בחלונית Modules, בוחרים מודול שרוצים לבדוק את התלויות שנפתרו שלו.
- בצד שמאל של ה-PSD, פותחים את החלונית Resolved Dependencies (תלויות שנפתרו), שמוצגת למטה.

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

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

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

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

- הדמיה של משאבים: אפשר לראות תצוגה מקדימה של רכיבי drawable, צבעים ופריסות כדי למצוא במהירות את המשאבים שאתם צריכים.
- ייבוא בכמות גדולה: אפשר לייבא כמה נכסים מסוג drawable בבת אחת. כדי לעשות את זה, אפשר לגרור אותם לחלון הכלים Resource Manager או להשתמש באשף Import drawables. כדי לגשת לאשף, לוחצים על הלחצן (+) בפינה הימנית העליונה של חלון הכלי, ואז בוחרים באפשרות Import Drawables (ייבוא רכיבים גרפיים) בתפריט הנפתח.
-
המרת קובצי SVG לאובייקטים מסוג
VectorDrawable: אפשר להשתמש באשף Import Drawables כדי להמיר תמונות SVG לאובייקטים מסוגVectorDrawable. - גרירה ושחרור של נכסים: בחלון הכלים Resource Manager, אפשר לגרור ולשחרר נכסים מסוג drawables לתצוגות העיצוב וה-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 plugin 3.3.0 ועכשיו הוא מופעל כברירת מחדל גם בפרויקטים של אפליקציות וגם בפרויקטים של ספריות Android באמצעות plugin 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. מידע נוסף על סוגים נתמכים זמין במאמר העברת נתונים בין יעדים.
שיפורים ב-Layout Editor {:#layout-editor}
החלונית Attributes בכלי לעריכת פריסות עברה אופטימיזציה והיא מוצגת עכשיו בדף אחד עם קטעים שאפשר להרחיב כדי לראות את המאפיינים שניתנים להגדרה. החלונית מאפיינים כוללת גם את העדכונים הבאים:
- בקטע החדש 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 Plugin
מידע על החידושים בפלאגין של Android Gradle זמין בהערות על הגרסה.
כלי הניווט
Navigation Editor מאפשר לכם ליצור במהירות תמונה חזותית של הניווט באפליקציה שלכם ולבנות אותו באמצעות רכיב ארכיטקטורת הניווט.

מידע נוסף זמין במאמר Implement navigation with the Navigation Architecture Component (הטמעת ניווט באמצעות רכיב ארכיטקטורת הניווט) באתר למפתחים.
מחיקת ספריות של 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 יפעל עד פי ארבע יותר מהר.
האשף ליצירת פרויקט חדש
לאשף יצירת פרויקט חדש יש מראה חדש ועדכונים שעוזרים לייעל את יצירת הפרויקטים החדשים ב-Android Studio.

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

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

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

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

מידע נוסף זמין במאמר בנושא בדיקת תנועת הרשת באמצעות Network Profiler.
הורדה אוטומטית של רכיבי SDK
כשפרויקט צריך רכיב SDK מפלטפורמות ה-SDK, NDK או CMake, Gradle מנסה עכשיו להוריד באופן אוטומטי את החבילות הנדרשות, בתנאי שאישרתם בעבר את הסכמי הרישיון הרלוונטיים באמצעות SDK Manager.
מידע נוסף זמין במאמר בנושא הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
תמיכה ב-Clang-Tidy
Android Studio כולל עכשיו תמיכה בניתוח סטטי של קוד באמצעות Clang-Tidy בפרויקטים שכוללים קוד מקורי. כדי להפעיל תמיכה ב-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 plugin מגרסה 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.
- גרסת ברירת המחדל של כלי ה-build היא עכשיו 28.0.3.
- בספריית הניווט, שמות סוגי הארגומנטים השתנו מ-
typeל-argType. - הבאגים הבאים תוקנו:
- כשמשתמשים בספריית Data Binding, שמות משתנים עם קווים תחתונים גורמים לשגיאות קומפילציה.
- CMake גרם לכשל ב-IntelliSense ובתכונות אחרות של CLion.
- הוספת
SliceProviderגרמה לשגיאות קומפילציה בפרויקטים שלא נעשה בהם שימוש בספריותandroidx.*. - חלק מבדיקות היחידה של Kotlin לא הופעלו.
- בעיה באיגוד הנתונים גרמה ל
PsiInvalidElementAccessException. - רכיבי
<merge>גרמו לפעמים לקריסה של כלי הפריסה.
בעיות מוכרות בגרסה 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, והמשתמשים מקבלים הורדות קטנות יותר שעברו אופטימיזציה.
בנוסף, אפשר להוסיף מודולים של תכונות לפרויקט האפליקציה ו לכלול אותם ב-App Bundle. המשתמשים יוכלו להוריד ולהתקין את התכונות של האפליקציה לפי הצורך.
כדי ליצור חבילה, בוחרים באפשרות Build > Build Bundle(s) / APK(s) > Build Bundle(s).
מידע נוסף, כולל הוראות לבנייה ולניתוח של קובץ Android App Bundle, זמין במאמר בנושא Android App Bundle.
נתונים לדוגמה בכלי לעריכת פריסות
בפריסות רבות של Android יש נתונים בזמן ריצה, ולכן קשה לדמיין את המראה והתחושה של פריסה בשלב העיצוב של פיתוח האפליקציה. עכשיו אפשר לראות בקלות תצוגה מקדימה של התצוגה בכלי לעריכת פריסות, עם נתונים לדוגמה. כשמוסיפים תצוגה, מופיע לחצן
מתחת לתצוגה בחלון העיצוב. לחיצה על הלחצן הזה תגדיר את מאפייני התצוגה בזמן העיצוב. אתם יכולים לבחור מתוך מגוון תבניות של נתונים לדוגמה ולציין את מספר הפריטים לדוגמה שיוצגו בתצוגה.
כדי לנסות להשתמש בנתונים לדוגמה, מוסיפים את התג
RecyclerView
לפריסה חדשה, לוחצים על לחצן המאפיינים של זמן העיצוב
מתחת לתצוגה, ובוחרים אפשרות מתוך קרוסלת התבניות של נתונים לדוגמה.
פרוסות
רכיבי Slice מספקים דרך חדשה להטמעת חלקים מהפונקציונליות של האפליקציה בממשקי משתמש אחרים ב-Android. לדוגמה, בעזרת Slices אפשר להציג פונקציונליות ותוכן של אפליקציות בהצעות החיפוש בחיפוש Google.
ב-Android Studio 3.2 יש תבנית מובנית שעוזרת להרחיב את האפליקציה באמצעות ממשקי ה-API החדשים של Slice Provider, וגם בדיקות lint חדשות כדי לוודא שאתם פועלים לפי השיטות המומלצות כשאתם יוצרים את ה-Slices.
כדי להתחיל, לוחצים לחיצה ימנית על תיקיית פרויקט ובוחרים באפשרות New > Other > Slice Provider (חדש > אחר > ספק פלחים).
מידע נוסף, כולל הסבר על בדיקת האינטראקציות עם רכיבי ה-Slice, מופיע במדריך לתחילת השימוש ברכיבי Slice.
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 והיא שימושית לחקירת בעיות ברמת המערכת, כמו תנודות בממשק המשתמש.
במהלך השימוש בהגדרת המעקב הזו, אפשר לסמן חזותית שגרות קוד חשובות בציר הזמן של כלי הפרופיל. כדי לעשות את זה, צריך להוסיף קוד למעקב (instrumentation) לקוד C/C++ באמצעות native tracing API, או לקוד Java באמצעות המחלקה Trace.
בדיקת הפניות ל-JNI בכלי Memory Profiler
אם אתם פורסים את האפליקציה במכשיר עם Android 8.0 (רמת API 26) ואילך, עכשיו אתם יכולים לבדוק את הקצאות הזיכרון של קוד ה-JNI של האפליקציה באמצעות כלי פרופיל הזיכרון.
בזמן שהאפליקציה פועלת, בוחרים חלק מהציר הזמני שרוצים לבדוק ובוחרים באפשרות JNI heap מהתפריט הנפתח שמעל רשימת המחלקות, כמו שמוצג בהמשך. אחר כך תוכלו לבדוק את האובייקטים ב-heap כמו שאתם בדרך כלל עושים, וללחוץ לחיצה כפולה על אובייקטים בכרטיסייה Allocation Call Stack כדי לראות איפה ההפניות ל-JNI מוקצות ומשוחררות בקוד.
ייבוא, ייצוא ובדיקה של קובצי dump של ערימת הזיכרון
מעכשיו אפשר לייבא, לייצא ולבדוק קובצי .hprof תמונות מצב של הזיכרון שנוצרו באמצעות כלי פרופיל הזיכרון.
כדי לייבא את קובץ ה-.hprof, לוחצים על Start new profiler session (התחלת סבב חדש של פרופילר)
בחלונית Sessions (סבבים) של הפרופילר, ואז בוחרים באפשרות Load from file (טעינה מקובץ). אחר כך תוכלו לבדוק את הנתונים שלו בכלי Memory Profiler, כמו בכל תמונת מצב אחרת של הזיכרון.
כדי לשמור נתוני dump של הערימה לבדיקה מאוחרת יותר, משתמשים בלחצן Export Heap Dump (ייצוא dump של הערימה) משמאל לערך Heap Dump (dump של הערימה) בחלונית Sessions (סשנים). בתיבת הדו-שיח Export As שמופיעה, שומרים את הקובץ עם הסיומת .hprof של שם הקובץ.
תיעוד פעילות ה-CPU במהלך הפעלת האפליקציה
עכשיו אפשר לתעד את פעילות המעבד במהלך הפעלת האפליקציה, באופן הבא:
- בתפריט הראשי, בוחרים באפשרות הפעלה > עריכת הגדרות.
- בכרטיסייה Profiling (פרופיל) של הגדרת ההרצה הרצויה, מסמנים את התיבה שליד Start recording a method trace on startup (התחלת הקלטה של מעקב אחר שיטות בהפעלה).
- בוחרים הגדרת הקלטה של מעבד לשימוש מהתפריט הנפתח.
- כדי לפרוס את האפליקציה במכשיר עם Android 8.0 (רמת API 26) ומעלה, בוחרים באפשרות Run > Profile (הפעלה > פרופיל).
ייצוא של נתוני מעקב אחר השימוש במעבד
אחרי שמקליטים את פעילות המעבד באמצעות הכלי CPU Profiler, אפשר לייצא את הנתונים כקובץ .trace כדי לשתף אותם עם אחרים או לבדוק אותם מאוחר יותר.
כדי לייצא את הנתונים של מעקב אחרי פעילות המעבד אחרי שסיימתם להקליט אותם:
- לוחצים לחיצה ימנית על ההקלטה שרוצים לייצא מציר הזמן של השימוש במעבד.
- בתפריט הנפתח, בוחרים באפשרות Export trace (ייצוא נתוני מעקב).
- עוברים למיקום שבו רוצים לשמור את הקובץ ולוחצים על שמירה.
ייבוא ובדיקה של קבצים של פרטי ההעברה של מעבד
עכשיו אפשר לייבא ולבדוק קובצי .trace שנוצרו באמצעות Debug API או CPU Profiler. (בשלב הזה, אי אפשר לייבא הקלטות של System Trace).
כדי לייבא את קובץ המעקב, לוחצים על Start new profiler session (התחלת סשן חדש של פרופילר)
בחלונית Sessions (סשנים) של הפרופילר, ואז בוחרים באפשרות Load from file (טעינה מקובץ). לאחר מכן תוכלו לבדוק את הנתונים שלו בכלי ליצירת פרופיל של המעבד, בדומה לאופן שבו בדרך כלל בודקים נתונים, עם החריגים הבאים:
- הפעילות של המעבד לא מיוצגת בציר הזמן של המעבד.
- ציר הזמן של פעילות השרשור מציין רק איפה נתוני המעקב זמינים לכל שרשור, ולא את המצבים בפועל של השרשור (כמו פעיל, בהמתנה או במצב שינה).
תיעוד פעילות המעבד באמצעות 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 Emulator עם Android 8.0 (API 26) ומעלה.
לוחצים על השורה Energy כדי להגדיל את התצוגה של Energy Profiler. מזיזים את מצביע העכבר מעל אחד מהפסי ציר הזמן כדי לראות פירוט של השימוש באנרגיה לפי משאבי המעבד, הרשת והמיקום (GPS), וגם אירועים רלוונטיים במערכת.
אירועים במערכת שמשפיעים על צריכת האנרגיה מסומנים בציר הזמן של המערכת מתחת לציר הזמן של האנרגיה. כשבוחרים טווח זמן בציר הזמן של אנרגיה, בחלונית האירועים מוצגים פרטים של אירועי מערכת בטווח הזמן שצוין.
כדי לראות את מחסנית הקריאות ופרטים אחרים של אירוע מערכת, כמו נעילת השכמה, בוחרים אותו בחלונית האירועים. כדי לעבור לקוד שאחראי לאירוע מערכת, לוחצים לחיצה כפולה על הרשומה במחסנית הקריאות.
בדיקת 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 (עורך > בדיקות > Android > Lint > יכולת פעולה הדדית > יכולת פעולה הדדית של Kotlin) ובוחרים את הכללים שרוצים להפעיל.
כדי להפעיל את הבדיקות האלה בגרסאות build של שורת הפקודה, מוסיפים את הקוד הבא לקובץ build.gradle:
android {
lintOptions {
check 'Interoperability'
}
}
בדיקות Lint לפרוסות
בדיקות חדשות של Lint ל-Slices עוזרות לוודא שאתם יוצרים Slices בצורה נכונה. לדוגמה, בדיקות lint מזהירות אתכם אם לא הקציתם פעולה ראשית ל-Slice.
יעד חדש של Gradle
אפשר להשתמש במשימת Gradle החדשה lintFix כדי להחיל את כל התיקונים הבטוחים שהוצעו על ידי בדיקת ה-lint ישירות על קוד המקור. דוגמה לבדיקת lint שמציעה תיקון בטוח שאפשר להחיל היא SyntheticAccessor.
עדכוני מטא-נתונים
מטא-נתונים שונים, כמו בדיקת ה-cast של השירות, עודכנו כדי שבדיקות ה-lint יפעלו עם Android 9 (רמת API 28).
אזהרה אם מריצים lint על וריאנט חדש
הכלי Lint מתעד עכשיו את הווריאנט והגרסה שבהם מתועד ערך הבסיס, והכלי Lint מציג אזהרה אם מריצים אותו על וריאנט שונה מזה שבו נוצר ערך הבסיס.
שיפורים בבדיקות ה-lint הקיימות
Android Studio 3.2 כולל הרבה שיפורים בבדיקות lint הקיימות. לדוגמה, בדיקות מחזור המשאבים חלות עכשיו על סוגים נוספים של משאבים, והכלי לזיהוי תרגומים יכול למצוא תרגומים חסרים תוך כדי עבודה, בכלי העריכה.
הגברת החשיפה של מזהי בעיות
מזהי בעיות מוצגים עכשיו ביותר מקומות, כולל בחלון תוצאות הבדיקה. כך קל יותר למצוא את המידע שדרוש כדי להפעיל או להשבית בדיקות ספציפיות באמצעות lintOptions ב-build.gradle.
מידע נוסף זמין במאמר בנושא הגדרת אפשרויות של lint באמצעות Gradle.
כבילת נתונים מגרסה 2
התכונה Data Binding V2 מופעלת עכשיו כברירת מחדל והיא תואמת לגרסה 1. המשמעות היא שאם יש לכם יחסי תלות בספריות שקומפלתם באמצעות גרסה 1, אתם יכולים להשתמש בהם בפרויקטים שמשתמשים בגרסה 2 של Data Binding. עם זאת, חשוב לזכור שבפרויקטים שמשתמשים בגרסה 1 אי אפשר להשתמש בתלות שנערכה באמצעות גרסה 2.
הסרת סוכר תחבירי ב-D8
ב-Android Studio 3.1, שילבנו את שלב ביטול הסוכר בכלי 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 Connection Assistant מספק הוראות מפורטות שיעזרו לכם להגדיר מכשיר ולהשתמש בו דרך ממשק הגישור של Android (ADB).
כדי להפעיל את הכלי, בוחרים באפשרות Tools > Connection Assistant (כלים > כלי עזר לחיבור).
הכלי 'עזרה בחיבור ADB' מספק הוראות, אמצעי בקרה בהקשר ורשימה של מכשירים מחוברים בסדרה של דפים בחלונית Assistant.
שיפורים באמולטור
עכשיו אפשר לשמור ולטעון תמונות מצב של AVD (מכשיר וירטואלי של Android) בכל שלב ב-Android Emulator, וכך לחזור במהירות ובקלות למצב מוכר של מכשיר מדומה לצורך בדיקה. כשעורכים מכשיר וירטואלי באמצעות AVD Manager, אפשר לציין איזו תמונת מצב של המכשיר הווירטואלי תיטען כשהמכשיר הווירטואלי יופעל.
אמצעי הבקרה לשמירה, לטעינה ולניהול של תמונות מצב של 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 קורס במהלך מעברים בין פרגמנטים כשמשתמשים בכלי פרופילים.
- ניפוי הבאגים קרס כשניסיתי לנפות באגים בפריסה עם תיבת טקסט.
- D8 לא הצליח לקרוא קובצי ZIP מסוימים עם תווים מיוחדים.
3.1.3 (יוני 2018)
העדכון הזה ל-Android Studio 3.1 כולל תיקונים לבאגים הבאים:
- דליפות זיכרון גרמו ל-Android Studio לפעול באיטיות ולא להגיב אחרי שהשתמשתם בכלי לעריכת פריסות. העדכון הזה כולל תיקונים לרוב הבעיות האלה. אנחנו מתכוונים לפרסם בקרוב עדכון נוסף כדי לטפל בדליפות זיכרון נוספות.
- חלק מהאפליקציות שנבנו באמצעות 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, המשימה Gradle-aware Make מוסרת מהאזור Before launch בRun/Debug Configurations. התוצאה הייתה שהפרויקטים לא נוצרו כשלוחצים על הלחצן Run או Debug, מה שגרם לכשלים כמו פריסה של קובצי APK שגויים וקריסות כשמשתמשים ב-Instant Run.
כדי לפתור את הבעיה הזו, ב-Android Studio 3.1.1 נוסף task של Gradle-aware Make להגדרת ההרצה של פרויקטים שחסר בהם הרשומה הזו. השינוי הזה מתרחש אחרי הסנכרון הראשון של 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 (ישויות), עמודות, פרמטרים של שאילתות, כינויים, צירופים, שאילתות משנה וסעיפי WITH. - ההדגשה של תחביר SQL פועלת עכשיו.
- אפשר ללחוץ לחיצה ימנית על שם של טבלה ב-SQL ולשנות את השם שלה. הפעולה הזו גם כותבת מחדש את קוד Java או Kotlin התואם (כולל, למשל, סוג ההחזרה של השאילתה). שינוי השם פועל גם בכיוון ההפוך, כך ששינוי שם של מחלקה או שדה ב-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 חדש.
Incremental desugaring
בפרויקטים שמשתמשים בתכונות של שפת Java 8, מופעלת כברירת מחדל הסרת סוכר מצטברת, שיכולה לשפר את זמני הבנייה.
התהליך הזה ממיר סוכר תחבירי לפורמט שהקומפיילר יכול לעבד בצורה יעילה יותר.
כדי להשבית את ההסרה ההדרגתית של תחביר סוכר, צריך לציין את ההגדרה הבאה בקובץ gradle.properties של הפרויקט:
android.enableIncrementalDesugaring=false
חלון פלט פשוט
מסוף Gradle הוחלף בחלון 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 ואתם צריכים לנפות באגים בקוד מקומי, אתם צריכים להשתמש ב-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
CPU Profiler כולל עכשיו הגדרת ברירת מחדל להקלטת עקבות מדגמיים של השרשורים המקומיים של האפליקציה. כדי להשתמש בהגדרה הזו, צריך לפרוס את האפליקציה למכשיר עם Android 8.0 (API ברמה 26) ומעלה, ואז לבחור באפשרות Sampled (Native) (דגימה (מקומי)) בתפריט הנפתח של הגדרות ההקלטה בכלי CPU Profiler. אחרי זה, מקליטים ומנתחים את הנתונים כרגיל.
אתם יכולים לשנות את הגדרות ברירת המחדל, כמו מרווח הדגימה, על ידי יצירת הגדרות הקלטה.
כדי לחזור למעקב אחרי השרשורים של Java, בוחרים באחת מההגדרות הבאות: Sampled (Java) או Instrumented (Java).
סינון של עקבות מעבד (CPU), תוצאות של הקצאת זיכרון ו-heap dumps
התכונה CPU Profiler ו-Memory Profiler כוללות תכונת חיפוש שמאפשרת לסנן תוצאות מהקלטה של מעקב אחר שיטה, הקצאות זיכרון או ערימת זיכרון.
כדי לחפש, לוחצים על סינון
בפינה השמאלית העליונה של החלונית, מקלידים את השאילתה ומקישים על Enter.
טיפ: אפשר גם לפתוח את שדה החיפוש על ידי הקשה על Control + F (או על Command + F ב-Mac).
בכרטיסייה תרשים להבה של הכלי CPU Profiler, מחסניות קריאות שכוללות שיטות שקשורות לשאילתת החיפוש מודגשות ומועברות לצד ימין של התרשים.
מידע נוסף על סינון לפי שיטה, מחלקה או שם חבילה זמין במאמר בנושא תיעוד ובדיקה של עקבות שיטות.
הכרטיסייה Request (בקשה) בכלי Network Profiler
הכלי Network Profiler כולל עכשיו כרטיסייה בשם Request שמספקת פרטים על בקשות רשת במהלך ציר הזמן שנבחר. בגרסאות קודמות, הכלי Network Profiler סיפק רק מידע על תגובות של הרשת.
תצוגת השרשור בכלי לניתוח הרשת
אחרי שבוחרים חלק מציר הזמן בכלי ליצירת פרופיל של רשת, אפשר לבחור באחת מהכרטיסיות הבאות כדי לראות פרטים נוספים על פעילות הרשת במהלך פרק הזמן הזה:
- Connection View: מספק את אותו מידע כמו בגרסאות קודמות של Android Studio – מוצגת רשימה של קבצים שנשלחו או התקבלו במהלך החלק שנבחר בציר הזמן בכל ה-thread של המעבד של האפליקציה. לכל בקשה אפשר לבדוק את הגודל, הסוג, הסטטוס ומשך השידור.
- תצוגת שרשור: מציגה את פעילות הרשת של כל אחד משרשורי ה-CPU של האפליקציה. בתצוגה הזו אפשר לבדוק אילו מהשרשורים באפליקציה אחראים לכל בקשת רשת.
כלי לבדיקת פריסות
נוספו תכונות חדשות לכלי לבדיקת פריסה, כולל פונקציונליות שסופקה בעבר על ידי הכלים Hierarchy Viewer ו-Pixel Perfect שהוצאו משימוש:
- לחצני שינוי מרחק התצוגה ומקשי קיצור לניווט ולבדיקת פריסות
- שכבת-על של רשת ההפניה
- אפשרות לטעון תמונת הפניה ולהשתמש בה כשכבת-על (שימושי להשוואה בין הפריסה שלכם לבין מוקאפ של ממשק משתמש)
- הצגת תצוגה מקדימה של עץ משנה כדי לבודד תצוגה בפריסה מורכבת
כלי לעריכת פריסות
בוצעו הרבה שיפורים בלוח בעורך הפריסות:
- ארגון מחדש של קטגוריות לתצוגות ולפריסות.
- קטגוריה חדשה בשם Common לתצוגות ולפריסות, שאפשר להוסיף לה פקודה מסוג Favorite.
- שיפורים בחיפוש התצוגות והפריסות.
- פקודות חדשות לפתיחת תיעוד של תצוגה ספציפית או רכיב פריסה ספציפי.
אפשר להשתמש בפקודה החדשה Convert view בComponent tree או בעורך העיצוב כדי להמיר תצוגה או פריסה לסוג אחר של תצוגה או פריסה.
עכשיו אפשר ליצור בקלות אילוצים לפריטים שקרובים לתצוגה שנבחרה באמצעות הלחצנים החדשים ליצירת חיבור
בחלון בודק התצוגה בחלק העליון של החלון מאפיינים.
הרצה והרצה מיידית
ההתנהגות של האפשרות שימוש באותה בחירה בהשקות עתידיות בתיבת הדו-שיח בחירת יעד פריסה עכשיו עקבית יותר. אם האפשרות שימוש באותה בחירה מופעלת, תיבת הדו-שיח בחירת יעד הפריסה תיפתח רק בפעם הראשונה שמשתמשים בפקודה הפעלה עד שהמכשיר שנבחר לא מחובר יותר.
כשמטרגטים מכשיר עם Android 8.0 (רמת API 26) ואילך, אפשר להשתמש ב-Instant Run כדי לפרוס שינויים במשאבים בלי להפעיל מחדש את האפליקציה. הסיבה לכך היא שהמשאבים כלולים בקובץ APK מפוצל.
מכשיר הדמיה
לפרטים על מה חדש ומה השתנה באמולטור מאז Android Studio 3.0, אפשר לעיין בנתוני הגרסה של Android Emulator מגרסה 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 ל-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 כדי לקמפל קוד מקומי שרוצים לארוז ב-APK. מידע נוסף זמין במאמר בנושא העברה מ-ndkcompile.
מידע נוסף על השינויים זמין בהערות על הגרסה של Android Plugin for 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 עוזר לכם לזהות דליפות זיכרון ושימוש מוגזם בזיכרון שעלולים לגרום לגמגום, לקפיאות ואפילו לקריסות של האפליקציה. בכרטיסייה מוצג גרף בזמן אמת של השימוש בזיכרון באפליקציה, והיא מאפשרת לכם לצלם תמונת מצב של ה-heap, להפעיל איסוף של נתונים מיותרים ולעקוב אחרי הקצאות זיכרון.
מידע נוסף זמין במדריך ל-Memory Profiler.
Network Profiler
הכלי Network Profiler מאפשר לכם לעקוב אחרי הפעילות ברשת של האפליקציה, לבדוק את מטען הנתונים של כל אחת מהבקשות ברשת ולקשר חזרה לקוד שיצר את הבקשה ברשת.
מידע נוסף זמין במדריך Network Profiler.
ניפוי באגים ופרופילים של קובצי APK
עכשיו אפשר ב-Android Studio ליצור פרופיל ולנפות באגים בכל קובץ APK בלי לבצע build מפרויקט Android Studio – כל עוד קובץ ה-APK נוצר עם אפשרות לניפוי באגים ויש לכם גישה לסמלי ניפוי הבאגים ולקובצי המקור.
כדי להתחיל, לוחצים על Profile or debug APK (יצירת פרופיל או ניפוי באגים ב-APK) במסך הפתיחה של Android Studio. לחלופין, אם כבר פתוח פרויקט, לוחצים על קובץ > פרופיל או ניפוי באגים ב-APK בסרגל התפריטים. יוצגו קובצי ה-APK שחולצו, אבל הקוד לא יעבור דה-קומפילציה. לכן, כדי להוסיף נקודות עצירה ולצפות בנתוני מעקב אחר ביצוע (stack trace) בצורה תקינה, צריך לצרף קבצי מקור של Java וסמלי נייטיב של ניפוי באגים.
מידע נוסף זמין במאמר בנושא פרופיל וניפוי באגים של קובצי APK מוכנים מראש.
סייר קבצים במכשיר
סייר הקבצים החדש במכשיר מאפשר לכם לבדוק את מערכת הקבצים של המכשיר המחובר ולהעביר קבצים בין המכשיר למחשב. הכלי הזה מחליף את הכלי של מערכת הקבצים שזמין ב-DDMS.
כדי לפתוח, לוחצים על תצוגה > חלונות כלים > סייר קבצים במכשיר.
מידע נוסף זמין במאמר בנושא מדריך ל-Device File Explorer.
תמיכה באפליקציות ללא התקנה
נוסף תמיכה חדשה באפליקציות ללא התקנה ל-Android, שמאפשרת ליצור אפליקציות ללא התקנה בפרויקט באמצעות שני סוגים חדשים של מודולים: מודולים של אפליקציות ללא התקנה ומודולים של תכונות (כדי להשתמש בהם צריך להתקין את Instant Apps Development SDK).
Android Studio כולל גם פעולת רפקטורינג חדשה של מודולריזציה שתעזור לכם להוסיף תמיכה באפליקציות מיידיות בפרויקט קיים. לדוגמה, אם רוצים לשנות את מבנה הפרויקט כדי להעביר חלק מהמחלקות למודול של תכונה באפליקציה מיידית, בוחרים את המחלקות בחלון Project (פרויקט) ולוחצים על Refactor > Modularize (שינוי מבנה > הפיכה למודולרי). בתיבת הדו-שיח שמופיעה, בוחרים את המודול שאליו רוצים להעביר את הכיתות ולוחצים על אישור.
כשמוכנים לבדוק את האפליקציה המיידית, אפשר ליצור ולהפעיל את מודול האפליקציה המיידית במכשיר מחובר. כדי לעשות זאת, מציינים את כתובת ה-URL של האפליקציה המיידית באפשרויות ההפעלה של הגדרות ההרצה: בוחרים באפשרות Run > Edit Configurations (הפעלה > עריכת הגדרות), בוחרים את מודול האפליקציה המיידית ומגדירים את כתובת ה-URL בקטע Launch Options (אפשרויות הפעלה).
מידע נוסף זמין במאמר בנושא אפליקציות ללא התקנה ל-Android.
מודולים של Android Things
תבניות חדשות של Android Things באשפי הפרויקט החדש והמודול החדש, שיעזרו לכם להתחיל לפתח למכשירי 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, לוחצים על בדיקת שגיאות כדי לוודא שהאובייקטים שניתן להוסיף לאינדקס באפליקציה נוספו לאינדקס התוכן האישי.
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 לבדיקה לא עוברת את ההגדרה של מסנן הכוונות, מוצגת שגיאת lint. שגיאה כזו עדיין מאפשרת ליצור גרסאות לניפוי באגים, אבל היא תשבש את גרסאות ההפצה.
כלי לעריכת פריסות
כלי פריסת הדפים עודכן עם מספר שיפורים, כולל:
- פריסה וסמלים חדשים בסרגל הכלים.
- הפריסה עודכנה בעץ הרכיבים.
- שיפורים בהוספת תצוגות באמצעות גרירה ושחרור.
- לוח שגיאות חדש מתחת לכלי העריכה, שבו מוצגות כל הבעיות עם הצעות לתיקון (אם יש).
- ביצענו שיפורים שונים בממשק המשתמש של
ConstraintLayout, כולל:- תמיכה חדשה ביצירת מחסומים.
- תמיכה חדשה ביצירת קבוצות: בסרגל הכלים, בוחרים באפשרות הנחיות > הוספת קבוצה (נדרשת גרסה ConstraintLayout 1.1.0 beta 2 או גרסה מתקדמת יותר)
- ממשק משתמש חדש ליצירת שרשורים: בוחרים כמה תצוגות, לוחצים לחיצה ימנית ובוחרים באפשרות שרשור.
כלי לבדיקת פריסות
כלי הבדיקה של פריסות כולל שיפורים שמקלים על איתור באגים בפריסות של האפליקציה, כולל קיבוץ מאפיינים לקטגוריות משותפות ופונקציונליות חיפוש חדשה בחלוניות 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 משפיע ישירות על זמן הבנייה של האפליקציה, על גודל הקובץ ועל ביצועי זמן הריצה..dex בנוסף, כשמשווים את מהדר D8 החדש למהדר DX הנוכחי, מהדר D8 מבצע הידור מהר יותר ומפיק קובצי .dex קטנים יותר, וביצועי זמן הריצה של האפליקציה זהים או טובים יותר.
כדי לנסות את התכונה, מגדירים את הערכים הבאים בקובץ gradle.properties של הפרויקט:
android.enableD8=true
מידע נוסף זמין בפוסט בבלוג בנושא מהדר D8.
מאגר Maven של Google
מעכשיו, Android Studio משתמש כברירת מחדל במאגר Maven של Google, במקום להסתמך על Android SDK Manager כדי לקבל עדכונים לספריית התמיכה של Android, ל-Google Play Services, ל-Firebase ולתלויות אחרות. כך קל יותר לעדכן את הספריות, במיוחד כשמשתמשים במערכת שילוב רציף (CI).
כל הפרויקטים החדשים כוללים עכשיו את מאגר Google Maven כברירת מחדל. כדי לעדכן את הפרויקט הקיים, מוסיפים את 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 Emulator.
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 Emulator 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>
חדש
- כלי חדש לעריכת פריסות עם כלים שנוצרו במיוחד לתמיכה ב-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)
- שינויים בפריטים שניתנים לציור לא משתקפים עד שמבצעים בנייה מחדש מלאה ב-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)
הערה: אם אתם מפתחים לגרסת הטרום-השקה של Android N, אתם צריכים להשתמש בגרסת הטרום-השקה של Android Studio 2.1. Android Studio 2.0 לא תומך בכל התכונות הנדרשות כדי לטרגט את גרסת N Preview.
הפעלה מיידית:
- מעכשיו, Android Studio פורס גרסאות build נקיות מהר יותר מאי פעם. בנוסף, דחיפה של שינויים מצטברים בקוד לאמולטור או למכשיר פיזי מתבצעת עכשיו כמעט באופן מיידי. לבדוק את העדכונים בלי לפרוס מחדש גרסת באגים חדשה, או במקרים רבים, בלי להפעיל מחדש את האפליקציה.
- התכונה 'הפעלה מיידית' תומכת בדחיפת השינויים הבאים לאפליקציה שפועלת:
- שינויים בהטמעה של שיטת מופע קיימת או שיטה סטטית
- שינויים במשאב קיים של אפליקציה
- שינויים בקוד המבני, כמו חתימת שיטה או שדה סטטי (נדרש מכשיר יעד עם API ברמה 21 ומעלה).
- מידע נוסף על הפעלה מיידית
הערה: התכונה 'הפעלה מיידית' נתמכת רק כשפורסים את גרסת ה-debug של ה-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/. הדגל הזה מעודד אחסון של קוד מקורי בתיקייה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בודקות עכשיו גם מערכים של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 תומך עכשיו בהשלמת קוד עבור ביטויי data binding.
גרסה 1.5.1 של Android Studio (דצמבר 2015)
תיקונים ושיפורים:
- תוקנה בעיה שגרמה לכשל בעיבוד בעורך הפריסה. בעיה: 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. הוא יכול גם ליצור קוד שיעזור לכם לשלב את App Indexing API בפעילות בקובץ Java. תכונת בדיקת קישורי עומק עוזרת לכם לוודא שקישור עומק מסוים יכול להפעיל אפליקציה. בכרטיסייה General (כללי) בתיבת הדו-שיח Run/Debug Configurations (הגדרות הפעלה/ניפוי באגים), אתם יכולים לציין אפשרויות להפעלת קישור עומק. אפשר גם לבדוק קריאות ל-App Indexing 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, לדווח אם אין מסנן כוונות למחלקה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, וגם בספריית התמיכה
appcompatלצורך תאימות לאחור.
גרסה 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) ב-Windows.
- אשף הפרויקטים עודכן כך שישתמש בשם הפרויקט שהוזן.
- נוספה תמיכה שמאפשרת לאחסן את Android SDK בספרייה לקריאה בלבד.
- הפלאגין של Android ל-Gradle עודכן לגרסה 1.3.0.
- תוקנו בעיות בהפעלת סשן ניפוי באגים ממעטפת Unix של Android Debug Bridge (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 Manager העצמאי דרך שורת הפקודה, אבל מומלץ להשתמש בו רק להתקנות של 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 שגרמו לכך שה-build לא הושלם.
גרסה 1.2.1 של Android Studio (מאי 2015)
תיקונים ושיפורים:
- תוקנו בעיות קלות בביצועים ובתכונות.
גרסה 1.2.0 של Android Studio (אפריל 2015)
תיקונים ושיפורים:
- עדכנו את חלון זמן הריצה של Android כדי לכלול את הכלי Memory Monitor, והוספנו כרטיסייה למעקב אחרי ביצועי המעבד (CPU).
- הוספנו כרטיסייה בשם Captures בשוליים הימניים כדי להציג את קובצי הנתונים של הביצועים שקשורים לזיכרון ולמעבד, כמו מעקב אחר שיטת המעבד ותמונות מצב של ערימת הזיכרון (heap snapshot).
- תמיכה מורחבת בהערות עם הערות נוספות של מטא-נתונים ומאפיין מוסק המציין אם ערך יכול להיות ריק (nullability).
- שיפרנו את כלי עריכת התרגומים עם תמיכה נוספת ב-Best Current Practice (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)
תיקונים ושיפורים שונים:
- תוקנה בעיה בנעילת קובץ device.xml וב-AVD Manager.
- תוקן יומן האמולטור במערכות 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/, אלא מצביעות חזרה על מיקומי המקור האמיתיים.
- בנייה מקבילה. עכשיו אפשר להשתמש ב-Gradle כדי לבצע בנייה מקבילה. חשוב לדעת שקומפילציות מקבילות נמצאות בשלב 'הדגרה' (ראו מסמכי התיעוד של Gradle). תכונה זו מושבתת כברירת מחדל. כדי להפעיל את האפשרות הזו, עוברים אל העדפות > קומפיילר ומסמנים את התיבה Compile independent modules in parallel (קומפילציה של מודולים עצמאיים במקביל).
- המשכנו לעבוד על מאגר המשאבים החדש שמשמש לעיבוד פריסות, לקיפול משאבים בעורך ועוד:
- תמיכה בסיסית בתלויות של הפרויקט בספריית .aar (למשל, שימוש בספרייה ללא עותק מקומי של המקורות). עדיין לא פועל לאימות XML של משאבים ולניווט בכלי עריכה של מקורות.
- זיהוי מעגליות בהפניות למשאבים.
- האפשרות 'תיעוד מהיר' (F1), שמאפשרת לראות את כל התרגומים של המחרוזת מתחת לסימן ^, תציג עכשיו גם את כל שכבות-העל של המשאבים מכל הטעמים וסוגי הבנייה השונים של Gradle, וגם מספריות. הם מופיעים בסדר הפוך של שכבות-על של משאבים, עם קו חוצה על הגרסאות של המחרוזת שמוסתרות.
- בוצעו תיקונים לטיפול בעדכון המשאבים הממוזגים כשמערך התלויות של המודול משתנה.
- תיקונים של עיבוד XML כדי לטפל בצורה נכונה בהצהרות של ישויות תווים ובתווים מיוחדים ב-XML וב-Unicode.
- הוספנו תמיכה בשמירת צילומי מסך בחלונות של תצוגה מקדימה של פריסה ועורך פריסות.
- תיקוני באגים בתבניות.
- תיקוני באגים ב-Lint.
- ביצענו תיקונים שונים בדוחות קריסה. תודה, ונשמח לקבל עוד דיווחים על קריסות!
גרסה 0.1.x של Android Studio (מאי 2013)
- תיקנו באגים שונים, כולל באג נפוץ בהתקנה ב-Windows.
גרסאות ישנות יותר של Android Gradle Plugin
3.6.0 (פברואר 2020)
כדי להשתמש בגרסה הזו של הפלאגין ל-Android, צריך:
-
Gradle 5.6.4. מידע נוסף זמין בקטע בנושא עדכון Gradle.
-
SDK Build Tools 28.0.3 ואילך.
העדכון הקטן הזה תומך בתאימות להגדרות ברירת מחדל ולתכונות חדשות של חשיפת חבילות ב-Android 11.
פרטים נוספים זמינים בהערות הגרסה 4.0.1.
תכונות חדשות
הגרסה הזו של Android Gradle plugin כוללת את התכונות החדשות הבאות.
הצגת הקישור
הצגת הכריכה מספקת בטיחות בזמן ההידור כשמפנים לתצוגות בקוד. עכשיו אפשר להחליף את 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 יוצר רכיב לכל ארטיפקט של וריאנט בנייה במודול האפליקציה או הספרייה, שאפשר להשתמש בו כדי להתאים אישית פרסום במאגר Maven.
מידע נוסף זמין בדף בנושא שימוש בתוסף Maven Publish.
כלי ברירת מחדל חדש ליצירת חבילות התקנה
כשיוצרים את גרסת הניפוי באגים של האפליקציה, הפלאגין משתמש בכלי אריזה חדש בשם zipflinger כדי ליצור את קובץ ה-APK. הכלי החדש הזה אמור לשפר את מהירות הבנייה. אם כלי האריזה החדש לא פועל כמו שציפיתם, אתם יכולים לדווח על באג. אפשר לחזור לשימוש בכלי הישן לאריזה על ידי הוספת השורות הבאות לקובץ gradle.properties:
android.useNewApkCreator=false
שיוך של בנייה מקורית
עכשיו אפשר לקבוע את משך הזמן שנדרש ל-Clang כדי לבנות ולקשר כל קובץ C/C++ בפרויקט. Gradle יכול להפיק מעקב ב-Chrome שכולל חותמות זמן לאירועי הקומפיילר האלה, כדי שתוכלו להבין טוב יותר כמה זמן נדרש לבניית הפרויקט. כדי ליצור את קובץ השיוך הזה של הגרסה:
-
מוסיפים את הדגל
-Pandroid.enableProfileJson=trueכשמריצים Gradle build. לדוגמה: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 Store בדרך כלל טובה יותר כשכוללים ספריות מקוריות לא דחוסות ב-APK או ב-Android App Bundle.
אם רוצים שפלאגין Android Gradle יארוז במקום זאת ספריות מקוריות דחוסות, צריך לכלול את השורה הבאה במניפסט של האפליקציה:
<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 של ספרייה ליחסי תלות אחרים בפרויקט נקבעות לפי ההגדרה שמשמשת לכלול את הספרייה כיחס תלות. לדוגמה, אם 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 כבר לא כולל את המשאב הזה כשמבצעים קומפילציה של הפרויקט. השינוי הזה בהתנהגות אמור להוביל לפחות חריגות בזמן הריצה ולשיפור במהירות ה-build.Resource Not Found
D8 מכבד עכשיו את מדיניות השמירה של CLASS לגבי הערות
כשמבצעים קומפילציה של האפליקציה, קומפיילר D8 מתחשב עכשיו במקרים שבהם הערות חלות על מדיניות שימור של CLASS וההערות האלה כבר לא זמינות בזמן הריצה. ההתנהגות הזו קיימת גם כשמגדירים את ה-SDK לטירגוט של האפליקציה לרמת API 23, שבעבר אפשרה גישה להערות האלה במהלך זמן הריצה כשמבצעים קומפילציה של האפליקציה באמצעות גרסאות ישנות יותר של פלאגין Android Gradle ו-D8.
שינויים אחרים בהתנהגות
-
הפונקציה
aaptOptions.noCompressכבר לא רגישה לאותיות רישיות בכל הפלטפורמות (גם ל-APK וגם לחבילות), והיא מתייחסת לנתיבים שבהם נעשה שימוש באותיות רישיות. -
קישור הנתונים מתבצע עכשיו באופן מצטבר כברירת מחדל. מידע נוסף זמין בבעיה מספר 110061530.
-
כל בדיקות היחידה, כולל בדיקות היחידה של Roboelectric, ניתנות עכשיו לשמירה במטמון באופן מלא. מידע נוסף זמין בבעיה מספר 115873047.
תיקוני באגים
הגרסה הזו של Android Gradle Plugin כוללת את תיקוני הבאגים הבאים:
- עכשיו יש תמיכה בבדיקות יחידה של 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 Plugin 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 וכולל תיקוני באגים שונים ושיפורי ביצועים. כדי לראות רשימה של תיקוני באגים חשובים, אפשר לקרוא את הפוסט שקשור לכך ב בלוג של עדכוני גרסה.
עיבוד מצטבר של אנוטציות
מעבד ההערות 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 ואילך, גודל ה-heap של דמון 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 plugin. כדי לוודא שתוכלו להמשיך ליצור אפליקציה ללא התקנה בגרסאות עתידיות של הפלאגין, צריך להעביר את האפליקציה ללא התקנה לשימוש בפלאגין של תכונה דינמית. הפלאגין הזה מאפשר גם לפרסם את האפליקציה ללא התקנה ואת האפליקציה המותקנת מתוך קובץ Android App Bundle יחיד. -
הפעלת R8 כברירת מחדל: R8 משלב את הפעולות desugaring, shrinking, obfuscating, optimizing ו-dexing בשלב אחד – וכתוצאה מכך הביצועים של הבנייה משתפרים באופן משמעותי. הכלי R8 הוצג ב-Android Gradle plugin 3.3.0 ועכשיו הוא מופעל כברירת מחדל גם באפליקציות וגם בפרויקטים של ספריות Android באמצעות plugin 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 כדי לכווץ את הקוד של האפליקציה עבור סוג הבנייה הזה, גם אם משביתים את R8 בקובץ gradle.properties של הפרויקט.
-
הוצאה משימוש של
ndkCompile: אם מנסים להשתמש ב-ndkBuildכדי לקמפל את הספריות המקוריות, מוצגת שגיאת בנייה. במקום זאת, צריך להשתמש ב-CMake או ב-ndk-build כדי להוסיף קוד C ו-C++ לפרויקט.
בעיות מוכרות
-
בשלב הזה, לא נאכף שימוש נכון בשמות חבילות ייחודיים, אבל בגרסאות מאוחרות יותר של הפלאגין תהיה הקפדה רבה יותר על כך. בגרסה 3.4.0 של פלאגין Gradle ל-Android, אפשר להוסיף את השורה הבאה לקובץ
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 בקובץ
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 וכולל תיקוני באגים שונים ושיפורי ביצועים.
תכונות חדשות
-
שיפור הסנכרון של נתיב המחלקה: כשמבצעים המרה של יחסי תלות בנתיבי המחלקה של זמן הריצה וזמן ההידור, הפלאגין Android Gradle מנסה לתקן קונפליקטים מסוימים בגרסאות של יחסי תלות שמופיעים בכמה נתיבי מחלקה.
לדוגמה, אם נתיב המחלקה של זמן הריצה כולל את ספרייה A בגרסה 2.0, ונתיב המחלקה של הקומפילציה כולל את ספרייה A בגרסה 1.0, הפלאגין מעדכן אוטומטית את התלות בנתיב המחלקה של הקומפילציה לספרייה A בגרסה 2.0 כדי למנוע שגיאות.
עם זאת, אם נתיב המחלקה של זמן הריצה כולל את ספרייה א' בגרסה 1.0, והקומפילציה כוללת את ספרייה א' בגרסה 2.0, הפלאגין לא יבצע שדרוג לאחור של התלות בנתיב המחלקה של הקומפילציה לספרייה א' בגרסה 1.0, ותוצג שגיאה. מידע נוסף זמין במאמר בנושא פתרון קונפליקטים בין נתיבי מחלקות.
-
שיפור ההידור המצטבר של Java כשמשתמשים במעבדי הערות: העדכון הזה מקצר את זמן הבנייה על ידי שיפור התמיכה בהידור מצטבר של Java כשמשתמשים במעבדי הערות.
הערה: התכונה הזו תואמת ל-Gradle מגרסה 4.10.1 ואילך, למעט Gradle 5.1 בגלל בעיה ב-Gradle מספר 8194.
-
בפרויקטים שמשתמשים ב-Kapt (רוב הפרויקטים שמבוססים על Kotlin בלבד ופרויקטים היברידיים של Kotlin-Java): קומפילציה מצטברת של Java מופעלת, גם כשמשתמשים ב-data binding או בתוסף retro-lambda. העיבוד של ההערות על ידי משימת Kapt עדיין לא מצטבר.
-
לפרויקטים שלא משתמשים ב-Kapt (פרויקטים ב-Java בלבד): אם כל מעבדי ההערות שבהם אתם משתמשים תומכים בעיבוד הערות מצטבר, קומפילציית Java מצטברת מופעלת כברירת מחדל. כדי לעקוב אחרי ההטמעה של מעבד ההערות המצטבר, אפשר לעיין בבעיה מספר 5277 ב-Gradle.
עם זאת, אם אחד או יותר ממעבדי ההערות לא תומכים בבנייה מצטברת, קומפילציית Java מצטברת לא מופעלת. במקום זאת, אפשר לכלול את הדגל הבא בקובץ
gradle.properties:android.enableSeparateAnnotationProcessing=trueכשכוללים את הדגל הזה, הפלאגין Android Gradle מפעיל את מעבדי האנוטציות במשימה נפרדת ומאפשר למשימת הקומפילציה של 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 Plugin מגרסה 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 plugin 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: קובץ ה-App Bundle הוא פורמט חדש להעלאה שכולל את כל הקוד והמשאבים של האפליקציה, ומאפשר לדחות את יצירת ה-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
שינויים בהתנהגות
-
ההגדרה 'הסרת סוכר' באמצעות 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, אוכף עכשיו את השימוש רק באותיות, בספרות ובקווים תחתונים כשמציינים שם של מודול. לדוגמה, אם שם מודול התכונות כולל מקפים, תוצג שגיאת בנייה. ההתנהגות הזו זהה לזו של התוסף dynamic 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, שימו לב שהיא מתבצעת עכשיו בהידור מול ספריות שכלולות בכלי ה-Build של 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") ... } }
-
ב-build cache של התוסף ל-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 plugin 2.2.0 + Gradle 2.14.1 | Android plugin 2.3.0 + Gradle 3.3 | Android plugin 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 על ידי הרצת./gradlew --stopמשורת הפקודה.
תכונות חדשות
- ניהול תלויות עם התחשבות בווריאציות. כשמפתחים וריאציה מסוימת של מודול, התוסף מתאים עכשיו באופן אוטומטי וריאציות של תלות במודול של ספרייה מקומית לווריאציה של המודול שמפתחים.
- כולל פלאגין חדש של מודול תכונות לתמיכה באפליקציות ללא התקנה ל-Android וב-Android Instant Apps SDK (שאפשר להוריד באמצעות SDK Manager). כדי לקבל מידע נוסף על יצירת מודולים של תכונות באמצעות הפלאגין החדש, אפשר לקרוא את המאמר מבנה של אפליקציה מיידית עם כמה תכונות.
- תמיכה מובנית בשימוש בתכונות שפה מסוימות של Java 8 ובספריות של Java 8. הכלי Jack הוצא משימוש ואין יותר צורך בו. כדי להשתמש בתמיכה המשופרת ב-Java 8 שמוטמעת בשרשרת הכלים שמוגדרת כברירת מחדל, צריך להשבית את Jack. מידע נוסף זמין במאמר בנושא שימוש בתכונות של שפת Java 8.
-
נוספה תמיכה בהרצת בדיקות באמצעות Android Test Orchestrator, שמאפשרת להריץ כל אחת מהבדיקות של האפליקציה בתוך קריאה משלה ל-Instrumentation. מכיוון שכל בדיקה מופעלת במופע Instrumentation משלה, כל מצב משותף בין הבדיקות לא מצטבר במעבד או בזיכרון של המכשיר. בנוסף, גם אם בדיקה אחת קורסת, היא משביתה רק את המופע שלה של Instrumentation, כך שהבדיקות האחרות עדיין פועלות.
- נוסף
testOptions.executionכדי לקבוע אם להשתמש בתיאום בדיקות במכשיר. אם רוצים להשתמש ב-Android Test Orchestrator, צריך לציין אתANDROID_TEST_ORCHESTRATOR, כמו שמוצג בהמשך. כברירת מחדל, המאפיין הזה מוגדר כ-HOST, מה שמשבית את התיאום במכשיר וזו השיטה הרגילה להרצת בדיקות.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- נוסף
-
הגדרת תלות חדשה
androidTestUtilמאפשרת לכם להתקין עוד APK של כלי עזר לבדיקה לפני שמריצים את בדיקות המכשור, כמו Android Test Orchestrator:Groovy
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 ומעלה.
-
עכשיו אפשר לשנות את ספריית הפלט של פרויקט חיצוני לבנייה מקומית, כמו שמוצג בהמשך:
Groovy
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:Groovy
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 מסוימים, והגרסה שלכם תפסיק לפעול אם אתם משתמשים בהם. לדוגמה, אי אפשר יותר להשתמש ב-Variants API כדי לגשת לאובייקטים מסוג
outputFile()או להשתמש ב-processManifest.manifestOutputFile()כדי לקבל את קובץ המניפסט לכל וריאציה. מידע נוסף זמין במאמר בנושא שינויים ב-API. - אין יותר צורך לציין גרסה לכלי הבנייה (לכן, עכשיו אפשר להסיר את המאפיין
android.buildToolsVersion). כברירת מחדל, הפלאגין משתמש אוטומטית בגרסה המינימלית הנדרשת של כלי הבנייה לגרסה של פלאגין Android שבה אתם משתמשים. - עכשיו אתם יכולים להפעיל או להשבית את דחיסת ה-PNG בחסימה של
buildTypesכמו שמוצג בהמשך. הדחיסה של קובצי PNG מופעלת כברירת מחדל בכל גרסאות ה-build, למעט גרסאות ה-build לניפוי באגים, כי היא מאריכה את משך הזמן של גרסאות ה-build בפרויקטים שכוללים הרבה קובצי PNG. לכן, כדי לשפר את זמני הבנייה עבור סוגי בנייה אחרים, כדאי להשבית את דחיסת ה-PNG או להמיר את התמונות לפורמט WebP.Groovy
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 כדי לקמפל קוד מקומי שרוצים לארוז ב-APK. מידע נוסף זמין במאמר בנושא העברה מ-ndkcompile.
3.0.0 (אוקטובר 2017)
פלאגין Android Gradle 3.0.0 כולל מגוון שינויים שמטרתם לפתור בעיות ביצועים בפרויקטים גדולים.
לדוגמה, בפרויקט לדוגמה עם מבנה בסיסי שכולל כ-130 מודולים ומספר גדול של תלות חיצונית (אבל ללא קוד או משאבים), אפשר לראות שיפורים בביצועים שדומים לשיפורים הבאים:
| גרסת פלאגין Android + גרסת Gradle | Android plugin 2.2.0 + Gradle 2.14.1 | Android plugin 2.3.0 + Gradle 3.3 | Android plugin 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 על ידי הרצת./gradlew --stopמשורת הפקודה.
תכונות חדשות
- ניהול תלויות עם התחשבות בווריאציות. כשמפתחים וריאציה מסוימת של מודול, התוסף מתאים עכשיו באופן אוטומטי וריאציות של תלות במודול של ספרייה מקומית לווריאציה של המודול שמפתחים.
- כולל פלאגין חדש של מודול תכונות לתמיכה באפליקציות ללא התקנה ל-Android וב-Android Instant Apps SDK (שאפשר להוריד באמצעות SDK Manager). כדי לקבל מידע נוסף על יצירת מודולים של תכונות באמצעות הפלאגין החדש, אפשר לקרוא את המאמר מבנה של אפליקציה מיידית עם כמה תכונות.
- תמיכה מובנית בשימוש בתכונות שפה מסוימות של Java 8 ובספריות של Java 8. הכלי Jack הוצא משימוש ואין יותר צורך בו. כדי להשתמש בתמיכה המשופרת ב-Java 8 שמוטמעת בשרשרת הכלים שמוגדרת כברירת מחדל, צריך להשבית את Jack. מידע נוסף זמין במאמר בנושא שימוש בתכונות של שפת Java 8.
-
נוספה תמיכה בהרצת בדיקות באמצעות Android Test Orchestrator, שמאפשרת להריץ כל אחת מהבדיקות של האפליקציה בתוך קריאה משלה ל-Instrumentation. מכיוון שכל בדיקה מופעלת במופע Instrumentation משלה, כל מצב משותף בין הבדיקות לא מצטבר במעבד או בזיכרון של המכשיר. בנוסף, גם אם בדיקה אחת קורסת, היא משביתה רק את המופע שלה של Instrumentation, כך שהבדיקות האחרות עדיין פועלות.
- נוסף
testOptions.executionכדי לקבוע אם להשתמש בתיאום בדיקות במכשיר. אם רוצים להשתמש ב-Android Test Orchestrator, צריך לציין אתANDROID_TEST_ORCHESTRATOR, כמו שמוצג בהמשך. כברירת מחדל, המאפיין הזה מוגדר כ-HOST, מה שמשבית את התיאום במכשיר וזו השיטה הרגילה להרצת בדיקות.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- נוסף
-
הגדרת תלות חדשה
androidTestUtilמאפשרת לכם להתקין עוד APK של כלי עזר לבדיקה לפני שמריצים את בדיקות המכשור, כמו Android Test Orchestrator:Groovy
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 ומעלה.
-
עכשיו אפשר לשנות את ספריית הפלט של פרויקט חיצוני לבנייה מקומית, כמו שמוצג בהמשך:
Groovy
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:Groovy
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 מסוימים, והגרסה שלכם תפסיק לפעול אם אתם משתמשים בהם. לדוגמה, אי אפשר יותר להשתמש ב-Variants API כדי לגשת לאובייקטים מסוג
outputFile()או להשתמש ב-processManifest.manifestOutputFile()כדי לקבל את קובץ המניפסט לכל וריאציה. מידע נוסף זמין במאמר בנושא שינויים ב-API. - אין יותר צורך לציין גרסה לכלי הבנייה (לכן, עכשיו אפשר להסיר את המאפיין
android.buildToolsVersion). כברירת מחדל, הפלאגין משתמש אוטומטית בגרסה המינימלית הנדרשת של כלי הבנייה לגרסה של פלאגין Android שבה אתם משתמשים. - עכשיו אתם יכולים להפעיל או להשבית את דחיסת ה-PNG בחסימה של
buildTypesכמו שמוצג בהמשך. הדחיסה של קובצי PNG מופעלת כברירת מחדל בכל גרסאות ה-build, למעט גרסאות ה-build לניפוי באגים, כי היא מאריכה את משך הזמן של גרסאות ה-build בפרויקטים שכוללים הרבה קובצי PNG. לכן, כדי לשפר את זמני הבנייה עבור סוגי בנייה אחרים, כדאי להשבית את דחיסת ה-PNG או להמיר את התמונות לפורמט WebP.Groovy
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 כדי לקמפל קוד מקומי שרוצים לארוז ב-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 ומעלה, נעשה שימוש במטמון של הבנייה כברירת מחדל. מידע נוסף זמין במאמר שיפור מהירות הבנייה באמצעות מטמון הבנייה.
- כולל משימה של
cleanBuildCacheשמנקה את מטמון הבנייה. - אם אתם משתמשים בגרסת הניסוי של מטמון הבנייה (שנכללת בגרסאות קודמות של התוסף), כדאי לעדכן את התוסף לגרסה האחרונה.
- כולל משימה של
- השינויים:
-
- תמיכה בשינויים ב-Instant Run שכלולים ב-Android Studio 2.3.
- זמני ההגדרה של פרויקטים גדולים מאוד צריכים להיות מהירים משמעותית.
- תוקנו בעיות בהורדה אוטומטית של ספריית פריסת האילוצים.
- הפלאגין משתמש עכשיו ב-ProGuard גרסה 5.3.2.
- הגרסה כוללת תיקונים רבים של באגים שדווחו. אם נתקלים בבעיות, חשוב להמשיך לדווח על באגים.
2.2.0 (ספטמבר 2016)
- תלויות:
-
- Gradle 2.14.1 ואילך.
- Build Tools 23.0.2 או גרסה מתקדמת יותר.
- המינוי החדש:
-
- משתמש ב-Gradle 2.14.1, שכולל שיפורים בביצועים ותכונות חדשות, ומתקן פגיעות באבטחה שמאפשרת העלאת הרשאות מקומיות כשמשתמשים ב-Gradle daemon. פרטים נוספים זמינים ב הערות המוצר של Gradle.
- באמצעות ה-DSL
externalNativeBuild {}, אפשר עכשיו לקשר ב-Gradle למקורות המקוריים ולבצע קומפילציה של ספריות מקוריות באמצעות CMake או ndk-build. אחרי שיוצרים את ספריות ה-Native, Gradle אורז אותן ב-APK. מידע נוסף על שימוש ב-CMake וב-ndk-build עם Gradle זמין במאמר הוספת קוד C ו-C++ לפרויקט. - כשמריצים build משורת הפקודה, Gradle מנסה עכשיו להוריד באופן אוטומטי רכיבי SDK חסרים או עדכונים שהפרויקט תלוי בהם. מידע נוסף זמין במאמר בנושא הורדה אוטומטית של חבילות חסרות באמצעות Gradle.
- תכונה חדשה לניסוי של שמירת נתונים במטמון מאפשרת ל-Gradle להאיץ את זמני הבנייה באמצעות pre-dexing, אחסון ושימוש חוזר בגרסאות pre-dexed של הספריות. במדריך Build Cache מפורט מידע נוסף על השימוש בתכונה הניסיונית הזו.
- שיפור הביצועים של הבנייה באמצעות אימוץ צינור אריזה חדש שמוגדר כברירת מחדל, שמטפל בדחיסה, בחתימה וביישור של קובץ ה-zip במשימה אחת. אפשר לחזור לשימוש בכלי האריזה הישנים יותר על ידי הוספת
android.useOldPackaging=trueלקובץgradle.properties. כשמשתמשים בכלי האריזה החדש, המשימהzipalignDebugלא זמינה. עם זאת, אפשר ליצור כזה בעצמכם על ידי הפעלת השיטהcreateZipAlignTask(String taskName, File inputFile, File outputFile). - החתימה על APK מתבצעת עכשיו באמצעות APK Signature Scheme
v2 בנוסף לחתימה המסורתית על JAR. כל הפלטפורמות של Android מקבלות את קובצי ה-APK שנוצרים. כל שינוי בקובצי ה-APK האלה אחרי החתימה מבטל את תוקף החתימות מסוג v2 ומונע את ההתקנה במכשיר. כדי להשבית את התכונה הזו, מוסיפים את השורות הבאות לקובץ
build.gradleברמת המודול:Groovy
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 מספק, ולא משתמשת יותר בקבצים שב-Android SDK. - שיפורים בביצועים ובתכונות של מהדר Jack:
- Jack תומך עכשיו בכיסוי בדיקות של Jacoco כשמגדירים את
testCoverageEnabledל-true. - תמיכה משופרת במעבדי הערות. מעבדי הערות (Annotation) בנתיב המחלקות (classpath), כמו תלויות
compile, מוחלים אוטומטית על הבנייה. אתם יכולים גם לציין מעבד הערות ב-build ולהעביר ארגומנטים באמצעות ה-DSLjavaCompileOptions.annotationProcessorOptions {}בקובץbuild.gradleברמת המודול:Groovy
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היקף התלות:Groovy
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 Developer Preview, ב-JDK 8 ובתכונות השפה Java 8 באמצעות ערכת הכלים Jack. מידע נוסף זמין במדריך לתצוגה מקדימה של Android N.
הערה: הפעלה מיידית לא פועלת כרגע עם Jack, והיא תושבת בזמן השימוש בשרשרת הכלים החדשה. צריך להשתמש ב-Jack רק אם מפתחים לגרסת N Preview ורוצים להשתמש בתכונות השפה הנתמכות של Java 8.
- נוספה תמיכה כברירת מחדל בהידור מצטבר של Java כדי לקצר את זמן ההידור במהלך הפיתוח. הוא עושה את זה על ידי קומפילציה מחדש רק של חלקים בקוד המקור שהשתנו או שצריך לבצע להם קומפילציה מחדש. כדי להשבית את התכונה הזו, מוסיפים את הקוד הבא לקובץ
build.gradleברמת המודול:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
הוספנו תמיכה ב-dexing-in-process, שמבצע dexing בתהליך הבנייה ולא בתהליכי VM חיצוניים נפרדים. השינוי הזה לא רק מזרז את הבנייה המצטברת, אלא גם את הבנייה המלאה. התכונה מופעלת כברירת מחדל בפרויקטים שבהם הגודל המקסימלי של הערימה של 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ברמת המודול:Groovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- הוספנו תמיכה ב-N Developer Preview, ב-JDK 8 ובתכונות השפה Java 8 באמצעות ערכת הכלים Jack. מידע נוסף זמין במדריך לתצוגה מקדימה של Android 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:Groovy
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:Groovy
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 מפשט את ההחדרה של מניפולציות מותאמות אישית של מחלקות, ומציע יותר גמישות לגבי מה שאפשר לשנות. כדי להוסיף טרנספורמציה ל-build, יוצרים מחלקה חדשה שמטמיעה אחד מהממשקים שלTransform, ורושמים אותה ב-android.registerTransform(theTransform)או ב-android.registerTransform(theTransform, dependencies). אין צורך לקשר בין המשימות. חשוב לדעת על Transform API: - טרנספורמציה יכולה לחול על אחד או יותר מהרכיבים הבאים: הפרויקט הנוכחי, פרויקטים משניים וספריות חיצוניות.
- צריך לרשום טרנספורמציה באופן גלובלי, כדי שהיא תחול על כל הווריאציות.
- עיבוד פנימי של קוד, באמצעות Java Code Coverage Library (JaCoCo), ProGuard ו-MultiDex, מתבצע עכשיו באמצעות Transform API. עם זאת, ערכת הכלים Java Android Compiler Kit (Jack) לא משתמשת ב-API הזה: רק בנתיב הקוד
javac/dx. - Gradle מבצע את ההמרות בסדר הזה: JaCoCo, פלאגינים של צד שלישי, ProGuard. סדר ההפעלה של תוספים של צד שלישי תואם לסדר שבו התוספים של הצד השלישי מוסיפים את הטרנספורמציות. מפתחים של תוספים של צד שלישי לא יכולים לשלוט בסדר ההפעלה של הטרנספורמציות באמצעות API.
- הוצא משימוש מאחזר
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שניתן ליצור ממנו mock, שהתוסף יוצר רק פעם אחת ומשתמש בו לבדיקות יחידה. כמה מודולים, כמו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בקובץ הבנייה. - לזהות נכון את התלויות לכל סוג בנייה.
- מריצים את הפקודה
- נוספה תמיכה בהגדרת ארגומנטים של מפעיל בדיקות אינסטרומנטציה משורת הפקודה.
לדוגמה:
./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 תיכשל.
- בוצע שינוי בפתרון התלות כדי להשוות בין התלויות של אפליקציה שנבדקת לבין אפליקציית הבדיקה. אם נמצא ארטיפקט עם אותה גרסה בשתי האפליקציות, הוא לא נכלל באפליקציית הבדיקה ונארז רק עם האפליקציה שנבדקת. אם נמצא ארטיפקט עם גרסה שונה בשתי האפליקציות, הבנייה תיכשל.
- תוקנו בעיות בשימוש בהיקפי
- הוספנו תמיכה ב
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 ואילך.
-
- הערות כלליות:
-
- הגרסה הראשונה של הפלאגין.