sdkmanager

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

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

  1. מורידים את החבילה האחרונה של 'כלים לשורת הפקודה בלבד' מדף ההורדות של Android Studio ומבצעים את הפתיחה של החבילה.
  2. מעבירים את התיקייה cmdline-tools ללא הארכיון לתיקייה חדשה לבחירתכם, למשל android_sdk. הספרייה החדשה הזו היא ספריית Android SDK.
  3. בספרייה cmdline-tools ללא דחיסה, יוצרים ספריית משנה בשם latest.
  4. מעבירים את התוכן של ספריית cmdline-tools המקורית, כולל הספרייה lib, הספרייה bin, הקובץ NOTICE.txt והקובץ source.properties, לספרייה החדשה latest. עכשיו אפשר להשתמש בכלים של שורת הפקודה מהמיקום הזה.
  5. (אופציונלי) כדי להתקין גרסה קודמת של כלי שורת הפקודה, מריצים את הפקודה הבאה:

    android_sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;version"
    
    מחליפים את version בגרסה שרוצים להתקין, לדוגמה 5.0.

שימוש

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

הצגת רשימה של החבילות המותקנות והזמינות

כדי להציג רשימה של החבילות המותקנות והזמינות, משתמשים בתחביר הבא:

sdkmanager --list [options] \
           [--channel=channel_id] // Channels: 0 (stable), 1 (beta), 2 (dev), or 3 (canary)

משתמשים באפשרות channel כדי לכלול חבילה מערוץ, עד וכולל channel_id. לדוגמה, אפשר לציין את ערוץ ה-canary כדי לקבל רשימה של חבילות מכל הערוצים.

התקנת חבילות

כדי להתקין חבילות, משתמשים בסינטקס הבא:

sdkmanager packages [options]

הארגומנט packages הוא נתיב בסגנון SDK, כפי שמוצג בפקודה --list, מוקף במירכאות. לדוגמה, "build-tools;34.0.0" או "platforms;android-33".

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

sdkmanager "platform-tools" "platforms;android-33"

לחלופין, אפשר להעביר קובץ טקסט שמציין את כל החבילות:

sdkmanager --package_file=package_file [options]

הארגומנט package_file הוא המיקום של קובץ טקסט שבו כל שורה היא נתיב בסגנון SDK של חבילת התקנה (ללא מירכאות).

כדי להסיר את התוסף, מוסיפים את הדגל --uninstall:

sdkmanager --uninstall packages [options]
sdkmanager --uninstall --package_file=package_file [options]

כדי להתקין את CMake או את NDK, צריך להשתמש בתחביר הבא:

sdkmanager --install
           ["ndk;major.minor.build[suffix]" | "cmake;major.minor.micro.build"]
           [--channel=channel_id] // NDK channels: 0 (stable), 1 (beta), or 3 (canary)

לדוגמה, אפשר להשתמש בפקודה הבאה כדי להתקין את גרסת ה-NDK שצוינה, ללא קשר לערוץ שבו היא נמצאת כרגע:

sdkmanager --install "ndk;21.3.6528147" --channel=3 // Install the NDK from the canary channel (or below)
sdkmanager --install "cmake;10.24988404" // Install a specific version of CMake

עדכון כל החבילות המותקנות

כדי לעדכן את כל החבילות המותקנות, משתמשים בסינטקס הבא:

sdkmanager --update [options]

אישור רישיונות

עליכם לאשר את הרישיון הנדרש לכל חבילה שתתקינו. השלב הזה מתרחש במהלך תהליך ההתקנה כשמתקינים חבילות מתוך Android Studio.

אם לא התקנתם את Android Studio, או אם אתם משתמשים בשרת CI או במכשיר Linux אחר ללא ממשק משתמש גרפי, עליכם לבצע את הפעולות הבאות בשורת הפקודה:

sdkmanager --licenses

תוצג בקשה לאשר רישיונות שעדיין לא אושרו.

אפשרויות

בטבלה הבאה מפורטות האפשרויות הזמינות לפקודות שמפורטות בקטע הקודם:

אפשרות תיאור
--sdk_root=path משתמשים בנתיב ה-SDK שצוין במקום ב-SDK שמכיל את הכלי הזה.
--channel=channel_id כולל חבילות בערוצים עד channel_id. הערוצים הזמינים הם:

0 (יציב), 1 (בטא), 2 (Dev) ו-3 (Canary).

--include_obsolete צריך לכלול חבילות לא תקפות ברשימת החבילות או בעדכוני החבילות. לשימוש עם --list ו---update בלבד.
--no_https לאלץ את כל החיבורים להשתמש ב-HTTP במקום ב-HTTPS.
--newer בעזרת --list, מוצגות רק חבילות חדשות או חבילות שניתן לעדכן.
--verbose מצב פלט מפורט. מודפסות שגיאות, אזהרות והודעות מידע.
--proxy={http | socks} התחברות דרך שרת proxy מהסוג הרצוי: http לפרוטוקולים ברמה גבוהה כמו HTTP או FTP, או socks לשרת proxy מסוג SOCKS (V4 או V5).
--proxy_host={IP_address | DNS_address} כתובת ה-IP או ה-DNS של שרת ה-proxy שבו צריך להשתמש.
--proxy_port=port_number מספר היציאה של שרת ה-proxy שאליו רוצים להתחבר.