Ideally we wouldn't need this abstraction but since UiAutomation is final we need an
abstraction on top to be able to mock it in tests. It also gives us the flexibility to switch to
another implementation in the future.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# ShellCommand\n\nSummary: [Ctors](#pubctors) \\| [Inherited Methods](#inhmethods) \\| [\\[Expand All\\]](#) \n\nShellCommand\n============\n\n| This package is part of the Android [support library](/topic/libraries/support-library) which is no longer maintained. The support library has been superseded by [AndroidX](/jetpack/androidx) which is part of [Jetpack](/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider [migrating](/jetpack/androidx/migrate) existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library [class\n| mappings](/jetpack/androidx/migrate/class-mappings).\n\n\n`\npublic\n\n\nabstract\nclass\nShellCommand\n`\n\n\n`\n\nextends `[Object](https://developer.android.com/reference/java/lang/Object.html)`\n\n\n`\n\n`\n\n\n`\n\n|---|-----------------------------------------------------|\n| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||\n| ↳ | android.support.test.runner.permission.ShellCommand |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\nIdeally we wouldn't need this abstraction but since [UiAutomation](https://developer.android.com/reference/android/app/UiAutomation.html) is final we need an\nabstraction on top to be able to mock it in tests. It also gives us the flexibility to switch to\nanother implementation in the future.\n\nSummary\n-------\n\n| ### Public constructors ||\n|-------------------------------------------------------------------------------------------------------|---|\n| ` `[ShellCommand](/reference/android/support/test/runner/permission/ShellCommand#ShellCommand())`() ` |\n\n| ### Inherited methods |\n|-----------------------|---|\n| From class ` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object.html)` ` |-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object.html) | ` clone() ` | | ` boolean` | ` equals(`[Object](https://developer.android.com/reference/java/lang/Object.html)` arg0) ` | | ` void` | ` finalize() ` | | ` final `[Class](https://developer.android.com/reference/java/lang/Class.html)`\u003c?\u003e` | ` getClass() ` | | ` int` | ` hashCode() ` | | ` final void` | ` notify() ` | | ` final void` | ` notifyAll() ` | | ` `[String](https://developer.android.com/reference/java/lang/String.html) | ` toString() ` | | ` final void` | ` wait(long arg0, int arg1) ` | | ` final void` | ` wait(long arg0) ` | | ` final void` | ` wait() ` | ||\n\nPublic constructors\n-------------------\n\n### ShellCommand\n\n```\nShellCommand ()\n```\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n-\n\n Classes\n -------\n\n - [PermissionRequester](/reference/android/support/test/runner/permission/PermissionRequester)\n - [RequestPermissionCallable](/reference/android/support/test/runner/permission/RequestPermissionCallable)\n - [ShellCommand](/reference/android/support/test/runner/permission/ShellCommand)\n-\n\n Enums\n -----\n\n - [RequestPermissionCallable.Result](/reference/android/support/test/runner/permission/RequestPermissionCallable.Result)"]]