Intereting Posts
Службы Google Play жалуются на устаревание Содержимое для чтения / загрузки Android EPUBLIB Google TV – разрабатывает для эффективности так же важно, как и с телефонами / планшетами? Android-кнопка setPressed после onClick Как получить идентификатор профиля Facebook с помощью Android и Graph API? Почему onPostExecute выполняется до doInBackground в AsyncTask Измените пользователя и группу файлов приложений Android для репликации пользователя проблемы. Перехватить ответ HTTP в «Дооснащении» перед передачей его вызывающей активности Список горизонтальных прокрутки Android Сделать вывод ящика навигации за панель состояния Как добавить системную учетную запись SIP Дизайн материала для Android NestedScrollView / CollapsingToolbarLayout необычная клавиатура открытия поведения Доступ к контексту приложения из TestSuite в Setup () перед вызовом getActivity () Android: можно получить пользовательский файл R.id Как сжать базу данных sqlite?

Остановка приложения Android с консоли

Можно ли остановить приложение Android с консоли? Что-то вроде:

adb stop com.my.app.package 

Это ускорит наш процесс тестирования. В настоящее время мы каждый раз удаляем / устанавливаем приложение, чтобы убедиться, что ручные тестовые примеры начинаются с чистого состояния.

Solutions Collecting From Web of "Остановка приложения Android с консоли"

Редактировать: долго после того, как я написал это сообщение, и это было принято в качестве ответа, команда am force-stop была реализована командой Android, как указано в ответе ниже .

Альтернативно: вместо того, чтобы просто останавливать приложение, поскольку вы упомянули о необходимости «чистого листа» для каждого тестового прогона, вы можете использовать adb shell pm clear com.my.app.package , которая остановит процесс приложения и очистит все сохраненные Данных для этого приложения.


Если вы работаете в Linux:
adb shell ps | grep com.myapp | awk '{print $2}' | xargs adb shell kill

Это будет работать только для устройств / эмуляторов, где у вас есть root сразу после запуска оболочки. Это, вероятно, можно немного уточнить, чтобы называть su заранее.

В противном случае вы можете сделать (вручную или, предположим, сценарий):
pc $ adb -d shell
android $ su
android # ps
android # kill <process id from ps output>

Чистым способом остановки приложения является:

 adb shell am force-stop com.my.app.package 

Таким образом, вам не нужно определять идентификатор процесса.

Сначала поставьте приложение в фоновом режиме (нажмите главную кнопку устройства)

Тогда …. в терминале ….

 adb shell am kill com.your.package 

Вы можете использовать следующее с консоли устройства: pm disable com.my.app.package который убьет его. Затем используйте pm enable com.my.app.package чтобы вы могли запустить его снова.

Если у вас есть доступ к пакету приложения, вы можете установить его с параметром -r, и он убьет процесс, если он в настоящее время работает как побочный эффект. Как это:

adb -d install -r MyApp.apk ; adb -d shell am start -a android.intent.action.MAIN -n com.MyCompany.MyApp/.MyActivity

Параметр -r сохраняет данные, связанные с приложением. Однако, если вы хотите, чтобы чистый сланец, как вы говорите, вы не захотите использовать этот параметр.

Если вы настроили таргетинг на ненагруженное устройство и / или имеете в себе службы APK, которые вы также не хотите останавливать, другие решения не будут работать.

Чтобы решить эту проблему, я прибегал к широковещательному сообщению, которое я добавил в свою деятельность, чтобы остановить его.

 public class TestActivity extends Activity { private static final String STOP_COMMAND = "com.example.TestActivity.STOP"; private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { TestActivity.this.finish(); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //other stuff... registerReceiver(broadcastReceiver, new IntentFilter(STOP_COMMAND)); } } 

Таким образом, вы можете выпустить эту команду adb, чтобы остановить свою активность:

 adb shell am broadcast -a com.example.TestActivity.STOP 

Если все, что вы ищете, убивает пакет

 pkill package_name 

должно сработать

В eclipse перейдите на страницу DDMS, а на вкладке «устройства» щелкните процесс, который вы хотите убить, под устройством, которое вы хотите его убить. Вам просто нужно нажать кнопку остановки, и это должно убить процесс.

Я не уверен, как вы это сделаете из инструмента командной строки, но должен быть способ. Возможно, вы делаете это через оболочку adb …

 pkill NAMEofAPP 

Не внедренный зефир, эмулятор termux & terminal.