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

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

उदाहरण के लिए, कोई एजेंट या स्क्रिप्ट, सीएलआई का इस्तेमाल करके एनवायरमेंट सेटअप को अपने-आप पूरा कर सकती है. साथ ही, टेंप्लेट से नए प्रोजेक्ट तैयार कर सकती है और वर्चुअल डिवाइसों को सीधे आपके टर्मिनल से मैनेज कर सकती है. इससे आपके एजेंट को Android की स्किल और Android के खास नॉलेज बेस का ऐक्सेस भी मिलता है. इससे यह पक्का करने में मदद मिलती है कि आपके प्रोजेक्ट में, Android के सुझाए गए पैटर्न और सबसे सही तरीके लागू किए गए हों.

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

Android CLI को इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. Android सीएलआई डाउनलोड करें.

  2. पक्का करें कि Android CLI का नया वर्शन इस्तेमाल किया जा रहा हो. इसके लिए, इसे अपडेट करें:

    android update
    

यह देखने के लिए कि आपकी मशीन पर Android CLI पहले से इंस्टॉल है या नहीं, which android या command -v android चलाएं: अगर यह कोई पाथ दिखाता है, तो इसका मतलब है कि यह इंस्टॉल है.

एजेंट के लिए सेट अप करना

एजेंट को Android CLI को समझने और उसका इस्तेमाल करने में मदद करने के लिए, init चलाकर android-cli स्किल इंस्टॉल करें:

android init

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

  • फ़िलहाल, Windows के लिए android emulator कमांड बंद है.

ग्लोबल ऑप्शन

ये ऐसे फ़्लैग हैं जिनका इस्तेमाल करना ज़रूरी नहीं है. इन्हें 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 कमांड का इस्तेमाल करके, सीधे तौर पर CLI से 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

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

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 डिप्लॉय करता है.

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 पैकेज को कैनरी चैनल में नए वर्शन पर अपडेट करें.

update

इस्तेमाल: android update

ब्यौरा: Android CLI को अपडेट करें.

-V, --version

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