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

我如何使用Android的ADB工具发送一个意图?

636234 次浏览
adb shell
am start -n com.package.name/com.package.name.ActivityName

或者你可以直接用这个:

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

或者,你可以用这个:

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

打开文件~ / . 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

Linux和Mac用户也可以创建一个脚本来运行APK文件,如下所示:

创建一个名为“;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&;

注意:这要求您的路径中有Android资产打包工具 (aapt)。你可以在SDK的新构建工具文件夹中找到它。

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

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

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

还有,我想再提一件事。

当您从adb shell am自动添加FLAG_ACTIVITY_NEW_TASK标志启动应用程序时,会导致行为改变。请看代码

例如,如果你从adb shell am启动一个Play Store活动,按下“回来”按钮(硬件返回按钮)不会带你的应用程序。相反,它会带你之前的Play Store活动(如果没有Play Store任务,那么它会带你到你的应用程序)。# EYZ2说:

如果您正在启动的活动的任务已经在运行,那么新的活动将不会启动;相反,当前任务将被带到屏幕的前面,并显示它上次处于的状态

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

所以,记住adb shell am add FLAG_ACTIVITY_NEW_TASK flag . add /strong>

只使用猴子工具就可以运行指定包名的应用程序,如下所示:

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

该命令用于使用monkey工具运行应用程序,该工具为应用程序生成随机输入。该命令的最后一部分是一个整数,它指定为应用程序生成的随机输入的数量。在本例中,数字为1,实际上用于启动应用程序(单击图标)。

试试这个,打开一个Android照片应用程序,并以特定的图像文件作为参数打开。

adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///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%

它在HiKey960和Android O AOSP上进行了测试。

借鉴于:this GitHub issue

也在如何在没有物理键的Android系统下使用monkey命令?< / >问过

使用:

adb shell am start -n '<appPackageName>/.<appActitivityName>

例子:

adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'

您可以使用APK-INFO应用程序来了解与每个应用程序包相关的应用程序活动列表。

第一步:首先获取设备中安装的所有应用程序的软件包名称,使用:

adb shell pm list packages

步骤2:您将获得所有包的名称。复制你想开始使用亚洲开发银行

步骤3:在下面的命令中添加所需的包名称。

adb shell monkey -p 'your package name' -v 500

例如,

adb shell monkey -p com.estrongs.android.pop -v 500

启动Es explorer。

你可以通过下面的命令找到你的应用程序包名称:

adb shell pm list packages

上面的命令返回所有应用程序的包列表。例子:

org.linphone.debug
.
.
com.android.email

现在我想通过使用下面的命令启动app linphone,这对我来说是有效的:

adb shell am start org.linphone.debug
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

目前最短的命令如下:

adb shell monkey -p your.app.package.name 1

这将启动启动程序中包的默认活动。

# EYZ0。

当您尝试打开Flutter应用程序时,您可以使用以下命令:

adb shell am start -n com.package.name/io.flutter.embedding.android.FlutterActivity

用包名替换com.package.name。您可以在app/build.gradle applicationId中找到您的包。

使用:

# EYZ0

运行<appPackageName>:

# EYZ0

获取<appActitivityName>午餐应用程序并运行

# EYZ0