如何使用Android ADB工具启动应用程序?

如何使用Android的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 

您还可以指定要通过您的意图过滤器进行过滤的操作:

 am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName 

只有使用猴子工具才能运行指定软件包名称的应用程序,方法如下:

 adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1 

命令用于使用猴子工具运行应用程序,它为应用程序生成随机输入。 命令的最后一部分是整数,它指定了为app生成的随机输入的数量。 在这种情况下,数字是1,实际上是用来启动应用程序(图标点击)。

或者,你可以使用这个:

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

linux / mac用户也可以创建一个脚本来运行一个apk,如下所示:

用这3行创建一个名为“adb-run.sh”的文件:

 pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}') act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}') adb shell am start -n $pkg/$act 

然后“chmod + x adb-run.sh”使其可执行。

现在你可以简单地:

adb-run.sh myapp.apk

这样做的好处是您不需要知道包名或可启动的活动名称。 同样,你可以创建“adb-uninstall.sh myapp.apk”

注意:这要求你在你的路径上适应。 您可以在SDK中的新建工具文件夹下找到它。

另外,我想提一件事。

当你从adb shell am启动一个应用程序adb shell am它会自动添加FLAG_ACTIVITY_NEW_TASK标志 ,这会使行为改变。 看代码 。

例如,如果您从adb shell am启动Play Store活动,则按“ 返回 ”按钮(硬件后退按钮)不会将您的应用程序带到您的应用程序,而是如果有一些(如果没有玩商店任务,那么它会把你的应用程序)。 FLAG_ACTIVITY_NEW_TASK文档说:

如果某个任务已经开始执行,那么新的活动将不会开始; 取而代之的是,当前的任务将被简单地带到屏幕的最前面的状态

这使我花了几个小时找出哪里出了问题。

所以,请记住, adb shell am 添加FLAG_ACTIVITY_NEW_TASK标志

打开〜/ .bash_profile并将这些bash函数添加到文件的末尾

 function androidinstall(){ adb install -r ./bin/$1.apk } function androidrun(){ ant clean debug adb shell am start -n $1/$1.$2 } 

然后打开Android项目文件夹

 androidinstall app-debug && androidrun com.example.app MainActivity 

我们也可以通过了解应用程序类型并为其提供数据来启动应用程序:

 adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW 

这个命令显示可用的视频播放器来播放sample.3gp文件

试试这个,在这里我打开安卓照片应用程序并提供特定的文件打开为参数。

亚行壳是开始-n com.google.android.apps.photos/.home.HomeActivity -d文件:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png

它将工作在最新的android,没有弹出来选择一个应用程序打开,因为你正在给特定的应用程序,你想打开你的图像

monkey --pct-syskeys 0用于开发板

没有这个说法,应用程序将无法在没有按键/显示的开发板上打开:

 adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1 

并失败,错误:

 SYS_KEYS has no physical keys but with factor 2.0% 

使用Android O AOSP HiKey960进行测试。

学习: https : //github.com/ARM-software/lisa/pull/408

还问: monkey test:如果Android系统没有物理密钥,那么需要在命令中包含哪些参数