如何使用Android的ADB工具发送意图?
我们也可以通过了解应用程序类型并向其提供数据来启动应用程序:
adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW
此命令显示可用的视频播放器以播放sample.3gp文件
打开 ~/.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
monkey --pct-syskeys 0 for development boards
没有这个参数,没有键/显示,应用程序将无法在开发板上打开:
adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1
并失败并出错:
SYS_KEYS has no physical keys but with factor 2.0%
在HiKey960,Android O AOSP上测试 .
从以下地方学到:https://github.com/ARM-software/lisa/pull/408
还询问:monkey test : If the Android system doesnt has physical keys ,what are the parameters need to be includeded in the command
尝试这个,打开一个Android照片应用程序和特定的图像文件打开作为参数 .
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
它将适用于最新的Android,没有弹出窗口将选择打开的应用程序,因为您提供要打开图像的特定应用程序
或者,您可以使用此:
adb shell am start -n com.package.name/.ActivityName
另外,我还想提一件事 .
从 adb shell am 启动应用程序时, it automatically adds FLAG_ACTIVITY_NEW_TASK flag 会使行为发生变化 . 见code .
adb shell am
例如,如果您从 adb shell am 启动Play商店活动,请按“返回' button(hardware back button) wouldn' t”将您带到您的应用程序,相反,如果有某些活动(如果没有Play商店任务,那么它将带您进入以前的Play商店活动)应用程序) . FLAG_ACTIVITY_NEW_TASK documentation说:
如果任务已在您正在启动的活动中运行,则不会启动新活动;相反,当前任务将简单地以其最后一个状态被带到屏幕的前面
这让我花了几个小时才发现出了什么问题 .
所以,请记住 adb shell am add FLAG_ACTIVITY_NEW_TASK flag .
步骤1:首先使用以下命令获取设备中安装的应用程序的所有包名称:
adb shell pm list packages
第2步:您将获得所有包名称, copy 您要开始使用adb的名称 .
第3步:在以下命令中添加所需的包名称 .
adb shell monkey -p 'your package name' -v 500
例如:adb shell monkey -p com.estrongs.android.pop -v 500启动Es explorer .
adb shell am start -n '<appPackageName>/.<appActitivityName>
例如:
adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'
您可以使用APK-INFO应用程序来了解每个应用程序包的应用程序活动列表
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中的新构建工具文件夹下找到它 .
可以使用 monkey 工具运行应用程序指定包名称,方法如下:
adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1
命令用于使用猴子工具运行应用程序,该工具为应用程序生成随机输入 . 命令的最后一部分是整数,它指定了为app生成的随机输入的数量 . 在这种情况下,数字为1,实际上用于启动应用程序(图标点击) .
adb shell am start -n com.package.name/com.package.name.ActivityName
或者你可以直接使用它:
您还可以指定要由intent-filters过滤的操作:
am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName
11 回答
我们也可以通过了解应用程序类型并向其提供数据来启动应用程序:
此命令显示可用的视频播放器以播放sample.3gp文件
打开 ~/.bash_profile 并将这些bash函数添加到文件末尾
然后打开Android项目文件夹
monkey --pct-syskeys 0 for development boards
没有这个参数,没有键/显示,应用程序将无法在开发板上打开:
并失败并出错:
在HiKey960,Android O AOSP上测试 .
从以下地方学到:https://github.com/ARM-software/lisa/pull/408
还询问:monkey test : If the Android system doesnt has physical keys ,what are the parameters need to be includeded in the command
尝试这个,打开一个Android照片应用程序和特定的图像文件打开作为参数 .
adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png
它将适用于最新的Android,没有弹出窗口将选择打开的应用程序,因为您提供要打开图像的特定应用程序
或者,您可以使用此:
另外,我还想提一件事 .
从
adb shell am
启动应用程序时, it automatically adds FLAG_ACTIVITY_NEW_TASK flag 会使行为发生变化 . 见code .例如,如果您从
adb shell am
启动Play商店活动,请按“返回' button(hardware back button) wouldn' t”将您带到您的应用程序,相反,如果有某些活动(如果没有Play商店任务,那么它将带您进入以前的Play商店活动)应用程序) . FLAG_ACTIVITY_NEW_TASK documentation说:这让我花了几个小时才发现出了什么问题 .
所以,请记住
adb shell am
add FLAG_ACTIVITY_NEW_TASK flag .步骤1:首先使用以下命令获取设备中安装的应用程序的所有包名称:
adb shell pm list packages
第2步:您将获得所有包名称, copy 您要开始使用adb的名称 .
第3步:在以下命令中添加所需的包名称 .
adb shell monkey -p 'your package name' -v 500
例如:
您可以使用APK-INFO应用程序来了解每个应用程序包的应用程序活动列表
linux / mac用户还可以创建一个脚本来运行apk,其内容如下:
使用以下3行创建名为“adb-run.sh”的文件:
然后“chmod x adb-run.sh”使其可执行 .
现在你可以简单地说:
adb-run.sh myapp.apk
这样做的好处是您不需要知道包名称或可启动活动名称 . 同样,您可以创建“adb-uninstall.sh myapp.apk”
注意:这要求您遵循自己的道路 . 您可以在SDK中的新构建工具文件夹下找到它 .
可以使用 monkey 工具运行应用程序指定包名称,方法如下:
命令用于使用猴子工具运行应用程序,该工具为应用程序生成随机输入 . 命令的最后一部分是整数,它指定了为app生成的随机输入的数量 . 在这种情况下,数字为1,实际上用于启动应用程序(图标点击) .
或者你可以直接使用它:
您还可以指定要由intent-filters过滤的操作: