[英]How to start an application using Android ADB tools
如何使用 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
命令用于使用猴子工具运行应用程序,该工具为应用程序生成随机输入。 命令的最后一部分是整数,它指定为应用程序生成的随机输入的数量。 在这种情况下,数字是 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”
注意:这要求您的路径中有 aapt。 您可以在 SDK 的新构建工具文件夹下找到它。
第 1 步:首先使用以下命令获取设备中安装的应用程序的所有包名称:
adb shell pm list packages
第 2 步:您将获得所有包名称,复制您要开始使用 adb 的名称。
第 3 步:在以下命令中添加所需的包名称。
adb shell monkey -p 'your package name' -v 500
例如:
adb shell monkey -p com.estrongs.android.pop -v 500
启动 Es 资源管理器。
另外,我还想提一件事。
当您从adb shell am
启动应用程序adb shell am
,它会自动添加 FLAG_ACTIVITY_NEW_TASK 标志,这会改变行为。 请参阅代码。
例如,如果您从adb shell am
启动 Play 商店活动,按“后退”按钮(硬件后退按钮)不会带您使用您的应用程序,相反,如果有一些(如果没有),它会带您以前的 Play 商店活动Play 商店任务,然后它会带你你的应用程序)。 FLAG_ACTIVITY_NEW_TASK 文档说:
如果您正在启动的活动的任务已经在运行,则不会启动新的活动; 相反,当前任务将简单地以它上次所处的状态带到屏幕的前面
这让我花了几个小时来找出问题所在。
因此,请记住adb shell am
添加 FLAG_ACTIVITY_NEW_TASK 标志。
我们也可以通过了解应用程序类型并为其提供数据来启动应用程序:
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
用于开发板
没有这个参数,应用程序将不会在没有键/显示的开发板上打开:
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 上测试。
adb shell am start -n '<appPackageName>/.<appActitivityName>
前任:
adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'
您可以使用 APK-INFO 应用程序了解每个应用程序包的应用程序活动列表
您可以通过以下命令找到您的应用程序包名称:
adb shell pm list packages
以上命令返回所有应用程序的包列表,示例:
org.linphone.debug
.
.
com.android.email
现在我想使用以下命令启动应用程序 linphone,这对我有用:
adb shell am start org.belphone.debug
最短的命令如下:
adb shell monkey -p your.app.package.name 1
这将为启动器中的包启动默认活动。
感谢@Androiderson 的提示
试试这个,打开一个 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.app.package.name/com.java.package.name.ActivityName
例子
adb shell am start -n com.google.android.googlequicksearchbox/com.google.android.search.core.google.GoogleSearch
如果Java包相同,那么可以缩短
adb shell am start -n com.example.package/.subpackage.ActivityName
当您尝试打开 Flutter 应用程序时,您可以使用此命令:
adb shell am start -n com.package.name/io.flutter.embedding.android.FlutterActivity
将com.package.name
替换为您的 package 名称。 您在applicationId
的app/build.gradle
中找到您的 package。
采用:
adb shell am start -n '<appPackageName>/<appActitivityName>'
要获取<appPackageName>
运行:
adb shell pm list packages
获取<appActitivityName>
午餐应用程序并运行
adb shell dumpsys window | grep -E 'mCurrentFocus'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.