2013-06-06 27 views
8

Hedef aygıtta dağıtılabilen bir Android uygulaması/hizmeti yazmaya çalışıyorum. Uygulama, bir hedef cihazı uzaktan kontrol etmek için bir kanca olarak kullanılabilir. Jelly Bean sürümünden başlayarak, benzer işlevsellik sağlayan UI Automator uygulaması mevcuttur. Ancak, UI Automator sadece ADB arayüzü ile kullanılabilir gibi görünüyor. Cihazda çalışan uygulama, doğrudan UI Automator kullanamaz (???). ADB'nin yardımı olmadan çalışabilecek bir çözüm bulmaya çalışıyorum. Örneğin, kanca bir soket üzerinde bir protobuf sunucusu olarak dinleyebilir. İstemci uzaktan kontrol etmek ve cihaza bağlanmak için kancaya komut gönderebilir. Andorid SDK kaynak koduna baktım. Android erişilebilirlik API'lerini kullanmanın tek yolu gibi görünüyor. Daha iyi bir yolu olup olmadığını merak ediyorum?Bir Android uygulaması UI Automator üzerinden başka bir uygulamayı kontrol edebilir mi?

cevap

8

UiAutomator'ı bir uygulamadan çalıştırmak mümkündür, sadece Test kavanozunuzun cihaza sahip olması ve uygulamanızın su izinlerini vermeniz yeterlidir.

uiautomator runtest Test.jar -c com.package.name.ClassName -e key value 

Ve cihazınız UiAutomatorTestCase gerçekleştireceklerini ne yapacak: Uygulamanızdan

sonra sadece çağırabilir.

Hızlı örnek:

Process rt = Runtime.getRuntime().exec("su"); 
DataOutputStream os = new DataOutputStream(rt.getOutputStream()); 

os.writeBytes("uiautomator runtest Testing.jar -c com.hey.rich.CalculatorDemo" + "\n"); 
os.flush(); 
os.writeBytes("exit\n"); 
+0

Merhaba, Test.jar dosyasını nasıl edinebilirim? Android Studio'dan uiautomator testini çalıştırabiliyorum. Ancak bir Jar dosyası değil, yapıdan bir APK alıyorum. Lütfen yardım edebilir misin ? – HaseebR7

+0

Bunu bir süredir yapmadım, ama [bu bağlantı] (https://looksok.wordpress.com/2014/02/08/uiautomator-in-eclipse/) benim için işe yaradı. Temelde sadece: * projenizi oluşturun: 'android oluşturmak uitest-proje -n evet -t 10 -p. ' * kavanozunuzu oluşturun:' karınca inşa' – tophernuts

+0

teşekkürler! Bu, – HaseebR7

4

Sen su izinlerine sahip olmadıkça UiAutomator test durumları çalıştırmak için (WIFI veya Kablo üzerinden) ADB bağlantısı gerekir. Su izni ile uiautomator'ı cihazdan çalıştırabilirsiniz.

UiAutomator test örneklerinde soket, webSocket ve diğer bazı iletişim protokollerini uygulayabilirsiniz, böylece test çantanız dış dünya ile iletişim bağlantısını ortaya çıkaracak ve diğer cihazlar bağlanabilecektir. Bu durumda, test durumunu çalıştırmak için sadece bir kez ADB bağlantısına ihtiyacınız vardır, daha sonra bağlantıyı kesebilirsiniz.

1

Kodunuzu uzaktan çalıştırabilirsiniz. Cihazınızın daha sonra ilk Bu 5555 numaralı bağlantı noktasını dinleme iletecek ve daha sonra cihazda çalışacak makinenizde sizin çalıştırabiliriz makine ile cihazınıza bağlamak ve adb TCPIP 5555 kullanabilirsiniz köklü edilirse

. sadece adb -s kabukunu kullanın