לעמוד בדרישה לגבי רמת ה-API לטירגוט של Google Play

כשמעלים קובץ APK, הוא צריך לעמוד בדרישות של Google Play בנושא רמת ה-API לטירגוט.

החל מ-31 באוגוסט 2026:

  • אפליקציות חדשות ועדכוני אפליקציות חייבים לטרגט ל-Android 16 (רמת API‏ 36) ומעלה כדי להישלח אל Google Play. היוצאים מן הכלל הם אפליקציות ל-Wear OS ול-Android Automotive OS, שחייבות לטרגט ל-Android 15 (רמת API‏ 35) ומעלה, ואפליקציות ל-Android TV ול-Android XR, שחייבות לטרגט ל-Android 14 (רמת API‏ 34) ומעלה.
  • אפליקציות קיימות צריכות לטרגט ל-Android 15 (רמת API‏ 35) ומעלה כדי להמשיך להיות זמינות למשתמשים חדשים במכשירים שפועלת בהם גרסת Android OS גבוהה יותר מרמת ה-API לטירגוט של האפליקציה. אפליקציות שמטרגטות ל-Android 14 (רמת API ‏34) או לגרסאות קודמות, כולל Android 13 (רמת API ‏33) או לגרסאות קודמות ל-Wear OS,‏ Android TV ו-Android XR, ו-Android 12 (רמת API ‏31) או לגרסאות קודמות ל-Android Automotive OS, יהיו זמינות רק במכשירים שפועלת בהם מערכת Android OS באותה רמה או ברמה נמוכה יותר מרמת ה-API לטירגוט של האפליקציה.

אם נדרש זמן נוסף כדי לעדכן את האפליקציה, אפשר לבקש הארכה עד 1 בנובמבר 2026. בהמשך השנה תוכלו לגשת לטפסים של תוספים לאפליקציה ב-Play Console.

היוצאים מן הכלל לדרישות האלה כוללים:

  • אפליקציות פרטיות באופן קבוע שמוגבלות למשתמשים בארגון ספציפי ומיועדות להפצה פנימית בלבד.

למה כדאי לטרגט ערכות SDK חדשות יותר?

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

הגדרת האפליקציה לטירגוט רמת API עדכנית מבטיחה שהמשתמשים יוכלו ליהנות מהשיפורים האלה, ושהאפליקציה עדיין תוכל לפעול בגרסאות Android ישנות יותר. טירגוט רמת API עדכנית מאפשר לאפליקציה שלכם לנצל את התכונות האחרונות של הפלטפורמה כדי לשמח את המשתמשים. בנוסף, החל מ-Android 10 (רמת API‏ 29), משתמשים רואים אזהרה כשהם מפעילים אפליקציה בפעם הראשונה אם האפליקציה מטרגטת ל-Android 5.1 (רמת API‏ 22) או לגרסאות קודמות.

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

מעבר מ-Android מגרסה 12 ואילך (רמת API ‏31) לגרסה עדכנית יותר

כדי לעדכן את האפליקציה כך שתטרגט לגרסה עדכנית יותר של Android, צריך לעיין ברשימת שינויי ההתנהגות הרלוונטית:

מעבר מ-Android 11 (רמת API‏ 30) ל-Android 12 (רמת API‏ 31)

אבטחה והרשאות

חוויית משתמש

  • התראות בהתאמה אישית: התראות עם תצוגות תוכן בהתאמה אישית לא יתפסו יותר את כל אזור ההתראות. במקום זאת, המערכת תחיל תבנית רגילה. התבנית הזו מבטיחה שההתראות המותאמות אישית יקבלו את אותו עיצוב כמו התראות אחרות בכל המצבים. ההתנהגות הזו כמעט זהה להתנהגות של Notification.DecoratedCustomViewStyle.
  • שינויים באימות של קישורי עומק לאפליקציות ב-Android: כשמשתמשים באימות של קישורי עומק לאפליקציות ב-Android, צריך לוודא שמסנני ה-Intent כוללים את הקטגוריה BROWSABLE ותומכים בסכימת HTTPS.

ביצועים

  • הגבלות הפעלה של שירותים שפועלים בחזית: כדי לטרגט ל-Android 12 ומעלה, האפליקציה לא יכולה להפעיל שירותים שפועלים בחזית בזמן שהיא פועלת ברקע, למעט כמה מקרים מיוחדים. אם אפליקציה מנסה להפעיל שירות שפועל בחזית בזמן שהיא פועלת ברקע, מתרחש חריג (למעט כמה מקרים מיוחדים).

    כדאי להשתמש ב-WorkManager כדי לתזמן ולהתחיל משימה דחופה בזמן שהאפליקציה פועלת ברקע. כדי להשלים פעולות רגישות לזמן שהמשתמש מבקש, צריך להפעיל שירותים שפועלים בחזית במסגרת משימה ברגע מדויק.

  • הגבלות על הפעלת אפליקציה מהתראה: כשמשתמשים מקישים על התראות, חלק מהאפליקציות מגיבות בהפעלת רכיב אפליקציה שמתחיל את הפעילות שהמשתמש רואה ומבצע איתה אינטראקציה. רכיב האפליקציה הזה נקרא 'טרמפולינה של התראות'.

    אסור לאפליקציות להפעיל פעילויות משירותים או ממקלטי שידורים שמשמשים כפלטפורמות להפעלת התראות. אחרי שהמשתמש מקיש על התראה או על לחצן פעולה בתוך ההתראה, האפליקציה לא יכולה להתקשר אל startActivity() בתוך שירות או מקלט שידור.

כאן אפשר לראות את כל השינויים שמשפיעים על אפליקציות שמטרגטות ל-Android 12 (רמת API‏ 31).

מעבר מגרסה נמוכה יותר מ-Android 11 (רמת API‏ 30)

בוחרים את הגרסה של Android שממנה רוצים להעביר את הנתונים:

מעבר ל-Android 5 (רמת API‏ 21)

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

ממשיכים לפעול לפי ההוראות שבקטע הבא.

מעבר ל-Android 6 (רמת API ‏23)

השיקולים הבאים רלוונטיים לאפליקציות שמטרגטות ל-Android 6.0 ולגרסאות מתקדמות יותר של הפלטפורמה:

  • הרשאות בזמן ריצה

    • הרשאות מסוכנות ניתנות רק בזמן הריצה. ממשקי המשתמש שלכם צריכים לספק אפשרויות למתן ההרשאות האלה.

    • בכל מקום שאפשר, חשוב לוודא שהאפליקציה מוכנה לטפל בדחייה של בקשות הרשאה. לדוגמה, אם משתמש דוחה בקשה לגישה ל-GPS במכשיר, צריך לוודא שיש לאפליקציה דרך אחרת להמשיך.

רשימה מלאה של השינויים שהוכנסו ב-Android 6.0 (רמת API ‏23) מופיעה בדף שינויים בהתנהגות של גרסת הפלטפורמה הזו.

ממשיכים לפעול לפי ההוראות שבקטע הבא.

מעבר ל-Android 7 (רמת API‏ 24)

השיקולים הבאים רלוונטיים לאפליקציות שמיועדות ל-Android 7.0 ולגרסאות מתקדמות יותר של הפלטפורמה:

  • נמנום ואפליקציה במצב המתנה

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

    כשהמכשיר במצב נמנום ובמצב אפליקציה במצב המתנה, המערכת מתנהגת כך:

  • שינויים בהרשאות

    • המערכת מגבילה את הגישה לספריות פרטיות של אפליקציות.
    • חשיפת file:// URI מחוץ לאפליקציה מפעילה FileUriExposedException. אם אתם צריכים לשתף קבצים מחוץ לאפליקציה, אתם צריכים להטמיע את FileProvider
  • המערכת לא מאפשרת לקשר לספריות שאינן NDK.

רשימה מלאה של השינויים שהוכנסו ב-Android 7.0 (רמת API‏ 24) מופיעה בדף שינויים בהתנהגות של גרסת הפלטפורמה הזו.

ממשיכים לפעול לפי ההוראות שבקטע הבא.

מעבר ל-Android 8 (רמת API‏ 26)

השיקולים הבאים רלוונטיים לאפליקציות שמטרגטות את Android 8.0 וגרסאות גבוהות יותר של הפלטפורמה:

רשימה מלאה של השינויים שהוכנסו ב-Android 8.0 (רמת API‏ 26) מופיעה בדף שינויים בהתנהגות של גרסת הפלטפורמה הזו.

מעבר מ-Android 8‏ (API 26) ל-Android 9‏ (API 28)

רשימה מלאה של השינויים שהוכנסו ב-Android 9.0 (רמת API‏ 28) זמינה במאמר בנושא שינויים בהתנהגות.

מעבר מ-Android 9 (רמת API‏ 28) ל-Android 10 (רמת API‏ 29)

  • התראות עם Intent במסך מלא
    • צריך לבקש את ההרשאה הרגילה USE_FULL_SCREEN_INTENT (לא הרשאה בתחילת ההפעלה).
  • תמיכה במכשירים מתקפלים ובמכשירים עם מסך גדול
    • עכשיו יכולות להיות כמה פעילויות במצב 'הפעלה מחדש' בו-זמנית, אבל רק אחת מהן נמצאת בפוקוס.
      • השינוי הזה ישפיע על ההתנהגות של onResume() ושל onPause().
      • מושג חדש במחזור החיים של האפליקציה: 'הפעלה מחדש של האפליקציה העליונה'. אפשר לזהות את הפעולה הזו באמצעות הרשמה ל-onTopResumedActivityChanged().
        • רק פעילות אחת יכולה להיות 'הפעילות העליונה שהופעלה מחדש'.
    • כשהערך של resizeableActivity מוגדר ל-false, אפליקציות יכולות לציין בנוסף את minAspectRatio שמוסיף באופן אוטומטי מסגרת שחורה לאפליקציה ביחסי גובה-רוחב צרים יותר.
  • שינויים בפרטיות

מעבר מ-Android 10 (רמת API‏ 29) ל-Android 11 (רמת API‏ 30)

רשימה מלאה של השינויים שהוצגו ב-Android 11 (רמת API 30) מופיעה בדף שינויים בהתנהגות.

כדי להמשיך לעדכן לגרסה 31 של API, פועלים לפי ההוראות בקטע הקודם.

עדכון האפליקציות

במהלך עדכון רמת ה-API לטירגוט של האפליקציות, מומלץ להטמיע תכונות עדכניות של הפלטפורמה כדי לחדש את האפליקציות ולשפר את חוויית המשתמש.

  • כדאי להשתמש ב-CameraX, שנמצאת בשלב הבטא, כדי להפיק את המרב מהשימוש במצלמה.
  • אתם יכולים להשתמש ברכיבי Jetpack כדי לפעול לפי שיטות מומלצות, להימנע מכתיבת קוד שחוזר על עצמו (boilerplate) ולפשט משימות מורכבות, וכך להתמקד בקוד שחשוב לכם.
  • אפשר להשתמש ב-Kotlin כדי לכתוב אפליקציות טובות יותר מהר יותר, עם פחות קוד.
  • חשוב לוודא שאתם פועלים בהתאם לדרישות ולשיטות המומלצות בנושא פרטיות.
  • הוספת תמיכה בעיצוב כהה לאפליקציות.
  • הוספת תמיכה בניווט באמצעות תנועות לאפליקציות.
  • מעבירים את האפליקציה מ-Google Cloud Messaging ‏ (GCM) לגרסה העדכנית ביותר של העברת הודעות בענן ב-Firebase.
  • כדאי להשתמש בניהול חלונות מתקדם.

בדיקה ועדכון של ערכות ה-SDK והספריות

מוודאים שיחסי התלות ב-SDK של צד שלישי תומכים ב-API 31: חלק מספקי ה-SDK מפרסמים את זה במניפסט שלהם, ואחרים דורשים בדיקה נוספת. אם אתם משתמשים ב-SDK שלא תומך ב-API 31, חשוב לתת עדיפות לעבודה עם ספק ה-SDK כדי לפתור את הבעיה.

בנוסף, חשוב לדעת שtargetSdkVersion עשוי להגביל את הגישה לספריות פרטיות של פלטפורמת Android. פרטים נוספים מופיעים במאמר NDK Apps Linking to Platform Libraries.

כדאי גם לבדוק אם יש הגבלות בגרסה של ספריית התמיכה של Android שבה אתם משתמשים. כמו תמיד, אתם צריכים לוודא שיש תאימות בין הגרסה הראשית של ספריית התמיכה של Android לבין compileSdkVersion של האפליקציה.

מומלץ לבחור targetSdkVersion שקטן או שווה לגרסה הראשית של Support Library. מומלץ לעדכן לספריית תמיכה תואמת עדכנית כדי ליהנות מהתכונות העדכניות של התאימות ומהתיקונים של הבאגים.

בדיקת האפליקציה

אחרי שמעדכנים את רמת ה-API והתכונות של האפליקציה בהתאם, מומלץ לבדוק כמה תרחישי שימוש מרכזיים. ההצעות הבאות הן לא רשימה מלאה, אבל הן נועדו לעזור לכם בתהליך הבדיקה. אנחנו ממליצים לבדוק את הדברים הבאים:

  • שהאפליקציה עוברת קומפילציה ל-API ברמה 29 ללא שגיאות או אזהרות.
  • האפליקציה כוללת אסטרטגיה למקרים שבהם המשתמש דוחה בקשות להרשאות, ומציגה למשתמש בקשות להרשאות. לשם כך:

    • עוברים למסך פרטי האפליקציה של האפליקציה ומשביתים כל הרשאה.
    • פותחים את האפליקציה ומוודאים שהיא לא קורסת.
      • מבצעים בדיקות של תרחישי שימוש מרכזיים ומוודאים שההרשאות הנדרשות מוצגות שוב.
  • האפליקציה מטפלת במצב נמנום עם תוצאות צפויות וללא שגיאות.

    • באמצעות adb, מעבירים את מכשיר הבדיקה למצב שינה בזמן שהאפליקציה פועלת.
      • בודקים תרחישי שימוש שמפעילים הודעות של העברת הודעות בענן ב-Firebase.
      • בודקים תרחישים לדוגמה שמשתמשים בהתראות או במשימות.
      • צריך לבטל את כל התלות בשירותי רקע.
    • העברת האפליקציה למצב המתנה (App Standby)
      • בודקים תרחישי שימוש שמפעילים הודעות של העברת הודעות בענן ב-Firebase.
      • בודקים את כל תרחישי השימוש שבהם נעשה שימוש בהתראות.
  • טיפול בתמונות או בסרטונים חדשים שצולמו

  • האפליקציה מטפלת בשיתוף קבצים עם אפליקציות אחרות – בודקים כל תרחיש שימוש שבו נתוני קבצים משותפים עם אפליקציה אחרת (אפילו אפליקציה אחרת של אותו מפתח)

    • בודקים שהתוכן גלוי באפליקציה השנייה ולא גורם לקריסות.

מידע נוסף

כדאי להירשם לקבלת הודעות אימייל ב-Google Play Console כדי שנוכל לשלוח לכם עדכונים והודעות חשובים מ-Android ומ-Google Play, כולל הניוזלטר החודשי שלנו לשותפים.