בדף הזה מתוארים המאפיינים והאפשרויות הנדרשים כדי להכין את פרויקט של ספריית Android לפרסום באמצעות הפלאגין Android Gradle (AGP). גם אם הגדרתם חלק מהנכסים האלה בתחילת היצירה של מומלץ לעיין בהנחיות הבאות כדי לבצע אופטימיזציה של הגדרות.
בחירת מרחב שמות
בספריות ל-Android צריך להצהיר על מרחב שמות כדי שהן יוכלו ליצור
הכיתה R
כשהמשאבים שלה עוברים הידור. מרחב השמות הזה צריך להיות דומה מאוד
את חבילת מחלקת השורש של הספרייה כדי למנוע בלבול כשמשתמשים מייבאים
מהספרייה ומהכיתה R
שבה.
החל מ-AGP 7.0, ניתן להגדיר
מרחב שמות
בקובץ build.gradle
של האפליקציה, כמו שאפשר לראות בדוגמת הקוד הבאה:
מגניב
android { namespace = 'com.example.library' }
Kotlin
android { namespace = "com.example.library" }
מרחב השמות הוא נכס של הספרייה שמיועד למפתחים. זו לא הסיבה
שקשורה לזהות האפליקציה, שמוגדרת באמצעות
applicationId
לנכס.
בגרסאות קודמות של AGP, גם הנכס applicationId
(עבור
app) ואת המאפיין namespace
(לספרייה) באמצעות הפונקציה
package
של המניפסט
שהוביל לבלבול.
צריך לבחור ערך של minSdkVersion
בחרת minSdkVersion
עבור
היא היבט חשוב בפרסום הספרייה.
minSdkVersion
אמור לשקף את הגרסה המינימלית של Android שהקוד שלך יכול
תמיכה.
חשוב לשים לב לשיקולים הבאים כשבוחרים ב-minSdkVersion
:
בחירת ערך
minSdkVersion
נמוך מאפשרת בדרך כלל התפלגות רחבה יותר של בספרייה שלך.בדרך כלל קוד של ספרייה לא מופעל, אלא אם האפליקציה קוראת לו במפורש. אפליקציה עדיין יכולה לפעול בגרסת Android שעדיין נמוכה מהנדרש על ידי תלות של ספרייה – אם הספרייה לא חיוניות לפונקציונליות העיקרית של האפליקציה – באמצעות ביצוע בדיקות בסביבת זמן הריצה לפני הקריאה בספרייה. לכן, צריך להגדיר את
minSdkVersion
של הספרייה נמוכה מספיק כדי אפשר להטמיע אותו באפליקציות ולהתקשר אליו כשהדבר יתאפשר, כדי משתמשים.בחירה בערך גבוה במדד
minSdkVersion
עשויה למנוע מאפליקציות בספרייה.מיזוג המניפסט, שהוא שלב ב-AGP שממזג קובצי מניפסט מהאפליקציה ומיחסי התלות שלו, אוכפת של יחסי התלות יש
minSdkVersion
גבוה יותר מאשר באפליקציה.בחירת ערך
minSdkVersion
גבוה עשויה לגרום למפתחי אפליקציות להשבית את האפליקציה בדיקות בטיחות למיזוגים במניפסט, שגורמות לבעיות בשלב מאוחר יותר בתהליך ה-build.כי מיזוג המניפסט מונע מפרויקטים של אפליקציות לכלול ספריות עם ערך
minSdkVersion
גבוה יותר מאשר האפליקציה עצמה, מפתחי אפליקציות עשויה להשבית את בדיקות האבטחה של מיזוג המניפסט כדי לצמצם את מספר ה-build שגיאות. עם זאת, הדבר עלול להוביל לבעיות של חוסר תאימות אמיתי במורד הזרם.ייתכן שיהיה צורך לבחור רמה גבוהה של
minSdkVersion
במקרים מיוחדים שבהם המניפסט של ספרייה כולל מקלט שידורים או מנגנון אחר על ידי שהקוד שלו מופעל באופן אוטומטי.במקרים כאלה, בחירה בערך גבוה במדד
minSdkVersion
תבטיח שהקוד יוכל לפעול. לחלופין, אפשר להשבית את ההתנהגות האוטומטית כדי שהאפליקציה תוכל להפעיל את הספרייה אחרי שביצעת את הבדיקות הנכונות.
כדי לאפשר הטמעה באפליקציות, צריך להשתמש
הערה RequiresApi
ב
כדי לציין למתקשרים שהם צריכים לבצע בדיקות זמן ריצה. במכשירי Android
איתור השגיאות מתבסס על המידע RequiresApi
לביצוע הבדיקות. למשאבים נוספים
בנושא שימוש בהערות לשיפור קוד ה-API וממשקי ה-API, ראה שיפור הקוד
בדיקה עם הערות.
הגדרת מטא-נתונים של המלצות שמיושמות באופן אוטומטי (AAR)
ספריית Android ארוזה בטופס של קובץ ארכיון Android (AAR). מטא-נתונים של AAR מורכבים ממאפיינים שעוזרים AGP צורכת ספריות. אם הספרייה נצרכת על ידי תוכנה לא תואמת הוגדרו מטא-נתונים של AAR, למשתמשים מוצגת שגיאה כדי לעזור להם לפתור את הבעיה.
צריך לבחור ערך של minCompileSdk
החל מגרסה 4.1, AGP תומך
minCompileSdk
הנתון הזה מציין את רמת המינימום
compileSdk
שמשתמשים בהם בפרויקטים רבים. אם הספרייה מכילה רשומות מניפסט או
שמשתמשים במאפייני פלטפורמה חדשים יותר, צריך
מגדירים את הערך הזה.
אפשר להגדיר את הערך של minCompileSdk
באמצעות defaultConfig{}
,
חסימות productFlavors{}
ו-buildTypes{}
ברמת המודול build.gradle
file:
מגניב
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { foo { ... aarMetadata { minCompileSdk = 30 } } } }
Kotlin
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { register("foo") { ... aarMetadata { minCompileSdk = 30 } } } }
אם מגדירים את minCompileSdk
בכמה מקומות, Gradle מתעדפת את ההגדרות
במיקומים הבאים במהלך תהליך ה-build:
buildTypes{}
productFlavors{}
defaultConfig{}
בדוגמה שלמעלה, minCompileSdk
מוגדר בשתיהן
defaultConfig{}
ו-productFlavors{}
, productFlavors{}
מקבלים עדיפות
ו-minCompileSdk
מוגדר ל-30.
מידע נוסף על Gradle מתעדפת הגדרות כשמשלבים קוד ומשאבים. מידע נוסף זמין במאמר פיתוח באמצעות מקור קבוצות.
הפעלת אביזרי הבדיקה
אביזרי בדיקה נפוצים להגדרת הקוד הנבדק או לביצוע בדיקות של לרכיב הזה. החל מגרסה 7.1, אפשר ליצור אביזרי בדיקה לספרייה ב-AGP בנוסף לפרויקטים של אפליקציות ותכונות דינמיות.
כשמפרסמים ספרייה למשתמשים אחרים, כדאי ליצור
של ה-API. אפשר להפעיל אביזרי בדיקה ברמת המודול
קובץ build.gradle
:
מגניב
android { testFixtures { enable = true } }
Kotlin
android { testFixtures { enable = true } }
כשמפעילים אביזרי בדיקה, Gradle יוצרת באופן אוטומטי
קבוצת מקור src/testFixtures
שבה אפשר לכתוב אביזרי בדיקה.
מידע נוסף זמין במסמכי התיעוד של Gradle בנושא שימוש אביזרי בדיקה.