Android सीएलआई, एक कमांड-लाइन इंटरफ़ेस है. इसकी मदद से, अपनी पसंद के किसी भी टूल का इस्तेमाल करके, Android के लिए आसानी से और असरदार तरीके से ऐप्लिकेशन बनाए जा सकते हैं. यह एजेंट-फ़र्स्ट वर्कफ़्लो के लिए, डेवलपमेंट की मुख्य क्षमताओं को स्टैंडर्ड बनाता है. साथ ही, आधिकारिक टूल, कौशल, और जानकारी के लिए एंट्री पॉइंट उपलब्ध कराता है, ताकि आप ज़्यादा असरदार तरीके से डेवलपमेंट कर सकें. यह Android डेवलपमेंट के लिए, CI, रखरखाव, और स्क्रिप्ट वाले किसी भी अन्य ऑटोमेशन को भी बेहतर बना सकता है.
उदाहरण के लिए, कोई एजेंट या स्क्रिप्ट, सीएलआई का इस्तेमाल करके एनवायरमेंट सेटअप को अपने-आप पूरा कर सकती है. साथ ही, टेंप्लेट से नए प्रोजेक्ट तैयार कर सकती है और वर्चुअल डिवाइसों को सीधे आपके टर्मिनल से मैनेज कर सकती है. इससे आपके एजेंट को Android की स्किल और Android के खास नॉलेज बेस का ऐक्सेस भी मिलता है. इससे यह पक्का करने में मदद मिलती है कि आपके प्रोजेक्ट में, Android के सुझाए गए पैटर्न और सबसे सही तरीके लागू किए गए हों.
Android सीएलआई इंस्टॉल करना
Android CLI को इंस्टॉल करने के लिए, यह तरीका अपनाएं:
पक्का करें कि 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 -handroid 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- शुरू करने के लिए कॉम्पोनेंट का टाइप. अगर आपको यूज़र इंटरफ़ेस (यूआई) गतिविधि के बजाय सीधे तौर पर बैकग्राउंड सेवा शुरू करनी है, तो इसका इस्तेमाल करें. इन टाइप का इस्तेमाल किया जा सकता है:ACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_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 का मौजूदा वर्शन दिखाएं.