2017-09-13 1 views
1

Ich bin dabei, eine Android-Anwendung zu erstellen, die es einem Hostgerät ermöglicht, eine der vielen Rollen zu übernehmen, in denen Informationen gesammelt, geteilt oder verarbeitet werden. Angesichts der Art der Anwendung ist es notwendig, nicht nur die Rollen unabhängig zu testen, sondern auch die Interaktion zwischen den Komponenten zu simulieren. Gibt es eine Plattform, die die Simulation mehrerer Android-Geräte in einem Netzwerk ermöglicht?Simulieren mehrerer Android-Geräte

Ich hatte Probleme, aussagekräftige Suchergebnisse zu finden, da die Mehrzahl der Ergebnisse darauf ausgerichtet zu sein scheint, mehrere Geräte gleichzeitig zu testen, aber nicht so viel simulierend.

Wie vorgeschlagen here, ist es möglich, mehrere Instanzen des Android Studio-Emulators auszuführen, die über Sockets kommunizieren, aber dies scheint keine geeignete Strategie für die Simulation einer großen Anzahl von Geräten zu sein.

+0

Bitte quantifizieren Sie "große Anzahl von Geräten". – CommonsWare

+2

Was auch immer Sie testen, wenn es mehrere Geräte und Ende-zu-Ende-Tests über ein Netzwerk tun werden die Tests flockig sein. –

+0

@CommonsWare Mein Berater hat angefordert, dass ich eine Plattform finden, die die Simulation von Tausenden von Geräten ermöglicht, aber ich wäre glücklich, etwas für Hunderte passendes zu finden. –

Antwort

1

Mein Berater hat darum gebeten, dass ich eine Plattform finden, die für die Simulation von Tausenden von Geräten ermöglicht, aber ich würde gerne etwas für Hunderte

Wenn Sie ein Budget in zweistelligen haben finden Tausender von Dollar, kaufe ein paar Android-Geräte und vernetzen sie.

Wenn Sie ein Budget in den Tausenden von Dollar haben, kaufen Sie eine Reihe von Computern und führen Sie eine Handvoll Emulatoren auf jedem.

Wenn Sie eine Menge Erfahrung in der Systemadministration und Android-Entwicklung haben, könnten Sie sich eine Bootsladung von Amazon EC2-Instanzen ausleihen, vielleicht mit einem kopflosen Android-Emulator. Dies begrenzt die Vorlaufkosten, ist aber nicht einfach zu verwalten.

Die beste Lösung, IMHO, ist, Android vorläufig zu ignorieren. Entwirf deinen Code so, dass die "vielen Rollen, in denen Informationen gesammelt, geteilt oder verarbeitet werden", in einfachem Java (oder einfach C/C++) implementiert sind, wenn du daran arbeitest. Dann können Sie diesen Code auf normaler PC-Hardware testen, statt sich mit Android-Hardware oder Emulatoren und deren intrinsischem System herumzuärgern. Das Erstellen von Testfällen für Hunderte oder Tausende von interagierenden "Geräten" wird schwierig sein, aber das Ergebnis sollte auf einem einzigen PC laufen können, wenn auch vielleicht ein bulliger. Führen Sie dann kleinere Interaktionstests der Android-Apps durch, die diesen Code verwenden. Selbst dies scheint außerhalb des Rahmens eines einzelnen Studentenprojekts zu liegen, aber es ist näher als die Alternativen, die ich oben skizziert habe.