我正在尝试编写可以部署在目标设备上的Android应用程序/服务。该应用程序可以用作钩子来远程控制目标设备。从Jelly Bean发布开始,提供了可用的UI Automator实现,它提供了类似的功能。但是,似乎UI Automator只能通过ADB接口使用。在设备上运行的应用程序不能直接使用UI Automator(???)。我试图找到一个解决方案,可以在没有亚行的帮助下工作。例如,钩子可以作为protobuf服务器在套接字上侦听。客户端可以发送命令到钩子远程控制和设备。我查看了Andorid SDK源代码。它看起来像唯一的方法是使用android可访问性API。我想知道是否有更好的方法?一个Android应用程序可以通过UI Automator控制另一个应用程序吗?
8
A
回答
8
从应用程序运行UiAutomator是可能的,您只需在设备上放置Test jar并为您的应用程序授予权限即可。
从您的应用程序,你可以那么只要致电:
uiautomator runtest Test.jar -c com.package.name.ClassName -e key value
,设备将执行任何你UiAutomatorTestCase将执行。
简单的例子:
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");
4
你需要ADB连接(通过WiFi或Cable)运行UiAutomator测试用例,除非你有苏权限。有了su权限,您可以从设备本身运行uiautomator。
在UiAutomator测试用例中,您可以实现套接字,webSocket和其他一些通信协议,因此您的测试用例会暴露与外界的通信连接,并且其他设备可以连接到它。在这种情况下,只需要一次ADB连接来运行测试用例,然后就可以断开它。
1
你可以像远程执行你的代码。
如果您的设备是根源的,您可以先将设备连接到计算机并使用adb tcpip 5555.这将转发5555上的监听端口,然后您可以在设备上运行的计算机上执行脚本。只需使用adb -s shell
相关问题
- 1. 一个Android应用程序来控制另一个应用程序
- 2. 通过另一个应用程序安装一个android应用程序
- 3. 从另一个应用程序控制WPF应用程序
- 4. 从另一个java应用程序控制java应用程序
- 5. 从另一个应用程序控制应用程序
- 6. 如何通过另一个应用程序控制手机
- 7. iPhone应用程序可以调用另一个应用程序吗?
- 8. 应用程序可以编译并创建另一个应用程序吗?
- 9. 应用程序可以访问另一个应用程序回栈吗?
- 10. 我可以从我的应用程序访问另一个应用程序吗?
- 11. 我可以通过node.js运行一个scala应用程序吗?
- 12. 启动过程(从另一个控制台应用程序)
- 13. 如何从另一个程序控制MFC应用程序?
- 14. 可以通过应用于整个应用程序login_required吗?
- 15. 我们可以使用.so文件从一个android ndk应用程序到另一个android ndk应用程序?
- 16. 我可以通过Android应用程序控制其他Android应用程序上的用户界面对象吗?
- 17. 另一个应用程序内的Android应用程序
- 18. Android应用程序在另一个应用程序内
- 19. Android应用程序设置另一个应用程序
- 20. 一个Java应用程序可以在同一台Linux机器上监视另一个Java应用程序吗?
- 21. 一个c#控制台应用程序也可以作为一个类库吗?
- 22. C#应用程序在控制台中使用另一个应用程序
- 23. 用于控制另一个应用程序的C#应用程序
- 24. 我们可以从另一个iphone应用程序调用一个iphone应用程序吗?
- 25. 可以从另一个应用程序服务中调用一个应用程序服务吗?
- 26. Android在同一个应用程序中启动另一个应用程序
- 27. 一个应用程序中启动另一个应用程序的Android
- 28. 在另一个应用程序中打开一个Android应用程序
- 29. Android - 如何从一个应用程序切换到另一个应用程序?
- 30. 从一个应用程序传递数据另一个应用程序在android
你好,我如何得到Test.jar文件?我可以从Android Studio运行uiautomator测试。但是我从构建中获得APK,而不是Jar文件。你能帮忙吗? – HaseebR7
我有一段时间没有做这个,但[这个链接](https://looksok.wordpress.com/2014/02/08/uiautomator-in-eclipse/)似乎对我很有用。 基本上只是: *创建你的项目:'android create uitest-project -n yes -t 10 -p .' * build your jar:'ant build' – tophernuts
thanks!这有助于 – HaseebR7