0

Androidフォンでプロセスを管理するためにadbコマンドを使用しています。

コマンドで特定のプロセスを強制終了できます

adb kill "PID"  (PID is the process ID)

そしてプロセスは強制終了されます。

しかし、コマンドを使用して起動すると

adb start "PID"

プロセスを開始しません。

開始したいプロセスは /system/bin フォルダーにあり、そのプロセスのパッケージ名またはアクティビティ名がわかりません。私が知っているのは、プロセスの「PID」と「ユーザー」だけです。

Android デバイスで特定のプロセスを開始するコマンドはありますか?

4

3 に答える 3

3

に対応するプロセスを強制PID終了したら、どうすれば再び開始できますか?

代わりに、次の方法でアプリを起動してみてくださいadb:-

adb shell
am start -n com.package.name/com.package.name.ActivityName

または、これを直接使用できます。

adb shell am start -n com.package.name/com.package.name.ActivityName
于 2013-02-21T09:50:19.913 に答える
1

ネイティブ アプリにはアクティビティがありません。それらはまさにそれです-ネイティブバイナリ。

プロセスの数値 ID しかわかっていない場合、ps <PID>コマンドは列にプロセス バイナリの名前を表示しNAMEます。このような:

# ps 407
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
root      407   1     4540   272   ffffffff 000160a4 S /sbin/adbd

PPID値が- の場合1、それはシステムによって開始されinit、アプリが「サービス」アプリである可能性が高いことを意味します。それを制御するには、サービスの名前を見つけて、 and を使用する必要がありstop <service>ますstart <service>

サービスの名前を見つけるには、サービスの名前grep ^service /init*rc | grep <binary name>が 2 番目の列 (つまり、「adbd」) に表示されるように実行します。

# grep ^service /init*rc | grep /sbin/adbd
/init.rc:service adbd /sbin/adbd

したがって、このアプリを適切に制御するには、 と を使用する必要がstop adbdありstart adbdます。

于 2013-02-22T07:51:11.783 に答える
0

あなたはバイナリが /system/bin にあることを知っていると言ったので、そのバイナリファイルの名前も知っていると思います。そうでない場合は、そのコマンドが次のことを見つけるのに役立ちます。

ps PID

バイナリ (例: uptime) を開始するには、シェルにその名前を入力するだけです:

adb shell
uptime

または1つのコマンドで

adb shell uptime

ただし、バイナリファイルが $PATH にリストされているディレクトリのいずれにもない場合は、そのファイルへの完全なパスを入力する必要があります

adb shell /system/bin/uptime

$PATH を次の方法で確認できます。

adb shell echo $PATH
于 2015-06-10T18:40:22.913 に答える