Android CLI هي واجهة سطر أوامر تتيح لك إنشاء تطبيقات لنظام التشغيل Android بسهولة وفعالية أكبر باستخدام أي أداة تختارها. وهي توحّد كفاءات التطوير الأساسية لسير العمل الذي يركّز على الوكلاء، ما يوفّر نقطة دخول إلى الأدوات والمهارات والمعارف الرسمية التي تحتاج إليها للتطوير بفعالية أكبر. يمكنها أيضًا تبسيط التكامل المستمر والصيانة وأي عملية برمجة آلية أخرى مكتوبة لزيادة الطبيعة الموزّعة لتطوير Android.
على سبيل المثال، يمكن لوكيل أو نص برمجي استخدام واجهة سطر الأوامر لأتمتة عملية إعداد البيئة، وإنشاء مشاريع جديدة من النماذج، وإدارة الأجهزة الافتراضية مباشرةً من جهازك. كما تمنح الوكلاء إمكانية الوصول إلى مهارات 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 حاليًا. - لا يتوفّر حاليًا تنزيل Android CLI من Windows PowerShell.
إذا واجهت أي مشاكل أو أردت تقديم ملاحظات، يُرجى الإبلاغ عن خطأ.
ضبط Android CLI
أنشِئ ملفًا باسم .androidrc لتطبيق العلامات والخيارات تلقائيًا في كل مرة تستدعي فيها Android CLI. احفظ الملف في الموقع التالي، بناءً على نظام التشغيل:
- macOS وLinux:
~/.androidrc - Windows:
%USERPROFILE%\.androidrc
أضِف العلامات التي تريد تطبيقها تلقائيًا إلى الملف، مع وضع كل علامة في سطر منفصل.
على سبيل المثال، لجعل Android CLI يستخدم حزمة Android SDK معيّنة تلقائيًا
في كل مرة، أضِف العلامة --sdk إلى ملفك:
--sdk=<path-to-sdk>
الخيارات العامّة
هذه علامات اختيارية يمكنك استخدامها مع أوامر 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 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. ستتضمّن نتائج البحث عناوين 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]
الوصف: عرض تنسيق واجهة مستخدم تطبيق Android النشط (المتصل من خلال جهاز فعلي أو محاكي) بتنسيق JSON
الخيارات:
-p, --pretty- تنسيق ناتج JSON باستخدام المسافات البادئة وفواصل الأسطر لتسهيل قراءته-o, --output- تحديد موقع ملف لحفظ شجرة التنسيق إذا لم يتم تحديد موقع، ستتم طباعة JSON مباشرةً إلى الإخراج العادي.-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 الأولية مباشرةً إلى الإخراج العادي.-a, --annotate- رسم مربّعات إحاطة مصنّفة حول جميع عناصر واجهة المستخدم التي تم رصدها في الصورة، لاستخدامها مع الأمرresolve
مثال: android screen capture --output=ui.png
screen resolve
الاستخدام: android screen resolve --screenshot=<path> --string=<string>
الوصف: ترجمة التصنيفات المرئية من لقطة شاشة مصنّفة، تم التقاطها باستخدام screen capture، إلى إحداثيات الشاشة الفعلية (س، ص)
مفيدة لبرمجة النقرات على العناصر بدون الحاجة إلى حساب مواضعها يدويًا
العلامات:
--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]
الوصف: تثبيت حِزم 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- تثبيت الإصدار 2 من حزمة Android SDK Platform 34android 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 إذا كانت هناك أنشطة متعدّدة، يجب تحديد نشاط واحد لتشغيله في البداية.--debug- نشر التطبيق في وضع تصحيح الأخطاء. بعد تشغيل الـ تطبيق في وضع تصحيح الأخطاء، يجب ربط مصحِّح الأخطاء من بيئة تطوير متكاملة، مثل "استوديو Android"، أو أداة سطر أوامر لبدء تصحيح الأخطاء.--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- تضمين حِزم الإصدار التجريبي Canary--force- فرض الرجوع إلى إصدار أقدم
أمثلة:
android sdk update- البحث عن التحديثات وتثبيتها لكل المحتوى في حزمة SDK.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 إلى أحدث إصدار في قناة الإصدار التجريبي Canary
update
الاستخدام: android update
الوصف: تحديث Android CLI
-V, --version
الوصف: عرض الإصدار الحالي من Android CLI