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 לפעול באיטיות ולא להגיב אחרי שהשתמשתם בכלי לעריכת פריסות. העדכון הזה כולל תיקונים לרוב הבעיות האלה. אנחנו מתכוונים לפרסם עדכון נוסף בקרוב כדי לטפל בדליפות זיכרון נוספות.
- חלק מהאפליקציות שנבנו באמצעות 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 נתקע ללא הגבלת זמן במהלך היציאה.
-
כשמפעילים את Instant Run, בנייה שהוגדרה עם source sets נכשלת ומוצגת ההודעה הבאה:
"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 ופעם אחת במהלך תהליך הבנייה של 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 גורם לכתיבה מחדש של קוד ה-SQL המתאים.
- שימושים ב-SQL מוצגים כשמשתמשים באפשרות Find usages (לוחצים לחיצה ימנית ובוחרים באפשרות Find usages בתפריט ההקשר).
- כדי לעבור להצהרה של ישות SQL בקוד Java או Kotlin, אפשר ללחוץ על הישות תוך כדי החזקת המקש Control (או Command ב-Mac).
מידע על שימוש ב-SQL עם Room זמין במאמר בנושא שמירת נתונים במסד נתונים מקומי באמצעות Room.
עדכונים בנושא שיוך נתונים
העדכון הזה כולל כמה שיפורים בקישור נתונים:
-
עכשיו אפשר להשתמש באובייקט
LiveData
כשדה שניתן לצפייה בביטויים של קישור נתונים. המחלקותViewDataBinding
כוללות עכשיו שיטה חדשה,setLifecycle()
, שמשמשת לצפייה באובייקטיםLiveData
. -
המחלקות
ObservableField
יכולות עכשיו לקבל אובייקטים אחריםObservable
בבונה שלהן. -
אפשר לראות תצוגה מקדימה של קומפיילר מצטבר חדש עבור מחלקות של קישור נתונים. פרטים על הקומפיילר החדש והוראות להפעלתו זמינים במאמר בנושא Data Binding Compiler V2.
היתרונות של הקומפיילר החדש כוללים:
-
ViewBinding
classes נוצרים על ידי הפלאגין של Android ל-Gradle לפני קומפיילר Java. - הספריות שומרות את מחלקות הקישור שנוצרו כשהאפליקציה עוברת קומפילציה, במקום ליצור אותן מחדש בכל פעם. כך אפשר לשפר משמעותית את הביצועים בפרויקטים עם כמה מודולים.
-
קומפיילר ו-Gradle
D8 הוא מהדר DEX שמוגדר כברירת מחדל
המהדר D8 משמש עכשיו כברירת מחדל ליצירת קוד בייט של DEX.
קומפיילר ה-DEX החדש מביא איתו כמה יתרונות, כולל:
- המרת dex מהירה יותר
- הפחתת השימוש בזיכרון
- שיפור ביצירת הקוד (הקצאת רגיסטרים טובה יותר, טבלאות מחרוזות חכמות יותר)
- חוויה טובה יותר של ניפוי באגים כשמבצעים מעבר שלב אחר שלב בקוד
כדי ליהנות מהיתרונות האלה, לא צריך לבצע שינויים בקוד או בתהליך העבודה של הפיתוח, אלא אם השבתתם בעבר את קומפיילר D8 באופן ידני.
אם הגדרתם את android.enableD8
לערך false
ב-gradle.properties
, אתם צריכים למחוק את הדגל הזה או להגדיר אותו לערך true
:
android.enableD8=true
פרטים נוספים זמינים במאמר בנושא מהדר DEX חדש.
הסרה מצטברת של סוכר תחבירי
בפרויקטים שמשתמשים בתכונות של שפת Java 8, מופעלת כברירת מחדל הסרת סוכר מצטברת, שיכולה לשפר את זמני הבנייה.
התהליך הזה ממיר סוכר תחבירי לצורה שהקומפיילר יכול לעבד בצורה יעילה יותר.
כדי להשבית את ההסרה ההדרגתית של תחביר סוכר, צריך לציין את ההגדרה הבאה בקובץ gradle.properties
של הפרויקט:
android.enableIncrementalDesugaring=false
חלון פלט פשוט
מסוף Gradle הוחלף בחלון Build, שכולל את הכרטיסיות Sync ו-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 ואתם צריכים לנפות באגים בקוד מקומי, אתם צריכים להשתמש ב-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
CPU Profiler כולל עכשיו הגדרת ברירת מחדל להקלטת עקבות מדגמיות של השרשורים המקומיים של האפליקציה. כדי להשתמש בהגדרה הזו, צריך לפרוס את האפליקציה למכשיר עם Android 8.0 (API ברמה 26) ומעלה, ואז לבחור באפשרות Sampled (Native) (דגימה (מקומי)) בתפריט הנפתח של הגדרות ההקלטה בכלי CPU Profiler. אחרי כן, מתעדים ובודקים את הנתונים כרגיל.
אתם יכולים לשנות את הגדרות ברירת המחדל, כמו מרווח הדגימה, על ידי יצירת הגדרות הקלטה.
כדי לחזור למעקב אחרי השרשורים של Java, בוחרים באחת מההגדרות הבאות: Sampled (Java) או Instrumented (Java).
סינון של עקבות מעבד (CPU), תוצאות של הקצאת זיכרון ו-heap dumps
התכונות CPU Profiler ו-Memory Profiler כוללות תכונת חיפוש שמאפשרת לסנן תוצאות מהקלטה של מעקב אחר שיטה, הקצאות זיכרון או dump של heap.

כדי לחפש, לוחצים על סינון
בפינה השמאלית העליונה של החלונית, מקלידים
את השאילתה ומקישים על Enter.
טיפ: אפשר גם לפתוח את שדה החיפוש על ידי הקשה על Control + F (או על Command + F ב-Mac).
בכרטיסייה תרשים להבה של הכלי CPU Profiler, מחסניות קריאות שכוללות שיטות שקשורות לשאילתת החיפוש מודגשות ומועברות לצד ימין של התרשים.
מידע נוסף על סינון לפי שיטה, מחלקה או שם חבילה זמין במאמר תיעוד ובדיקה של עקבות שיטות.
הכרטיסייה Request (בקשה) בכלי Network Profiler
הכלי Network Profiler כולל עכשיו כרטיסייה בשם Request שבה מפורטים נתונים על בקשות ברשת במהלך ציר הזמן שנבחר. בגרסאות קודמות, הכלי Network Profiler סיפק רק מידע על תגובות של הרשת.
תצוגת השרשור בכלי לניתוח הרשת
אחרי שבוחרים חלק מציר הזמן בכלי ליצירת פרופיל רשת, אפשר לבחור באחת מהכרטיסיות הבאות כדי לראות פרטים נוספים על פעילות הרשת במהלך פרק הזמן הזה:
- Connection View: מספק את אותו מידע כמו בגרסאות קודמות של Android Studio – מוצגת רשימה של קבצים שנשלחו או התקבלו במהלך החלק שנבחר בציר הזמן בכל ה-thread של ה-CPU של האפליקציה. לכל בקשה אפשר לבדוק את הגודל, הסוג, הסטטוס ומשך השידור.
- תצוגת שרשור: מציגה את פעילות הרשת של כל אחד משרשורי ה-CPU של האפליקציה. בתצוגה הזו אפשר לבדוק אילו מהשרשורים באפליקציה אחראים לכל בקשת רשת.

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

כלי לעריכת פריסות
בוצעו הרבה שיפורים בלוח בעורך הפריסות:
- ארגון מחדש של קטגוריות לתצוגות ולפריסות.
- קטגוריה חדשה בשם Common (נפוץ) לתצוגות ולפריסות, שאפשר להוסיף לה פריטים באמצעות הפקודה Favorite (מועדף).
- שיפורים בחיפוש התצוגות והפריסות.
- פקודות חדשות לפתיחת תיעוד של תצוגה ספציפית או רכיב פריסה.
אפשר להשתמש בפקודה החדשה Convert view בComponent tree או בעורך העיצוב כדי להמיר תצוגה או פריסה לסוג אחר של תצוגה או פריסה.
עכשיו אפשר ליצור בקלות אילוצים לפריטים שקרובים לתצוגה שנבחרה באמצעות הלחצנים החדשים ליצירת חיבור בחלק העליון של חלון המאפיינים בכלי לבדיקת התצוגה.
הרצה והרצה מיידית
ההתנהגות של האפשרות שימוש באותה בחירה בהשקות עתידיות בתיבת הדו-שיח בחירת יעד פריסה עכשיו עקבית יותר. אם האפשרות שימוש באותה בחירה מופעלת, תיבת הדו-שיח בחירת יעד הפריסה תיפתח רק בפעם הראשונה שתשתמשו בפקודה הפעלה עד שהמכשיר שנבחר לא יהיה מחובר יותר.
כשמטרגטים מכשיר עם Android 8.0 (רמת API 26) ומעלה, אפשר להשתמש ב-Instant Run כדי לפרוס שינויים במשאבים בלי להפעיל מחדש את האפליקציה. האפשרות הזו קיימת כי המשאבים כלולים בקובץ APK מפוצל.
מכשיר הדמיה
לפרטים על מה חדש ומה השתנה באמולטור מאז Android Studio 3.0, אפשר לעיין בנתוני הגרסה של Android Emulator מגרסה 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 מסופקת עכשיו על ידי כלים חדשים ומשופרים.
הוראות להפעלת הכלי לניטור מכשירים משורת הפקודה ופרטים על הכלים שזמינים דרך הכלי לניטור מכשירים מופיעים בתיעוד של הכלי לניטור מכשירים.