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, הגדרות חתימה ומשתני build.

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

משתנים

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

  • הצגה ושינוי מהירים של משתני build שכבר קיימים בסקריפטים של build ב-Gradle בפרויקט.
  • הוספת משתני 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, צבעים ועיצובים כדי למצוא במהירות את המשאבים הנחוצים.
  • ייבוא בכמות גדולה: אפשר לייבא כמה נכסי 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 משלב הסרה, כיווץ, ערפול קוד (obfuscation), אופטימיזציה והסרה של חומר מצולם – והכול בפעולה אחת – מה שמוביל לשיפורים משמעותיים בביצועים של ה-build. R8 הושק בפלאגין Android Gradle גרסה 3.3.0, ועכשיו הוא מופעל כברירת מחדל בפרויקטים של אפליקציות וספריות Android שמשתמשים בפלאגין 3.4.0 ואילך.

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

לפני R8, ProGuard היה שלב שונה בתהליך הידור, שלא היה קשור להסרת ה-dex ולהסרת הסוכר.

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

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

חשוב לזכור ש-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 ל-false בקובץ build.gradle של מודול האפליקציה, הפלאגין של Android Gradle משתמש ב-R8 כדי לצמצם את הקוד של האפליקציה לסוג ה-build הזה, גם אם משביתים את R8 בקובץ gradle.properties של הפרויקט.

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

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

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

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

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

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

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