我正在嘗試編寫可以部署在目標設備上的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