חדשות על מוצרים

גרסת הבטא הרביעית של Android 17

משך הקריאה: 4 דקות
Daniel Galpin
Developer Advocate

‫Android 17 הגיע לגרסת בטא 4, גרסת הבטא המתוזמנת האחרונה של מחזור הפרסום הזה, שהיא אבן דרך קריטית לתאימות האפליקציות ויציבות הפלטפורמה. גרסה Beta 4 מספקת את הסביבה כמעט סופית שאתם צריכים כדי לבדוק את האפליקציה, בין אם אתם משפרים את חוויית המשתמש באפליקציה, מוודאים שהרינדור מקצה לקצה חלק או משתמשים בממשקי ה-API החדשים ביותר. 

הכנת האפליקציות, הספריות, הכלים ומנועי המשחקים

אם אתם מפתחים Android SDK, ספרייה, כלי או מנוע משחקים ל-Android, חשוב מאוד שתכינו עכשיו את כל העדכונים הנדרשים כדי למנוע ממפתחי אפליקציות ומשחקים שמשתמשים במוצרים שלכם להיתקל בבעיות תאימות, וכדי לאפשר להם להשתמש בתכונות העדכניות ביותר של ה-SDK. חשוב להודיע למפתחים שמשתמשים במוצרים שלכם אם נדרשים עדכונים כדי לתמוך באופן מלא ב-Android 17.

Android17_Timeline_01_V02.png

הבדיקה כוללת התקנה של אפליקציית הייצור או של אפליקציית בדיקה שמשתמשת בספרייה או במנוע שלכם באמצעות Google Play או אמצעים אחרים במכשיר או באמולטור שמופעלים ב-Android 17 Beta 4. בודקים את כל התהליכים באפליקציה ומחפשים בעיות פונקציונליות או בעיות בממשק המשתמש. כל גרסה של Android כוללת שינויים בפלטפורמה שמשפרים את הפרטיות, האבטחה וחוויית המשתמש הכוללת. כדי להתמקד בבדיקות, כדאי לעיין בשינויים בהתנהגות שמשפיעים על אפליקציות שפועלות ב-Android 17 ועל אפליקציות שמיועדות ל-Android 17, כולל השינויים הבאים:

  • שינוי גודל במסכים גדולים: אחרי שתגדירו את גרסת היעד ל-Android 17, לא תוכלו יותר לבטל את ההגבלות על שמירת הכיוון, שינוי הגודל ויחס הגובה-רוחב במסכים גדולים.
  • טעינת קוד דינמית: אם האפליקציה מיועדת ל-Android 17 ואילך, ההגנה שנוספה ב-Android 14 על טעינת קוד דינמית (DCL) של קובצי DEX ו-JAR, חלה עכשיו גם על ספריות מקוריות. כל הקבצים המקוריים שנטענים באמצעות System.load() צריכים להיות מסומנים כקריאה בלבד. אחרת, המערכת תחזיר את השגיאה UnsatisfiedLinkError.
  • הפעלת CT כברירת מחדל: שקיפות אישורים (CT) מופעלת כברירת מחדל. (ב-Android 16, התכונה CT זמינה, אבל האפליקציות היו צריכות להצטרף).
  • הגנות על הרשת המקומית: באפליקציות שמטרגטות ל-Android 17 ואילך, הגישה לרשת המקומית חסומה כברירת מחדל. אם אפשר, כדאי לעבור לשימוש בכלי בחירה ששומרים על הפרטיות, ולהשתמש בהרשאה החדשה ACCESS_LOCAL_NETWORK לגישה רחבה ומתמשכת.
  • הגברת האבטחה של אודיו ברקע: החל מ-Android 17, מסגרת האודיו אוכפת הגבלות על אינטראקציות עם אודיו ברקע, כולל הפעלת אודיו, בקשות של מיקוד אודיו וממשקי API של שינוי עוצמת הקול. על סמך המשוב שקיבלנו מכם, ביצענו כמה שינויים מאז גרסת הבטא השנייה, כולל הגבלת הגישה ל-targetSDK בזמן האכיפה של FGS בשימוש, ופטור מאודיו של אזעקה. פרטים מלאים זמינים בהנחיות המעודכנות.

מגבלות הזיכרון של האפליקציה

מערכת Android מציגה מגבלות על הזיכרון של האפליקציות בהתבסס על זיכרון ה-RAM הכולל של המכשיר כדי ליצור סביבה יציבה ודטרמיניסטית יותר לאפליקציות ולמשתמשי Android. ב-Android 17, המגבלות מוגדרות באופן שמרני כדי ליצור קווי בסיס למערכת, במטרה לזהות דליפות זיכרון קיצוניות וחריגות אחרות לפני שהן גורמות לחוסר יציבות במערכת שמוביל לגמגום בממשק המשתמש, לניקוז מוגבר של הסוללה ולסגירה של אפליקציות. אנחנו צופים שההשפעה על רוב סשני האפליקציות תהיה מינימלית, אבל מומלץ לפעול לפי השיטות המומלצות הבאות לניהול הזיכרון, כולל הגדרת בסיס לזיכרון.

ביישום הנוכחי, getDescription ב- ApplicationExitInfo יכיל את המחרוזת MemoryLimiter אם האפליקציה שלכם הושפעה. אפשר גם להשתמש בפרופילים מבוססי-טריגר עם TRIGGER_TYPE_ANOMALY כדי לקבל קובצי dump של ה-heap שנאספים כשמגיעים למגבלת הזיכרון.

unnamed (2).png
המשימה LeakCanary בכלי הפרופיל של Android Studio

כדי לעזור לכם למצוא דליפות זיכרון, Android Studio Panda מוסיף שילוב של LeakCanary ישירות ב-Android Studio Profiler כמשימה ייעודית, עם הקשר בתוך ה-IDE ושילוב מלא עם קוד המקור.

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

טריגרים ליצירת פרופילים של חריגות באפליקציות

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

כדי לזהות בעיות בביצועי המערכת, כמו קריאות מוגזמות ל-binder ושימוש מוגזם בזיכרון, אפשר להשתמש בטריגר TRIGGER_TYPE_ANOMALY. כשאפליקציה חורגת ממגבלות הזיכרון שהוגדרו במערכת ההפעלה, טריגר האנומליה מאפשר למפתחים לקבל קובצי dump של ה-heap הספציפיים לאפליקציה, כדי לעזור להם לזהות ולתקן בעיות בזיכרון. בנוסף, במקרים של ספאם מוגזם ב-Binder, טריגר החריגה מספק תמונת מצב של דגימת ערימה בטרנזקציות של Binder.

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

    val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<ProfilingTrigger>()  
    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<ProfilingResult> { profilingResult ->
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 
    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)
}

קריפטוגרפיה פוסט-קוונטית (PQC) ב-Android Keystore

נוספה תמיכה ב-Android Keystore ב-ML-DSA (אלגוריתם חתימה דיגיטלית מבוסס-סריג מודול) בתקן NIST. במכשירים נתמכים, אפשר ליצור מפתחות ML-DSA ולהשתמש בהם כדי ליצור חתימות חסינות מפני פיצוח קוונטי, והכול בחומרה המאובטחת של המכשיר. מאגר המפתחות של Android חושף את וריאציות האלגוריתמים ML-DSA-65 ו-ML-DSA-87 דרך ממשקי ה-API של ארכיטקטורת ההצפנה הסטנדרטית של Java: ‏ KeyPairGenerator,‏ KeyFactory ו- Signature. פרטים נוספים מופיעים במסמכי התיעוד למפתחים.

KeyPairGenerator generator = KeyPairGenerator.getInstance(
        ML-DSA-65, "AndroidKeyStore");
generator.initialize(
        new KeyGenParameterSpec.Builder(
                my-key-alias,
                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
        .build());
KeyPair keyPair = generator.generateKeyPair();

איך מתחילים להשתמש ב-Android 17

אתם יכולים לרשום כל מכשיר Pixel נתמך כדי לקבל את עדכוני הבטא האלה של Android ועדכונים עתידיים דרך OTA. אם אין לכם מכשיר Pixel, אתם יכולים להשתמש בקובצי אימג' של מערכת 64 ביט עם אמולטור Android ב-Android Studio.

אם אתם משתתפים כרגע בתוכנית Android Beta, תוצע לכם גרסת בטא 4 לעדכון אלחוטי.

אתם יכולים להמשיך לדווח על בעיות ולשלוח בקשות לתכונות בדף המשוב. ככל שנקבל את המשוב מוקדם יותר, כך נוכל לשלב אותו בעבודה שלנו על הגרסה הסופית.

כדי ליהנות מחוויית הפיתוח הטובה ביותר עם Android 17, מומלץ להשתמש בגרסת הטרום-השקה (Preview) העדכנית של Android Studio (Panda). אחרי ההגדרה, הנה כמה דברים שכדאי לעשות:

  • קומפילציה מול ה-SDK החדש, בדיקה בסביבות CI ודיווח על בעיות בכלי המעקב שלנו בדף המשוב.
  • כדאי לבדוק את התאימות של האפליקציה הנוכחית, לברר אם השינויים ב-Android 17 משפיעים עליה, להתקין אותה במכשיר או באמולטור עם Android 17 ולהריץ עליה בדיקות מקיפות.

אנחנו נעדכן את תמונות המערכת של גרסאות טרום-השקה/בטא ואת ה-SDK באופן קבוע במהלך מחזור ההפצה של Android 17. אחרי שתתקינו גרסת בטא, תקבלו באופן אוטומטי עדכונים עתידיים דרך האוויר לכל גרסאות התצוגה המקדימה וגרסאות הבטא הבאות.

מידע מלא זמין באתר למפתחים של Android 17.

הצטרפות לשיחה

המשוב שלכם הוא הנכס הכי חשוב שלנו. אם אתם משתמשים ראשונים בערוץ Canary או מפתחי אפליקציות שבודקים את גרסת הבטא 4, כדאי לכם להצטרף לקהילות שלנו ולשלוח משוב. אנחנו מקשיבים.

נכתב על ידי:

להמשך הקריאה