2010-05-05 9 views
6

Ich habe ein paar Fragen über die Konnektivität auf Android, wenn jemand hat irgendeinen Einblick, es wäre toll.Android - Konnektivität Fragen

1) Was ist der Standardwert, wenn eine Anwendung eine drahtlose Verbindung herstellen möchte? Ist es wlan? Und wenn Wlan ausgeschaltet ist oder es keine Zugangspunkte gibt herum ist es 3g oder GPRS?

2) Ist ein Gerät immer ip verbunden? Oder wenn es deaktiviert von Wlan oder 3g verliert es seine IP-Adresse?

3) Ist eine Anwendung, zum Beispiel der Browser immer nur mit einer IP-Adresse verbunden? Oder kann es mit mehreren Adressen für jedes Radio wie gprs oder wifi (wlan) verbunden werden?

4) Kann eine Anwendung entscheiden, zu welcher Verbindung ein Socket geöffnet werden soll? Für Beispiel kann ich eine Anwendung erstellen und entscheiden, ob der Socket mit dem Wlan oder GPRS verbunden werden soll? Oder entscheidet das Betriebssystem?

5) Wie gehen native Anwendungen schließlich mit der Konnektivität um? In der gleichen Art und Weise?

+0

@Wow, das ist eine Menge Fragen. Kann ich die Nummerierung empfehlen, um die Antwort zu erleichtern? +1 für Details – Casebash

Antwort

4

Ähnlich wie bei jedem Linux-Computer haben Sie unterschiedliche Geräte für unterschiedliche Netzwerkschnittstellen - z. auf meinem Gerät: eth0 für WLAN, rmnet0 für 3G/GPRS (Es ist unmöglich, gleichzeitig über 3G und GPRS verbunden zu sein). Die verbundene Schnittstelle erhält eine IP-Adresse und die Routingtabellen des Kernels werden aktualisiert, so dass alle Pakete durch das verbundene Gerät geleitet werden. Theoretisch könnten Sie beide Schnittstellen angeschlossen haben, aber auf allen Android-Geräten, die ich gesehen habe, wird immer nur eine Netzwerkschnittstelle aktiv sein (ausgenommen Übergangszeiten, wenn WiFi ein- oder ausgeschaltet wird, oder wenn ein TCP bleibt Verbindung ist noch aktiv).

In der Regel kümmern sich native Anwendungen nicht um die Verbindung mit dem Internet - wenn es irgendeine Verbindung gibt, wird es funktionieren; Andernfalls erhält die App ein Verbindungstimeout (oder einen ähnlichen Fehler).