app_process command in Android

本来以为存放在/systen/bin/下的monkey、input、am等adb shell命令都是二进制可执行程,偶尔cat input下,发现不是二进制文件,内容如下:# Script to start "input" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/input.jar
exec app_process $base/bin com.android.commands.input.Input $*

这段脚本的作用就是通过app_process工具启动放在/system/farmework/下的input.jar 文件。我查看了下framework文件夹里面的确有input.jar文件。




What is this app_process

Although not that popular “app_process” command is used heavily in Android, for example the well know “am” script is using it. Everybody knows how to start an application from adb shell:

1
am start -n yourpackagename/.activityname
However “am” is just a shell script and what stays in the base of the am script is our app_process binary:

01
root@android:/ # cat /system/bin/am
02
cat /system/bin/am
03
# Script to start "am" on the device, which has a very rudimentary
04
# shell.
05
#
06
base=/system
07
export CLASSPATH=$base/framework/am.jar
08
exec app_process $base/bin com.android.commands.am.Am "$@"
09
 
10
root@android:/ #
So app_process is the binary used to start java code. All the apps, instrumentations or installations are tarted using this.

Usage … NOT:

Lets see the official usage output:

1
root@android:/ # app_process
2
Usage: app_process [java-options] cmd-dir start-class-name [options]
Not quite complete as usual :)

你可能感兴趣的:(app_process command in Android)