מדריך לתכונות של ספריית התמיכה

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

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

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

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

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

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

רכיבים של אפליקציה

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

  • פעילויות
    • ActivityCompat – כולל הטמעה שתואמת לאחור לתכונות מרכזיות ועדכניות של פעילויות, כמו הרשאות בזמן ריצה ומעברים בין אנימציות.
    • FragmentActivity – מספק הטמעה שתואמת לדור קודם לפעילויות, כדי להשתמש בגרסאות של ספריות התמיכה של ממשקי ה-API‏ Fragment ו- Loader.
    • AppCompatActivity – מספק עיצובים של צבעי Material, גוונים של ווידג'טים ותמיכה בסרגל האפליקציות במכשירים ישנים יותר. כדי להשתמש במחלקה הזו, צריך להשתמש בTheme.AppCompat ערכות נושא כדי להבטיח הצגה חזותית עקבית.
  • Fragment – מספק הטמעה עצמאית של המחלקה Fragment של המסגרת. חובה להשתמש בכיתה הזו עם FragmentActivity.
  • ContextCompat – מספק תמיכה בתכונות שהוצגו בגרסאות עדכניות יותר של המחלקה Context, כולל תמיכה בהרשאות, גישה לקבצים ומידע על צבעים.
  • IntentCompat – מספק תמיכה בתכונות שהוצגו בגרסאות עדכניות יותר של המחלקה Intent, כולל שיטות לבחירה ולהתחלה של פעילויות ספציפיות.
  • Loader – מספק הטמעה סטטית של המחלקה Loader של ה-framework, והוא המחלקה הבסיסית של מחלקות התמיכה AsyncTaskLoader ו-CursorLoader.
  • Preference – המחלקה הזו ומחלקות המשנה שלה מספקות הטמעות של ממשק משתמש להגדרות האפליקציה באופן שתואם לאחור.
  • ContentResolverCompat – תמיכה בתכונות שהוצגו בגרסאות עדכניות יותר של המחלקה ContentResolver, במיוחד בשיטה query() עם תמיכה בביטול שאילתה בתהליך.

ממשק משתמש

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

קונטיינרים של פריסות לשימוש כללי

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

  • RecyclerView – יוצר פריסה להצגת רשימות ארוכות, באמצעות אסטרטגיה למניעת צריכת זיכרון גבוהה. המחלקות האלה מאפשרות ליצור תצוגת חלון מוגבלת של מערך נתונים גדול יותר, וכך להימנע משימוש בכמויות גדולות של זיכרון כשמציגים את הרשימה. מידע נוסף על השימוש ב-RecyclerView זמין במדריך בנושא Recycler View.
  • ViewPager – מספק פריסה שמאפשרת למשתמש להפוך את הדפים של הנתונים משמאל לימין.
  • GridLayout – מספק פריסה עם הצאצאים שלו ברשת מלבנית, עם תמיכה בטווחים שרירותיים של תאים סמוכים וחלוקת מקום גמישה. המחלקות האלה מספקות גרסה עם תאימות לאחור של המחלקה GridLayout, שהוצגה ב-Android 4.0 (רמת API‏ 14).
  • PercentFrameLayout ו-PercentRelativeLayout – מספקים פריסות שתומכות בממדים ובשוליים מבוססי אחוזים עבור תצוגות התוכן והצאצאים שלהם.

הערה: המחלקות ViewPager, ‏ RecyclerView, ‏ PercentFrameLayout ו-PercentRelativeLayout זמינות רק בספריות התמיכה.

קונטיינרים של פריסות למטרות מיוחדות

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

  • DrawerLayout – יוצר פריסה שמאפשרת להוציא תצוגות אינטראקטיביות של מגירות מהקצה של חלון התצוגה.
  • SlidingPaneLayout – מספק פריסה אופקית מרובת חלוניות לשימוש ברמה העליונה של ממשק משתמש באפליקציה, כדי ליצור פריסות שיכולות להתאים בצורה חלקה למגוון רחב של גדלי מסך שונים, להתרחב במסכים גדולים ולהצטמצם כדי להתאים למסכים קטנים.
  • NestedScrollView – פריסה עם גלילה שתומכת בהוספה של תצוגות גלילה אחרות, ומאפשרת ליצור רשימות עם פריטים שמכילים רשימות צאצא נוספות. הרשימות המקוננות האלה יכולות להכיל פריטים שאפשר לגלול אותם אופקית או אנכית, בנפרד מהרשימה הראשית.
  • SwipeRefreshLayout – מספק פריסה שתומכת ברענון נתונים לרשימות או לפריסות אחרות באמצעות החלקה באצבע.

תצוגות, תיבות דו-שיח ווידג'טים

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

  • CardView – מחלקה מותאמת אישית של ספריית תמיכה ליצירת כרטיסי תצוגה בסגנון Material Design. הכיתה הזו מבוססת על FrameLayout עם פינות מעוגלות וצללית.
  • AppCompatDialogFragment – מספק תיבות דו-שיח עם סגנון עקבי על ידי הרחבת DialogFragment ושימוש ב-AppCompatDialog.
  • NotificationCompat – תמיכה בסגנונות חדשים יותר של התראות באופן שתואם לאחור.
  • SearchView – מספק מחלקה שמאפשרת למשתמש להזין שאילתת חיפוש ולשלוח בקשה לספק חיפוש. המחלקה הזו מיועדת בעיקר לשימוש בסרגל אפליקציות.

Material Design

ספריות התמיכה מספקות מספר מחלקות להטמעה של המלצות לממשק משתמש של Material Design.

  • CoordinatorLayout – מספק מאגר ברמה העליונה לפריסות שמשלבות רכיבים והתנהגויות של Material Design. אפשר להשתמש במחלקה הזו גם כמאגר לאינטראקציה ספציפית עם תצוגה אחת או יותר של צאצאים.
  • AppBarLayout – מספק הטמעה של רבות מתכונות הגלילה של מושג סרגל האפליקציות של Material Design.
  • FloatingActionButton - יוצר לחצן צף להצגת סוג מיוחד של פעולה מקודמת. רכיב ממשק המשתמש הזה בעיצוב Material Design מוצג כסמל מוקף בעיגול שצף מעל ממשק המשתמש של האפליקציה. מידע נוסף זמין במאמר בנושא הוספת לחצן פעולה צף.
  • DrawerLayout – יוצר חלונית הזזה לניווט – חלונית בממשק המשתמש שבה מוצג תפריט הניווט הראשי של האפליקציה. התפריט מופיע כשהמשתמש מחליק את האצבע מהקצה השמאלי של המסך או מקיש על סמל מגירת האפליקציות בסרגל האפליקציות. מידע נוסף זמין במאמר יצירת מגירת ניווט.
  • TabLayout – מספק פריסה להצגת דפים עם כרטיסיות. הווידג'ט הזה מיועד לשימוש בכיתה ViewPager.
  • Snackbar – ווידג'ט להצגת משוב קל משקל על פעולה באמצעות חלון קופץ של חטיף.

גרפיקה

חבילת android.support.graphics.drawable מספקת תמיכה בנכסי וקטור. באמצעות נכסי וקטור שאפשר לצייר, אפשר להחליף כמה נכסי PNG בגרפיקה וקטורית אחת שמוגדרת ב-XML.

VectorDrawableCompat מספק תמיכה בנכסי וקטור גרפיים ברמת API 9 ומעלה. ‫AnimatedVectorDrawableCompat מספק תמיכה בנכסי וקטור מונפשים (animated vector drawables) ברמת API‏ 11 ומעלה.

נגישות

חבילת android.support.v4.view.accessibility מספקת מחלקות תאימות להטמעה של תכונות נגישות שהוצגו ברמת API‏ 14 ואילך, שמאפשרות לשירותי נגישות לצפות באינטראקציה של המשתמש עם פריטים שמוצגים במסך ולזהות אותה.

  • ExploreByTouchHelper – מספק תמיכה בנגישות בתצוגה מותאמת אישית שמייצגת אוסף של פריטים לוגיים דמויי תצוגה.

הפעלת מדיה

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

  • MediaRouter – מאפשרת לאפליקציות לשלוט בניתוב של ערוצי מדיה וסטרימינג מהמכשיר הנוכחי לרמקולים חיצוניים ולמכשירי יעד.
  • MediaControllerCompat – מאפשרת לאפליקציה ליצור אינטראקציה עם פעילות מדיה שמתבצעת. אפליקציות יכולות לספק לחצני שליטה במדיה באמצעות המנגנון הזה, ולשלוח פקודות הפעלה אחרות להפעלה.
  • MediaSessionCompat – מספק ממשק שלט רחוק להפעלת מדיה, שמאפשר אינטראקציה עם בקרי מדיה, מקשי עוצמת קול, לחצני מדיה ובקרי הפעלה באפליקציות אחרות או במכשירים נפרדים.

אפליקציות לטלוויזיה

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

אפליקציות ל-Wear

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

כלי תחזוקה

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