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