plano - Detener una aplicación de Android desde la consola
cerrar aplicaciones en segundo plano windows 10 (9)
¿Es posible detener una aplicación de Android desde la consola? Algo como:
adb stop com.my.app.package
Aceleraría tanto nuestro proceso de prueba. En este momento, desinstalamos / instalamos la aplicación cada vez para asegurarnos de que los casos de prueba manual comiencen con un estado limpio.
En Eclipse, vaya a la perspectiva de DDMS y en la pestaña Dispositivos, haga clic en el proceso que desea eliminar debajo del dispositivo en el que desea eliminarlo. Luego solo tiene que presionar el botón de detener y debería matar el proceso.
No estoy seguro de cómo harías esto desde la herramienta de línea de comandos, pero debe haber una forma. Tal vez lo hagas a través del adb shell ...
La forma más sencilla de detener la aplicación es:
adb shell am force-stop com.my.app.package
De esta forma, no tiene que descubrir la ID del proceso.
Primero, ponga la aplicación en segundo plano (presione el botón de inicio del dispositivo)
Entonces ... en una terminal ...
adb shell am kill com.your.package
Si se dirige a un dispositivo no rooteado y / o tiene servicios en su APK que no desea detener también, las otras soluciones no funcionarán.
Para resolver este problema, he recurrido a un receptor de mensajes de difusión que agregué a mi actividad para detenerlo.
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));
}
}
De esta forma, puede emitir este comando adb para detener su actividad:
adb shell am broadcast -a com.example.TestActivity.STOP
Si tiene acceso al paquete de la aplicación, puede instalarlo con la opción -r y se cancelará el proceso si se está ejecutando actualmente como un efecto secundario. Me gusta esto:
adb -d install -r MyApp.apk ; adb -d shell am start -a android.intent.action.MAIN -n com.MyCompany.MyApp/.MyActivity
La opción -r conserva los datos actualmente asociados con la aplicación. Sin embargo, si desea que se borre una lista como la que mencionó, es posible que no desee usar esa opción.
Si todo lo que estás buscando es matar un paquete
pkill package_name
Deberia trabajar
puede usar lo siguiente desde la consola del dispositivo: pm disable com.my.app.package
que lo matará. Luego use pm enable com.my.app.package
para que pueda iniciarlo nuevamente.
Editar: Mucho tiempo después de que escribí esta publicación y se aceptó como la respuesta, el comando android am force-stop
fue implemented por el equipo de Android, como se menciona en esta respuesta .
Alternativamente: en lugar de simplemente detener la aplicación, ya que mencionaste querer un "borrón y cuenta nueva" para cada ejecución de prueba, puedes usar adb shell pm clear com.my.app.package
, que detendrá el proceso de la aplicación y eliminará todo el almacenamiento almacenado. datos para esa aplicación.
Si estás en Linux:
adb shell ps | grep com.myapp | awk ''{print $2}'' | xargs adb shell kill
Eso solo funcionará para dispositivos / emuladores en los que tenga root inmediatamente después de ejecutar un shell. Eso probablemente puede ser refinado ligeramente para llamar a su
antemano.
De lo contrario, puede hacerlo (manualmente, o supongo que con guiones):
pc $ adb -d shell
android $ su
android # ps
android # kill <process id from ps output>
pkill NAMEofAPP
Malvavisco sin enraizar, termux y emulador de terminal.