Android Studio 3.4 (אפריל 2019)

Android Studio 3.4 היא מהדורה ראשית שכוללת מגוון תכונות ושיפורים חדשים.

3.4.2 (יולי 2019)

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

3.4.1 (מאי 2019)

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

בעיות מוכרות בגרסה 3.4.0

  • יצירת הפרופיל מושבתת כשפורסים את האפליקציה במכשיר שבו פועלת גרסת Android Q Beta.

  • כשמשתמשים ב-Data Binding Library, יכול להיות שהקריאה ל-LiveDataListener.onChanged() תיכשל עם NPE. תיקון לבעיה הזו יהיה כלול ב-Android Studio 3.4.1, והוא כבר זמין בגרסת ה-Preview האחרונה של Android Studio 3.5. (ב בעיה מס' 122066788)

IntelliJ IDEA 2018.3.4

סביבת הפיתוח המשולבת (IDE) של Android Studio עודכנה בשיפורים מ-IntelliJ IDEA, החל מ-גרסת 2018.3.4.

עדכונים לפלאגין של Android Gradle בגרסה 3.4.0

מידע על החידושים בפלאגין של Android Gradle בגרסה 3.4.0 זמין בהערות הגרסה.

תיבת דו-שיח חדשה של מבנה הפרויקט

תיבת הדו-שיח החדשה של מבנה הפרויקט (PSD) מאפשרת לעדכן בקלות את יחסי התלות ולהגדיר היבטים שונים של הפרויקט, כמו מודולים, וריאנטים של build, הגדרות של חתימה ופיתוח משתנים.

כדי לפתוח את קובץ ה-PSD, בוחרים באפשרות קובץ > מבנה הפרויקט בסרגל התפריטים. אפשר גם לפתוח את קובץ ה-PSD על ידי הקשה על Ctrl+Shift+Alt+S ב-Windows וב-Linux, או על Command+; (נקודה-פסיק) ב-macOS. בהמשך מוצגים תיאורים של חלק מהקטעים החדשים והמעודכנים של חוק ה-PSD.

משתנים

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

  • הצגה ועריכה במהירות של משתני build שכבר קיימים בסקריפטים של Gradle של ה-build בפרויקט שלכם.
  • הוספה של משתני build חדשים ברמת הפרויקט או המודול ישירות מה-PSD.

הערה: אם קובצי ההגדרה הקיימים של ה-build מקצים ערכים באמצעות סקריפטים מורכבים של Groovy, יכול להיות שלא תוכלו לערוך את הערכים האלה באמצעות ה-PSD. בנוסף, אי אפשר לערוך קובצי build שנכתבו ב-Kotlin באמצעות ה-PSD.

מודולים

מגדירים מאפיינים שחלים על כל הווריאנטים של ה-build במודול קיים, או מוסיפים מודולים חדשים לפרויקט מהקטע Modules. לדוגמה, כאן אפשר להגדיר מאפייני defaultConfig או לנהל הגדרות חתימה.

יחסי תלות

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

  1. בחלונית הימנית של קובץ ה-PSD, בוחרים באפשרות יחסי תלות.
  2. בחלונית Modules, בוחרים את המודול שבשבילו רוצים לבדוק את יחסי התלות שטופלו.
  3. בצד שמאל של קובץ ה-PSD, פותחים את החלונית Resolved Dependencies (יחסי תלות שהוגדרו) שמוצגת בהמשך.

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

בהתאם לסוג התלות שבחרתם, אמורה להופיע תיבת דו-שיח, דומה לזו שבהמשך, שעוזרת להוסיף את התלות למודול.

בניית וריאציות

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

הצעות

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

מנהל המשאבים החדש

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

  • הצגה חזותית של משאבים: אפשר לראות תצוגה מקדימה של פריטים שניתנים להזזה, צבעים ופריסות כדי למצוא במהירות את המשאבים שצריכים.
  • ייבוא בכמות גדולה: אפשר לייבא כמה נכסי drawable בבת אחת על ידי גרירה ושחרור שלהם בחלון הכלי Resource Manager או באמצעות האשף Import drawables. כדי לגשת לאשף, לוחצים על הלחצן (+) בפינה הימנית העליונה של חלון הכלי, ואז בוחרים באפשרות Import Drawables בתפריט הנפתח.
  • המרת קובצי SVG לאובייקטים מסוג VectorDrawable: אפשר להשתמש באשף ייבוא רכיבים גרפיים שניתנים לציור כדי להמיר את קובצי ה-SVG לאובייקטים מסוג VectorDrawable.
  • גרירה ושחרור של נכסים: מחלון הכלים של מנהל המשאבים, אפשר לגרור ולשחרר נכסים גרפיים גם בתצוגת העיצוב וגם בתצוגת ה-XML של עורך הפריסה.
  • הצגת גרסאות חלופיות: עכשיו אפשר להציג גרסאות חלופיות של המשאבים בלחיצה כפולה על המשאב בחלון הכלי. בתצוגה הזו אפשר לראות את הגרסאות השונות שיצרת ואת ההגדרות המגדירות שנכללו.
  • תצוגת משבצות ותצוגת רשימה: אתם יכולים לשנות את התצוגה בחלון הכלי כדי להציג את המשאבים בפריסות שונות.

מידע נוסף מופיע במדריך לניהול משאבי האפליקציות.

בדיקת מזהי build בזמן יצירת פרופילים וניפוי באגים של קובצי APK

כשאתם מספקים קובצי סמלים לניפוי באגים לספריות המשותפות .so בתוך קובץ ה-APK, Android Studio מאמתת שמזהה ה-build של קובצי הסמלים שסופקו תואם למזהה ה-build של הספריות .so בתוך קובץ ה-APK.

אם אתם יוצרים את הספריות המקומיות ב-APK עם מזהה build, ‏Android Studio בודק אם מזהה ה-build בקובצי הסמלים תואם למזהה ה-build בספריות המקומיות, ומסרב לקובצי הסמלים אם יש אי-התאמה. אם לא יצרתם את ה-build עם מזהה build, שליחה של קובצי סמלים שגויים עלולה לגרום לבעיות בניפוי באגים.

R8 מופעל כברירת מחדל

ב-R8 משולבים הסרת סוכר, צמצום, ערפול, אופטימיזציה והסרת קוד מיותר (dexing) – והתוצאה היא שיפורים משמעותיים בביצועי ה-build. R8 הוצג בפלאגין Android Gradle 3.3.0, והוא מופעל עכשיו כברירת מחדל גם בפרויקטים של אפליקציות וגם בפרויקטים של ספריות ל-Android באמצעות הפלאגין 3.4.0 ואילך.

בתמונה הבאה מוצגת סקירה כללית ברמה גבוהה של תהליך הידור לפני ההשקה של R8.

לפני R8, ב-ProGuard יש שלב הידור אחר מזה של הסרת שומן
 והסרת סוכרים.

עכשיו, בעזרת R8, פעולת הסרת הסוכר, כיווץ, ערפול קוד (obfuscation), אופטימיזציה והסרה (D8) מבוצעות בשלב אחד בלבד, כפי שמתואר בהמשך.

ב-R8, פעולות הסרת הסוכר, הצמצום, הטשטוש, האופטימיזציה וההסרה של ה-dex מתבצעות בשלב הידור אחד.

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

אם נתקלת בבעיות בשימוש ב-R8, ניתן לעיין בשאלות הנפוצות על תאימות ל-R8 כדי לבדוק אם יש פתרון לבעיה שלך. אם הפתרון לא מתועד, תוכלו לדווח על באג. כדי להשבית את R8, מוסיפים את אחת מהשורות הבאות לקובץ gradle.properties של הפרויקט:

    # Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    
  

הערה: בסוג build מסוים, אם מגדירים את useProguard לערך build.gradle בקובץ build.gradle של האפליקציה, הפלאגין של Android Gradle משתמש ב-R8 כדי לכווץ את קוד האפליקציה לסוג ה-build הזה, גם אם משביתים את R8 בקובץ gradle.properties של הפרויקט.false

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

שיפורים בכלי לעריכת פריסות {:#layout-editor}

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

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

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

אם תתחילו להשתמש בחלק מהכיתות של Jetpack ו-Firebase בקוד שלכם, תוצג לכם פעולת מטרה חדשה עם הצעה להוסיף לפרויקט את התלות הנדרשת בספריית Gradle, אם עדיין לא עשיתם זאת. לדוגמה, אם תתייחסו לכיתה WorkManager בלי לייבא קודם את התלות הנדרשת android.arch.work:work-runtime, תוכלו לעשות זאת בקלות בלחיצה אחת באמצעות פעולת מטרה, כפי שמוצג בהמשך.

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