ภาพรวมของ Android CLI

Android CLI เป็นอินเทอร์เฟซบรรทัดคำสั่งที่ช่วยให้คุณสร้างแอปสำหรับ Android ได้ง่ายและมีประสิทธิภาพมากขึ้น โดยใช้เครื่องมือใดก็ได้ที่คุณเลือก โดยจะกำหนดมาตรฐานความสามารถหลักในการพัฒนาสำหรับเวิร์กโฟลว์ที่เน้นเอเจนต์เป็นอันดับแรก ซึ่งเป็นจุดแรกเข้าสำหรับเครื่องมือ ทักษะ และความรู้ที่เป็นทางการที่คุณต้องใช้ในการพัฒนาอย่างมีประสิทธิภาพมากขึ้น นอกจากนี้ ยังช่วยเพิ่มประสิทธิภาพ CI, การบำรุงรักษา และการทำงานอัตโนมัติอื่นๆ ที่เขียนสคริปต์ไว้ สำหรับการพัฒนา Android ที่มีการกระจายมากขึ้นด้วย

ตัวอย่างเช่น Agent หรือสคริปต์สามารถใช้ 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 ปิดใช้อยู่

ตัวเลือกส่วนกลาง

โดยเป็นแฟล็กที่ไม่บังคับซึ่งคุณใช้กับคำสั่ง CLI อื่นๆ ของ Android ได้

-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 เป็นกระบวนการ 2 ขั้นตอนสำหรับ การเข้าถึงฐานความรู้ของ 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]

คำอธิบาย: แสดงเลย์เอาต์ของ UI ของแอป 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 - วาดกรอบล้อมรอบที่มีป้ายกำกับรอบองค์ประกอบ UI ทั้งหมด ที่ตรวจพบในรูปภาพเพื่อใช้กับคำสั่ง resolve

ตัวอย่าง: android screen capture --output=ui.png

screen resolve

การใช้งาน: android screen resolve --screenshot=<path> --string=<string>

คำอธิบาย: แปลป้ายกำกับภาพจากภาพหน้าจอที่มีคำอธิบายประกอบ ซึ่งแคปเจอร์โดยใช้ screen capture เป็นพิกัดหน้าจอจริง (x, y) มีประโยชน์สำหรับการเขียนสคริปต์การคลิกองค์ประกอบโดยไม่ต้องคำนวณตำแหน่งด้วยตนเอง

แฟล็ก:

  • --screenshot - เส้นทางไปยังภาพหน้าจอที่มีคำอธิบายประกอบ
  • --string - สตริงที่มีตัวยึดตำแหน่งอย่างน้อย 1 รายการที่สอดคล้องกับ ป้ายกำกับองค์ประกอบ UI ในรูปแบบ #<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 - รวมแพ็กเกจ 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 - ติดตั้งแพ็กเกจ Android SDK Platform 34 เวอร์ชัน 2
  • 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 ที่ติดตั้งและพร้อมใช้งาน

อาร์กิวเมนต์ (ต้องระบุ):

  • <package-pattern> - กรองแพ็กเกจตามรูปแบบ รองรับนิพจน์ทั่วไป

ตัวเลือก:

  • --all - แสดงแพ็กเกจที่ติดตั้งและพร้อมใช้งานทั้งหมด
  • --all-versions - แสดงเวอร์ชันทั้งหมดของแต่ละแพ็กเกจ
  • --beta - รวมแพ็กเกจเบต้า
  • --canary - รวมแพ็กเกจ 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 แล้ว หากมีกิจกรรมหลายรายการ คุณต้องระบุ กิจกรรม 1 รายการเพื่อเปิดตัวในตอนแรก
  • --debug - Deploys the app in debug mode. หลังจากเรียกใช้แอปในโหมดแก้ไขข้อบกพร่องแล้ว คุณต้องเชื่อมต่อโปรแกรมแก้ไขข้อบกพร่องจาก IDE เช่น Android Studio หรือเครื่องมือบรรทัดคำสั่งเพื่อเริ่มการแก้ไขข้อบกพร่อง
  • --device - หมายเลขซีเรียลของอุปกรณ์เป้าหมายหรือโปรแกรมจำลอง จำเป็น เฉพาะในกรณีที่เชื่อมต่ออุปกรณ์หลายเครื่อง หากต้องการดูหมายเลขซีเรียลของอุปกรณ์ ให้เรียกใช้ adb devices
  • --type - ประเภทคอมโพเนนต์ที่จะเริ่มต้น ใช้ตัวเลือกนี้หากต้องการเริ่มบริการที่ทำงานอยู่เบื้องหลังโดยตรงแทนกิจกรรม UI ประเภทที่รองรับ
    • ACTIVITY
    • WATCH_FACE
    • TILE
    • COMPLICATION
    • DECLARATIVE_WATCH_FACE

ตัวอย่าง

  • android run --apks=app/build/outputs/apk/debug/app-debug.apk - Deploy 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>]

คำอธิบาย: อัปเดตแพ็กเกจอย่างน้อย 1 รายการหรือทั้งหมดเป็นเวอร์ชันล่าสุดใน แชแนล (โดยค่าเริ่มต้นคือแชแนลที่เสถียร) หากคุณไม่ระบุแพ็กเกจ ระบบจะอัปเดตแพ็กเกจทั้งหมด

ตัวเลือก:

  • <package-name> - ชื่อของแพ็กเกจที่จะอัปเดต
  • --beta - รวมแพ็กเกจเบต้า
  • --canary - รวมแพ็กเกจ Canary
  • --force - บังคับลดเวอร์ชันเป็นเวอร์ชันเก่า

ตัวอย่าง

  • android sdk update - ตรวจสอบและติดตั้งการอัปเดตทุกอย่างใน SDK
  • android sdk update build-tools/34.0.0 - อัปเดตแพ็กเกจเครื่องมือสร้าง Android SDK 34.0.0 เป็นเวอร์ชันล่าสุดในช่องทางที่เสถียร
  • android sdk update --canary platforms/android-35 - อัปเดตแพ็กเกจ Android SDK Platforms 35 เป็นเวอร์ชันล่าสุดในแชแนล Canary

update

การใช้งาน: android update

คำอธิบาย: อัปเดต Android CLI

-V, --version

คำอธิบาย: แสดงเวอร์ชันปัจจุบันของ Android CLI