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

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

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

Android CLI इंस्टॉल करना

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

  1. Android CLI डाउनलोड करें.

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

    android update
    

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

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

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

android init

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

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

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

Android CLI को कॉन्फ़िगर करना

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

  • 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 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 फ़ाइलों के पाथ की पहचान करती है और उन्हें आउटपुट करती है. इन फ़ाइलों में प्रोजेक्ट के स्ट्रक्चर की जानकारी होती है. इसमें बिल्ड टारगेट और उनके आउटपुट आर्टफ़ैक्ट की जगहें (उदाहरण के लिए, 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]

जानकारी: JSON फ़ॉर्मैट में, चालू Android ऐप्लिकेशन (किसी फ़िज़िकल डिवाइस या एम्युलेटर से कनेक्ट) का यूज़र इंटरफ़ेस (यूआई) लेआउट दिखाता है.

विकल्प:

  • -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 और SDK बिल्ट टूल 34.0.0 पैकेज के नए वर्शन इंस्टॉल करें.
  • android sdk install platforms/android-34@2 - Android SDK प्लैटफ़ॉर्म 34 पैकेज का वर्शन 2 इंस्टॉल करें.
  • 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 फ़ाइलों के पाथ की कॉमा से अलग की गई सूची जिन्हें आप इंस्टॉल करना चाहते हैं. पाथ, फ़ाइल सिस्टम में आपकी मौजूदा जगह के हिसाब से होता है.

विकल्प:

कुछ उदाहरण:

  • 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 बिल्ड टूल 34.0.0 पैकेज को स्टेबल चैनल के नए वर्शन में अपडेट करें.
  • android sdk update --canary platforms/android-35 - Android SDK प्लैटफ़ॉर्म 35 पैकेज को कैनरी चैनल के नए वर्शन में अपडेट करें.

update

इस्तेमाल करने का तरीका: android update

जानकारी: Android CLI को अपडेट करता है.

-V, --version

जानकारी: Android CLI का मौजूदा वर्शन दिखाता है.