הגדרה של ספריית התמיכה

הערה: עם ההשקה של Android 9.0 (רמת API‏ 28) יש גרסה חדשה של ספריית התמיכה שנקראת AndroidX, שהיא חלק מ-Jetpack. ספריית AndroidX כוללת את ספריית התמיכה הקיימת וגם את הרכיבים העדכניים ביותר של Jetpack.

אפשר להמשיך להשתמש בספריית התמיכה. חפצים היסטוריים (גרסה 27 ומטה, שנארזו כ-android.support.*) יישארו זמינים ב-Google Maven. עם זאת, כל הפיתוחים החדשים של הספריות יתבצעו בספריית AndroidX.

מומלץ להשתמש בספריות AndroidX בכל הפרויקטים החדשים. כדאי גם לשקול להעביר פרויקטים קיימים ל-AndroidX.

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

במסמך הזה מוסבר איך להוריד את חבילת ספריית התמיכה ולהוסיף ספריות לסביבת הפיתוח.

ספריות התמיכה זמינות עכשיו דרך מאגר Maven של Google. אנחנו כבר לא תומכים בהורדת הספריות דרך SDK Manager, והפונקציונליות הזו תוסר בקרוב.

בחירת ספריות תמיכה

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

הוספת ספריות תמיכה

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

כדי להוסיף ספריית תמיכה לפרויקט האפליקציה:

  1. כוללים את מאגר Maven של Google בקובץ settings.gradle של הפרויקט.
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
    
            // If you're using a version of Gradle lower than 4.1, you must
            // instead use:
            //
            // maven {
            //     url 'https://maven.google.com'
            // }
        }
    }
  2. לכל מודול שבו רוצים להשתמש בספריית תמיכה, מוסיפים את הספרייה בקטע [dependencies] של קובץ build.gradle של המודול.dependenciesbuild.gradle לדוגמה, כדי להוסיף את הספרייה v4 core-utils, מוסיפים את השורה הבאה:
    dependencies {
        ...
        implementation "com.android.support:support-core-utils:28.0.0"
    }

זהירות: שימוש בתלות דינמית (לדוגמה, palette-v7:23.0.+) עלול לגרום לעדכוני גרסה לא צפויים ולבעיות תאימות. מומלץ לציין באופן מפורש את גרסת הספרייה (לדוגמה, palette-v7:28.0.0).

שימוש בממשקי Support Library API

למחלקות בספריית התמיכה שמספקות תמיכה בממשקי API קיימים של מסגרות יש בדרך כלל את אותו שם כמו למחלקת המסגרת, אבל הן ממוקמות בחבילות המחלקות android.support, או שיש להן סיומת *Compat.

שימו לב: כשמשתמשים במחלקות מ-Support Library, חשוב לוודא שמייבאים את המחלקה מהחבילה המתאימה. לדוגמה, כשמחילים את המחלקה ActionBar:

  • android.support.v7.app.ActionBar כשמשתמשים בספריית התמיכה.
  • android.app.ActionBar כשמפתחים רק ל-API ברמה 11 ומעלה.

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

הנחיות נוספות לשימוש בחלק מהתכונות של Support Library זמינות בשיעורי ההדרכה, במדריכים ובדוגמאות של Android developer. למידע נוסף על השיטות והמחלקות של ספריית התמיכה, אפשר לעיין בחבילות android.support בהפניה ל-API.

שינויים בהצהרת המניפסט

אם אתם מגדילים את התאימות לאחור של האפליקציה הקיימת שלכם לגרסה מוקדמת יותר של Android API באמצעות ספריית התמיכה, הקפידו לעדכן את המניפסט של האפליקציה. באופן ספציפי, צריך לעדכן את רכיב android:minSdkVersion של התג <uses-sdk> במניפסט למספר הגרסה החדש והנמוך יותר, כמו שמוצג בהמשך:

  <uses-sdk
      android:minSdkVersion="14"
      android:targetSdkVersion="23" />

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

אם אתם משתמשים בקובצי build של Gradle, ההגדרה minSdkVersion בקובץ ה-build מבטלת את ההגדרות במניפסט.

plugins {
  id 'com.android.application'
}

android {
    ...

    defaultConfig {
        minSdkVersion 16
        ...
    }
    ...
}

במקרה הזה, ההגדרה בקובץ ה-build מציינת ל-Google Play שאפשר להתקין את וריאציית ה-build שמוגדרת כברירת מחדל באפליקציה במכשירים עם Android 4.1 (רמת API‏ 16) ומעלה. מידע נוסף על וריאציות של בנייה זמין במאמר סקירה כללית של מערכת הבנייה.

הערה: אם כוללים כמה ספריות תמיכה, גרסת ה-SDK המינימלית צריכה להיות הגרסה הכי גבוהה שנדרשת על ידי אחת מהספריות שצוינו. לדוגמה, אם האפליקציה כוללת את ספריית התמיכה בהעדפות v14 ואת ספריית Leanback v17, גרסת ה-SDK המינימלית צריכה להיות 17 ומעלה.