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.
- תוקנו הבאגים הבאים:
-
הניסיון להריץ את הכיתה Main ב-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."
- כשהתכונה Instant Run הייתה מופעלת, גרסאות 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, המשימה 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, עמודות, פרמטרים של שאילתות, כינויים, שאילתות משנה ותנאים מסוג 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 לפני המהדר של Java. - הספריות שומרות את כיתות הקישור שנוצרו כשהאפליקציה מתורגמת, במקום ליצור אותן מחדש בכל פעם. כך אפשר לשפר משמעותית את הביצועים בפרויקטים עם כמה מודולים.
-
הכיתות
קומפיילר ו-Gradle
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
ביצענו שיפורים רבים באיכות ובביצועים של שלבי הקוד, הסנכרון, ה-build וניפוי הבאגים בפיתוח ב-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. לאחר מכן, מתעדים ומעיינים ב-trace כרגיל.
כדי לשנות את הגדרות ברירת המחדל, כמו מרווח הדגימה, אפשר ליצור הגדרות אישיות להקלטה.
כדי לחזור למעקב אחר השרשור של Java, בוחרים בהגדרה Sampled (Java) או Instrumented (Java).
סינון של מעקב מעבדים, תוצאות הקצאת זיכרון ו-dumps של אשכול
כלי הניתוח של מעבדים (CPU) וכלי הניתוח של זיכרון כוללים תכונת חיפוש שמאפשרת לסנן תוצאות מהקלטת נתיב של שיטה, הקצאות זיכרון או דמפ של אשכול.

כדי לחפש, לוחצים על סינון
בפינה השמאלית העליונה של החלונית, מקלידים את השאילתה ומקישים על Enter.
טיפ: אפשר גם לפתוח את שדה החיפוש על ידי הקשה על Control + F (או על Command + F ב-Mac).
בכרטיסייה Flame Chart (תרשים אש) של הכלי לניתוח מעבדים, סטאקים של קריאות שכוללים שיטות שקשורות לשאילתת החיפוש שלכם מודגשים ומוזזים לצד ימין של התרשים.
מידע נוסף על סינון לפי שם שיטה, כיתה או חבילת קוד זמין במאמר תיעוד ובדיקה של נתיבי קריאה ל-method.
הכרטיסייה 'בקשה' בכלי לניתוחי רשת
כלי הניתוח של הרשת כולל עכשיו את הכרטיסייה בקשה, שמספקת פרטים על בקשות הרשת במהלך ציר הזמן שנבחר. בגרסאות קודמות, הכלי לניתוח הרשת סיפק מידע רק על תגובות מהרשת.
תצוגת שרשור בכלי לניתוח הרשת
אחרי שבוחרים קטע בציר הזמן בכלי לניתוחי רשתות, אפשר לבחור באחת מהכרטיסיות הבאות כדי לראות פרטים נוספים על פעילות הרשת במסגרת הזמן הזו:
- תצוגת החיבור: מציגה את אותם פרטים כמו בגרסאות קודמות של Android Studio. בתצוגה הזו מפורטים קבצים שנשלחו או התקבלו במהלך החלק שנבחר בציר הזמן בכל שרשורי המעבד של האפליקציה. לכל בקשה אפשר לבדוק את הגודל, הסוג, הסטטוס ומשך ההעברה.
- תצוגת חוט: הצגת פעילות הרשת של כל אחד מחוטרי המעבד של האפליקציה. התצוגה הזו מאפשרת לבדוק אילו מהשרשורים של האפליקציה אחראים לכל בקשה לרשת.

כלי לבדיקת פריסות
כלי לבדיקת הפריסה קיבל תכונות חדשות, כולל פונקציונליות מסוימת שניתנה בעבר על ידי כלי 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 של Quick Boot לשמירת מצב של אמולטור ולהפעלה מהירה יותר, עם היכולת להשתמש בפקודה Save now כדי לשמור מצב הפעלה מותאם אישית.
- מסך אמולטור ללא חלון.
- קובצי אימג' של מערכת ל-Android 8.0 (רמת API 26), ל-Android 8.1 (רמת API 27) ול-Android P Developer Preview.
שיפורים בממשק המשתמש ובחוויית המשתמש
תוספת של טיפים, מקשי קיצור והודעות מועילות
הוספנו תיאורים קצרים ומסך-על עם הודעות מועילות במקומות רבים ב-Android Studio.
כדי לראות את מקשי הקיצור של פקודות רבות, פשוט מעבירים את סמן העכבר מעל לחצן כלשהו עד שמופיעה ההודעה.
התפריט 'כלים' > 'Android' הוסר
התפריט כלים > Android הוסר. פקודות שהיו בעבר בתפריט הזה הועברו.
- הרבה פקודות הועברו ישירות מתחת לתפריט כלים.
- הפקודה Sync project with gradle files הועברה לתפריט File.
- הפקודה Device Monitor הוסרה, כפי שמתואר בהמשך.
Device Monitor זמין משורת הפקודה
ב-Android Studio 3.1, ל-Device Monitor יש תפקיד קטן יותר מאשר בעבר. במקרים רבים, הפונקציונליות שזמינה דרך Device Monitor ניתנת עכשיו באמצעות כלים חדשים ומודרניים יותר.
במסמכי העזרה של Device Monitor מפורטות הוראות להפעלת Device Monitor משורת הפקודה, וגם פרטים על הכלים שזמינים דרך Device Monitor.