Android CLI เป็นอินเทอร์เฟซบรรทัดคำสั่งที่ช่วยให้คุณสร้างแอปสำหรับ Android ได้ง่ายและมีประสิทธิภาพมากขึ้น โดยใช้เครื่องมือใดก็ได้ที่คุณเลือก โดยจะกำหนดมาตรฐานความสามารถหลักในการพัฒนาสำหรับเวิร์กโฟลว์ที่เน้นเอเจนต์เป็นอันดับแรก ซึ่งเป็นจุดแรกเข้าสำหรับเครื่องมือ ทักษะ และความรู้ที่เป็นทางการที่คุณต้องใช้ในการพัฒนาอย่างมีประสิทธิภาพมากขึ้น นอกจากนี้ ยังช่วยเพิ่มประสิทธิภาพ CI, การบำรุงรักษา และการทำงานอัตโนมัติอื่นๆ ที่เขียนสคริปต์ไว้ สำหรับการพัฒนา Android ที่มีการกระจายมากขึ้นด้วย
ตัวอย่างเช่น Agent หรือสคริปต์สามารถใช้ CLI เพื่อตั้งค่าสภาพแวดล้อมโดยอัตโนมัติ สร้างโปรเจ็กต์ใหม่จากเทมเพลต และจัดการอุปกรณ์เสมือนได้โดยตรงจาก เทอร์มินัล นอกจากนี้ ยังช่วยให้เอเจนต์เข้าถึงทักษะ Android และฐานความรู้ Android เฉพาะทางเพื่อให้มั่นใจว่าโปรเจ็กต์ ใช้รูปแบบและแนวทางปฏิบัติแนะนำของ Android
ติดตั้ง Android CLI
หากต้องการติดตั้ง Android CLI ให้ทำตามขั้นตอนต่อไปนี้
หากต้องการตรวจสอบว่าคุณใช้เวอร์ชันล่าสุดอยู่ ให้อัปเดต 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 -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 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 เวอร์ชัน 2android sdk install --canary system-images/android-35/google_apis/x86_6- ติดตั้งอิมเมจระบบ Android 35 เวอร์ชันล่าสุดจากช่อง Canaryandroid 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 ประเภทที่รองรับACTIVITYWATCH_FACETILECOMPLICATIONDECLARATIVE_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- ตรวจสอบและติดตั้งการอัปเดตทุกอย่างใน SDKandroid 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