Google Play משתמשת ב<uses-sdk>
מאפיינים שהוצהרו בקובץ המניפסט של האפליקציה כדי לסנן את האפליקציה לפי מכשירים
שלא עומדות בדרישות הגרסה של הפלטפורמה. לפני שמגדירים את האפשרויות האלה
חשוב לוודא שאתם מבינים
מסננים ב-Google Play.
- תחביר:
<uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" />
- בתוך:
<manifest>
- תיאור:
ההגדרה הזאת מאפשרת לבטא את התאימות של האפליקציה לאחת או יותר מהגרסאות של פלטפורמת Android באמצעות מספר שלם ברמת ה-API. מתבצעת השוואה בין רמת ה-API שהאפליקציה מבוטאת רמת ה-API של מערכת Android נתונה, שיכולה להשתנות בין מכשירי Android שונים.
למרות השם שלו, הרכיב הזה משמש לציון רמת ה-API, לא מספר הגרסה של ערכת הכלים לפיתוח תוכנה (SDK) או פלטפורמת Android. רמת ה-API היא תמיד מספר שלם יחיד. אי אפשר להסיק את רמת ה-API מ: מספר הגרסה של Android שמשויך אליו. לדוגמה, הוא לא זהה את הגרסה הראשית או את הסכום של הגרסאות הראשיות וה המשניות.
קראו את המסמך גם על ניהול גרסאות של האפליקציות.
- :
-
android:minSdkVersion
- מספר שלם שמציין את רמת ה-API המינימלית הנדרשת
להפעלת האפליקציה. מערכת Android מונעת מהמשתמש להתקין
את האפליקציה אם רמת ה-API של המערכת נמוכה מהערך שמצוין
את המאפיין הזה. תמיד צריך להצהיר על המאפיין הזה.
זהירות: אם לא הצהרתם על כך , המערכת מניחה שערך ברירת המחדל הוא '1', שמציין תואמת לכל הגרסאות של Android. אם לא, ולא הצהרת על
minSdkVersion
הנכון, אז כאשר היא מותקנת במערכת עם רמת API לא תואמת, האפליקציה קורסת במהלך זמן הריצה כשמנסים לגשת לממשקי ה-API שלא זמינים. עבור לכן, הקפידו להצהיר על רמת ה-API המתאימה מאפייןminSdkVersion
. android:targetSdkVersion
- מספר שלם שמציין את רמת ה-API שהאפליקציה מטרגטת. אם לא מוגדר, ברירת המחדל
שווה לערך שניתן ל-
minSdkVersion
.המאפיין הזה מודיע למערכת שבדקתם מול גרסת היעד, וגם המערכת לא מאפשרת התנהגות תאימות כלשהי כדי לשמור על התאימות של האפליקציה להעברה. עם גרסת היעד. האפליקציה עדיין יכולה לפעול בגרסאות נמוכות יותר (עד
minSdkVersion
).ככל שמערכת Android מתפתחת בכל גרסה חדשה, יכול להיות שחלק מההתנהגויות ואפילו המראה עשויים להשתנות. עם זאת, אם רמת ה-API של הפלטפורמה גבוהה יותר מהגרסה שהוצהרה על ידי
targetSdkVersion
של האפליקציה, המערכת יכולה להפעיל התנהגויות תאימות כדי שהאפליקציה שלך ימשיך לפעול כצפוי. אפשר להשבית תאימות כזו להתנהגויות על ידי ציוןtargetSdkVersion
להתאמה ל-API רמת הפלטפורמה שבה הוא פועל.לדוגמה, הגדרת הערך "11" ומעלה מאפשרת למערכת להחיל את עיצוב ברירת המחדל של Holo על האפליקציה שלך בזמן הרצה ב-Android 3.0 או גבוהה יותר וגם תשבית את המסך מצב תאימות בהפעלה במסכים גדולים יותר, כי תמיכה ברמת API 11 באופן לא מפורש תומך במסכים גדולים יותר.
יש הרבה התנהגויות תאימות שהמערכת יכולה להפעיל, על סמך הערך שהגדרתם למאפיין הזה. חלק מההתנהגויות האלה מתוארות על ידי גרסאות הפלטפורמה התואמות בהפניה
Build.VERSION_CODES
.כדי לשמור על האפליקציה במקביל לכל גרסה של Android, צריך להגדיל את הערך של המאפיין הזה כך שיתאים לרמת ה-API האחרונה, ולאחר מכן לבדוק באופן יסודי את האפליקציה את גרסת הפלטפורמה המתאימה.
הופעלה ב: API ברמת 4
- מספר שלם שמציין את רמת ה-API המקסימלית שבה האפליקציה
שמיועד לפעול.
ב-Android בגרסאות 1.5, 1.6, 2.0 ו-2.0.1, המערכת בודקת את הערך של זה בזמן התקנת אפליקציה ובזמן אימות מחדש של האפליקציה לאחר עדכון מערכת. בכל מקרה, אם האפליקציה המאפיין
maxSdkVersion
נמוך מרמת ה-API שמשמשת את המערכת עצמה לא מאפשרת לאפליקציה להתקין. במקרה של אימות מחדש לאחר עדכון המערכת, הפעולה הזו תתבצע מסיר את האפליקציה שלך מהמכשיר.כדי להמחיש איך המאפיין הזה יכול להשפיע על האפליקציה אחרי שהמערכת למשל, נבחן את הדוגמה הבאה:
בקשה שמצהירה על
maxSdkVersion="5"
המניפסט פורסם ב-Google Play. משתמש שבמכשיר שלו פועלת מערכת Android 1.6 (רמת API 4) הורדה והתקנה של האפליקציה. אחרי כמה שבועות, מקבל עדכון מערכת אלחוטי ל-Android 2.0 (רמת API 5). אחרי מותקן, המערכת בודקת אתmaxSdkVersion
ומאמת אותו מחדש בהצלחה.תפעל כרגיל. עם זאת, זמן מה לאחר מכן, המכשיר יקבל עדכון מערכת נוסף, הפעם ל-Android 2.0.1 (רמת API 6). אחרי המערכת לא יכולה עוד לאמת מחדש את האפליקציה מפני רמת ה-API (6) שלו גבוהה עכשיו מהרמה המקסימלית הנתמכת על ידי האפליקציה (5). המערכת מונעת את החשיפה של האפליקציה למשתמש, לאחר ההסרה מהמכשיר.
אזהרה: לא מומלץ להצהיר על זה . ראשית, אין צורך להגדיר את המאפיין כאמצעי חסימה פריסה של האפליקציה שלך בגרסאות חדשות של פלטפורמת Android, שוחררו. מתוכננות, גרסאות חדשות של הפלטפורמה בתאימות לאחור. האפליקציה שלך פועלת בצורה תקינה בגרסאות חדשות, בתנאי שהוא משתמש רק בממשקי API רגילים ופועל בהתאם לשיטות המומלצות לפיתוח. שנית, במקרים מסוימים, הצהרה על המאפיין יכולה להוביל האפליקציה שלך תוסר מהמשתמשים אחרי מערכת לרמת API גבוהה יותר. רוב המכשירים שבהם האפליקציה עשויות להיות מותקנות, לקבל עדכוני מערכת תקופתיים באוויר, כך מומלץ לשקול את ההשפעה שלהם על האפליקציה לפני ההגדרה .
הופעלה ב: API ברמת 4
בחלק מהגרסאות של Android (מעבר ל-Android 2.0.1) אי אפשר לבדוק או לאכוף את המאפייןmaxSdkVersion
במהלך או אימות מחדש. Google Play תמשיך להשתמש במאפיין עם זאת, כשמציגים למשתמשים אפליקציות שזמינות להוריד.
- הושקו ב:
- רמת API 1
מהי רמת ה-API?
רמת ה-API היא ערך מסוג מספר שלם שמזהה באופן ייחודי את framework API שהוצעה על ידי גרסה של פלטפורמת Android.
פלטפורמת Android מספקת ממשק API של framework שבו אפליקציות יכולות להשתמש כדי יוצרים אינטראקציה עם מערכת Android הבסיסית. ה-framework API מורכב מהרכיבים הבאים:
- קבוצה בסיסית של חבילות ומחלקות
- קבוצת רכיבים ומאפיינים של XML להצהרה על קובץ מניפסט
- קבוצת רכיבים ומאפייני XML להצהרה על משאבים וגישה למשאבים
- קבוצה של כוונות
- קבוצת הרשאות שאפליקציות יכולות לבקש, וגם הרשאות פעולות אכיפה שכלולות במערכת
כל גרסה עוקבת של פלטפורמת Android יכולה לכלול עדכונים ממשק ה-API של מסגרת האפליקציה ל-Android שהיא מספקת.
העדכונים ל-framework API תוכננו כך שה-API החדש יישאר שתואמים לגרסאות קודמות של ה-API. כלומר, רוב השינויים בממשק ה-API נוספים ומוסיפים פונקציונליות חדשה או מחליפה. חלקים מה-API שודרגו, החלקים שהוחלפו ישנים הוצאו משימוש אבל לא הוסרו, כך שאפליקציות קיימות עדיין יכולות להשתמש בהן.
במספר קטן מאוד של מקרים, חלקים מה-API משתנים או מוסרים, אם כי בדרך כלל שינויים כאלה נדרשות רק כדי לתמוך באיכות ה-API ובאבטחת האפליקציה או המערכת. הכול חלקי API אחרים מגרסאות קודמות יועברו ללא שינוי.
ה-framework API שפלטפורמת Android מספקת מצוין באמצעות מספר שלם שנקרא רמת API. כל גרסה של פלטפורמת Android תומכת רמת API אחת בלבד, אם כי התמיכה בכל רמות ה-API המוקדמות היא משתמעת (עד לרמת API 1). הגרסה הראשונית של פלטפורמת Android שסופקה רמת API 1, והגרסאות הבאות העלו את רמת ה-API.
הטבלה הבאה מציינת את רמת ה-API שנתמכת על ידי כל גרסה של פלטפורמת Android. לקבלת מידע על המספרים היחסיים של מכשירים מפעילים כל אחת מהגרסאות. כדאי לעיין במרכז הבקרה להפצה.
שימושים ברמת API ב-Android
למזהה ברמת ה-API יש תפקיד חשוב שעוזר להבטיח לכל המשתמשים ולמפתחי אפליקציות:
- היא מאפשרת לפלטפורמת Android לתאר את הגרסה המקסימלית של framework API שהיא תומכת בה.
- היא מאפשרת לאפליקציות לתאר את הגרסה הקודמת של ה-API של framework נדרשות.
- הוא מאפשר למערכת לנהל משא ומתן על ההתקנה של האפליקציות כדי שלא יותקנו אפליקציות שאינן תואמות לגרסאות.
כל גרסה של פלטפורמת Android מאחסנת את מזהה רמת ה-API שלה באופן פנימי, ב למערכת Android עצמה.
האפליקציות יכולות להשתמש ברכיב מניפסט שמסופק על ידי ה-framework
API – <uses-sdk>
– לתיאור ממשק ה-API המינימלי והמקסימלי
שבהן הם יכולים לפעול, וכן את רמת ה-API המועדפת
שהם נועדו לתמוך. הרכיב מציע שלושה מאפיינים עיקריים:
android:minSdkVersion
: רמת ה-API המינימלית שבהם האפליקציה יכולה לפעול. ערך ברירת המחדל הוא '1'.android:targetSdkVersion
: רמת ה-API שבה האפליקציה מיועדת לפעול. במקרים מסוימים, הפעולה הזו מאפשרת להשתמש באלמנטים או בהתנהגויות של מניפסט שהוגדרו ביעד ברמת ה-API, במקום להגביל את השימוש רק באלה שהוגדרו לרמת ה-API המינימלית.android:maxSdkVersion
: רמת ה-API המקסימלית שבהם האפליקציה יכולה לפעול. חשוב: יש לקרוא את מידע על המאפיין הזה בדף לפני השימוש בו.
לדוגמה, כדי לציין את רמת ה-API המינימלית של אפליקציה
כדי להריץ את האפליקציה, היא כוללת במניפסט
רכיב <uses-sdk>
עם android:minSdkVersion
. הערך של android:minSdkVersion
הוא המספר השלם
שתואם לרמת ה-API של הגרסה המוקדמת ביותר של פלטפורמת Android
שבהם האפליקציה יכולה לפעול.
כשהמשתמש מנסה להתקין אפליקציה, או במהלך אימות מחדש של אפליקציה
לאחר עדכון מערכת, מערכת Android תבדוק קודם את
מאפייני <uses-sdk>
במניפסט של האפליקציה
משווה את הערכים לרמת ה-API הפנימית שלה. המערכת מאפשרת
ההתקנה תתחיל רק אם התנאים הבאים מתקיימים:
- אם מוצהר על מאפיין
android:minSdkVersion
, הערך שלו קטן מהמספר השלם ברמת ה-API של המערכת, או שווה לו. אם לא הצהרתם עליו, המערכת מניחה שהאפליקציה דורשת רמת API 1. - אם מוצהר על מאפיין
android:maxSdkVersion
, הערך שלו שווה למספר השלם ברמת ה-API או גדול ממנו. אם לא מוצהר, המערכת מניחה שהיישום אין רמת API מקסימלית. לקריאת תיאור המאפיין הזה למידע נוסף על האופן שבו המערכת מטפלת בו.
כאשר מוצהר במניפסט של אפליקציה, <uses-sdk>
רכיב מסוים עשוי להיראות כך:
<manifest> <uses-sdk android:minSdkVersion="5" /> ... </manifest>
הסיבה העיקרית לכך שהאפליקציה מצהירה על רמת API ב-
android:minSdkVersion
היא להודיע למערכת Android שהיא
משתמשת בממשקי API שהושקו ברמת ה-API שצוינה.
אם האפליקציה מותקנת איכשהו בפלטפורמה עם רמת API נמוכה יותר, ואז הוא קורס בזמן הריצה כשמנסה לגשת לממשקי API שלא קיימים. המערכת מונעת את התוצאה הזו בכך שלא מאפשרת לאפליקציה אם רמת ה-API הנמוכה ביותר שנדרשת גבוהה מהרמה גרסת הפלטפורמה במכשיר היעד.
שיקולים לפיתוח
בקטעים הבאים מופיע מידע לגבי רמת ה-API שנדרשת במהלך פיתוח האפליקציה.
תאימות להעברת אפליקציות
אפליקציות ל-Android בדרך כלל תואמות לגרסאות חדשות של בפלטפורמת Android.
מכיוון שכמעט כל השינויים ב-framework API הם נוספים, מערכת Android שפותחו באמצעות כל גרסה נתונה של ה-API, כפי שמצוין על ידי ברמת ה-API, תואמת לגרסאות מאוחרות יותר של פלטפורמת Android רמות API גבוהות יותר. האפליקציה יכולה לפעול בכל הגרסאות מאוחרות יותר של פלטפורמת Android, למעט במקרים בודדים שבהם האפליקציה משתמשת חלק מה-API שהוסר מאוחר יותר מסיבה כלשהי.
התאימות להעברה חשובה כי הרבה מכשירים מבוססי-Android לקבל עדכוני מערכת בחיבור אלחוטי (OTA). המשתמש עשוי להתקין את ולהשתמש בה בהצלחה, ואז לקבל עדכון OTA של פלטפורמת Android. לאחר התקנת העדכון, האפליקציה פועלת בגרסת זמן ריצה חדשה של הסביבה, אבל גרסה שעדיין כוללת את ה-API ואת יכולות המערכת שבהן האפליקציה שלך תלויה.
שינויים שמתחת לממשק ה-API, כמו השינויים של המערכת עצמה, יכולה להשפיע על האפליקציה כאשר היא פועלת הסביבה. זה חשוב לך, כדי להבין איך האפליקציה נראית ומתנהגת בכל מערכת הסביבה.
כדי לעזור לכם לבדוק את האפליקציה בגרסאות שונות של Android הפלטפורמה של Android SDK כוללת מספר פלטפורמות שניתן להוריד. כל פלטפורמה כוללת תמונת מערכת תואמת שאפשר להריץ ב-AVD כדי לבדוק את האפליקציה.
תאימות לאחור של האפליקציה
אפליקציות ל-Android לא בהכרח תואמות לאחור לגרסאות של פלטפורמת Android ישנה יותר מהגרסה שממנה הם נאספו.
כל גרסה חדשה של פלטפורמת Android יכולה לכלול ממשקי API חדשים של framework, כמו כמו אלה שמעניקות לאפליקציות גישה ליכולות פלטפורמה חדשות או מחליפה לחלקים הקיימים של ה-API. ממשקי ה-API החדשים נגישים לאפליקציות כשהם פועלים את הפלטפורמה החדשה, וגם כאשר מפעילים גרסאות מאוחרות יותר של הפלטפורמה, כפי שמצוין ברמת ה-API. אבל מכיוון שגרסאות קודמות של הפלטפורמה לא כוללת את ממשקי ה-API החדשים, אפליקציות שמשתמשות בממשקי ה-API החדשים לא יוכלו פועלות בפלטפורמות האלה.
למרות שמכשיר מבוסס Android לא צפוי לעבור שדרוג לאחור ל- בגרסה קודמת של הפלטפורמה, חשוב להבין שיש רבים למכשירים שבהם פועלות גרסאות קודמות של הפלטפורמה. גם במכשירים שמקבלים עדכוני OTA, חלק מהמכשירים עשויים להתעדכן לא יכול לקבל עדכון במשך פרק זמן משמעותי.
צריך לבחור גרסת פלטפורמה ורמת API
בזמן פיתוח האפליקציה, עליכם לבחור גרסת הפלטפורמה שממנה מורכב האפליקציה. לחשבון להרכיב את האפליקציה כך שהיא ברמת של הפלטפורמה שבה האפליקציה יכולה לתמוך.
כדי לקבוע את גרסת הפלטפורמה הנמוכה ביותר האפשרית, אפשר להרכיב את
כנגד יעדי build נמוכים יותר ברצף. אחרי שקובעים את
הגרסה הנמוכה ביותר, יש ליצור AVD באמצעות הפלטפורמה המתאימה
ברמת ה-API וברמת ה-API, ולבדוק באופן מלא את האפליקציה. חשוב להצהיר
המאפיין android:minSdkVersion
במניפסט של האפליקציה, וגם
להגדיר את הערך לרמת ה-API של גרסת הפלטפורמה.
הצהרה על רמת API מינימלית
אם אתם בונים אפליקציה שמשתמשת בממשקי API או בתכונות מערכת שהושקו ב-
את גרסת הפלטפורמה העדכנית ביותר, מגדירים את
מאפיין android:minSdkVersion
לרמת ה-API של הגרסה האחרונה
בגרסת הפלטפורמה. כדי שהמשתמשים יוכלו להתקין רק את
אם במכשירים שלהם פועלת גרסה תואמת של Android
הפלטפורמה. הדבר עוזר להבטיח שהאפליקציה יכולה לפעול כראוי
במכשירים שלהם.
אם האפליקציה שלכם משתמשת בממשקי API שנוספו לגרסת הפלטפורמה האחרונה, אבל
לא מצהירה על מאפיין android:minSdkVersion
, אז
הוא יפעל כראוי במכשירים שבהם פועלת הגרסה האחרונה של הפלטפורמה, אבל
לא במכשירים עם גרסאות קודמות של הפלטפורמה. בשלב השני
במקרה הזה, האפליקציה קורסת בזמן הריצה כשמנסה להשתמש בממשקי API שלא
קיימות בגרסאות הקודמות.
בדיקה מול רמות API גבוהות יותר
לאחר הידור האפליקציה, הקפידו לבדוק אותה
הפלטפורמה שצוינה בandroid:minSdkVersion
של האפליקציה
. לשם כך, צריך ליצור AVD שמשתמש בגרסת הפלטפורמה שנדרשת על ידי
את האפליקציה שלך. בנוסף, כדי לבדוק תאימות קדימה, אפשר להריץ את הפקודה
ולבדוק את האפליקציה בכל הפלטפורמות שמשתמשות ברמת API גבוהה מזו
שבו נעשה שימוש באפליקציה.
ה-Android SDK כולל כמה גרסאות פלטפורמה שבהן אפשר להשתמש, כולל את הגרסה האחרונה, והוא מספק כלי עדכון שבו אפשר להשתמש כדי להוריד גרסאות פלטפורמה אחרות לפי הצורך.
כדי לגשת לעדכון, משתמשים בכלי שורת הפקודה android
.
נמצא בספרייה <sdk>/tools. כדי להפעיל את הכלי לעדכון SDK, צריך:
מבצע את הפקודה android sdk
. אפשר
כמו כן, לוחצים לחיצה כפולה על הקובץ android.bat
(Windows) או על הקובץ android
(OS X/Linux).
כדי להריץ את האפליקציה מול גרסאות פלטפורמה שונות באמולטור: יוצרים AVD לכל גרסת פלטפורמה שרוצים לבדוק. לקבלת מידע נוסף מידע על מכשירי AVD ראו יצירה וניהול של מכשירים וירטואליים. אם המיקום שמשתמשים במכשיר פיזי לצורך בדיקה, צריך לוודא שאתם יודעים מה רמת ה-API. בפלטפורמת Android שהיא מפעילה. בטבלה שבמסמך זה ניתן לראות רשימה של גרסאות פלטפורמה ורמות ה-API שלהן.
סינון של מאמרי העזרה לפי רמת API
דפי תיעוד של פלטפורמת Android מציעים
'רמת API' באזור הימני העליון של כל דף. אפשר להשתמש
להציג תיעוד רק של חלקים מה-API
נגישים לאפליקציה שלכם, על סמך רמת ה-API שמצוינת בה.
את המאפיין android:minSdkVersion
של קובץ המניפסט.
כדי להשתמש בסינון, צריך לבחור את ה-API הרמה שצוינה על ידי האפליקציה שלך מהתפריט. ממשקי API שהושקו בהמשך לאחר מכן רמת ה-API מופיעה באפור והתוכן שלהם מוסווה כי הם לא נגישים לאפליקציה שלכם.
סינון לפי רמת API במאמרי העזרה לא מספק תצוגה מפורטת של מה שחדש או חדש בכל רמת API. הוא מספק דרך להציג את כל ה-API שמשויך לרמת API מסוימת, תוך החרגה של API שנוספו ברמות ה-API מאוחרות יותר.
כדי לחזור להצגת התיעוד המלא: בוחרים באפשרות REL בחלק העליון של התפריט ברמת ה-API. כברירת מחדל, סינון ברמת ה-API מושבתת, כך שאפשר להציג את ה-API המלא של framework, בלי קשר לרמת ה-API.
מאמרי העזרה לרכיבי API נפרדים מציין את רמת ה-API שבה מוסיפים כל רכיב. רמת ה-API לחבילות ומחלקות מופיע הכיתוב 'נוסף ברמת ה-API'. ב בפינה השמאלית העליונה של אזור התוכן בכל דף תיעוד. רמת ה-API מצוין בכותרות של התיאורים המפורטים של חברי הכיתה. בשוליים הימניים.