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;36.0.0" או "platforms;android-36".

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

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

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

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 שצוין.
--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 (גרסה 4 או 5).
--proxy_host={IP_address | DNS_address} כתובת ה-IP או כתובת ה-DNS של שרת ה-Proxy שבו רוצים להשתמש.
--proxy_port=port_number מספר היציאה של ה-proxy שאליו רוצים להתחבר.