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

הערה: עם ההשקה של 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 של המודול. לדוגמה, כדי להוסיף את ספריית 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 ומעלה.

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

הנחיות נוספות לשימוש בחלק מהתכונות של ספריית התמיכה מופיעות בשיעורי ההדרכה, במדריכים ובדוגמאות של מפתחי Android. למידע נוסף על השיטות והמחלקות של Support Library, אפשר לעיין בחבילות 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) ומעלה. מידע נוסף על וריאציות של build זמין במאמר סקירה כללית של מערכת ה-build.

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