‫Android Studio 3.4 (אפריל 2019)

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

‫3.4.2 (יולי 2019)

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

‫3.4.1 (מאי 2019)

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

3.4.0 בעיות מוכרות

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

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

‫IntelliJ IDEA 2018.3.4

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

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

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

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

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

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

משתנים

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

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

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

מודולים

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

פניות קשורות

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

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

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

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

וריאנטים של Build

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

הצעות

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

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

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

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

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

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

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

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

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

‫R8 משלב את הפעולות desugaring,‏ shrinking,‏ obfuscating,‏ optimizing ו-dexing בשלב אחד – וכתוצאה מכך הביצועים של הבנייה משתפרים באופן משמעותי. הכלי R8 הוצג בפלאגין של Android Gradle 3.3.0, ועכשיו הוא מופעל כברירת מחדל גם בפרויקטים של אפליקציות וגם בפרויקטים של ספריות Android באמצעות פלאגין 3.4.0 ואילך.

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

לפני גרסה R8, ‏ ProGuard היה שלב קומפילציה שונה מ-dexing ומ-desugaring.

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

עם R8, כל הפעולות הבאות מתבצעות בשלב קומפילציה אחד: desugaring,‏ shrinking,‏ obfuscating,‏ optimizing ו-dexing.

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

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

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

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

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

שיפורים ב-Layout Editor‏ {:#layout-editor}

החלונית Attributes ב-Layout Editor עברה אופטימיזציה והיא מוצגת עכשיו בדף אחד עם קטעים שאפשר להרחיב כדי לראות את המאפיינים שניתנים להגדרה. החלונית מאפיינים כוללת גם את העדכונים הבאים:

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

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

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

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