2010-11-27 35 views
3

J'essaie actuellement d'évaluer si un projet peut être réalisé pour Android. Un problème majeur, je le vois que, puisque c'est un client P2P, nous devions garder une quantité considérable de connexions ouvertes lors de l'exécution. Maintenant, les connexions ne transfèrent pas de grandes quantités de données, c'est plus un système de messagerie, donc avoir un thread pour chaque connexion crée une surcharge inutile si nous lisons un seul message de 64 octets de temps en temps. Donc, je me demandais s'il existe un support pour les E/S non bloquantes comme select() ou poll() sous Linux.IO non bloquant pour Android

Une suggestion?

Répondre

5
+0

Cela me semble parfait. Merci beaucoup :-D – cdecker

+0

Le premier lien ne couvre pas réellement les E/S non bloquantes. Le lien vers le paquet nio pourrait cependant être utile. –

1

Bien sûr. Une fois que votre application déclare utiliser l'autorisation internet, vous pouvez faire toutes les choses normales de réseau linux normalement disponibles à un utilisateur non-root en C en utilisant le NDK, et l'un d'eux de java que quelqu'un (éventuellement vous si personne ne vous bat aussi) pris la peine d'écrire un soutien pour. Eh bien, une exception: votre fournisseur de services mobiles n'autorisera probablement pas les connexions entrantes, et la plupart des routeurs Wi-Fi non plus, à moins que vous ne les configuriez spécialement. Mais ce sont des problèmes d'infrastructure plutôt que des problèmes avec Android lui-même.

Vous aurez probablement aussi besoin de trouver une combinaison d'une activité pour fournir l'interface utilisateur de premier plan et un service pour continuer les transferts réels en arrière-plan avec juste une icône de barre d'état.