Android सीएलआई के बारे में खास जानकारी

Android सीएलआई, एक कमांड-लाइन इंटरफ़ेस है. इसकी मदद से, अपनी पसंद के किसी भी टूल का इस्तेमाल करके, Android के लिए आसानी से और असरदार तरीके से ऐप्लिकेशन बनाए जा सकते हैं. यह एजेंट-फ़र्स्ट वर्कफ़्लो के लिए, डेवलपमेंट की मुख्य क्षमताओं को स्टैंडर्ड बनाता है. साथ ही, आधिकारिक टूल, कौशल, और जानकारी के लिए एंट्री पॉइंट उपलब्ध कराता है, ताकि आप ज़्यादा असरदार तरीके से डेवलपमेंट कर सकें. यह Android डेवलपमेंट के लिए, CI, रखरखाव, और स्क्रिप्ट की मदद से होने वाले किसी भी अन्य ऑटोमेशन को भी बेहतर बना सकता है.

उदाहरण के लिए, कोई एजेंट या स्क्रिप्ट, सीएलआई का इस्तेमाल करके ये काम कर सकती है:

  • एनवायरमेंट के सेटअप को ऑटोमेट करना
  • टेंप्लेट से नए प्रोजेक्ट बनाना
  • अपने टर्मिनल से सीधे वर्चुअल डिवाइसों को मैनेज करना
  • गतिविधि की मदद से अपने ऐप्लिकेशन की जांच करना

Android CLI, आपके एजेंट को Android की सुविधाओं और Android के खास नॉलेज बेस का ऐक्सेस भी देता है. इससे यह पक्का करने में मदद मिलती है कि आपके प्रोजेक्ट में, Android के सुझाए गए पैटर्न और सबसे सही तरीके लागू किए गए हों.

Android सीएलआई इंस्टॉल करना

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 CLI, टूल के बुनियादी इस्तेमाल से जुड़ा डेटा इकट्ठा करता है. हम यह डेटा इकट्ठा करते हैं:

  • android कमांड और सब-कमांड का इस्तेमाल. उदाहरण के लिए, android run और android create.
  • इस्तेमाल किए गए नॉन-पोज़िशनल आर्ग्युमेंट या विकल्पों के नाम. उदाहरण के लिए, --sdk या --version.
  • पोज़ीशनल आर्ग्युमेंट और फ़्लैग वैल्यू, Android CLI के ज़रिए मैनेज किए जाने वाले सिस्टम के विकल्पों के पहले से तय किए गए सेट से मैप होती हैं. उदाहरण के लिए, हम एम्युलेटर टेंप्लेट के नाम इकट्ठा करते हैं. जैसे, medium_phone और large_desktop. साथ ही, एजेंट के नाम इकट्ठा करते हैं. जैसे, GEMINI, CLAUDE या CODEX.
  • स्टैक ट्रेस और अपवाद वाले मैसेज. इनमें पहचान छिपाने वाली जानकारी को इकट्ठा करने से पहले ही हटा दिया जाता है, ताकि निजता को सुरक्षित रखा जा सके.

यहां ऐसे डेटा के कुछ उदाहरण दिए गए हैं जिसे हम इकट्ठा नहीं करते:

  • जब कोई कमांड चलाई जाती है, तब हम सीएलआई के जवाबों को इकट्ठा नहीं करते.
  • हम उपयोगकर्ता के बनाए गए इनपुट या सीएलआई को पास किए गए बाहरी आइडेंटिफ़ायर इकट्ठा नहीं करते. जैसे, Maven के खास कोऑर्डिनेट, लोकल फ़ाइल पाथ या कस्टम प्रोजेक्ट के नाम. उदाहरण के लिए, अगर android create --name=com.company.internal.app कमांड को एक्ज़ीक्यूट किया जाता है, तो हम यह रिकॉर्ड करते हैं कि android create --name=com.company.internal.app को --name आर्ग्युमेंट का इस्तेमाल करके एक्ज़ीक्यूट किया गया था. हालांकि, हम com.company.internal.app वैल्यू को सेव नहीं करते हैं.android create

सुझाव/राय देना या शिकायत करना और समस्याएं

अगर आपको कोई समस्या आती है या आपको कोई सुझाव/राय देनी है या शिकायत करनी है, तो बग की शिकायत करें.

पहले से मालूम समस्याएं

  • फ़िलहाल, Windows के लिए android emulator कमांड बंद है.
  • फ़िलहाल, Windows PowerShell से Android CLI डाउनलोड करने की सुविधा उपलब्ध नहीं है.

Android सीएलआई को कॉन्फ़िगर करना

.androidrc फ़ाइल बनाएं, ताकि Android CLI को हर बार चालू करने पर फ़्लैग और विकल्प अपने-आप लागू हो जाएं. अपने ऑपरेटिंग सिस्टम के हिसाब से, फ़ाइल को यहां सेव करें:

  • macOS और Linux: ~/.androidrc
  • Windows: %USERPROFILE%\.androidrc

उन फ़्लैग को जोड़ें जिन्हें आपको फ़ाइल पर अपने-आप लागू करना है. हर फ़्लैग को अलग-अलग लाइन में जोड़ें.

उदाहरण के लिए, Android CLI को हर बार डिफ़ॉल्ट रूप से किसी खास Android SDK का इस्तेमाल करने के लिए, अपनी फ़ाइल में --sdk फ़्लैग जोड़ें:

--sdk=<path-to-sdk>

ग्लोबल ऑप्शन

ये ऐसे फ़्लैग हैं जिनका इस्तेमाल करना ज़रूरी नहीं है. इन्हें 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 सीएलआई के सभी निर्देशों की सूची दी गई है. साथ ही, यह भी बताया गया है कि ये निर्देश क्या करते हैं. इन सभी निर्देशों से पहले 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 फ़ाइलों के पाथ की पहचान करती है और उन्हें आउटपुट करती है जिनमें प्रोजेक्ट के स्ट्रक्चर के बारे में जानकारी होती है. इसमें बिल्ड टारगेट और उनके आउटपुट आर्टफ़ैक्ट की लोकेशन (उदाहरण के लिए, APK फ़ाइलें) शामिल होती हैं. इस जानकारी की मदद से, अन्य टूल और कमांड, बिल्ड आर्टफ़ैक्ट को आसानी से ढूंढ पाते हैं.

विकल्प:

  • --project_dir - प्रोजेक्ट डायरेक्ट्री की जानकारी. अगर इसे शामिल नहीं किया जाता है, तो मौजूदा डायरेक्ट्री का इस्तेमाल किया जाता है.

उदाहरण: android describe --project_dir=/path/to/your/project

docs

इस्तेमाल:

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

जानकारी: android docs कमांड का इस्तेमाल करके, सीधे सीएलआई से Android के नॉलेज बेस को ऐक्सेस किया जा सकता है. इसके लिए, दो चरणों वाली प्रोसेस पूरी करनी होती है. सबसे पहले, अपनी क्वेरी से जुड़े दस्तावेज़ को search कमांड का इस्तेमाल करके खोजें. खोज के नतीजों में, 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

run

इस्तेमाल: android run [--debug] [--activity=<activity-name>] [--device=<serial-number>] [--type=<param>] --apks=<apk-paths>

जानकारी: कनेक्ट किए गए डिवाइस या एम्युलेटर पर Android ऐप्लिकेशन डिप्लॉय करें. यह कोई भी बिल्ड स्टेप नहीं करता है. आपको उन APK फ़ाइलों के पाथ देने होंगे जिन्हें इंस्टॉल करना है.

आर्ग्युमेंट (ज़रूरी):

  • --apks - कॉमा लगाकर अलग किए गए उन APK फ़ाइलों के पाथ की सूची जिन्हें आपको इंस्टॉल करना है. पाथ, फ़ाइल सिस्टम में आपकी मौजूदा जगह के हिसाब से होता है.

विकल्प:

  • --activity - APK इंस्टॉल होने के बाद लॉन्च होने वाली ऐक्टिविटी का नाम. अगर एक से ज़्यादा गतिविधियां हैं, तो आपको शुरुआत में लॉन्च करने के लिए एक गतिविधि चुननी होगी.
  • --debug - इससे ऐप्लिकेशन को डीबग मोड में डिप्लॉय किया जाता है. ऐप्लिकेशन को डीबग मोड में चलाने के बाद, आपको डीबग करने के लिए, किसी आईडीई (जैसे, 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 डिप्लॉय करता है.

screen capture

इस्तेमाल: android screen capture [--output] [--annotate]

ब्यौरा: इससे कनेक्ट किए गए डिवाइस का स्क्रीनशॉट कैप्चर किया जाता है.

विकल्प:

  • -o, --output - इससे स्क्रीनशॉट सेव करने के लिए, फ़ाइल की जगह तय की जाती है. अगर इसे शामिल नहीं किया जाता है, तो रॉ पीएनजी डेटा को सीधे तौर पर stdout पर प्रिंट किया जाएगा.
  • -a, --annotate - यह इमेज में मौजूद सभी यूज़र इंटरफ़ेस (यूआई) एलिमेंट के चारों ओर लेबल किए गए बाउंडिंग बॉक्स बनाता है. इसका इस्तेमाल resolve कमांड के साथ किया जाता है.

उदाहरण: android screen capture --output=ui.png

screen resolve

इस्तेमाल: android screen resolve --screenshot=<path> --string=<string>

ब्यौरा: यह फ़ंक्शन, एनोटेट किए गए स्क्रीनशॉट से विज़ुअल लेबल को स्क्रीन के असली कोऑर्डिनेट (x, y) में बदलता है. यह स्क्रीनशॉट, screen capture का इस्तेमाल करके कैप्चर किया जाता है. यह सुविधा, एलिमेंट पर क्लिक करने के लिए स्क्रिप्ट लिखने में मददगार होती है. इससे आपको उनकी पोज़िशन का हिसाब मैन्युअल तरीके से नहीं लगाना पड़ता.

फ़्लैग:

  • --screenshot - एनोटेट किए गए स्क्रीनशॉट का पाथ.
  • --string - यह एक ऐसी स्ट्रिंग है जिसमें कम से कम एक प्लेसहोल्डर शामिल होता है. यह प्लेसहोल्डर, यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लेबल से मेल खाता है. इसका फ़ॉर्मैट #<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]

ब्यौरा: इस विकल्प का इस्तेमाल करके, एसडीके के चुने गए पैकेज इंस्टॉल किए जाते हैं.

आर्ग्युमेंट (ज़रूरी):

  • package[@version] - इंस्टॉल किए जाने वाले पैकेज की स्पेस से अलग की गई सूची. अगर वर्शन के बारे में नहीं बताया गया है, तो चैनल में मौजूद पैकेज का नया वर्शन इंस्टॉल किया जाता है. डिफ़ॉल्ट रूप से, यह स्टेबल चैनल होता है.

विकल्प:

  • --beta - बीटा पैकेज शामिल करें.
  • --canary - इसमें कैनरी पैकेज शामिल होते हैं.
  • --force - किसी पुराने वर्शन पर वापस जाने के लिए मजबूर करना.

उदाहरण:

  • android sdk install platforms/android-34 build-tools/34.0.0 - स्टेबल चैनल से, Android SDK प्लैटफ़ॉर्म 34 और एसडीके बिल्ट टूल 34.0.0 पैकेज के नए वर्शन इंस्टॉल करें.
  • android sdk install platforms/android-34@2 - Android SDK प्लैटफ़ॉर्म 34 पैकेज का दूसरा वर्शन इंस्टॉल करें.
  • android sdk install --canary system-images/android-35/google_apis/x86_6 - कैनरी चैनल से, Android 35 सिस्टम इमेज का नया वर्शन इंस्टॉल करें.
  • android sdk install --force platforms/android-33@1 - स्टेबल चैनल से, Android SDK प्लैटफ़ॉर्म 33 पैकेज के वर्शन 1 पर वापस जाएं.

sdk list

इस्तेमाल: android sdk list <package-pattern>

ब्यौरा: इंस्टॉल किए गए और उपलब्ध एसडीके पैकेज की सूची बनाएं.

आर्ग्युमेंट (ज़रूरी):

  • <package-pattern> - पैटर्न के हिसाब से पैकेज फ़िल्टर करें. रेगुलर एक्सप्रेशन के साथ काम करता है.

विकल्प:

  • --all - इंस्टॉल किए गए और उपलब्ध सभी पैकेज दिखाएं.
  • --all-versions - हर पैकेज के सभी वर्शन दिखाएं.
  • --beta - बीटा पैकेज शामिल करें.
  • --canary - इसमें कैनरी पैकेज शामिल होते हैं.

sdk remove

इस्तेमाल: android sdk remove <package-name>

ब्यौरा: एसडीके से पैकेज हटाता है.

आर्ग्युमेंट (ज़रूरी):

  • <package-name> - हटाने के लिए पैकेज का नाम.

उदाहरण: android sdk remove build-tools/36.1.0

sdk update

इस्तेमाल: android sdk update [--beta] [--canary] [<package-name>]

ब्यौरा: चैनल में मौजूद एक या सभी पैकेज को नए वर्शन में अपडेट करें. डिफ़ॉल्ट रूप से, यह स्टेबल चैनल होता है. अगर आपने कोई पैकेज नहीं चुना है, तो सभी पैकेज अपडेट हो जाएंगे.

विकल्प:

  • <package-name> - अपडेट किए जाने वाले पैकेज का नाम.
  • --beta - बीटा पैकेज शामिल करें.
  • --canary - इसमें कैनरी पैकेज शामिल होते हैं.
  • --force - किसी पुराने वर्शन पर वापस जाने के लिए मजबूर करना.

उदाहरण:

  • android sdk update - अपने एसडीके में मौजूद सभी चीज़ों के लिए अपडेट की जांच करें और उन्हें इंस्टॉल करें.
  • 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 पैकेज को कैनरी चैनल में नए वर्शन पर अपडेट करें.

skills add

Android की सुविधाएं, खास निर्देश होती हैं. इन्हें इसलिए बनाया गया है, ताकि एजेंट Android डेवलपमेंट से जुड़े सबसे सही तरीकों और दिशा-निर्देशों का पालन करने वाले खास पैटर्न को बेहतर तरीके से समझ सकें और उन्हें लागू कर सकें. ज़्यादा जानने के लिए, Android की बुनियादी बातों के बारे में जानकारी लेख पढ़ें.

इस्तेमाल: android skills add [--all] [--agent=<agent-name>] [--skill=<skill-name>]

जानकारी: Android की स्किल को, सभी एजेंट के लिए स्किल डायरेक्ट्री में इंस्टॉल करें. अगर आपके पास कोई मौजूदा एजेंट डायरेक्ट्री नहीं है और आपने किसी एजेंट के बारे में नहीं बताया है, तो ये स्किल Gemini और Antigravity के लिए ~/.gemini/antigravity/skills पर इंस्टॉल की जाएंगी. अगर आपने पहले से ही Android की सुविधाएं इंस्टॉल की हैं, तो skills add से इन सुविधाओं को नए वर्शन में अपडेट किया जा सकता है.

विकल्प:

  • --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

studio check

studio कमांड की मदद से, आपको या आपके एआई एजेंट को Android Studio के चालू इंस्टेंस के साथ इंटरैक्ट करने की सुविधा मिलती है. चालू इंस्टेंस से कनेक्ट करके, फ़ाइलों का विश्लेषण करने, सिंबल के एलान और इस्तेमाल का पता लगाने, Compose की झलकियां रेंडर करने, और डिपेंडेंसी के वर्शन देखने के लिए, IDE की सुविधाओं का इस्तेमाल किया जा सकता है.

इस्तेमाल: android studio check

जानकारी: इससे Android Studio के चालू इंस्टेंस की स्थिति की जांच की जाती है. साथ ही, खुले हुए प्रोजेक्ट की सूची बनाई जाती है. सीएलआई और आईडीई के बीच कनेक्शन की पुष्टि करने के लिए, सबसे पहले यह कमांड चलाएं. साथ ही, अगर एक से ज़्यादा पीआईडी और प्रोजेक्ट हैं, तो उस पीआईडी और प्रोजेक्ट को चुनें जिससे आपको कनेक्ट करना है.

आउटपुट का उदाहरण:

कनेक्ट होने पर, आउटपुट में Android Studio के चालू इंस्टेंस का पीआईडी, वर्शन, और खुले हुए प्रोजेक्ट की स्थिति दिखती है:

pid: 32942
version: Android Studio Quail
Projects:
    READY     MyApplication /Users/username/AndroidStudioProjects/MyApplication

studio analyze-file

इस्तेमाल: android studio analyze-file [--pid=<pid>] [--project=<project>] <path>

जानकारी: यह Android Studio में किसी फ़ाइल का विश्लेषण करता है, ताकि गड़बड़ियों, चेतावनियों, और लिंट का पता लगाया जा सके. इसके लिए, IDE के बिल्ट-इन इंस्पेक्शन इंजन का इस्तेमाल किया जाता है.

आर्ग्युमेंट (ज़रूरी):

  • <path> - विश्लेषण के लिए Kotlin या Java फ़ाइल का पाथ.

विकल्प:

  • --pid=<pid> - अगर एक से ज़्यादा Android Studio इंस्टेंस मौजूद हैं, तो कनेक्ट करने के लिए किसी खास Android Studio इंस्टेंस का पीआईडी.
  • --project=<project> - Android Studio में खुले हुए प्रोजेक्ट का नाम, ताकि क्वेरी की जा सके. अगर एक से ज़्यादा प्रोजेक्ट खुले हैं, तो यह नाम देना ज़रूरी है. अगर प्रोजेक्ट डायरेक्ट्री में analyze-file कमांड चलाई जाती है, तो उस प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है.

उदाहरण:

android studio analyze-file \
  --project=MyApplication \
  /Users/username/AndroidStudioProjects/MyApplication/app/src/main/java/com/example/myapp/MainActivity.kt

studio find-declaration

इस्तेमाल: android studio find-declaration [--short] [--context-file=<path>] [--pid=<pid>] [--project=<project>] <symbol>

ब्यौरा: यह सुविधा, सिमैंटिक रिज़ॉल्यूशन का इस्तेमाल करके, पूरे प्रोजेक्ट में किसी सिंबल (क्लास, तरीका, वैरिएबल, फ़ील्ड, कॉन्स्टेंट या Android संसाधन) की सटीक डेक्लरेशन साइट ढूंढती है.

आर्ग्युमेंट (ज़रूरी):

  • <symbol> - कोड सिंबल का नाम, जिसके लिए एलान ढूंढना है.

विकल्प:

  • --context-file=<path> - सिंबल का रेफ़रंस देने वाली फ़ाइल का वैकल्पिक पाथ. कॉन्टेक्स्ट फ़ाइल उपलब्ध कराने से, इंपोर्ट और स्कोप की जानकारी मिलती है. इससे, अस्पष्ट या ओवरलोड किए गए सिंबल को ठीक करने में मदद मिलती है.
  • --short - इससे आउटपुट को आसान बनाया जाता है, ताकि सिर्फ़ फ़ाइल की जगह और लाइन मैच दिखे.
  • --pid=<pid> - अगर एक से ज़्यादा Android Studio इंस्टेंस मौजूद हैं, तो कनेक्ट करने के लिए किसी खास Android Studio इंस्टेंस का पीआईडी.
  • --project=<project> - Android Studio में खुले हुए प्रोजेक्ट का नाम, ताकि क्वेरी की जा सके. अगर एक से ज़्यादा प्रोजेक्ट खुले हैं, तो यह नाम देना ज़रूरी है. अगर प्रोजेक्ट डायरेक्ट्री में find-declaration कमांड चलाई जाती है, तो उस प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है.

उदाहरण:

android studio find-declaration --short HotelDetailScreen

studio find-usages

इस्तेमाल: android studio find-usages [--short] [--pid=<pid>] [--project=<project>] <symbol>

ब्यौरा: सिमैंटिक विश्लेषण का इस्तेमाल करके, पूरे प्रोजेक्ट में किसी सिंबल के सभी रेफ़रंस और इस्तेमाल का पता लगाता है.

आर्ग्युमेंट (ज़रूरी):

  • <symbol> - वह सिंबल जिसका इस्तेमाल ढूंढना है.

विकल्प:

  • --short - इससे आउटपुट को आसान बनाया जाता है, ताकि सिर्फ़ मेल खाने वाली फ़ाइल की जगहें दिखें.
  • --pid=<pid> - अगर एक से ज़्यादा Android Studio इंस्टेंस मौजूद हैं, तो कनेक्ट करने के लिए किसी खास Android Studio इंस्टेंस का पीआईडी.
  • --project=<project> - Android Studio में खुले हुए प्रोजेक्ट का नाम, ताकि क्वेरी की जा सके. अगर एक से ज़्यादा प्रोजेक्ट खुले हैं, तो यह नाम देना ज़रूरी है. अगर इस कमांड को किसी प्रोजेक्ट डायरेक्ट्री से चलाया जाता है, तो उस प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है.

उदाहरण:

android studio find-usages --short HotelDetailScreen

studio open-file

इस्तेमाल: android studio open-file [--pid=<pid>] [--project=<project>] <path>

ब्यौरा: इससे Android Studio की ऐक्टिव एडिटर विंडो में कोई फ़ाइल सीधे तौर पर खुलती है.

आर्ग्युमेंट (ज़रूरी):

  • <path> - खोलने के लिए फ़ाइल का पाथ. इसे प्रोजेक्ट की रूट डायरेक्ट्री के हिसाब से या ऐब्सलूट पाथ के तौर पर तय किया जा सकता है.

विकल्प:

  • --pid=<pid> - अगर एक से ज़्यादा Android Studio इंस्टेंस मौजूद हैं, तो कनेक्ट करने के लिए किसी खास Android Studio इंस्टेंस का पीआईडी.
  • --project=<project> - Android Studio में खुले हुए प्रोजेक्ट का नाम, ताकि क्वेरी की जा सके. अगर एक से ज़्यादा प्रोजेक्ट खुले हैं, तो यह नाम देना ज़रूरी है. अगर प्रोजेक्ट डायरेक्ट्री से open-file कमांड चलाई जाती है, तो उस प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है.

उदाहरण:

android studio open-file app/src/main/java/com/example/myapp/ui/DetailScreen.kt

studio render-compose-preview

इस्तेमाल: android studio render-compose-preview [--print-semantics] [--output-image-file=<filename>] [--pid=<pid>] [--project=<project>] <path> <composable>

जानकारी: यह फ़ंक्शन, Jetpack Compose के यूज़र इंटरफ़ेस (यूआई) की झलक दिखाता है. साथ ही, यह लेआउट के सिमैंटिक ट्री को भी दिखाता है. हालांकि, ऐसा करना ज़रूरी नहीं है. यह विज़ुअल टेस्टिंग के लिए या एआई एजेंट को यूज़र इंटरफ़ेस (यूआई) लेआउट के साथ काम करने की सुविधा चालू करने के लिए फ़ायदेमंद है.

आर्ग्युमेंट (ज़रूरी):

  • <path> - Compose की झलक दिखाने वाली Kotlin फ़ाइल का पाथ.
  • <composable> - कंपोज़ेबल प्रीव्यू फ़ंक्शन का नाम (@Preview के साथ मार्क किया गया).

विकल्प:

  • --output-image-file=<filename> - इससे उस फ़ाइल का नाम तय किया जाता है जिसमें रेंडर की गई PNG इमेज सेव की जाएगी. अगर इसे शामिल नहीं किया जाता है, तो कुछ समय के लिए फ़ाइल बन जाती है.
  • --print-semantics - अगर यह सही है, तो रेंडर की गई Compose की झलक के ऐक्सेसिबिलिटी सिमैंटिक्स ट्री को JSON फ़ॉर्मैट में प्रिंट करता है. इससे एजेंट, यूज़र इंटरफ़ेस (यूआई) के स्ट्रक्चर और इंटरैक्टिव एलिमेंट को पार्स कर पाते हैं.
  • --pid=<pid> - अगर एक से ज़्यादा Android Studio इंस्टेंस मौजूद हैं, तो कनेक्ट करने के लिए किसी खास Android Studio इंस्टेंस का पीआईडी.
  • --project=<project> - Android Studio में खुले हुए प्रोजेक्ट का नाम, ताकि क्वेरी की जा सके. अगर एक से ज़्यादा प्रोजेक्ट खुले हैं, तो यह नाम देना ज़रूरी है. अगर किसी प्रोजेक्ट डायरेक्ट्री से render-compose-preview कमांड चलाई जाती है, तो उस प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है.

उदाहरण:

android studio render-compose-preview \
  --output-image-file=preview_hotel.png \
  --print-semantics \
  app/src/main/java/com/example/myapp/ui/DetailScreen.kt \
  HotelDetailScreenPreview

studio version-lookup

इस्तेमाल: android studio version-lookup [--pid=<pid>] [--project=<project>] <artifacts...>

ब्यौरा: यह Google Maven जैसी रिपॉज़िटरी में, सामान्य डिपेंडेंसी, Android प्लैटफ़ॉर्म, और एसडीके टूल के सबसे नए उपलब्ध वर्शन ढूंढता है. इससे, मैन्युअल तरीके से डिपेंडेंसी के वर्शन की जांच करने के बजाय, प्रोग्राम के हिसाब से जांच करने का विकल्प मिलता है.

आर्ग्युमेंट (ज़रूरी):

  • <artifacts...> - स्पेस से अलग किए गए आइडेंटिफ़ायर की सूची. एक ही कमांड में, कई आर्टफ़ैक्ट के बारे में क्वेरी की जा सकती है. इन आइडेंटिफ़ायर का इस्तेमाल किया जा सकता है:
    • Maven लाइब्रेरी: groupId:artifactId नोटेशन (उदाहरण के लिए, androidx.window:window).
    • Gradle प्लगिन: प्लगिन आईडी (उदाहरण के लिए, com.android.application).
    • कीवर्ड:
      • gradle (Gradle बिल्ड टूल)
      • studio (Android Studio)
      • agp (Android Gradle प्लगिन)
      • ndk (Android NDK)
      • sdk (Android SDK)
      • emulator (Android Emulator)
      • adb (Android डीबग ब्रिज)
      • compose (Jetpack Compose BOM)
      • kotlin (Kotlin रनटाइम और कंपाइलर)
      • android (Android OS के वर्शन)
      • platform-tools (Android SDK Platform-Tools)
      • cmdline-tools (Android SDK के कमांड-लाइन टूल)
      • build-tools (Android SDK Build-Tools)

विकल्प:

  • --pid=<pid> - अगर एक से ज़्यादा Android Studio इंस्टेंस मौजूद हैं, तो कनेक्ट करने के लिए किसी खास Android Studio इंस्टेंस का पीआईडी.
  • --project=<project> - Android Studio में खुले हुए प्रोजेक्ट का नाम, ताकि क्वेरी की जा सके. अगर एक से ज़्यादा प्रोजेक्ट खुले हैं, तो यह नाम देना ज़रूरी है. अगर प्रोजेक्ट डायरेक्ट्री में version-lookup कमांड चलाई जाती है, तो उस प्रोजेक्ट का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है.

उदाहरण:

android studio version-lookup \
  androidx.compose.ui:ui \
  com.android.application \
  agp \
  kotlin

update

इस्तेमाल: android update

ब्यौरा: Android सीएलआई को अपडेट करें.

-V, --version

ब्यौरा: Android CLI का मौजूदा वर्शन दिखाएं.