adbコマンドで特定のパッケージのプロセスを終了させる方法を紹介します。
1. adb shell am force-stopコマンドでプロセスの終了
次のコマンドは、 com.google.android.youtube
パッケージを強制的に中断して、stop状態に変更します。この過程で、アプリのプロセスは終了します。
$ adb shell am force-stop com.google.android.youtube
2. adb shell killコマンドでプロセスの終了
パッケージのpidを探して、killコマンドでそのpidを終了させることができます。
特定のパッケージのPIDを確認:adb shell pidof PACKAGE_NAME
次のコマンドは、 com.google.android.youtube
パッケージのpidを出力します。 5862
がYoutubeのPIDです。
$ adb shell pidof com.google.android.youtube
5862
Appが実行されていない場合、実行中のプロセスがないので、何も出力されません。
特定のPIDのプロセスを終了:adb shell kill -9 PID
次のコマンドは、PIDを終了させます。ルーティングされていない端末で実行すると、アクセス権の問題で失敗します。
$ adb shell kill -9 5862
/system/bin/sh: kill: 5862: Operation not permitted
次のようにルーティングをして、再度コマンドを入力すると、プロセスが終了します。
$ adb root
restarting adbd as root
$ adb shell kill -9 5862
Youtubeのpidを再び探してみると、実行中のプロセスがなくては何も出力されません。
$ adb shell pidof com.google.android.youtube
パッケージ名を確認
adb uninstall
コマンドでパッケージを削除するには、package nameを知っている必要があります。
次のコマンドを使用すると、デバイスにインストールされたすべてのパッケージのリストが出力されます。アプリ名とパッケージ名が似てあれば、ここで見つけることができます。
$ adb shell pidof com.google.android.youtube
package:com.google.android.networkstack.tethering
package:com.android.cts.priv.ctsshim
package:com.google.android.youtube
package:com.android.internal.display.cutout.emulation.corner
package:com.google.android.ext.services
package:com.android.internal.display.cutout.emulation.double
package:com.android.providers.telephony
package:com.android.dynsystem
package:com.android.theme.icon.pebble
...
パッケージ名がアプリの名前と似ていない場合は、上記の方法でパッケージ名を探すのは容易ではありません。
こういうときは、アプリを起動させて、下記のようなログキャットコマンドで実行されるアプリのActivity名と同様のpackage nameを推測することができます。
$ adb shell logcat -b events | grep wm_on_re
07-11 14:44:34.246 923 923 I wm_on_resume_called: [152199755,com.android.settings.FallbackHome,RESUME_ACTIVITY]
07-11 14:44:37.114 1045 1045 I wm_on_resume_called: [218164884,com.google.android.apps.nexuslauncher.NexusLauncherActivity,RESUME_ACTIVITY]
07-11 14:49:55.441 4941 4941 I wm_on_resume_called: [224219331,com.google.android.apps.youtube.app.WatchWhileActivity,RESUME_ACTIVITY]
Related Posts
- Android - FusedLocationProviderClientに位置情報を取得する
- Android - GPS、Network位置情報を取得する(LocationManager)
- Android - adbコマンドでActivity実行
- アンドロイド - MediaStoreにメディアファイルを保存する方法
- Android - Runtime permissionリクエスト方法と例(kotlin)
- Android11 - Storage(ストレージ)の変更まとめ
- Jetpack Compose - RowとColumn
- Android 13 - 細かいメディアファイルの権限
- Android 13でNotification権限をリクエスト、通知を表示する
- エラー解決:android gradle plugin requires java 11 to run. you are currently using java 1.8.
- Query method parameters should either be a type that can be converted into a database column or a List
- Android - TabLayoutの実装方法(+ ViewPager2)
- Android - adbコマンドで特定のパッケージのプロセスの終了
- Android - adb push、pullでファイルのコピー、ダウンロード
- Android - adbコマンドでsettings value確認、変更、
- Android 12 - IntentFilterのexported明示的な宣言
- Android - adb logcatコマンドでログ出力
- Android - ACTION_BOOT_COMPLETEDイベント受信
- Android - Foreground Service実行
- Android - ファイル入出力の例(Read、Write、内部、外部ストレージ)
- Android - アプリの権限を確認(Permission check)
- Android - adbで実行中のプロセス、スレッドリスト及びメモリ情報の確認
- Android - Broadcast Receiver登録およびイベントの受信方法
- Android - Cleartext HTTP ... not permitted例外解決方法
- Androidのビルドエラー - Calls to Java default methods are prohibited in JVM target 1.6
- アンドロイド - Assetsでファイルを読み取る方法
- アンドロイドのさまざまなNotification種類と実装方法
- アンドロイド - INSTALL_FAILED_TEST_ONLYエラー解決方法
- Android EspressoのCustom Matcher実装方法
- Android Espressoを使用してUIをテストする方法(3)
- アンドロイド - CTS hostsideをgradleで構築する方法
- Androidのアプリのデータフォルダーのパスと内部/外部ストレージ説明
- アンドロイド - 最初のApp作成
- Androidをインストールする方法(Windows)