development

adb shell am force-stop : arrêter une app Android en ligne de commande

SSkills Guide Bot
22/07/20264 min de lecture

Utilisez adb shell am force-stop pour tuer une app Android sans effacer ses données — et sa différence avec pm clear et am kill, avec aide-mémoire.

adbandroidclidebugging

Pour forcer l'arrêt d'une app Android depuis votre ordinateur :

adb shell am force-stop com.example.app

Cette commande tue immédiatement tous les processus et services de com.example.app, exactement comme si vous ouvriez les Réglages et appuyiez sur « Forcer l'arrêt ». Elle ne supprime aucune donnée de l'app. Cet article explique la commande, comment trouver le nom de package, et en quoi force-stop diffère de pm clear et am kill — trois commandes qui se ressemblent et font des choses très différentes.

Ce que force-stop fait réellement

am, c'est l'Activity Manager ; force-stop lui demande de terminer toute l'app. Chaque processus, service en arrière-plan et alarme planifiée du package est arrêté. Au lancement suivant, l'app démarre à froid. Point important : force-stop laisse les données stockées intactes — comptes, préférences, bases de données et cache survivent. À utiliser pour un redémarrage propre sans perdre l'état : reproduire un bug de démarrage à froid, débloquer un service au premier plan coincé, ou réinitialiser une app pendant un test.

Il vous faut le nom de package, pas le nom affiché de l'app. Pour le trouver :

adb shell pm list packages

Cette commande liste tous les packages installés. Filtrez :

adb shell pm list packages | grep whatsapp

Ajoutez -3 pour ne lister que les apps tierces (installées par l'utilisateur), en général ce que vous cherchez :

adb shell pm list packages -3

pm, c'est le Package Manager — le pendant de am pour tout ce qui concerne les packages installés.

force-stop vs pm clear vs am kill

On les confond sans arrêt. La différence, c'est ce qu'elles détruisent.

force-stop — arrêter, garder les données

adb shell am force-stop com.example.app

Termine tous les processus. Garde toutes les données. C'est la commande « on éteint et on rallume ».

pm clear — arrêter et effacer les données

adb shell pm clear com.example.app

Arrête l'app et supprime toutes ses données — l'équivalent de Réglages → Applications → Stockage → « Effacer les données ». Les comptes sont déconnectés, les bases de données disparaissent, l'app revient à l'état d'installation neuve. À utiliser pour tester l'onboarding ou reproduire un bug de premier lancement. C'est destructif : pas de retour en arrière.

am kill — doux, arrière-plan seulement

adb shell am kill com.example.app

Tue l'app seulement si c'est sans risque — en gros, uniquement les processus en arrière-plan que le système aurait pu récupérer de toute façon. Si l'app est au premier plan, am kill ne fait rien. C'est la moins agressive des trois : pratique pour simuler une pression mémoire sans le démontage brutal de force-stop.

Aide-mémoire

CommandeArrête l'appEfface les donnéesAgit au premier plan
am force-stopOuiNonOui
pm clearOuiOuiOui
am killArrière-plan seulementNonNon

Pièges courants

  • « Unknown package ». Vous avez passé le nom affiché au lieu du nom de package. Trouvez-le avec pm list packages.
  • Aucun appareil. Vérifiez adb devices. L'appareil doit être connecté, le débogage USB activé et la connexion autorisée.
  • Plusieurs appareils. Ciblez-en un avec -s : adb -s <serial> shell am force-stop com.example.app.
  • L'app redémarre toute seule. Certaines apps sont réveillées par une notification push ou une tâche planifiée juste après le force-stop. C'est normal — force-stop est un arrêt ponctuel, pas une désactivation permanente.

En faire un script

Comme ce sont des one-liners, ils s'intègrent facilement dans des scripts de test. Un extrait classique de reset entre deux runs :

adb shell am force-stop com.example.app
adb shell pm clear com.example.app   # seulement si vous voulez un état neuf
adb shell am start -n com.example.app/.MainActivity

La dernière ligne relance l'app par son activité principale.

force-stop vs balayer l'app

Balayer une app hors de l'écran Récents n'équivaut pas à un force-stop. Le système peut garder certains processus en vie, et une tâche de fond ou un handler de notification peut la réveiller quelques instants plus tard. force-stop est un arrêt franc : il démonte les processus et suspend les alarmes et tâches planifiées de l'app jusqu'au prochain lancement. Quand vous voulez la certitude que l'app est vraiment arrêtée — avant un test, ou pour débloquer un état coincé — utilisez force-stop, pas le balayage.

Faut-il être root ?

Non. force-stop, pm clear, am kill et pm list packages passent tous par une connexion ADB normale avec le débogage USB activé. Aucun appareil rooté ni build spécial requis. C'est ce qui fait de ces commandes le moyen le plus rapide de réinitialiser une app au quotidien, en dev comme en test.

Pour aller plus loin

Si vous pilotez vos tests Android ou de l'automatisation d'appareils avec un assistant IA, encoder ces commandes en jeu d'instructions réutilisable évite de les retaper. Parcourez le catalogue de skills ou la catégorie développement pour des aides d'automatisation et de test, et consultez le blog pour d'autres notes en ligne de commande.

Explorez notre catalogue de skills

Articles similaires