‫Android Studio 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 לפעול באיטיות ולא להגיב אחרי שהשתמשתם ב-Layout Editor. העדכון הזה כולל תיקונים לרוב הבעיות האלה. אנחנו מתכוונים לפרסם בקרוב עדכון נוסף כדי לטפל בדליפות זיכרון נוספות.
  • חלק מהאפליקציות שנבנו באמצעות D8 קרסו בחלק מהטאבלטים מדגם Verizon Ellipsis.
  • התקנת אפליקציות שנבנו באמצעות D8 נכשלה עם שגיאה INSTALL_FAILED_DEXOPT במכשירים שמריצים Android 5.0 או 5.1 (רמת API‏ 21 או 22).
  • חלק מהאפליקציות שהשתמשו בספריית OkHttp ונבנו באמצעות D8, קרסו במכשירים עם Android 4.4 (רמת API‏ 19).
  • לפעמים, ההפעלה של Android Studio נכשלה, עם ProcessCanceledException במהלך הפעלת המחלקה עבור com.intellij.psi.jsp.JspElementType.

3.1.2 (אפריל 2018)

העדכון הזה ל-Android Studio 3.1 כולל תיקונים לבאגים הבאים:

  • במקרים מסוימים, Android Studio נתקע ללא הגבלת זמן במהלך היציאה.
  • כשמפעילים את התכונה 'הפעלה מיידית', בנייה שהוגדרה עם ערכות מקור נכשלת ומוצגת ההודעה הבאה:

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • כשהתכונה 'הפעלה מיידית' הייתה מופעלת, בנייה של פרויקטים חדשים ב-Kotlin נכשלה כשמופעלת הפקודה Run.
  • במהלך העריכה של קובץ build.gradle, לפעמים היה עיכוב מורגש בין הקלדת התו לבין הופעתו במסך.
  • במהלך dexing בחלק מהפרויקטים עם מספר גדול של מודולים או תלות חיצונית, נתקלו בכשלים בבנייה, עם הודעת השגיאה הבאה:

    "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. השיפורים כוללים ניתוח טוב יותר של זרימת הבקרה באוספים ובמחרוזות, שיפור בהסקת מסקנות לגבי מאפיין המציין אם ערך יכול להיות ריק (nullability), תיקונים מהירים חדשים ועוד.

פרטים נוספים זמינים בהערות על הגרסאות של JetBrains‏: 2017.2 ו-2017.3, וגם בהערות על עדכונים לתיקון באגים.

שיפורים בעריכת SQL באמצעות Room

כשמשתמשים בספריית מסד הנתונים של Room, אפשר ליהנות מכמה שיפורים בעריכת SQL:

  • השלמת קוד בתוך תג Query מבינה טבלאות SQL (ישויות), עמודות, פרמטרים של שאילתות, כינויים, שאילתות איחוד (join), שאילתות משנה וסעיפי WITH.
  • הדגשת תחביר SQL פועלת עכשיו.
  • אפשר ללחוץ לחיצה ימנית על שם של טבלה ב-SQL ולשנות את השם שלה. הפעולה הזו גם כותבת מחדש את קוד Java או Kotlin התואם (כולל, למשל, סוג ההחזרה של השאילתה). שינוי השם פועל גם בכיוון ההפוך, כך ששינוי השם של מחלקת Java או שדה Java משנה את קוד ה-SQL המתאים.
  • שימושים ב-SQL מוצגים כשמשתמשים באפשרות Find usages (לוחצים לחיצה ימנית ובוחרים באפשרות Find usages בתפריט ההקשר).
  • כדי לעבור להצהרה של ישות SQL בקוד Java או Kotlin, אפשר ללחוץ על הישות תוך כדי החזקת המקש Control (או Command ב-Mac).

מידע על שימוש ב-SQL עם Room זמין במאמר בנושא שמירת נתונים במסד נתונים מקומי באמצעות Room.

עדכונים בנושא שיוך נתונים

העדכון הזה כולל כמה שיפורים בקישור נתונים:

  • עכשיו אפשר להשתמש באובייקט LiveData כשדה שניתן לצפייה בביטויים של קישור נתונים. המחלקה ViewDataBinding כוללת עכשיו את ה-method החדש setLifecycle() שמשמש לצפייה באובייקטים LiveData.

  • המחלקות ObservableField יכולות עכשיו לקבל אובייקטים אחרים של Observable בבונה שלהן.

  • אפשר לראות תצוגה מקדימה של קומפיילר מצטבר חדש עבור מחלקות של קשירת נתונים. פרטים על מהדר חדש זה והוראות להפעלתו זמינים במאמר בנושא Data Binding Compiler V2.

    היתרונות של הקומפיילר החדש כוללים:

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

קומפיילר ו-Gradle

‫D8 הוא מהדר DEX שמוגדר כברירת מחדל

המהדר D8 משמש עכשיו כברירת מחדל ליצירת קוד בייט של DEX.

קומפיילר ה-DEX החדש מביא איתו כמה יתרונות, כולל:

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

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

אם הגדרתם את android.enableD8 לערך false ב-gradle.properties, אתם צריכים למחוק את הדגל הזה או להגדיר אותו לערך true:

        android.enableD8=true
      

פרטים נוספים זמינים במאמר בנושא מהדר DEX חדש.

הסרת סוכר תחבירי מצטברת

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

תהליך הסרה של סוכר תחבירי ממיר סוכר תחבירי לפורמט שהקומפיילר יכול לעבד בצורה יעילה יותר.

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

        android.enableIncrementalDesugaring=false
      

חלון פלט פשוט

מסוף Gradle הוחלף בחלון Build, שכולל את הכרטיסיות Sync ו-Build.

פרטים על השימוש בחלון Build החדש והפשוט יותר זמינים במאמר בנושא מעקב אחר תהליך ה-build.

עדכונים באצווה ואינדוקס במקביל

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

‫C++‎ ו-LLDB

ביצענו שיפורים רבים באיכות ובביצועים בשלבי הקידוד, הסנכרון, הבנייה והניפוי של פיתוח C++. השיפורים כוללים:

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

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

  • הוספנו מעצבים (pretty printers) למבני נתונים נוספים ב-C++ כדי שיהיה קל יותר לקרוא את הפלט של LLDB.

  • LLDB פועל עכשיו רק עם Android מגרסה 4.1 (רמת API‏ 16) ומעלה.

הערה: ניפוי באגים מקורי באמצעות Android Studio 3.0 ומעלה לא פועל ב-Windows ב-32 ביט. אם אתם משתמשים ב-Windows 32 bit ואתם צריכים לנפות באגים בקוד Native, אתם צריכים להשתמש ב-Android Studio 2.3.

Kotlin

‫Kotlin שודרג לגרסה 1.2.30

‫Android Studio 3.1 כולל Kotlin בגרסה 1.2.30.

קוד Kotlin מנותח עכשיו באמצעות בדיקת lint בשורת הפקודה

הפעלת lint משורת הפקודה מנתחת עכשיו את מחלקות Kotlin.

בכל פרויקט שרוצים להריץ עליו את lint, צריך לכלול את מאגר ה-Maven של Google בקובץ build.gradle ברמה העליונה. מאגר Maven כבר כלול בפרויקטים שנוצרו ב-Android Studio 3.0 ומעלה.

כלים לשיפור הביצועים

דגימת תהליכי C++‎ מקוריים באמצעות CPU Profiler

CPU Profiler כולל עכשיו הגדרת ברירת מחדל להקלטת עקבות מדגמיים של השרשורים המקומיים של האפליקציה. כדי להשתמש בהגדרה הזו, צריך לפרוס את האפליקציה למכשיר עם Android 8.0 (רמת API 26) ומעלה, ואז לבחור באפשרות Sampled (Native) (דגימה (מקומי)) בתפריט הנפתח של הגדרות ההקלטה בכלי CPU Profiler. אחרי כן, מתעדים ובודקים את הנתונים כרגיל.

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

כדי לחזור למעקב אחרי השרשורים של Java, בוחרים באחת מההגדרות הבאות: Sampled (Java) או Instrumented (Java).

סינון של עקבות מעבד (CPU), תוצאות של הקצאת זיכרון ו-heap dumps

התכונה CPU Profiler ו-Memory Profiler כוללות תכונת חיפוש שמאפשרת לסנן תוצאות מהקלטה של תיעוד method, הקצאות זיכרון או תמונת מצב של הזיכרון.

כדי לחפש, לוחצים על סינון בפינה השמאלית העליונה של החלונית, מקלידים את השאילתה ומקישים על Enter.

טיפ: אפשר גם לפתוח את שדה החיפוש על ידי הקשה על Control + F (או על Command + F ב-Mac).

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

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

הכרטיסייה Request (בקשה) בכלי לניתוח הרשת

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

תצוגת השרשור בכלי לניתוח הרשת

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

  • Connection View: מספק את אותו מידע כמו בגרסאות קודמות של Android Studio – מוצגת רשימה של קבצים שנשלחו או התקבלו במהלך החלק שנבחר בציר הזמן בכל השרשורים של מעבד ה-CPU באפליקציה. לכל בקשה אפשר לבדוק את הגודל, הסוג, הסטטוס ומשך השידור.
  • תצוגת שרשור: מציגה את פעילות הרשת של כל אחד משרשורי ה-CPU של האפליקציה. בתצוגה הזו אפשר לבדוק אילו מהשרשורים באפליקציה אחראים לכל בקשת רשת.

כלי לבדיקת פריסות

נוספו תכונות חדשות לLayout Inspector, כולל פונקציונליות שסופקה בעבר על ידי הכלים Hierarchy Viewer ו-Pixel Perfect שהוצאו משימוש:

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

כלי לעריכת פריסות

בוצעו שיפורים רבים בלוח בעורך הפריסה:

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

אפשר להשתמש בפקודה החדשה Convert view (המרת תצוגה) בComponent tree (עץ הרכיבים) או בעורך העיצוב כדי להמיר תצוגה או פריסה לסוג אחר של תצוגה או פריסה.

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

הפעלה והפעלה מיידית

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

כשמטרגטים מכשיר עם Android 8.0 (רמת API ‏26) ואילך, אפשר להשתמש ב-Instant Run כדי לפרוס שינויים במשאבים בלי להפעיל מחדש את האפליקציה. האפשרות הזו קיימת כי המשאבים כלולים בקובץ APK מפוצל.

מכשיר הדמיה

לפרטים על מה חדש ומה השתנה באמולטור Android מאז Android Studio 3.0, אפשר לעיין בנתוני הגרסה של אמולטור Android מגרסה 27.0.2 עד גרסה 27.1.12.

השיפורים העיקריים כוללים:

  • תמונות מצב של הפעלה מהירה לשמירת מצב האמולטור והפעלה מהירה יותר, עם אפשרות להשתמש בפקודה שמירה עכשיו כדי לשמור מצב הפעלה מותאם אישית.
  • מסך אמולטור ללא חלון.
  • תמונות מערכת ל-Android 8.0 (רמת API‏ 26), ל-Android 8.1 (רמת API‏ 27) ולתצוגה מקדימה למפתחים של Android P.

שיפורים בממשק המשתמש ובחוויית המשתמש

עוד תיאורי כלים, מקשי קיצור והודעות מועילות

הוספנו תיאורי כלים ושכבות-על עם הודעות מועילות במקומות רבים ב-Android Studio.

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

הוסר התפריט 'כלים' > Android

התפריט Tools > Android הוסר. פקודות שהיו קודם בתפריט הזה הועברו.

  • הרבה פקודות הועברו ישירות מתחת לתפריט כלים.
  • הפקודה Sync project with gradle files עברה לתפריט File.
  • הפקודה Device Monitor הוסרה, כמו שמתואר בהמשך.

הכלי 'מעקב אחרי מכשירים' זמין משורת הפקודה

ב-Android Studio 3.1, תפקיד הכלי Device Monitor מצומצם יותר מבעבר. במקרים רבים, הפונקציונליות שהייתה זמינה דרך הכלי Device Monitor מסופקת עכשיו על ידי כלים חדשים ומשופרים.

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