‫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 קורס במהלך מעברים בין רכיבי Fragment כשמשתמשים בכלי פרופיל.
    • ניפוי הבאגים קרס כשניסיתי לנפות באגים בפריסה עם תיבת טקסט.
    • הייתה בעיה ב-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, לפעמים היה עיכוב ניכר בין הקלדת התו לבין הופעתו במסך.
  • במהלך יצירת קובץ ה-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, משימת ה-Make שמודעת ל-Gradle הוסרה מהאזור Before launch ב-Run/Debug Configurations. התוצאה הייתה שהפרויקטים לא נוצרו כשלוחצים על הלחצן Run (הפעלה) או Debug (ניפוי באגים), מה שגרם לכשלים כמו פריסה של קובצי APK שגויים וקריסות כשמשתמשים ב-Instant Run.

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

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

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

הכרטיסייה 'בקשה' בכלי לניתוח הרשת

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

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

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

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

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

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

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

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

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

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

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