סקירה כללית של Android CLI

‫Android CLI הוא ממשק שורת פקודה שמאפשר לכם ליצור אפליקציות ל-Android בקלות וביעילות רבה יותר באמצעות כל כלי שתבחרו. היא יוצרת סטנדרטיזציה של יכולות פיתוח מרכזיות לתהליכי עבודה שמתמקדים בסוכנים, ומספקת נקודת התחלה לכלים, למיומנויות ולידע הרשמיים שנדרשים לפיתוח יעיל יותר. הוא גם יכול לייעל את ה-CI, את התחזוקה וכל אוטומציה אחרת מבוססת-סקריפט, כדי להתמודד עם האופי המבוזר של פיתוח ל-Android.

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

התקנת Android CLI

כדי להתקין את Android CLI, מבצעים את השלבים הבאים:

  1. מורידים את Android CLI.

  2. כדי לוודא שאתם משתמשים בגרסה העדכנית ביותר, צריך לעדכן את Android CLI:

    android update
    

כדי לבדוק אם Android CLI כבר מותקן במחשב, מריצים את הפקודה which android או command -v android. אם מוחזר נתיב, סימן שהכלי מותקן.

הגדרה לנציגים

כדי לעזור לסוכנים להבין ולהשתמש ב-Android CLI, מריצים את הפקודה init כדי להתקין את מיומנות android-cli:

android init

בעיות מוכרות

  • הפקודה android emulator ל-Windows מושבתת כרגע.

אפשרויות כלליות

אלה דגלים אופציונליים שאפשר להשתמש בהם עם פקודות אחרות של Android CLI.

-h, --help

שימוש: android <command> -h

תיאור: הצגת מדריך העזרה של הכלי או של פקודה ספציפית.

דוגמאות:

  • android -h
  • android create -h

--sdk

שימוש: android --sdk=<path-to-sdk> <command>

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

דוגמה: android --sdk=<path/to/sdk> sdk list

פקודות

בקטע הזה מפורטות כל הפקודות של Android CLI ומוסבר מה הן עושות. לפני כל אחת מהפקודות האלה צריך להוסיף android, לדוגמה android create, android run וכן הלאה. משנים אופציונליים מוקפים בסוגריים מרובעים [], וארגומנטים חובה לא מוקפים בסוגריים.

create

שימוש: android create [--dry-run] [--verbose] [--name=<application-name>] [--output=<dest-path>] [<template-name>]

תיאור: הפעלה של פרויקט חדש מתבנית. כדי לראות את האפשרויות של התבנית, מריצים את הפקודה android create -h.

ארגומנטים (חובה):

  • -o, --output – נתיב ספריית היעד של הפרויקט.

אפשרויות:

  • --dry-run – מדמה את כל תהליך יצירת הפרויקט בלי לשמור קבצים בפועל. לדוגמה, אפשר להריץ בדיקה כדי לראות מה התבניות השונות עושות לפני שבוחרים אחת מהן.
  • --verbose – הפעלת פלט מפורט, כולל מידע כמו אילו קבצים מועתקים מהתבנית.
  • --name=<application-name> – שם ספריית הפרויקט. אם לא מציינים את הנתיב, נעשה שימוש בספריית הפלט.
  • <template-name> – השם של התבנית שממנה רוצים ליצור פרויקט חדש. אם לא מציינים ערך, נעשה שימוש ב-empty-activity-agp-9.

דוגמה: android create --dry-run --verbose empty-activity-agp-9

create list

שימוש: android create list

תיאור: הצגת רשימה של כל התבניות הזמינות ליצירת פרויקט חדש.

describe

שימוש: android describe [--project_dir=<project-directory>]

תיאור: מנתח פרויקט Android כדי ליצור מטא-נתונים תיאוריים. הפקודה הזו מזהה את הנתיבים לקובצי JSON שמפרטים את מבנה הפרויקט, כולל יעדי ה-build והמיקומים של פריטי הפלט התואמים (לדוגמה, קובצי APK), ומציגה אותם. המידע הזה מאפשר לכלים ולפקודות אחרים לאתר ביעילות את ארטיפקטים של build.

אפשרויות:

  • --project_dir – ספריית הפרויקט שרוצים לתאר. אם לא מציינים נתיב, נעשה שימוש בספרייה הנוכחית.

דוגמה: android describe --project_dir=/path/to/your/project

docs

שימוש:

  • android docs search <query>
  • android docs fetch <kb-url>

תיאור: הפקודה android docs היא תהליך דו-שלבי לגישה למאגר הידע של Android ישירות מה-CLI. קודם כל, מחפשים תיעוד שקשור לשאילתה באמצעות הפקודה search. תוצאות החיפוש יכללו כתובות URL מיוחדות שמתחילות ב-kb://, ואז תוכלו להשתמש בפקודה fetch כדי להציג את פקודות התיעוד במסוף.

דוגמאות:

  • android docs search 'How do I improve my app performance?'
  • android docs fetch kb://android/topic/performance/overview

emulator create

שימוש: android emulator create [--list-profiles] [--profile=<profile-name>]

תיאור: יצירת מכשיר וירטואלי.

אפשרויות:

  • --list-profiles – הצגת רשימה של פרופילי המכשירים שאפשר להשתמש בהם כדי ליצור מכשיר.
  • --profile=<profile-name> – יצירת מכשיר עם הפרופיל שצוין. אם לא מציינים את האפשרות הזו, הפרופיל ב-medium_phone ייווצר.

emulator list

שימוש: android emulator list

תיאור: הצגת רשימה של המכשירים הווירטואליים הזמינים.

emulator start

שימוש: android emulator start <device-name>

תיאור: מפעיל את המכשיר הווירטואלי שצוין.

ארגומנטים (חובה):

  • <device-name> – שם המכשיר להפעלה (לדוגמה, medium_phone). אפשר להשתמש ב-android emulator list כדי לראות את המכשירים הזמינים.

דוגמה: android emulator start medium_phone

emulator stop

שימוש: android emulator stop <device-serial-number>

תיאור: עצירה של המכשיר הווירטואלי שצוין.

ארגומנטים (חובה):

  • <device-serial-number> – המספר הסידורי של המכשיר שרוצים להפסיק את השימוש בו.

דוגמה: android emulator stop emulator-5554

info

שימוש: android info

תיאור: הצגת הנתיב אל Android SDK שמוגדר כברירת מחדל. כדי לשנות את Android SDK שבו נעשה שימוש, צריך להשתמש ב---sdk.

init

שימוש: android init

תיאור: כדי להגדיר את הסביבה לסוכנים, צריך להתקין את מיומנות android-cli.

layout

שימוש: android layout [--pretty] [--output] [--diff]

תיאור: מחזירה את פריסת ממשק המשתמש של אפליקציית Android הפעילה (שמחוברת דרך מכשיר פיזי או אמולטור) בפורמט JSON.

אפשרויות:

  • -p, --pretty – מעצב את פלט ה-JSON עם הזחה ומעברי שורה כדי שיהיה קריא לאנשים.
  • -o, --output – מציין מיקום של קובץ לשמירת עץ הפריסה. אם לא מציינים את האפשרות הזו, קובץ ה-JSON מודפס ישירות ל-stdout.
  • -d, --diff – מחזירה רשימה של רכיבי הפריסה בלבד שהשתנו מאז הצילום האחרון של המצב הפנימי (הפעם האחרונה שהופעלה הפריסה), במקום את עץ הפריסה המלא.

לדוגמה:: android layout --output=./hierarchy.json

skills add

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

שימוש: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]

תיאור: התקנת מיומנויות של Android בספריות המיומנויות של כל הסוכנים שזוהו. אם אין לכם ספריות סוכנים קיימות ולא ציינתם סוכנים ספציפיים, המיומנויות יותקנו עבור Gemini ו-Antigravity בכתובת ~/.gemini/antigravity/skills.

אפשרויות:

  • --all – הוספה של כל הכישורים ל-Android בבת אחת. אם לא מציינים את המדיניות (וגם לא מציינים את --skill), תותקן רק היכולת android-cli.
  • --agent – רשימה מופרדת בפסיקים של סוכנים שרוצים להתקין את המיומנות עבורם. אם לא מציינים את הפרמטר הזה, המיומנות תותקן לכל הסוכנים שזוהו.
  • --skill – שם המיומנות שרוצים להתקין. אם לא מציינים את המדיניות (וגם לא מציינים את --all), תותקן רק היכולת android-cli.

דוגמה: android skills add --agent='gemini' edge-to-edge

skills find

שימוש: android skills find <string>

תיאור: חיפוש מיומנויות שתואמות למחרוזת נתונה.

ארגומנטים (חובה):

  • string – מחרוזת שתואמת לתיאור של מיומנות.

דוגמה: android skills find 'performance'

skills list

שימוש: android skills list [--long]

תיאור: רשימת המיומנויות הזמינות.

אפשרויות:

  • --long – פלט מידע נוסף על כל מיומנות, כולל תיאור המיומנות והסוכנים שכבר הותקנה אצלם.

skills remove

שימוש: android skills remove [--agent] --skill=<skill-name>

תיאור: הסרת מיומנות. אם לא מציינים סוכנים ספציפיים, המיומנות תוסר מכל הסוכנים.

ארגומנטים (חובה):

  • --skill – השם של המיומנות שרוצים להסיר.

אפשרויות:

  • --agent - רשימה מופרדת בפסיקים של סוכנים שמהם רוצים להסיר את הכישורים. אם לא מציינים את המיומנות, היא תוסר מכל הנציגים.

דוגמה: android skills remove --agent='gemini' --skill=edge-to-edge

screen capture

שימוש: android screen capture [--output] [--annotate]

תיאור: מצלם את המסך של המכשיר המחובר.

אפשרויות:

  • -o, --output – מציין את מיקום הקובץ לשמירת צילום המסך. אם לא מציינים את האפשרות הזו, נתוני ה-PNG הגולמיים יודפסו ישירות ל-stdout.
  • -a, --annotate – מצייר תיבות תוחמות עם תוויות סביב כל רכיבי ממשק המשתמש שזוהו בתמונה. משתמשים באפשרות הזו עם הפקודה resolve.

דוגמה: android screen capture --output=ui.png

screen resolve

שימוש: android screen resolve --screenshot=<path> --string=<string>

תיאור: תרגום של התוויות החזותיות מצילום מסך עם הערות, שצולם באמצעות screen capture, לקואורדינטות מסך בפועל (x, y). האפשרות הזו שימושית לכתיבת סקריפטים לקליקים על רכיבים בלי לחשב ידנית את המיקומים שלהם.

דגלים:

  • --screenshot – הנתיב לצילום המסך עם ההערות.
  • --string – מחרוזת שכוללת לפחות placeholder אחד שתואם לתווית של רכיב בממשק המשתמש בפורמט #<number>. החלק #<number> יוחלף בקואורדינטות של המסך.

לדוגמה:

אם התווית 5 נמצאת בקואורדינטות (500, 1000), הפקודה

android screen resolve --screenshot=ui.png --string="input tap #5"

מחזירה את הפלט

input tap 500 1000

sdk install

שימוש: android sdk install <package[@version]> [--beta] [--canary] [--force]

תיאור: התקנה של חבילות ה-SDK שצוינו.

ארגומנטים (חובה):

  • package[@version] – רשימה מופרדת ברווחים של חבילות להתקנה. אם לא מציינים גרסה, מותקנת הגרסה האחרונה של החבילה בערוץ (ברירת המחדל היא הערוץ היציב).

אפשרויות:

  • --beta – כולל חבילות בטא.
  • --canary – כולל חבילות של גרסת הגישוש.
  • --force – כפיית שדרוג לאחור לגרסה ישנה יותר.

דוגמאות:

  • android sdk install platforms/android-34 build-tools/34.0.0 – מתקינים את הגרסאות העדכניות של חבילות Android SDK Platform 34 ו-SDK Built Tools 34.0.0 מהערוץ היציב.
  • android sdk install platforms/android-34@2 – מתקינים את גרסה 2 של חבילת Android SDK Platform 34.
  • android sdk install --canary system-images/android-35/google_apis/x86_6 - מתקינים את הגרסה העדכנית של קובץ אימג' של המערכת Android 35 מערוץ Canary.
  • android sdk install --force platforms/android-33@1 – חזרה לגרסה 1 של חבילת Android SDK Platform 33 מהערוץ היציב.

sdk list

שימוש: android sdk list <package-pattern>

תיאור: הצגת רשימה של חבילות SDK שהותקנו וחבילות SDK זמינות.

ארגומנטים (חובה):

  • <package-pattern> – סינון חבילות לפי תבנית. תמיכה בביטויים רגולריים.

אפשרויות:

  • --all – הצגת כל החבילות המותקנות והזמינות.
  • --all-versions – הצגת כל הגרסאות של כל חבילה.
  • --beta – כולל חבילות בטא.
  • --canary – כולל חבילות של גרסת הגישוש.

sdk remove

שימוש: android sdk remove <package-name>

תיאור: הסרת חבילה מ-SDK.

ארגומנטים (חובה):

  • <package-name> – שם החבילה שרוצים להסיר.

דוגמה: android sdk remove build-tools/36.1.0

run

שימוש: android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>

תיאור: פריסת אפליקציית Android במכשיר מחובר או באמולטור. היא לא מבצעת שלבי בנייה, אלא צריך לספק את הנתיבים לקובצי ה-APK שרוצים להתקין.

ארגומנטים (חובה):

  • --apks – רשימה מופרדת בפסיקים של נתיבים לקובצי ה-APK שרוצים להתקין. הנתיב הוא יחסי למיקום הנוכחי במערכת הקבצים.

אפשרויות:

  • --activity – השם של הפעילות להפעלה אחרי התקנת ה-APK. אם יש כמה פעילויות, צריך לציין פעילות אחת להפעלה הראשונית.
  • --debug – פריסת האפליקציה במצב ניפוי באגים. אחרי שמריצים את האפליקציה במצב ניפוי באגים, צריך לחבר את כלי ניפוי הבאגים מ-IDE, כמו Android Studio, או מכלי שורת פקודה כדי להתחיל בניפוי הבאגים.
  • --device – המספר הסידורי של מכשיר היעד או האמולטור. האפשרות הזו נחוצה רק אם מחוברים כמה מכשירים. כדי למצוא את המספרים הסידוריים של המכשירים, מריצים את הפקודה adb devices.
  • --typeסוג הרכיב שרוצים להתחיל איתו. משתמשים בזה אם רוצים להפעיל שירות הפועל ברקע ישירות במקום פעילות בממשק המשתמש. סוגים נתמכים:
    • ACTIVITY
    • WATCH_FACE
    • TILE
    • COMPLICATION
    • DECLARATIVE_WATCH_FACE

דוגמאות:

  • android run --apks=app/build/outputs/apk/debug/app-debug.apk – פריסה של חבילת APK אחת למכשיר ברירת המחדל.
  • android run --apks=base.apk,density-hdpi.apk,lang-en.apk – פריסת כמה קובצי APK למכשיר ברירת המחדל.
  • android run --apks=app-debug.apk --type=SERVICE --activity=.sync.DataSyncService – בדיקת שירות ללא פעילות.
  • android run --apks=app-debug.apk --device=emulator-5554 – פריסת ה-APK במכשיר ספציפי.

sdk update

שימוש: android sdk update [--beta] [--canary] [<package-name>]

תיאור: עדכון של חבילה אחת או של כל החבילות לגרסה העדכנית בערוץ (כברירת מחדל, הערוץ היציב). אם לא מציינים חבילה, כל החבילות יעודכנו.

אפשרויות:

  • <package-name> – השם של החבילה שרוצים לעדכן.
  • --beta – כולל חבילות בטא.
  • --canary – כולל חבילות של גרסת הגישוש.
  • --force – כפיית שדרוג לאחור לגרסה ישנה יותר.

דוגמאות:

  • android sdk update – בדיקה והתקנה של עדכונים לכל מה שיש ב-SDK.
  • android sdk update build-tools/34.0.0 – מעדכנים את חבילת Android SDK Build Tools 34.0.0 לגרסה העדכנית ביותר בערוץ היציב.
  • android sdk update --canary platforms/android-35 – מעדכנים את חבילת Android SDK Platforms 35 לגרסה האחרונה בערוץ Canary.

update

שימוש: android update

תיאור: עדכון של Android CLI.

-V, --version

תיאור: הצגת הגרסה הנוכחית של Android CLI.