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

3.1.3 (יוני 2018)

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

  • דליפות זיכרון גרמו ל-Android Studio לפעול באיטיות ולא להגיב אחרי השימוש בעורך הפריסה. העדכון הזה כולל תיקונים לרוב הבעיות האלה. אנחנו מתכוונים להשיק עדכון נוסף בקרוב כדי לטפל בבעיות נוספות של דליפות זיכרון.
  • אפליקציות מסוימות שנוצרו באמצעות 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 נתקע ללא הגבלת זמן במהלך היציאה.
  • גרסאות build שהוגדרו באמצעות קבוצות מקור נכשלו עם ההודעה הבאה כשהפעלת Instant Run:

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

  • כשהתכונה 'הפעלה מיידית' הופעלה, גרסאות build של פרויקטים חדשים של Kotlin נכשלו כשהפקודה Run הופעלה.
  • במהלך העריכה של הקובץ build.gradle, לפעמים היה עיכוב משמעותי בין הקלדת התו לבין התו שמופיע על המסך.
  • אירעו כשלים ב-build במהלך ה-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' הוסרה מהאזור לפני ההפעלה בקטע הגדרות הפעלה/ניפוי באגים. כתוצאה מכך, הפרויקטים לא נוצרו כשלוחצים על הלחצן 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, תיקונים מהירים חדשים ועוד.

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

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

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

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

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

עדכונים לקישור הנתונים

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

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

  • המחלקה ObservableField יכולה עכשיו לקבל אובייקטים אחרים של Observable ב-constructor שלה.

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

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

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

קומפיילר ו-Gradle

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

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

המהדר החדש של DEX מציע כמה יתרונות, כולל:

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

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

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

        android.enableD8=true
      

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

הסרה של סוכר תחבירי באופן מצטבר

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

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

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

        android.enableIncrementalDesugaring=false
      

חלון פלט פשוט יותר

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

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

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

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

C++ ו-LLDB

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

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

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

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

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

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

Kotlin

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

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

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

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

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

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

דוגמה לתהליכים מקומיים של C++‎ באמצעות הכלי לניתוח ביצועי ה-CPU

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

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

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

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

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

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

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

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

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

הכרטיסייה 'בקשות' ב-Network Profiler

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

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

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

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

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

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

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

עורך פריסות

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

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

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

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

שיפרנו את העקביות של ההתנהגות של האפשרות Use same selection for future launches בתיבת הדו-שיח Select deployment target. אם האפשרות Use same selection מופעלת, תיבת הדו-שיח Select deployment target נפתחת רק בפעם הראשונה שמשתמשים בפקודה Run, עד שהמכשיר שנבחר כבר לא מחובר.

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

מכשיר הדמיה

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

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

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

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

עוד הסברים קצרים, מקשי קיצור והודעות מועילות

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

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

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

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

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

ניתן לגשת ל-Device Monitor משורת הפקודה

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

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