sdkmanager

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

הכלי sdkmanager מסופק בחבילה Android SDK Command-Line Tools. כדי להשתמש ב-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;35.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 לשרת SOCKS (גרסה 4 או 5).
--proxy_host={IP_address | DNS_address} כתובת ה-IP או ה-DNS של שרת ה-Proxy שרוצים להשתמש בו.
--proxy_port=port_number מספר היציאה של ה-proxy שאליו מתחברים.