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

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

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

    "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, אפשר לנצל את היתרונות של עריכת SQL:

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

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

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

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

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

מהדר וגרידל

D8 הוא ה-DEX ברירת המחדל מהדר

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

המהדר החדש הזה של DEX מגיע עם כמה יתרונות, הבאים:

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

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

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

        android.enableD8=true
      

פרטים נוספים זמינים במאמר מ compilador 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 סיביות לנפות באגים בקוד הנייטיב, צריך להשתמש ב-Android Studio 2.3.

Kotlin

אפליקציית Kotlin שודרגה לגרסה 1.2.30

Android Studio 3.1 כולל קוטלין גרסה 1.2.30.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

נוספו לסוקר הפריסה כולל פונקציונליות מסוימת שסופקו בעבר על ידי הכלים 'מציג היררכיה' ו-Pixel Perfect:

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

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

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

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

אפשר להשתמש בתצוגה המפורטת החדשה של דף ההמרה בעץ הרכיבים או בעורך העיצוב כדי להמיר תצוגה או פריסה לסוג אחר של תצוגה או פריסה.

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

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

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

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

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

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

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

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

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

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

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

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

מוניטור המכשיר זמין משורת הפקודה

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

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