android-emulator - تحميل - nox android emulator




قم بتوصيل جهاز Android إلى خدمة ويب على المضيف المحلي (8)

لقد قمت بتطبيق خدمة ويب لتطبيق Android. يتم تشغيل خدمة الويب على المضيف المحلي (192.168.1.2). باستخدام محاكي Android نجحت في الاتصال بخدمة الويب. حاولت توصيل جهاز Android الخاص بي باستخدام وضع تصحيح الأخطاء إلى خدمة ويب ولكنه لم يعمل. إذن سؤالي هو إذا كان من الممكن توصيل جهاز Android بخدمة الويب هذه التي تعمل على مضيفي المحلي (192.168.1.2) دون استخدام IP حقيقي؟


إنها طريقة أبسط بكثير تدعمها google!

  • قم بتوصيل هاتفك عبر USB إلى جهاز الكمبيوتر وتمكين تصحيح أخطاء USB
  • على جهاز الكمبيوتر الخاص بك افتح متصفح Chrome واكتب هذا العنوان بالضبط: chrome://inspect/#devices
  • الآن يمكنك ربط منفذ الكمبيوتر الخاص بك إلى منفذ الجهاز الخاص بك بواسطة زر إعادة توجيه المنفذ . على جهاز الكمبيوتر الخاص بي لدي خدمة على عنوان localhost:61437 وأنا فقط ربطه بمنفذ 8081 الجهاز. تذكر خانة الاختيار "تمكين إعادة توجيه المنفذ"

  • الشاشة من الخدمة على الكمبيوتر الخاص بي ( localhost:61437 )

  • الشاشة من متصفح الجوال الخاص بي بنفس الخدمة ( localhost:8081 ). وهذا كل شيء. كما يمكنك استخدام عنوان الخدمة هذا في التطبيق الخاص بك


أتفق مع الإجابات الأخرى كنهج جيد إذا كنت لا ترغب في الكشف عن خدمة الويب DEV على الإنترنت. ومع ذلك ، فمن الأسهل بكثير إذا كنت تعرض خدمة الويب فقط. هناك عدد من خدمات DNS المجانية ، لكنني وجدت أن عنوان IP ليس هو الأسهل لإعداده. أستخدمها للغرض الذي سألته بالضبط. حتى أتمكن من اختبار مع خدمة الويب DEV على جهاز حقيقي.

إذا اخترت الانتقال دون استخدام عنوان IP (ليس لدي أي ارتباط مع تلك الشركة ، فهي الوحيدة التي استخدمتها وأنا على دراية بها) ، يمكنك الحصول على عنوان URL مجاني يمكن الوصول إليه بشكل عام مثل http: //MyExampleWebServer.no-ip -org و no-ip يحتوي على أداة مساعدة يمكنك تثبيتها حتى لو كنت خلف IP ديناميكي ، فستحتفظ دائمًا بـ IP الخارجي الصحيح المرتبط بعنوان URL هذا. إذا كنت تعمل من منزلك ، فستحتاج فقط إلى التأكد من نقل حركة المرور من المنفذ 80 إلى عنوان IP الداخلي الخاص بك 192.xxx (أو أي منفذ تستخدمه ؛ ربما 443 لـ ssl).

الأمر سهل تمامًا ، ويمكنك الآن الوصول إلى خدمة الويب هذه من أي جهاز يمكنه الوصول إلى الإنترنت.

أنا لم أعمل معها ، ولكن أعتقد أن dyndns كما يقدم خدمة مماثلة.


حسنا ، مضيفك المحلي هو 127.0.0.1 (أو :: 1) و LAN IP الخاص بك هو 192.168.1.2. يمكن لكل جهاز كمبيوتر / جهاز متصل بشبكة LAN الخاصة بك الوصول إلى خدمة الويب الخاصة بك على IP 192.168.1.2

يجب أن يكون جهاز Android الخاص بك متصلاً بنفس شبكة LAN ربما عبر اتصال Wifi حتى يتمكن من التحدث مع 192.168.1.2.

إذا لم تتمكن من توصيل جهاز Android الخاص بك تحت نفس الشبكة المحلية (LAN) ، على سبيل المثال ، لديك اتصال 3G فقط ، تحتاج إلى تشغيله باستخدام جهاز التوجيه / الجدار الناري لإعادة توجيه كل حركة المرور الواردة (ربما فقط حركة مرور http) من IP العام إلى IP الخاص ( 192.168.1.2)

نأمل أن تكون هذه المساعدة


سوف ألقي في عملي ، حيث لا شيء على SO عملت بالنسبة لي. في ما يلي الخطوات التي اتخذتها لتوصيل جهاز Android الفعلي بخدمة الويب التي تعمل على الكمبيوتر المحمول (متصل بالهاتف) على المضيف المحلي:

  1. تمكين تصحيح أخطاء USB على جهاز Android الخاص بك

  2. قم بتشغيل خدمة الويب الخاصة بك على جهازك. تعمل خدمة الويب الخاصة بي على localhost ، المنفذ 3000 في التطوير: http://localhost:3000/api/...

  3. تشغيل ifconfig (Unix) أو ipconfig (Windows)

  4. العثور على عنوان inet جهازك على واجهة LAN الخاصة بك. المنجم هو 10.0.0.121 للواجهة wlan0 . خارجياً ، هو 68.43.XX.XXX ، وهو ليس العنوان الذي تريد استخدامه.
  5. استخدم LAN IP نظرًا لأنك تتصل econnrefused على الشبكة المحلية (LAN) ، وإلا فستحصل على econnrefused (تم رفض الاتصال) بسبب قواعد الجدار الناري
  6. قم ببناء عنوان URL الخاص بك http مع عنوان IP هذا ، والمنفذ الذي تعمل عليه خدمة الويب الخاصة بك. بالنسبة إلي ، إنه http://10.0.0.121:3000/api/...

عند تشغيل التطبيق ، يجب عليك الاتصال بخدمة الويب المحلية الخاصة بك في السجلات ، Wireshark ، إلخ ، ويجب أن تشاهد النشاط / البيانات المطلوبة في تطبيق Android الخاص بك.


لقد فعلت ذلك على جهاز Mac باستخدام GasMask و Charles Proxy Server. يجب أن يكون هاتفك والكمبيوتر الخاص بك على نفس الشبكة.

لنقل أن عنوان url الخاص بـ webservice الذي تريد الوصول إليه هو http://api.xyz.com ، فأنت تستخدم أولاً GasMask للإشارة إلى عنوان url الخاص بك ، ثم استخدم Charles لإعداد خادم وكيل. بعد ذلك ، انتقل إلى الإعدادات على هاتفك ، وانتقل إلى شبكة Wi-Fi ، واضغط لفترة طويلة على الشبكة التي تتصل بها ، واختر تعديل الشبكة ، وأدخل إعدادات الوكيل التي قدمها لك تشارلز.


لقد واجهت نفس المشكلات ، بحثت كثيرًا ثم اكتشفت أنه عليك إجراء تغييرات صريحة في إعدادات الجدار الناري لديك. جدار الحماية الخاص بك هو حظر التعليمات البرمجية الخاصة بك ليتم الوصول إليها من مصدر خارجي. لذا ، كل ما عليك القيام به هو ، اذهب إلى إعدادات جدار الحماية ، وأضف المنفذ 80 (في حالتي منذ ذلك الحين ، أستخدم أباتشي http Server) للداخل والصادر. الآن ، يمكنك اختباره على متصفح هاتفك http: //192.16 . **: 80 /


هذا الحل هو خادم تطوير GAE في Eclipse

الخطوة 1: احصل على LAN IP

انتقل إلى Windows Command Console (اضغط على Win + R ، ثم اكتب "cmd"). في وحدة التحكم ، أدخل "ipconfig". سترى قائمة من العرض. ضمن شبكة Wi-Fi اللاسلكية ، احصل على عنوان IPv4. سيكون شيء 192.168.xx

LAN IP: 192.168.xx

الخطوة 2:

انتقل إلى Eclipse ، افتح الخادم المُكوّن

ضمن خصائص خادم تطوير GAE -> عنوان الواجهة المحلية للربط ، أدخل عنوان LAN IP ، ثم احفظ.

الخطوه 3:

الآن يمكنك الوصول إلى خادم GAE من قبل

http://192.168.x.x:8888/

8888 - يشير إلى رقم المنفذ ، كما هو مذكور في خادم تطوير GAE


هل قمت بالفعل بحل مشكلتك؟ أنا أيضا حصلت على مشكلة مثلك. هذه هي الخطوات التي قمت بها بالفعل:

  1. قم بإلغاء توصيل كابل الشبكة المحلية أو قم بإيقاف تشغيل أي اتصال إنترنت آخر من جهاز الكمبيوتر الخاص بك.
  2. ربط الروبوت الخاص بك المحمول إلى جهاز الكمبيوتر الخاص بك باستخدام USB.
  3. بدوره على الربط USB
  4. العودة إلى جهاز الكمبيوتر الخاص بك. تحقق من الملكية الفكرية الخاصة بك. لي هو 192.168.42.37
  5. تحقق من تطبيق webservice في جهاز الكمبيوتر الخاص بك. دعنا نقول http://192.168.42.37/webserviceapp
  6. العودة إلى الروبوت المحمول الخاص بك. جرّب عنوان url هذا http://192.168.42.37/webserviceapp

الآن يمكنك الوصول إلى تطبيق webservice الخاص بك في جهاز الكمبيوتر الخاص بك من هاتفك المحمول.







android