بصفتك مطوّر تطبيقات للأجهزة الجوّالة، غالبًا ما تُطوّر واجهة مستخدم تطبيقك خطوة بخطوة بدلاً من تطوير كل شيء دفعة واحدة. يتّبع "استوديو Android" هذا النهج باستخدام IDE Jetpack من خلال توفير أدوات لا تتطلّب إنشاءً كاملاً لفحص القيم وتعديلها والتحقّق من النتيجة النهائية.
التعديل في الوقت الفعلي
تتيح لك ميزة "التعديل المباشر" تعديل العناصر القابلة للتجميع في المحاكيات و الأجهزة الفعلية في الوقت الفعلي. تقلِّل هذه الوظيفة من عمليات تبديل السياق بين كتابة تطبيقك وتصميمه، ما يتيح لك التركيز على كتابة الرموز البرمجية لفترة أطول بدون انقطاع.
تتوفّر ميزة "التعديل المباشر" بثلاثة أوضاع:
- يدوي: يتم تطبيق تغييرات الرمز عند دفعها يدويًا باستخدام Control +' (Command +' على نظام التشغيل macOS)
- تطبيق التغييرات يدويًا عند الحفظ: يتم تطبيق تغييرات الرمز عند حفظها يدويًا باستخدام Control + S (Command + S على نظام التشغيل macOS).
- تلقائي: يتم تطبيق التغييرات في جهازك أو المحاكي عند تعديل دالّة قابلة للتجميع.
تركّز ميزة "التعديل المباشر" على التغييرات في الرموز البرمجية ذات الصلة بواجهة المستخدم وتجربة المستخدم. لا تسمح ميزة "التعديل المباشر" بإجراء تغييرات مثل تعديل توقيع الطريقة أو إضافة طرق جديدة أو تغيير التسلسل الهرمي للفئة. لمزيد من المعلومات، يُرجى الاطّلاع على قائمة قيود ميزة "تعديل أثناء البث".
لا تُعدّ هذه الميزة بديلاً لبناء تطبيقك وتشغيله أو لميزة تطبيق التغييرات. بدلاً من ذلك، تم تصميمه لتحسين سير العمل أثناء إنشاء واجهة مستخدم Compose ونشرها وتكرارها لتطويرها.
في ما يلي سير العمل وفقًا لأفضل الممارسات:
- إعداد تطبيقك كي يتمكّن من التشغيل
- استخدِم ميزة "التعديل المباشر" قدر الإمكان إلى أن تحتاج إلى إجراء تغيير لا تتيحه هذه الميزة، مثل إضافة طرق جديدة أثناء تشغيل التطبيق.
- بعد إجراء تغيير غير متوافق، انقر على رمز التشغيل
لإعادة تشغيل تطبيقك واستئناف ميزة "التعديل المباشر".
بدء استخدام ميزة "التعديل المباشر"
للبدء، اتّبِع الخطوات التالية لإنشاء نشاط كتابة فارغ وتفعيل ميزة التعديل المباشر لمشروعك وإجراء تغييرات باستخدام ميزة التعديل المباشر.
إعداد مشروعك الجديد
قبل البدء، تأكَّد من تثبيت الإصدار Giraffe من Android Studio أو إصدار أحدث وأنّ المستوى 30 من واجهة برمجة التطبيقات هو الحد الأدنى لمستوى واجهة برمجة التطبيقات في الجهاز أو المحاكي.
افتح "استوديو Android" واختَر مشروع جديد في مربّع الحوار مرحبًا بك في استوديو Android. إذا كان لديك مشروع مفتوح، يمكنك إنشاء مشروع جديد من خلال الانتقال إلى ملف > جديد > مشروع جديد.
اختَر نموذج نشاط كتابة فارغ لـ الهاتف والجهاز اللوحي، ثم انقر على التالي.
الشكل 1. النماذج التي يمكنك الاختيار من بينها بالنسبة إلى ميزة "التعديل المباشر"، اختَر نشاط كتابة فارغ. أكمِل مربّع الحوار مشروع جديد بالمعلومات المطلوبة: الاسم، اسم الحزمة، ومكان الحفظ، والحد الأدنى لحزمة تطوير البرامج (SDK)، ولغة إعدادات الإنشاء.
الشكل 2. مثال على إعدادات المشروع انقر على إنهاء.
تفعيل ميزة "التعديل في الوقت الفعلي"
انتقِل إلى الإعدادات لتفعيل ميزة "التعديل المباشر".
- على نظام التشغيل Windows أو Linux، انتقِل إلى ملف > الإعدادات > المحرِّر > التعديل المباشر.
- على نظام التشغيل macOS، انتقِل إلى Android Studio > الإعدادات > المحرِّر > التعديل المباشر.
اختَر الخيار التعديل المباشر والوضع الذي تريد تشغيله من الإعدادات.
في الوضع اليدوي، يتمّ نشر تغييرات الرمز البرمجي في كلّ مرّة تضغط فيها على Control +' (Command +' على نظام التشغيل macOS). في الوضع اليدوي للحفظ، يتم تطبيق تغييرات الرمز في كل مرة تحفظ فيها يدويًا باستخدام Control+S (Command+S على macOS). في الوضع التلقائي، يتم تطبيق تغييرات الرمز على جهازك أو المحاكي أثناء إجراء التغييرات.
الشكل 3. إعدادات ميزة "التعديل المباشر" في المحرِّر، افتح ملف
MainActivity
، وهو نقطة دخول تطبيقك.انقر على تشغيل
لنشر تطبيقك.
بعد تفعيل ميزة "التعديل المباشر"، تظهر علامة الاختيار الخضراء معدَّل البيانات محدَّث في أعلى يسار نافذة أداة الأجهزة التي تعمل:
إجراء التغييرات ومراجعتها
عند إجراء تغييرات متوافقة في المحرِّر، يتم تعديل الجهاز الاختباري الافتراضي أو المادي تلقائيًا.
على سبيل المثال، عدِّل طريقة Greeting
الحالية في MainActivity
إلى الخطوات التالية:
@Composable fun Greeting(name: String) { Text( text = "Hello $name!", Modifier .padding(80.dp) // Outer padding; outside background .background(color = Color.Cyan) // Solid element background color .padding(16.dp) // Inner padding; inside background, around text) ) }
تظهر التغييرات على الفور على الجهاز الاختباري، كما هو موضّح في الشكل 4.

Greeting
.تحديد المشاكل وحلّها في ميزة "التعديل في الوقت الفعلي"
إذا لم تظهر لك تعديلاتك على الجهاز التجريبي، قد يكون قد تعذّر على Android Studio تعديلها. تحقّق مما إذا كان مؤشر التعديل المباشر يشير إلى قديم كما هو موضّح في الشكل 5، ما يشير إلى خطأ في عملية الترجمة. للحصول على معلومات عن الخطأ واقتراحات حول كيفية حلّه، انقر على المؤشر.

قيود ميزة "التعديل في الوقت الفعلي"
في ما يلي قائمة بالقيود الحالية.
[لا ينطبق ذلك إلا على الإصدار Giraffe من Android Studio والإصدارات الأحدث] تتطلب ميزة "التعديل المباشر" استخدام Compose Runtime 1.3.0 أو إصدار أحدث. إذا كان مشروعك يستخدم إصدارًا أقدم من ميزة "الإنشاء"، سيتم إيقاف ميزة "التعديل المباشر".
[لا ينطبق إلا على الإصدار Giraffe من Android Studio والإصدارات الأحدث] تتطلب ميزة "التعديل المباشر" استخدام الإصدار 8.1.0-alpha05 من AGP أو إصدار أحدث. إذا كان مشروعك يستخدم إصدارًا قديمًا من AGP، سيتم إيقاف ميزة "التعديل المباشر".
تتطلّب ميزة "التعديل المباشر" استخدام جهاز فعلي أو محاكي يعمل بالمستوى 30 من واجهة برمجة التطبيقات أو إصدار أحدث.
لا تتيح ميزة "التعديل المباشر" سوى تعديل نص الدالة، ما يعني أنّه لا يمكنك تغيير اسم الدالة أو توقيعها أو إضافة دالة أو إزالتها أو تغيير الحقول غير الدالة.
تؤدي ميزة "التعديل المباشر" إلى إعادة ضبط حالة التطبيق في المرة الأولى التي تغيّر فيها وظيفة Compose في ملف. ولا يحدث ذلك إلا بعد إجراء أول تغيير على الرمز البرمجي، ولا تتم إعادة ضبط حالة التطبيق بواسطة التغييرات اللاحقة التي تجريها على وظائف Compose في هذا الملف.
قد تتعرّض الصفوف المعدَّلة باستخدام ميزة "التعديل المباشر" لبعض العقوبات على مستوى الأداء. يمكنك تشغيل تطبيقك واستخدام إصدار نظيف من الإصدار إذا كنت تقيِّم أداءه.
يجب إجراء عملية تشغيل كاملة ليتمكّن مصحِّح الأخطاء من العمل على الفئات التي عدّلتها باستخدام ميزة "التعديل المباشر".
قد يتعطّل تطبيق قيد التشغيل عند تعديله باستخدام ميزة "التعديل المباشر". في هذه الحالة، يمكنك إعادة نشر التطبيق باستخدام الزر تشغيل
.
لا تُجري ميزة "التعديل المباشر" أيّ تعديل على رمز الآلة المحدّد فيملف الإنشاء الخاص بمشروعك، مثل تعديل رمز الآلة الذي سيتم تطبيقه عند إنشاء المشروع باستخدام الخيارات في قائمة الإنشاء أو بالنقر على الزرّين إنشاء أو تشغيل.
يتم تعديل الدوال غير القابلة للتجميع مباشرةً على الجهاز أو المحاكي، ويتم بدء إعادة تركيب كاملة. قد لا تؤدي إعادة التركيب الكاملة إلى استدعاء الدالة المعدَّلة. بالنسبة إلى الدوالّ غير القابلة للتجميع، عليك تفعيل الدوالّ التي تم تعديلها حديثًا أو تشغيل التطبيق مرة أخرى.
لا تتم استعادة ميزة "التعديل المباشر" عند إعادة تشغيل التطبيق. يجب تشغيل التطبيق مرة أخرى.
لا تتيح ميزة "التعديل المباشر" سوى العمليات التي يمكن تصحيح أخطاءها.
لا تتيح ميزة "التعديل المباشر" استخدام القيم المخصّصة لسمة
moduleName
ضمنkotlinOptions
في إعدادات الإصدار.لا تعمل ميزة "التعديل المباشر" مع عمليات النشر المتعدّدة. وهذا يعني أنّه لا يمكنك النشر على جهاز واحد ثم على جهاز آخر. لا تكون ميزة "التعديل المباشر" مفعّلة إلا على المجموعة الأخيرة من الأجهزة التي تم نشر التطبيق عليها.
تعمل ميزة "التعديل المباشر" مع عمليات النشر على أجهزة متعددة (عمليات النشر على أجهزة متعددة تم إنشاؤها من خلال اختيار أجهزة متعددة في القائمة المنسدلة للجهاز المستهدَف). ومع ذلك، لا يُنصح باستخدام هذه الطريقة رسميًا وقد تواجهك مشاكل. إذا واجهت مشاكل، يُرجى الإبلاغ عنها.
لا تتوافق ميزة "تطبيق التغييرات" أو "تطبيق تغييرات الرموز" مع ميزة "التعديل المباشر"، ويلزم إعادة تشغيل التطبيق الجاري.
لا تتيح ميزة "التعديل المباشر" حاليًا مشاريع Android Automotive.
الأسئلة الشائعة حول ميزة "التعديل المباشر"
ما هي الحالة الحالية لميزة "التعديل المباشر"؟
تتوفّر ميزة "التعديل المباشر" في الإصدار Giraffe من "استوديو Android". لتفعيل هذه الميزة، انتقِل إلى ملف > الإعدادات > المحرِّر > التعديل المباشر (Android Studio > الإعدادات > المحرِّر > التعديل المباشر على نظام التشغيل macOS).
متى يجب استخدام ميزة "التعديل المباشر"؟
استخدِم ميزة "التعديل المباشر" عندما تريد الاطّلاع بسرعة على تأثير التعديلات على عناصر تجربة المستخدم (مثل تعديلات المُعدِّلات والصور المتحركة) في تجربة استخدام التطبيق بشكل عام.
متى يجب تجنُّب استخدام ميزة "التعديل المباشر"؟
تركّز ميزة "التعديل المباشر" على التغييرات في الرموز البرمجية ذات الصلة بواجهة المستخدم وتجربة المستخدم. ولا يتوافق مع التغييرات، مثل تعديلات توقيعات الطرق أو إضافة طرق جديدة أو تغييرات التسلسل الهرمي للصفوف. لمزيد من المعلومات، يُرجى الاطّلاع على قيود ميزة "تعديل أثناء البث المباشر".
متى يجب استخدام ميزة "معاينة الإنشاء"؟
استخدِم ميزة "معاينة الإنشاء" عند تطوير عناصر قابلة للتجميع فردية. تعرِض ميزة "المعاينة" عناصر "الإنشاء" وتُحدِّث الشاشة تلقائيًا لعرض أثر التغييرات في الرمز البرمجي. تتيح ميزة "المعاينة" أيضًا عرض عناصر واجهة المستخدم ضمن إعدادات وحالات مختلفة، مثل المظهر الداكن واللغات وحجم الخط.
تطوير الرموز البرمجية بشكلٍ متكرّر باستخدام Compose
إنّ ميزتَي "التعديل المباشر" و"إعادة التحميل السريع" في Compose Multiplatform هما ميزتان يمكن أن توفّرا وقتك وتزيدا من إنتاجيتك أثناء التطوير باستخدام Compose. ومع ذلك، تلبي هذه الأدوات احتياجات أنواع مختلفة من التطوير:
تتيح ميزة التعديل في الوقت الفعلي تطوير التطبيقات بشكلٍ متكرّر باستخدام Jetpack Compose لتطبيقات Android. ويتيح لك تعديل العناصر القابلة للتجميع في المحاكيات والأجهزة الفعلية في الوقت الفعلي. تقلِّل هذه الوظيفة من عمليات تبديل السياق بين كتابة تطبيقك وتصميمه، ما يتيح لك التركيز على كتابة الرموز البرمجية لفترة أطول بدون انقطاع.
تلبي ميزة إعادة التحميل السريع في Compose الحاجة نفسها، ولكنها تتوافق مع تطبيقات الكمبيوتر المكتبي التي تم إنشاؤها باستخدام Compose Multiplatform. ويتيح لك ذلك إجراء تغييرات على رمز واجهة المستخدم في تطبيق Compose المتوافق مع جميع الأنظمة الأساسية، واطلاعك على النتائج في الوقت الفعلي من خلال إعادة تحميل الرمز بشكل ذكي عند تغييره.
على الرغم من أنّ هاتين الميزتَين تتشاركان العديد من التكنولوجيات ضمن محرّك Compose وتمتثلان للعديد من حالات الاستخدام المشابهة، إلا أنّهما لا تمتلكان الإمكانات نفسها لأنّهما تنطبقان على أنواع مختلفة من تطوير Compose.
إذا كنت بصدد تطوير تطبيق Android، ننصحك باستخدام ميزة "التعديل المباشر" لتسريع عملية التطوير. إذا كنت تُطوّر تطبيقًا متوافقًا مع أجهزة الكمبيوتر المكتبي باستخدام IDE Compose Multiplatform، عليك استخدام ميزة "إعادة التحميل السريع" في Compose.
التعديل المباشر للقيم الحرفية (ميزة متوقّفة نهائيًا)
يمكن لخدمة Android Studio تعديل بعض القيم الثابتة المستخدَمة في العناصر القابلة للتجميع في الوقت الفعلي ضمن معاينات التطبيق والمحاكي والجهاز الفعلي. في ما يلي بعض الأنواع المتوافقة:
Int
String
Color
Dp
Boolean
يمكنك عرض القيم الثابتة التي تؤدي إلى إجراء تعديلات في الوقت الفعلي بدون خطوة compilation (الترجمة: الترجمة) من خلال تفعيل زخارف القيم من خلال ميزة Live Edit (الترجمة: التعديل المباشر) لمؤشر واجهة مستخدم ملف برمجي يحتوي على قيم ثابتة:
تطبيق التغييرات
تتيح لك ميزة تطبيق التغييرات تعديل الرموز البرمجية والموارد بدون الحاجة إلى إعادة نشر تطبيقك على جهاز محاكاة أو جهاز فعلي (مع بعض القيود).
عند إضافة مكونات قابلة للتجميع أو تعديلها أو حذفها، يمكنك تعديل تطبيقك بدون الحاجة إلى إعادة نشره من خلال النقر على الزر تطبيق تغييرات الرمز البرمجي:
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون لغة JavaScript غير مفعّلة.
- تخصيص الصور المتحركة {:#customize-animations}
- الصور المتحركة المستندة إلى القيمة
- إضافة مَعلمات