首页 文章

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

提问于
浏览
378

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

11 回答

  • 0

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

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

    此命令显示可用的视频播放器以播放sample.3gp文件

  • 224

    打开 ~/.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
    
  • 13

    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

  • 18

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

    adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png

    它将适用于最新的Android,没有弹出窗口将选择打开的应用程序,因为您提供要打开图像的特定应用程序

  • 528

    或者,您可以使用此:

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

    另外,我还想提一件事 .

    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 .

  • 57

    步骤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 .

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

    例如:

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

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

  • 1

    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中的新构建工具文件夹下找到它 .

  • 12

    可以使用 monkey 工具运行应用程序指定包名称,方法如下:

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

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

  • 4
    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
    

相关问题