הכנת הספרייה לגרסה

בדף הזה מתוארים המאפיינים והאפשרויות הנדרשים כדי להכין את פרויקט של ספריית 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:

  1. buildTypes{}

  2. productFlavors{}

  3. 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 בנושא שימוש אביזרי בדיקה.