ويوفر المحاكي إمكانات شبكات متعددة الاستخدامات يمكنك استخدامها إعداد بيئات نمذجة واختبار معقدة لتطبيقك. هذه الصفحة لتقديم بنية شبكة المحاكي وإمكاناتها.
مساحة عنوان الشبكة
يعمل كل مثيل من المحاكي وراء جهاز توجيه افتراضي أو خدمة جدار حماية. يعزلها عن واجهات وإعدادات شبكة جهاز التطوير ومن الإنترنت. الجهاز الذي تتم محاكاته لا يمكنه رصد جهاز التطوير أو غير ذلك من حالات المحاكي على الشبكة. إنه يكتشف فقط أنه من متصل من خلال الإيثرنت بجهاز توجيه أو جدار حماية.
الموجه الافتراضي لكل مثيل يدير عنوان الشبكة 10.0.2/24 مساحة. تكون جميع العناوين التي يديرها جهاز التوجيه في شكل 10.0.2.xx، حيث يمثل xx رقمًا. العناوين في هذه المساحة هي تم تخصيصها مسبقًا بواسطة المحاكي أو جهاز التوجيه على النحو التالي:
عنوان الشبكة | الوصف |
---|---|
10.0.2.1 | عنوان جهاز التوجيه أو البوابة |
2.2.00 | اسم مستعار خاص لواجهة استرجاع المضيف (127.0.0.1 على آلة التطوير) |
3.2.0.00 | خادم نظام أسماء النطاقات الأول |
10.0.2.4 / 10.0.2.5 / 10.0.2.6 | خوادم نظام أسماء النطاقات الاختيارية الثانية والثالثة والرابعة |
10.0.2.15 | شبكة الجهاز التي تتم محاكاتها عند الاتصال باستخدام إيثرنت |
10 فبراير 2016 | شبكة الجهاز التي تتم محاكاتها عند الاتصال باستخدام شبكة Wi-Fi |
127.0.0.1 | واجهة استرجاع الجهاز التي تمت محاكاتها |
يتم استخدام تخصيص العناوين نفسه من خلال جميع المحاكيات قيد التشغيل. الحالات. وهذا يعني أنه إذا كان لديك حالتان يعملان بالتزامن في سيكون لكل جهاز موجه خاص به، وخلفه، سيكون لكل جهاز عنوان IP لجهاز 10.0.2.15. يتم عزل المثيلات بواسطة موجه ولا يمكن من اكتشاف كل منهما على الشبكة نفسها. للحصول على معلومات حول كيفية السماح لمثيلات المحاكي بالاتصال عبر TCP/UDP، راجِع القسم الذي يتناول ربط مثيلات المحاكي.
يتوافق العنوان 127.0.0.1 على جهاز التطوير لديك إلى واجهة استرجاع المحاكي. للوصول إلى الخدمات قيد التشغيل. في واجهة استرجاع جهاز التطوير، استخدم الطريقة الخاصة 10.0.2.2 بدلاً من ذلك.
العناوين المخصصة مسبقًا لجهاز محاكى هي الخاصة بمحاكي Android ومن المحتمل أن تكون مختلفة جدًا الأجهزة (والتي قد تتم أيضًا ترجمة عناوين الشبكة، خاصةً وراء جهاز توجيه أو جدار حماية).
قيود الشبكات المحلية
يمكن لتطبيقات Android التي تعمل على محاكي الاتصال بالشبكة المتاحة على نظام التشغيل Android. ومع ذلك، تتصل التطبيقات من خلال المحاكي، وليس مباشرةً بالأجهزة والمحاكي. بمثابة تطبيق عادي على محطة العمل لديك. يمكن أن يؤدي ذلك إلى بعض القيود:
- قد يتم حظر الاتصال بالجهاز الذي تتم محاكاته بواسطة جدار حماية البرنامج قيد التشغيل على جهازك.
- قد يتم حظر الاتصال بالجهاز الذي تتم محاكاته من قِبل مستخدم آخر. جدار الحماية أو جهاز التوجيه (الفعلي) الذي يتصل جهازك به.
ينبغي أن يكون الموجه الافتراضي للمحاكي قادرًا على التعامل مع جميع بروتوكولات TCP الصادرة اتصالات UDP والرسائل نيابة عن الجهاز الذي تتم محاكاته، شريطة أن آلة التطوير الخاصة بها. لا يوجد قيود مضمّنة على أرقام المنافذ أو النطاقات، فقط تلك التي تفرضها الشبكة ونظام التشغيل المضيف.
بناءً على البيئة، قد لا يتمكن المحاكي من التوافق مع (مثل بروتوكول ICMP، المستخدمة في "ping"). في الوقت الحالي، المحاكي لا يتوافق مع IGMP أو البث المتعدد.
استخدام إعادة توجيه الشبكة
للتواصل مع مثيل محاكي وراء جهاز التوجيه الافتراضي، إعداد إعادة توجيه الشبكة على الموجه الافتراضي. يمكن للعملاء بعد ذلك الاتصال إلى منفذ ضيف محدد على الموجه، بينما يوجه الموجه حركة البيانات من وإلى ذلك المنفذ إلى منفذ مضيف الجهاز الذي تتم محاكاته.
لإعداد إعادة توجيه الشبكة، يجب إنشاء تعيين للمضيف والضيف.
المنافذ والعناوين على مثيل المحاكي. هناك طريقتان لإعداد
إعادة توجيه الشبكة: باستخدام أوامر وحدة التحكم المحاكية واستخدام
أداة Debug Bridge (adb
)، كما هو موضَّح في الأقسام التالية.
إعداد إعادة التوجيه من خلال وحدة تحكم المحاكي
يوفر كل مثيل محاكي وحدة تحكم يمكنك الاتصال بها
أوامر إصدار خاصة بتلك المثيل. يمكنك استخدام
redir
لإعداد عملية إعادة التوجيه حسب الحاجة
مثيل المحاكي.
أولاً، حدد رقم منفذ وحدة التحكم لمثيل المحاكي المستهدف. على سبيل المثال، رقم منفذ وحدة التحكم لمثيل المحاكي الأول الذي تم تشغيله هو 5554. بعد ذلك، يتصل بوحدة التحكم في مثيل المحاكي المستهدف، لتحديد رقم منفذ وحدة التحكم، على النحو التالي:
telnet localhost 5554
وبعد اكتمال عملية الربط، يجب إجراء المصادقة لتتمكّن من إعداد عملية إعادة التوجيه. عرض
بدء جلسة وحدة تحكُّم وإيقافها لـ
تفاصيل حول كيفية القيام بذلك. بعد المصادقة، يمكنك استخدام الأمر redir
للعمل مع
إعادة التوجيه.
لإضافة عملية إعادة توجيه، استخدِم ما يلي:
redir add <protocol>:<host-port>:<guest-port>
حيث تكون قيمة <protocol>
إما tcp
أو udp
،
و<host-port>
و<guest-port>
ضبطا
بين جهازك ونظام المحاكاة.
على سبيل المثال، يقوم الأمر التالي بإعداد عملية إعادة توجيه تتعامل مع جميع اتصالات TCP الواردة إلى الجهاز المضيف (التطوير) على 127.0.0.1:5000 وتمريرها إلى نظام المحاكاة في 10.0.2.15:6000:
redir add tcp:5000:6000
لحذف عملية إعادة توجيه، استخدِم الأمر redir del
. إلى
إدراج جميع عمليات إعادة التوجيه لمثيل معيّن، استخدِم redir
list
. لمزيد من المعلومات حول هذه الأوامر وغيرها من الأوامر في وحدة التحكم، راجع
أرسِل أوامر وحدة تحكُّم المحاكي.
يُرجى ملاحظة أنّ أرقام المنافذ مقيّدة بالبيئة المحلية. عادةً ما
يعني أنه لا يمكنك استخدام أرقام منافذ المضيف أقل من 1024 بدون إضافة أرقام
امتيازات المشرف. كما لن تتمكن من إعداد إعادة توجيه
المنفذ المضيف الذي تستخدمه عملية أخرى على جهازك. في ذلك،
حالة الأحرف، يؤدي redir
إلى إنشاء رسالة خطأ لهذا الغرض.
إعداد إعادة التوجيه من خلال adb
توفر أداة Android Debug Bridge (adb
) إعادة توجيه المنفذ، بديلاً
لإعداد إعادة توجيه الشبكة. لمزيد من المعلومات، يُرجى الاطّلاع على إعداد إعادة توجيه المنفذ في adb
.
التوثيق.
يُرجى العلم أنّ adb
لا يوفّر حاليًا طريقة لإزالة عملية إعادة التوجيه.
باستثناء إيقاف خادم adb
.
ضبط إعدادات نظام أسماء النطاقات للمحاكي
عند بدء التشغيل، يقرأ المحاكي قائمة بخوادم نظام أسماء النطاقات التي يستخدمها نظامك تستخدمه حاليًا. ثم تقوم بتخزين عناوين IP لما يصل إلى أربعة خوادم على هذا وتعِدّ الأسماء المستعارة لها على العناوين التي تمت محاكاتها 10.0.2.3 و10.0.2.4، 10.0.2.5 و10.0.2.6 حسب الحاجة.
على نظامي التشغيل Linux وmac، يحصل المحاكي على عناوين خادم نظام أسماء النطاقات من خلال تحليل
الملف /etc/resolv.conf
. على نظام التشغيل Windows، يحصل المحاكي على
من خلال طلب واجهة برمجة تطبيقات GetNetworkParams()
. لاحظ أن هذا
يعني عادةً أن المحاكي يتجاهل محتوى "المضيفين" الملف
(/etc/hosts
على نظام التشغيل Linux/macOS، %WINDOWS%/system32/HOSTS
)
على Windows).
عند بدء المحاكي من سطر الأوامر، يمكنك استخدام
-dns-server <serverList>
لتحديد
عناوين خوادم DNS المراد استخدامها، حيث يتم الفصل بين <serverList>
بفواصل.
قائمة بأسماء الخوادم أو عناوين IP. قد تجد هذا الخيار مفيدًا إذا
مشكلات في تحليل DNS في الشبكة التي تمت محاكاتها (على سبيل المثال،
"خطأ غير معروف في المضيف" تظهر عند استخدام متصفح الويب).
استخدام المحاكي مع خادم وكيل
في العديد من شبكات الشركات، يتم رفض الاتصالات المباشرة بالإنترنت من قِبل المشرفين على الشبكات. وإنما يجب أن تمر اتصالات الإنترنت عبر جهاز الخادم الوكيل. للوصول إلى الإنترنت على إحدى الشبكات باستخدام متطلبات الخادم الوكيل، يستخدم المحاكي إلى معرفة أن هناك خادم وكيل وأنه بحاجة إلى الاتصال به.
ونظرًا لطبيعة بروتوكول HTTP، يمكن الاتصال بخادم ويب مباشر واتصال عبر نتيجة خادم وكيل في طلبات GET مختلفة. يعيد المحاكي كتابة الحصول على الطلبات من الجهاز الافتراضي قبل التحدث إلى الخادم الوكيل ليعمل.
إذا كان يجب على المحاكي الوصول إلى الإنترنت من خلال خادم وكيل، فيمكنك تهيئة خادم وكيل HTTP مخصّص من شاشة عناصر التحكم الموسّعة في المحاكي:
- بعد فتح المحاكي، انقر على رمز المزيد
.
- انقر على الإعدادات الخادم الوكيل.
- حدِّد إعدادات خادم وكيل HTTP.
![](https://developer.android.com/static/studio/images/run/emulator-proxy-settings_2x.png?authuser=19&hl=ar)
بدلاً من ذلك، يمكنك تهيئة خادم وكيل من سطر الأوامر باستخدام
-http-proxy <proxy>
عند بدء المحاكي.
في هذه الحالة، حدد معلومات الوكيل
في <proxy>
بأحد التنسيقات التالية:
http://<machineName>:<port>
أو
http://<username>:<password>@<machineName>:<port>
يفرض الخيار -http-proxy
على المحاكي استخدام البيانات المحدّدة
خادم وكيل HTTP أو HTTPS لجميع اتصالات TCP الصادرة. إعادة توجيه UDP ليست
بدلاً من ذلك، يمكنك تحديد متغير البيئة
http_proxy
بالقيمة التي تريد استخدامها
<proxy>
وفي هذه الحالة، لا تحتاج إلى تحديد قيمة
<proxy>
في الأمر -http-proxy
—the
يتحقق المحاكي من قيمة متغير بيئة http_proxy
في
جديدة وتستخدم قيمتها تلقائيًا، إذا تم تحديدها.
يمكنك استخدام الخيار -debug-proxy
لتشخيص الخادم الوكيل
مشكلات الاتصال.
مثيلات مُحاكي الربط
للسماح لأحد مثيلات المحاكي بالاتصال بمثيل آخر، يمكنك إعداد إعادة توجيه الشبكة كما هو موضح أدناه.
افترض أن البيئة يتم تمثيلها على النحو التالي:
- A هي آلة التطوير.
- B هو مثيل المحاكي الأول، ويعمل على A.
- C هو مثيل المحاكي الثاني، ويعمل أيضًا على A.
إذا كنت تريد تشغيل خادم على B والذي سيتصل به C، اضبطه على النحو التالي:
- قم بإعداد الخادم على B، والاستماع إلى 10.0.2.15:<serverPort>.
- في وحدة التحكم B، قم بإعداد إعادة التوجيه من A:localhost:<localPort> إلى B:10.0.2.15 :<serverPort>.
- في الإصدار C، اجعل العميل يتصل بـ 10.0.2.2:<localPort>.
على سبيل المثال، إذا كنت تريد تشغيل خادم HTTP، حدد
<serverPort>
كـ 80 و<localPort>
باسم
8080:
- بيستمع في الساعة 10.0.2.15:80.
- في وحدة التحكّم B، المشكلة "
redir add tcp:8080:80.
" - يتصل C بـ 10.0.2.2:8080.
أرسل مكالمة صوتية أو رسالة قصيرة SMS إلى مثيل محاكي آخر
يُعيد المحاكي تلقائيًا توجيه المكالمات الصوتية والرسائل القصيرة التي تحاكي الواقع من جهاز واحد إلى البعض لإرسال مكالمة صوتية أو رسالة قصيرة SMS، استخدِم تطبيق "برنامج الاتصال" أو تطبيق الرسائل القصيرة SMS على التوالي، من أحد المحاكيات.
لبدء مكالمة صوتية تمت محاكاتها مع مثيل محاكي آخر:
- شغِّل تطبيق برنامج الاتصال على مثيل المحاكي الذي تم إنشاؤه.
كالرقم المطلوب الاتصال به، أدخِل رقم منفذ وحدة التحكّم للمثيل المستهدَف.
يمكنك لتحديد رقم منفذ وحدة التحكم للمثيل المستهدف من خلال التحقق من عنوان النافذة، إذا كانت في نافذة منفصلة، ولكن ليس إذا كان يتم تشغيله في نافذة أداة. تشير رسالة الأشكال البيانية ويظهر رقم منفذ وحدة التحكم كـ "Android Emulator (<port>)".
بدلاً من ذلك، يطبع الأمر "
adb devices
" قائمة بالأجهزة الافتراضية قيد التشغيل ومنفذ وحدة التحكّم الخاص بها. الأرقام. لمزيد من المعلومات، راجع طلب بحث عن الأجهزة.- انقر على زر الاتصال. تظهر مكالمة واردة جديدة في مثيل المحاكي الهدف.
لإرسال رسالة SMS إلى مثيل محاكي آخر:
- شغِّل تطبيق الرسائل القصيرة SMS إذا كان متاحًا.
- حدِّد رقم منفذ وحدة التحكّم لمثيل المحاكي المستهدف باعتباره عنوان الرسائل القصيرة SMS.
- أدخِل نص الرسالة.
- أرسِل الرسالة. يتم تسليم الرسالة إلى مثيل المحاكي المستهدف.
يمكنك أيضًا الاتصال بوحدة تحكّم في المحاكي لمحاكاة مكالمة صوتية أو رسالة SMS واردة. لمزيد من المعلومات، يُرجى مراجعة محاكاة الاتصال الهاتفي محاكاة الرسائل القصيرة SMS: