Real environment approach
- HeadSpin
Mocking approach
- SauceLabs
- Perfecto
I know that real environment and mocking is trade-off things. It should depend on what test cases want to check, close to actual user usages as possible (and analyze the result), or allowing to mocks by making the test grey box.
Personally, when you’d like to make close to grey box, it probably would be a good way to implement such injection tests in Espresso/XCTest(UI) rather than Appium with mocking. It should be easier to test them and reliable. But it could be far from the real user environment. So, as a black box testing like Appium does, real environment approach is probably interesting.
Other notes
https://source.android.com/compatibility/tests/development/instrumentation
https://developer.android.com/guide/topics/sensors/sensors_overview
https://developer.android.com/training/camerax/architecture