Kann eine Android-Anwendung zu einer anderen Anwendung Steuern via UI-Automator?
Ich bin versucht, zu schreiben, ein Android-Anwendung/- Dienst eingesetzt werden kann, die auf dem Zielgerät. Die app kann verwendet werden, als einen Haken zu Remote control ein Ziel-Gerät. Ab Jelly Bean release, da ist die UI-Automator-Implementierung zur Verfügung, welches eine ähnliche Funktionalität bietet. Es scheint jedoch, dass UI-Automator kann nur über die ADB-Schnittstelle. Anwendung läuft auf dem Gerät nicht verwenden UI-Automator-direkt(???). Ich bin auf der Suche nach einer Lösung, die arbeiten kann ohne die Hilfe von ADB. Zum Beispiel kann der Haken hört auf a-Buchse als protobuf-server. Der client kann senden Befehl an den Haken, um Remote-Steuerung und Gerät. Ich sah in das Android SDK Quellcode. Es sieht aus wie der einzige Weg ist die Verwendung von android accessibility-APIs. Ich Frage mich, ob es irgendeine bessere Möglichkeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, zu laufen UiAutomator aus einer Anwendung, die Sie gerade benötigen, um Ihre Test-jar auf dem Gerät und geben Sie Ihrer Anwendung su-Berechtigungen.
Aus Ihrer Anwendung können Sie dann einfach anrufen:
Und Ihr Gerät wird ausführen, was auch immer Ihre UiAutomatorTestCase durchführen würde.
Kurzes Beispiel:
android create uitest-project -n yes -t 10 -p .
* bauen Sie Ihr Glas :ant build
Didn't find class "com.tonghu.testpublishwechatmoment.PublishWechantMomentTest" on path:[zip file "/sdcard/androidTest.jar"]
hatte ich push meine androidTest.jar zu /sdcard/Müssen Sie die ADB-Verbindung (über WLAN oder Kabel) laufen UiAutomator Testfälle, es sei denn, Sie haben su-Berechtigungen. Mit su Berechtigung, die Sie ausgeführt werden können uiautomator aus dem Gerät selbst.
In UiAutomator Testfälle, die Sie implementieren können, socket, webSocket und einige andere Kommunikations-Protokolle, so dass Ihre test-Fall wird enthüllen, Kommunikations-Verbindung zu der Außenwelt und anderen Geräten eine Verbindung herstellen können. In diesem Fall müssen Sie die ADB-Verbindung nur einmal, um den test auszuführen Fall ist, dann können Sie trennen.
Können Sie die Ausführung von code aus der Ferne wie.
Wenn Ihr Gerät verwurzelt ist, können Sie dann zunächst verbinden Sie Ihr Gerät mit der Maschine vor, und verwenden adb tcpip 5555. Dies wird uns listening-port auf 5555 und dann führen Sie Ihr Skript auf Ihrem Rechner, die laufen auf dem Gerät. verwenden Sie einfach die adb -s shell