Tôi đang cố gắng viết một ứng dụng/dịch vụ Android có thể được triển khai trên thiết bị đích. Các ứng dụng có thể được sử dụng như một cái móc để điều khiển từ xa một thiết bị mục tiêu. Bắt đầu từ bản phát hành Jelly Bean, có sẵn giao diện người dùng UI Automator, cung cấp chức năng tương tự. Tuy nhiên, có vẻ như UI Automator chỉ có thể được sử dụng thông qua giao diện ADB. Ứng dụng đang chạy trên thiết bị không thể trực tiếp sử dụng UI Automator (???). Tôi đang cố gắng tìm một giải pháp có thể hoạt động mà không cần sự trợ giúp của ADB. Ví dụ, hook có thể nghe trên socket như một protobuf server. Máy khách có thể gửi lệnh đến hook để điều khiển và thiết bị từ xa. Tôi đã xem xét mã nguồn của Andorid SDK. Có vẻ như cách duy nhất là sử dụng API trợ năng của Android. Tôi tự hỏi liệu có cách nào tốt hơn không?Ứng dụng Android có thể kiểm soát ứng dụng khác thông qua UI Automator không?
Trả lời
Có thể chạy UiAutomator từ một ứng dụng, bạn chỉ cần có jar Thử nghiệm trên thiết bị và cấp quyền cho ứng dụng của bạn.
Từ ứng dụng của bạn, bạn có thể sau đó chỉ cần gọi:
uiautomator runtest Test.jar -c com.package.name.ClassName -e key value
Và thiết bị của bạn sẽ thực hiện bất cứ điều gì UiAutomatorTestCase của bạn sẽ thực hiện.
nhanh Ví dụ:
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");
Bạn cần kết nối ADB (trên WIFI hoặc cáp) để chạy trường hợp thử nghiệm UiAutomator trừ khi bạn có quyền su. Với sự cho phép su bạn có thể chạy uiautomator từ chính thiết bị đó.
Trong trường hợp kiểm tra UiAutomator, bạn có thể thực hiện socket, webSocket và một số giao thức truyền thông khác, vì vậy trường hợp kiểm tra của bạn sẽ hiển thị kết nối truyền thông với thế giới bên ngoài và các thiết bị khác có thể kết nối với nó. Trong trường hợp này, bạn chỉ cần kết nối ADB một lần để chạy trường hợp thử nghiệm, sau đó bạn có thể ngắt kết nối nó.
Bạn có thể thực thi mã của mình từ xa như thế nào.
Nếu thiết bị của bạn được root, sau đó bạn có thể kết nối thiết bị của mình với máy và sử dụng adb tcpip 5555. Điều này sẽ chuyển tiếp cổng nghe trên 5555 và sau đó bạn có thể thực thi tập lệnh trên máy của mình sẽ chạy trên thiết bị. chỉ cần sử dụng adb-shell
- 1. Danh sách bỏ qua kiểm soát phiên bản cho ứng dụng Java của ứng dụng Java
- 2. Android - tôi có thể chuyển thông số khi khởi chạy các ứng dụng khác từ ứng dụng của mình không?
- 3. Ứng dụng nền mà không cần ui
- 4. Cài đặt ứng dụng Android thông qua dịch vụ OTA
- 5. Android cách đặt múi giờ thông qua ứng dụng
- 6. Kiểm soát hộp kiểm cho ứng dụng iOS
- 7. Kiểm soát Spotify thông qua Processing/Arduino
- 8. Lỗi trình ứng dụng thông qua XCode
- 9. Có ứng dụng kiểm tra WinForm không?
- 10. Không thể truy cập bạn bè trên Facebook thông qua ứng dụng Android
- 11. Chạy ứng dụng Node thông qua Grunt
- 12. Kiểm soát iTunes từ ứng dụng ca cao
- 13. Android Khởi chạy hoặc đưa lên một ứng dụng khác thông qua Intent
- 14. Tải ứng dụng chạy Kiểm soát Biểu mẫu Windows
- 15. Ứng dụng WinRT có thể sử dụng obfuscation không?
- 16. Thông báo cập nhật ứng dụng Android
- 17. WebBrowser kiểm soát trong một ứng dụng web
- 18. Android: Cách chuyển ứng dụng từ cùng ứng dụng sang điện thoại Android khác
- 19. Có thể triển khai Ứng dụng Silverlight trên Android không?
- 20. NSUserDefaults: Có thể nhận userDefaults từ ứng dụng khác không?
- 21. Cordova: Có thể có ID ứng dụng khác nhau cho nền tảng Android và iOS không?
- 22. Không thể tìm thấy ứng dụng trong Android Market
- 23. mở lại ứng dụng nền thông qua mục thông báo
- 24. Cách xác định xem ứng dụng Android có mở từ Thông báo thông báo không?
- 25. Gọi một ứng dụng từ một ứng dụng khác
- 26. Làm thế nào để tạo ra một ASP.NET MVC 3 kiểm soát/thành phần có thể được tái sử dụng bởi các ứng dụng khác
- 27. Cách ứng dụng android có thể phát hiện cửa hàng đã cài đặt ứng dụng nào?
- 28. Cách đóng ứng dụng khác trong Android?
- 29. Ứng dụng khách REST có thể xử lý thông tin đăng nhập qua oauth
- 30. Có bất kỳ công cụ nào cho ứng dụng UI Thử nghiệm Đơn vị ứng dụng iPhone (Không SenTestCase)
xin chào, làm cách nào để tải tệp Test.jar? Tôi có thể chạy thử nghiệm uiautomator từ Android Studio. Nhưng tôi nhận được APK từ bản dựng chứ không phải tệp Jar. Bạn có thể giúp đỡ không? – HaseebR7
Tôi đã không làm điều này trong một thời gian, nhưng [liên kết này] (https://looksok.wordpress.com/2014/02/08/uiautomator-in-eclipse/) dường như làm việc cho tôi. Về bản chất chỉ: * tạo dự án của bạn: 'android tạo uitest-project -n yes -t 10 -p .' * xây dựng bình của bạn:' ant build' – tophernuts
cảm ơn! giúp – HaseebR7