Jetpack ל-Android
Jetpack הוא חבילת ספריות של ספריות שעוזרות למפתחים לפעול לפי השיטות המומלצות, לצמצם את הקוד הסטנדרטי ולכתוב קוד שפועל באופן עקבי בכל הגרסאות והמכשירים של Android, כדי שהמפתחים יוכלו להתמקד בקוד שחשוב להם.
Jetpack פיתוח נייטיב
פיתוח ממשק משתמש באמצעות 'כתיבה'
ערכת כלים מודרנית לפיתוח ממשק משתמש מותאם, שמאפשרת לפשט ולהאיץ את הפיתוח של ממשק המשתמש ב-Android.
איך משתמשים ב-Jetpack
הדרכה למתחילים
לומדים על ספריות Jetpack החיוניות בקורס 'יסודות Android' עם 'כתיבה' ומצמצמים את התבניות הסטנדרטיות באפליקציה
מדריך מעשי
התנסות מעשית עם שלוש ספריות Jetpack שמפשטות את שכבת הנתונים: LiveData, ViewModel ו- Room
עכשיו באפליקציה לדוגמה ל-Android
איך ארכיטקטורת Android מודרנית מוטמעת באפליקציה בעולם האמיתי
ספריות Jetpack הצגת כל הספריות
* בראש הדף מופיעות ספריות פופולריות שנמצאות בשימוש תכוף
activity * | גישה לממשקי API שניתנים לקישור שנוצרו על סמך Activity. |
appcompat * | מאפשרת גישה לממשקי API חדשים בגרסאות API ישנות יותר של הפלטפורמה (רבים מהם משתמשים ב-Material Design). |
appsearch * | פיתוח יכולות חיפוש מותאמות אישית בתוך האפליקציה עבור המשתמשים שלך. |
camera * | פיתוח אפליקציות של מצלמה לנייד. |
compose * | הגדרה פרוגרמטית של ממשק המשתמש באמצעות פונקציות שניתנות ליצירה שמתארות את הצורה שלו ואת יחסי התלות בנתונים. |
databinding * | קישור רכיבי ממשק המשתמש בפריסות למקורות הנתונים באפליקציה באמצעות פורמט דקלרטיבי. |
קטע * | פלח את האפליקציה שלך למספר מסכים עצמאיים המתארחים בפעילות. |
hilt * | הרחבת הפונקציונליות של Dagger Hilt כדי לאפשר החדרת תלות של מחלקות מסוימות מספריות androidx. |
lifecycle * | לפתח רכיבים עם התייחסות למחזור החיים שיכולים לשנות את ההתנהגות על סמך המצב הנוכחי של מחזור החיים של פעילות או של מקטע. |
רכיבים של עיצוב חומר * | רכיבי ממשק משתמש מודולריים וניתנים להתאמה אישית ב-Material Design ל-Android. |
ניווט * | ליצור ולבנות את ממשק המשתמש בתוך האפליקציה, לטפל בקישורי עומק ולנווט בין מסכים. |
חלוקה לדפים * | לטעון נתונים בדפים ולהציג אותם ב-RecyclerView. |
room * | יצירה, אחסון וניהול של נתונים קבועים שמגובים על ידי מסד נתונים של SQLite. |
test * | בדיקה ב-Android. |
work * | מתזמנים ומבצעים משימות מבוססות-אילוצים ברקע, שאי אפשר לשנות את ההגדרות שלהן. |
ads | קבלת מזהה פרסום עם או בלי Play Services. |
הערה | חשיפת מטא-נתונים שעוזרים לכלים ולמפתחים אחרים להבין את קוד האפליקציה. |
arch.core | עוזר ליחסי תלות אחרים של קשתות, כולל כללי בדיקה של JUnit שניתן להשתמש בהם עם LiveData. |
asynclayoutinflater | מתנפחים פריסות באופן אסינכרוני כדי למנוע בעיות בממשק המשתמש. |
autofill | שיפור הדיוק של המילוי האוטומטי באמצעות הרחבת הטיפים. |
בנצ'מרק | מדידת הביצועים של הקוד במדויק ב-Android Studio. |
ביומטרי | אימות באמצעות מידע ביומטרי או פרטי כניסה של המכשיר, וביצוע פעולות קריפטוגרפיות. |
Bluetooth | שימוש בתכונות ה-Bluetooth של פלטפורמת Android עם ממשקי API שתואמים לאחור. |
דפדפן | הצגת דפי אינטרנט בדפדפן ברירת המחדל של המשתמש. |
camera.viewfinder | עינית עצמאית ומבוססת-עינית למצלמה" |
car-app | פיתוח אפליקציות לפי תבניות ל-Android Auto ול-Android Automotive OS. |
cardview | מטמיעים את תבנית הכרטיס Material Design עם פינות מעוגלות והטלת צלליות. |
collection | הפחתת ההשפעה על הזיכרון של אוספים קיימים וחדשים בגודל קטן. |
compose.animation | יוצרים אנימציות באפליקציות 'Jetpack פיתוח נייטיב' כדי להעשיר את חוויית המשתמש. |
compose.compiler | שינוי פונקציות מסוג @Composable והפעלת אופטימיזציות באמצעות פלאגין של קומפילר Kotlin. |
compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס ליצירת רכיבים משלכם של מערכת עיצוב. |
compose.material | בניית ממשקי משתמש ב-Jetpack פיתוח נייטיב עם רכיבים מוכנים לשימוש ב-Material Design. זוהי נקודת הכניסה ברמה גבוהה יותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
compose.material3 | פיתוח ממשקי משתמש ב-Jetpack פיתוח נייטיב עם רכיבי Material Design 3, הפיתוח הבא של עיצוב Material Design. Material 3 כולל עיצוב ורכיבים מעודכנים ותכונות התאמה אישית של Material You, כמו צבעים דינמיים, ונועד להיות אחיד עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת. |
compose.material3.adaptive | להשתמש בספרייה הדינמית של Material 3 כדי ליצור ממשקי משתמש מותאמים שתתאימו את עצמם באופן אוטומטי בהתאם לחלון הנוכחי הגדרות כמו סיווגי גודל של חלונות או מיקומים של מכשירים. הספרייה מספקת גם הטמעות של תבניות ברירת מחדל וגם אבני בניין נדרשות ליצירת חוויות משלכם בהתאמה אישית. |
compose.runtime | אבני הבניין הבסיסיות של מודל התכנות ושל ניהול המצב ב-Compose, וזמן הריצה הליבה שאליו פונה הפלאגין של Compose Compiler. |
compose.ui | רכיבים בסיסיים בממשק המשתמש של הרכבה שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, שרטוט וקלט. |
בו-זמנית | מעבירים משימות מהשרשור הראשי באמצעות קורוטין ומנצלים את היתרון של ListenableFuture. |
constraintlayout | מיקום וגודל של ווידג'טים באופן גמיש באמצעות מיקום יחסי. |
contentpager | טעינה של נתוני ContentProvider וחלוקה לדפים בשרשור ברקע. |
coordinatorlayout | מציבים ווידג'טים של אפליקציה ברמה העליונה, כמו AppBarLayout ו-FloatingActionButton. |
core | כדאי לטרגט את תכונות הפלטפורמה וממשקי ה-API החדשים ביותר, ובמקביל לתמוך במכשירים ישנים. |
core.uwb | הטמעת UWB (Ultra Wideband) במכשירים נתמכים. |
פרטי כניסה | הספרייה הזו מספקת גישה מאוחדת לפרטי הכניסה של משתמש. למשל סיסמאות, מפתחות גישה ופרטי כניסה מאוחדים. יש להשתמש בספרייה הזו כדי לספק חוויית כניסה חלקה ומאובטחת. |
cursoradapter | חשיפת נתוני הסמן לווידג'ט ListView. |
customview | יישום תצוגות מותאמות אישית. |
datastore | אחסון נתונים באופן אסינכרוני, בעקביות ובאופן טרנזקציות, כדי להתגבר על כמה מהחסרונות של SharedPreferences |
documentfile | הצגת מסמך של קובץ. |
גרירה | מקבלים נתונים מסוג 'גרירה ושחרור' מאפליקציה אחרת או מתוך אפליקציה, ומשיגים ירידה עקבית במחיר היעד. |
drawerlayout | הטמעת ווידג'ט של תיבה נפתחת בעיצוב Material. |
dynamicanimation | יצירת אנימציות חלקות באמצעות ממשק API לאנימציה שמבוסס על פיזיקה. |
אמוג'י | הצגת אמוג'י במכשירים נוכחיים וישנים יותר. |
emoji2 | הצגת אמוג'י במכשירים נוכחיים וישנים יותר. |
גרסה לארגונים | יצירת אפליקציות שמוכנות לשימוש בארגון. |
exifinterface | קריאה וכתיבה של תגי EXIF בקובצי תמונות. |
משחקים | שימוש ב-Android Game SDK באופן מקורי באפליקציה כדי לבצע משימות מורכבות במשחקים, כמו Frame Pacing. |
בקצרה | פיתוח פריסות למשטחים מרוחקים באמצעות ממשק API בסגנון Jetpack Compose. |
graphics | ניצול היתרונות הגרפיים במספר גרסאות של פלטפורמת Android |
gridlayout | הטמעת פריסת רשת. |
health | יצירת אפליקציות בריאות בעלות ביצועים טובים באופן בלתי תלוי בפלטפורמה. |
health.connect | מאפשרת למפתחים לקרוא או לכתוב את רשומות הבריאות והכושר של המשתמשים. |
heifwriter | קידוד תמונה או אוסף תמונות בפורמט HEIF באמצעות רכיבי הקודק הזמינים במכשיר Android. |
דיו | מעוררים השראה לאפליקציות עט מהשורה הראשונה. נסו להנמיך את מחסום הכניסה למפתחים כדי ליהנות מחוויות כתיבה יפות וביצועים טובים. |
קלט | צמצום זמן האחזור של אינטראקציות הקלט על ידי חיזוי אירועי MotionEvents עתידיים |
אינטרפולטור | השתמשו באינטרפולטורים לאנימציה בפלטפורמות ישנות. |
javascriptengine | איך להפעיל את JavaScript באפליקציה ל-Android. |
jetifier | כלי עצמאי להעברת יחסי התלות של ספרייה בספריית התמיכה הקודמת ליחסי תלות מקבילים ב-AndroidX. |
leanback | כדאי להשתמש ב'כתיבה' לטלוויזיה במקום בפריט המידע הזה שנוצר בתהליך הפיתוח (Artifact). |
מדור קודם | פריט המידע הזה שנוצר בתהליך הפיתוח (Artifact) והמחלקות שלו הוצאו משימוש. החל מגרסה 8 של Android, ההגבלות על בדיקת הרקע הופכות את הסיווג הזה ללא שימושי. |
lint | בדיקות לאיתור שגיאות בקוד (lint) לאימות השימוש ב-Gradle API |
loader | טעינת נתונים של ממשק המשתמש אחרי שינויי ההגדרות האישיות. |
localbroadcastmanager | פריט המידע הזה שנוצר בתהליך הפיתוח (Artifact) והמחלקות שלו הוצאו משימוש. במקום זאת, כדאי להשתמש ב-LiveData או ב-reactive streams. |
media | שיתוף של תוכן מדיה ופקדים עם אפליקציות אחרות. הוחלפה על ידי media2. |
media2 | לשתף תוכן מדיה ואמצעי בקרה עם אפליקציות אחרות. |
media3 * | ספריות תמיכה לתרחישי שימוש של מדיה. |
mediarouter | הפעלת הצגה והפעלה של מדיה במכשירי מקלט מרוחקים באמצעות ממשק משתמש משותף. |
multidex | פריסת אפליקציות עם מספר קובצי dex במכשירים עם מערכת הפעלה ישנה יותר מ-Android 5. |
מדדים | מעקב אחרי מדדי זמן ריצה שונים של האפליקציה ודיווח עליהם |
palette | חילוץ של לוחות צבעים מייצגים מתמונות. |
ספרייה להוספת יכולות צפייה בקובצי PDF בתוך אפליקציות. | |
percentlayout | פריט המידע הזה שנוצר בתהליך הפיתוח (Artifact) והמחלקות שלו הוצאו משימוש. במקום זאת, צריך להשתמש ב-ConstraintLayout ובפריסות המשויכות. |
העדפה | פיתוח מסכי הגדרות אינטראקטיביים בלי צורך באינטראקציה עם נפח האחסון במכשיר או בניהול ממשק המשתמש. |
אפשר להדפיס תמונות, מסמכים ותמונות ופריטי גרפיקה אחרים מהאפליקציה. | |
privacysandbox.activity | TODO |
privacysandbox.ads | הספרייה הזו מאפשרת שילוב עם ממשקי API לשמירה על הפרטיות, שהם חלק מארגז החול לפרטיות ב-Android. |
privacysandbox.plugins | Android Privacy Sandbox Sdk Library Gradle Plugin |
privacysandbox.sdkruntime. | הספרייה הזו מספקת רכיבים לצרכנים שמודעים ל-SdkRuntime |
privacysandbox.tools | ספרייה שאפשר להשתמש בה בפונקציונליות של ארגז החול לפרטיות ב-Android |
privacysandbox.ui | TODO |
profileinstaller | מאפשרת לספריות לאכלס מראש את עקבות ה-compilation ש-ART יקרא. |
המלצה | לקדם תוכן למסך הבית של Android TV Launcher. |
recyclerview | הצגת קבוצות גדולות של נתונים בממשק המשתמש תוך צמצום השימוש בזיכרון. |
remotecallback | יצירת wrapper שיקל על המפתחים לספק PendingIntent. |
resourceinspection | מומלץ להציג את המאפיינים של תצוגות בהתאמה אישית בכלי לבדיקת פריסה בזמן אמת של Android Studio. |
savedstate | כותבים רכיבים נשלפים ששומרים את מצב ממשק המשתמש כשתהליך מסוים מסתיים, ומשחזרים אותו כשהתהליך מופעל מחדש. |
אבטחה | ניהול בטוח של מפתחות והצפין של קבצים והעדפות משותפות. |
sharetarget | תאימות לאחור לשימוש בקיצורי דרך כיעדי שיתוף ישיר. |
slice | הצגת רכיבי ממשק משתמש לפי תבנית מחוץ לאפליקציה. |
slidingpanelayout | הטמעת דפוס ממשק משתמש של חלונית הזזה. |
startup | הטמעת דרך פשוטה ומשתלמת לאתחל רכיבים בזמן ההפעלה של האפליקציה. |
sqlite | לעבוד עם מסדי נתונים מקומיים של SQLite. אם אפשר, כדאי להשתמש ב-Room במקום ב-Meet. |
sOncerefreshrefreshlayout | הטמעת התבנית של ממשק המשתמש לסחיטה לרענון. |
test.uiautomator | מסגרת לבדיקת ממשק משתמש פונקציונלי באפליקציות שונות |
textclassifier | זיהוי שיחות, קישורים, בחירות ומבנים דומים אחרים בטקסט. |
מעקב | כתיבת אירועי מעקב במאגר הנתונים הזמני של המערכת. |
transition | מוסיפים אנימציה של התנועה בממשק המשתמש בעזרת פריסות של התחלה וסיום. |
טלוויזיה | מאפשר למפתחים להשתמש בפונקציות של Compose ו-Material Design כדי לכתוב אפליקציות לטלוויזיה |
tvprovider | לספק ערוצים ל-Android TV. |
vectordrawable | עיבוד של גרפיקה וקטורית. |
versionedparcelable | האפליקציה מספקת פורמט יציב וקומפקטי לביצוע סריאליזציה בינארית, שאפשר להעביר בין תהליכים או לשמור אותם בצורה בטוחה. |
צפייה | הצגת תצוגות או קטעים בפורמט שניתן להחליק. אם אפשר, השתמשו במקום זאת ב-viewpager2. |
viewpager2 | הצג תצוגות או מקטעים בפורמט שניתן להחלקה. |
בגדים | יצירת אפליקציות לשעונים חכמים של Wear OS by Google. |
wear.compose | כתיבת אפליקציות של Jetpack Compose למכשירים לבישים באמצעות אספקת פונקציונליות לתמיכה במכשירים לבישים ספציפיים, גדלים, צורות וסוגים מסוימים תנועות ניווט. |
wear.protolayout | הספרייה הזו מאפשרת להגדיר קבוצה של פריסות ממשק משתמש וביטויים שאינם ממשק משתמש לצורך רינדור או הערכה במשטחים מרוחקים. |
wear.tiles | יצירת אפליקציות לשעונים חכמים של Wear OS by Google. |
wear.watchface | יצירת אפליקציות לשעונים חכמים של Wear OS by Google. |
webkit | עבודה עם ממשקי WebView API מודרניים ב-Android מגרסה 5 ואילך. |
חלון | ההגדרה הזו עוזרת לתמוך בגורמי צורה שונים של מכשירים, כמו מכשירים מתקפלים. |
window.extensions.core | ממשקי ה-API העיקריים לתוספים של ספריית מנהל החלונות |
מה חדש
- כתיבה באוגוסט 2023
- הגרסה של Jetpack Compose 1.5.0 עוברת ליציבות ומביאה לשיפורים משמעותיים בביצועים, כולל ארגון מחדש (Refactoring) של כלים ברמה גבוהה כמו 'Clickable' [קליקבילי] שיכול לקצר את זמן היצירה ב-80%. באוגוסט 2023 התכונה 'כתיבה מהירה' משפרת גם עד 70% בהקצאת הזיכרון (במיוחד במקבץ הגרפיקה), מה שיפחית את טביעת הרגל הפחמנית של הכתיבה במכשירים.
- Wear Compose וכרטיסי מידע 1.2
- כרטיסי המידע ב-Wear Compose וגם המשבצות של Wear עברו למצב יציב כדי לשפר את החוויה של המפתחים של WearOS. שתיהן משלימות אחת את השנייה, ואפשר להשתמש ב-Wear Compose כדי ליצור מסכי אפליקציה מורכבים במכשירי Wear, ואפשר להשתמש בכרטיסי המידע ב-Wear כדי ליצור את משבצות האפליקציה. הגרסה החדשה של Wear Compose כוללת פונקציות חדשות, כמו 'פריטים שניתנים להרחבה' ו'החלקה לפתיחה'. הגרסה החדשה של Wear Tiles תומכת עכשיו גם באנימציה של ווידג'טים ובקישור נתונים לפלטפורמה (למשל, מקור לנתוני בריאות).
- חלון 1.1
- 1.1 מייצב את ממשקי ה-API להטמעת פעילות, ומאפשר לאפליקציות כמו WhatsApp, eBay ו-Temu לשלוח פריסות למסכים גדולים. ה-API מציע תכונות נוספות, כי הוא מאפשר למפתחים לשנות התנהגות של מסך מפוצל, לבדוק (ולשנות) את מצב המפוצל בזמן הריצה, להטמיע פיצולים אופקיים ולהתחיל חלון מלא בחלון מלא.
- נתוני גרסה
- מידע נוסף זמין בפתקים לגבי הגרסה.
למה כדאי להשתמש ב-Android Jetpack?
כדאי לפעול בהתאם לשיטות המומלצות
ספריות Jetpack ב-Android מבוססות על שיטות עיצוב מודרניות, ומאפשרות פחות קריסות ופחות דליפות זיכרון בזכות תאימות לאחור.
להוציא קוד סטנדרטי
Android Jetpack מנהל פעילויות מאתגרות כמו משימות ברקע, ניווט וניהול מחזור החיים, כדי שתוכלו להתמקד במה שהופך את האפליקציה שלכם לנהדרת.
צמצום המקטעים
כדאי להשתמש בספריות שפועלות באופן עקבי בגרסאות Android ובמכשירים שונים כדי להפחית את המורכבות.