Android 17 הגיעה לגרסת בטא 4, גרסת הבטא האחרונה שמתוכננת למחזור ההשקה הזה. זו אבן דרך קריטית לתאימות של אפליקציות וליציבות של הפלטפורמה. גרסת בטא 4 מספקת את הסביבה הכמעט סופית שאתם צריכים כדי לבדוק את האפליקציה, בין אם אתם משפרים את חוויית המשתמש באפליקציה, מוודאים שהרינדור מקצה לקצה פועל בצורה חלקה או משתמשים בממשקי ה-API החדשים ביותר.
הכינו את האפליקציות, הספריות, הכלים ומנועי המשחקים שלכם!
אם אתם מפתחים ערכת Android SDK, ספרייה, כלי או מנוע משחק, חשוב שתכינו עכשיו את כל העדכונים הנדרשים כדי למנוע חסימה של מפתחי האפליקציות והמשחקים שלכם בהמשך בגלל בעיות תאימות, ולאפשר להם לטרגט את התכונות העדכניות ביותר של ה-SDK. אם נדרשים עדכונים כדי לתמוך באופן מלא ב-Android 17, צריך להודיע למפתחים במורד הזרם.
כדי לבדוק את האפליקציה, צריך להתקין את האפליקציה בסביבת הייצור או אפליקציית בדיקה שמשתמשת בספרייה או במנוע שלכם באמצעות Google Play או אמצעים אחרים במכשיר או באמולטור שפועלת בהם גרסת Android 17 בטא 4. עוברים על כל התהליכים באפליקציה ומחפשים בעיות פונקציונליות או בעיות בממשק המשתמש. כל גרסה של Android כוללת שינויים בפלטפורמה שמשפרים את הפרטיות, האבטחה וחוויית המשתמש הכוללת. כדי למקד את הבדיקות, כדאי לעיין בשינויים בהתנהגות שמשפיעים על אפליקציות שפועלות ב- ומטרגטות את Android 17, כולל:
- שינוי גודל במסכים גדולים: אחרי שמטרגטים את Android 17, אי אפשר יותר לבטל את ההגבלות על כיוון, שינוי גודל ויחס גובה-רוחב במסכים גדולים.
- טעינת קוד דינמי: אם האפליקציה שלכם מטרגטת את Android 17 ומעלה, ההגנה של טעינת קוד דינמי (DCL) בטוחה יותר שהוצגה ב-Android 14 לקובצי DEX ו-JAR, חלה עכשיו גם על ספריות Native. כל הקבצים המקוריים שנטענים באמצעות System.load() חייבים להיות מסומנים כקבצים לקריאה בלבד. אחרת, המערכת תציג את השגיאה UnsatisfiedLinkError.
- הפעלת CT כברירת מחדל: שקיפות אישורים (CT) מופעלת כברירת מחדל. (ב-Android 16, שקיפות האישורים זמינה, אבל האפליקציות צריכות להביע הסכמה.)
- אמצעי הגנה על הרשת המקומית: באפליקציות שמטרגטות ל-Android בגרסה 17 ואילך, הגישה לרשת המקומית חסומה כברירת מחדל. אם אפשר, עברו להשתמש בבוררים ששומרים על הפרטיות, והשתמשו בהרשאה החדשה ACCESS_LOCAL_NETWORK כדי לקבל גישה רחבה וקבועה.
- הקשחת אודיו ברקע: החל מ-Android 17, מסגרת האודיו אוכפת הגבלות על אינטראקציות של אודיו ברקע, כולל הפעלת אודיו, בקשות למיקוד אודיו וממשקי API לשינוי עוצמת הקול. על סמך המשוב שלכם, ביצענו כמה שינויים מאז גרסת בטא 2, כולל אכיפת שירות חזיתי (FGS) בזמן השימוש ב-targetSDK והחרגת אודיו של התראות. פרטים מלאים זמינים בהנחיות המעודכנות.
מגבלות הזיכרון של האפליקציה
כדי ליצור סביבה יציבה ודטרמיניסטית יותר לאפליקציות ולמשתמשי Android, אנחנו משיקים ב-Android מגבלות זיכרון לאפליקציות שמבוססות על נפח ה-RAM הכולל של המכשיר. ב-Android 17, המגבלות מוגדרות באופן שמרני כדי לקבוע את ערכי הבסיס של המערכת, תוך התמקדות בדליפות זיכרון קיצוניות ובחריגות אחרות לפני שהן גורמות לחוסר יציבות בכל המערכת, שמוביל לבעיות בממשק המשתמש, לניצול גבוה יותר של הסוללה ולסגירת אפליקציות. אנחנו צופים שההשפעה על רוב הסשנים באפליקציה תהיה מינימלית, אבל מומלץ לפעול לפי השיטות המומלצות הבאות לניהול הזיכרון, כולל הגדרת בסיס להשוואה של הזיכרון.
בהטמעה הנוכחית, getDescription ב-ApplicationExitInfo יכיל את המחרוזת "MemoryLimiter" אם האפליקציה שלכם הושפעה. אפשר גם להשתמש בפרופיילינג מבוסס-טריגר עם TRIGGER_TYPE_ANOMALY כדי לקבל תמונות מצב של הזיכרון שנאספות כשמגיעים למגבלת הזיכרון.
כדי לעזור לכם למצוא דליפות זיכרון, ב-Android Studio Panda נוסף שילוב של LeakCanary ישירות ב-Android Studio Profiler כמשימה ייעודית, בהקשר של סביבת הפיתוח המשולבת (IDE) ובשילוב מלא עם קוד המקור שלכם.
ככל שהזיכרון שבשימוש קטן יותר, כך הביצועים חלקים יותר, חיי הסוללה ארוכים יותר וחוויית השימוש טובה יותר בכל סוגי המכשירים. בואו נבנה יחד עתיד מהיר ואמין יותר לסביבה העסקית של Android.
טריגרים ליצירת פרופילים של חריגות באפליקציות
ב-Android יש שירות לזיהוי אנומליות במכשיר, שעוקב אחרי התנהגויות שצורכות הרבה משאבים ורגרסיות פוטנציאליות בתאימות. השירות הזה משולב עם ProfilingManager, ומאפשר לאפליקציה לקבל פריטי מידע של פרופילים שמופעלים על ידי אירועים ספציפיים שהמערכת מזהה.
אפשר להשתמש בטריגר TRIGGER_TYPE_ANOMALY כדי לזהות בעיות בביצועי המערכת, כמו קריאות מוגזמות ל-Binder ושימוש מוגזם בזיכרון. כשאפליקציה חורגת ממגבלות הזיכרון שמוגדרות במערכת ההפעלה, הטריגר של החריגה מאפשר למפתחים לקבל תמונות מצב של הזיכרון שספציפיות לאפליקציה, כדי לעזור להם לזהות ולתקן בעיות בזיכרון. בנוסף, במקרה של ספאם מוגזם ב-Binder, הטריגר של האנומליה מספק תמונת מצב של דגימת מחסנית בטרנזקציות של Binder.
הקריאה החוזרת הזו ל-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 נוספה תמיכה ב-ML-DSA (אלגוריתם חתימה דיגיטלית מבוסס רשת מודולים) בתקן NIST. במכשירים נתמכים, אתם יכולים ליצור מפתחות ML-DSA ולהשתמש בהם כדי ליצור חתימות חסינות מפני פיצוח קוונטי, כולן בחומרה המאובטחת של המכשיר. מאגר המפתחות של Android חושף את גרסאות האלגוריתם ML-DSA-65 ו-ML-DSA-87 דרך ממשקי ה-API הרגילים של Java Cryptographic Architecture: 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 בטא באופן אלחוטי. אם אין לכם מכשיר 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, כדאי לכם להצטרף לקהילות שלנו ולשלוח משוב. אנחנו מקשיבים.
-
חדשות על המוצרהיום, במפגש של מפתחי Android, אנחנו מכריזים על הזמינות הרחבה של הרבה כלים וממשקי API שנועדו להסיר את החיכוך היומיומי ולתת לכם יותר גמישות ליצור אפליקציות Android נהדרות.
Matthew McCullough • משך הקריאה: 4 דקות -
חדשות על המוצרגרסת Android Studio Rabbit 2 יציבה ומוכנה לשימוש בסביבת הייצור. הגרסה הזו כוללת תכונות חשובות שמשפרות את הפיתוח, כמו Bring Your Own Agent, תכונות חדשות של אמולטור XR, עדכון של LeakCanary, כלי חדש לניהול מיומנויות של סוכנים, סקר קוד באמצעות AI ועוד.
Matthew Warner • משך הקריאה: 3 דקות -
חדשות על המוצראפליקציות שמטרגטות את הגרסה הבאה של Android לא יוכלו יותר לכתוב ישירות לאנשי קשר באמצעות ההרשאה WRITE_CONTACTS.
Roxanna Aliabadi Walker • משך הקריאה: 6 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?