adb shell am命令

前端之家收集整理的这篇文章主要介绍了adb shell am命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

am这个指令是 activity manager的缩写。这个命令可以启动Activity、打开或关闭进程、发送广播等操作。

am命令格式如下

 
 
  • 1
adb shell am <command>

1、start [options] <INTENT>

根据Intent 启动Activity

options参数如下:

1
  
  
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • -D:开启debug模式 -W:等待启动完成 --start-profiler<FILE>:将profiler中的结果输出到指定文件-P:和--start-profiler一样,区别在于,在app进入idle状态时profiler结束 -R <Count>: 重复启动Activity,但每次重复启动都会关闭掉最上面的Activity -S:关闭Activity所属的App进程后再启动Activity --opengl-trace:开启OpenGL tracing --user <USER_ID> :使用指定的用户来启动activity,如果不输入,则使用当前用户执行

    INTENT参数参见附录1:

    命令样例:

    8
      
      
  • 9
  • //使用Action方式打开系统设置-输入法设置 adb shell am start -a android.settings.INPUT_METHOD_SETTINGS //使用组件名方式启动照相机功能 adb shell am start -n com.android.camera/.Camera //打开拨号界面,并传递一个DATA_URI数据给拨号界面 am start -a android.intent.action.CALL -d tel:10086

    2、startservice [options] <INTENT>

    根据Intent 启动Service
    options参数如下:

    1
     
     --@H_404_138@user <@H_404_138@USER_ID> @H_404_138@:使用指定的用户来启动activity,如果不输入,则使用当前用户执行

    INTENT参数参见附录1:
    命令样例:

    2
     
     //使用ComponentName 方式启动一个Service
    adb shell am startservice @H_502_151@.some.package.name/.YourServiceSubClassName

    3、force-stop <PACKAGE>

    关闭指定包名的应用程序
    命令样例:

    1
     
     adb shell am force-stop @H_502_151@.package

    4、kill [options] <PACKAGE>

    杀死与应用程序的包名称相关联的所有进程。该命令只会杀死安全的进程,不会影响用户体验。
    options参数如下:

    1
     
     adb shell am kill  
    

    5、kill-all

    杀死全部的后台进程
    命令样例:

    shell am kill-all

    @H_404_199@ 6、broadcast [options] <INTENT>

    发送一个广播
    options参数如下:

    2
     
     //恢复出厂设置的方法,会清除内存所有内容(慎重测试!!!!)
    adb shell am broadcast -a android.MASTER_CLEAR

    7、instrument [options] <COMPONENT>

    启动对instrument实例的监视
    options参数如下:

    6
     
     -r: 以原始形式输出测试结果。该选项通常是在性能测试时与-e perf true一起使用。 -e <NAME> <VALUE>: 提供了以键值对形式存在的测试选项。格式一般为 -e <testrunner_flag> <value>[,<value>...]. -p <FILE>: 将profiling数据写入制定的文件 -w: 保持adb shell打开直至测试完成 --no-window-animation:关闭运行时window动画 --user <USER_ID> :使用指定的用户来启动activity,如果不输入,则使用当前用户执行

    1 adb shell am instrument -w @H_502_151@.phone.tests/@H_502_151@.runners.FunctionalTestRunner


    8、profile start <PROCESS> <FILE>

    开始收集目标进程运行过程中的函数调用关系
    其中PROCESS是所要收集的进程,直接用进程号即可, FILE是收集后trace所在的文件,一般直接放在/sdcard 目录下,所以直接用/sdcard/文件名 即可。
    命令样例:

    1
     
     adb shell am profile start 17495 /mnt/sdcard/profile.txt

    9、profile stop <PROCESS>

    其中PROCESS是所要收集的进程,直接用进程号即可
    停止收集目标进程运行过程中的函数调用关系
    命令样例:

    shell am profile stop 17495

    10、dumpheap [options] <PROCESS> <FILE>

    将指定进程号的堆信息输出到指定的文件
    options参数如下:

    2
     
     --user <USER_ID> :使用指定的用户来启动activity,如果不输入,则使用当前用户执行 -n: 直接存储原始堆信息,而不是系统管理后的堆信息

    shell am dumpheap -n 17495 /mnt/sdcard/dumpheap.txt


    11、set-debug-app [options] <PACKAGE>

    设置特定包名的应用程序开启debug
    options参数如下:

    2
     
     -w: 等待应用程序启动 --persistent: 持久化

    1 adb shell am set-debug-app -w

    12、clear-debug-app

    取消设置debug状态的应用程序
    命令样例:

    clear-debug-app

    13、monitor [options]

    监视Crash 或者ANR错误
    options参数如下:

    gdb: @H_404_138@在给定的端口上启动gdbserv监控crash/ANR错误.

    shell am monitor


    14、screen-compat [on|off] <PACKAGE>

    开启或关闭指定package的屏幕兼容模式
    命令样例:

    shell am screen-compat on com.some.package

    15、display-size [reset|<WxH>]

    重写模拟器/设备显示大小。这个命令是有帮助的测试你的应用程序在不同的屏幕大小,通过模仿一个小屏幕分辨率,使用一个大屏幕的设备,反之亦然。
    命令样例:

    shell am display-size 1280x800

    16、display-density <dpi>

    重写模拟器/设备显示密度。该命令有助于测试你的应用程序在不同的屏幕密度对高密度屏幕环境,使用低密度屏幕,反之亦然。
    命令样例:

    shell am display-density 480

    17、to-uri <INTENT>

    将intent转换为Uri
    命令样例:

    to-uri -a android.settings.INPUT_METHOD_SETTINGS

    18、to-intent-uri <INTENT>

    将intent转换为intent:Uri
    命令样例:

    to-intent-uri -a android.settings.INPUT_METHOD_SETTINGS

    附录1:

     -a <ACTION>
        intent action,例如 "android.intent.action.VIEW". 
    -d <DATA_URI>
        intent data URI,0)">"content://contacts/people/1". 
    -t <MIME_TYPE>
        intent MIME type,0)">"image/png". 
    -c <CATEGORY>
        intent category,0)">"android.intent.category.APP_CONTACTS". 
    -n <COMPONENT>
        指定组件名称以包名称前缀来创建一个Intent,0)">"com.example.app/.ExampleActivity". 
    -f <FLAGS>
        在intent 中添加 flags,Java代码中对应的是 Intent.setFlags(). 
    --esn <EXTRA_KEY>
        添加 a null extra.  这个参数不支持 URI intents.
    -e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>
        添加一个 string 数据,数据结构是键值对 
    --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
        添加一个 boolean 数据,数据结构是键值对 
    --ei <EXTRA_KEY> <EXTRA_INT_VALUE>
        添加一个 int 数据,数据结构是键值对 
    --el <EXTRA_KEY> <EXTRA_LONG_VALUE>
        添加一个 long 数据,数据结构是键值对 
    --ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>
        添加一个 float 数据,数据结构是键值对 
    --eu <EXTRA_KEY> <EXTRA_URI_VALUE>
        添加一个 URI data 数据,数据结构是键值对 
    --ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>
        添加一个组件的名称,这个属性将会被转换成 ComponentName 对象进行传递. 
    --eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]
        添加一个int数组
    --ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]
        添加一个long数组
    --efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]
        添加一个floats数组
    --grant-read-uri-permission
        包含 flag值 FLAG_GRANT_READ_URI_PERMISSION. 
    --grant-write-uri-permission
        包含 flag值 FLAG_GRANT_WRITE_URI_PERMISSION. 
    --debug-log-resolution
        包含 flag值 FLAG_DEBUG_LOG_RESOLUTION. 
    --exclude-stopped-packages
        包含 flag值 FLAG_EXCLUDE_STOPPED_PACKAGES. 
    --include-stopped-packages
        包含 flag值 FLAG_INCLUDE_STOPPED_PACKAGES. 
    --activity-brought-to-front
        包含 flag值 FLAG_ACTIVITY_BROUGHT_TO_FRONT. 
    --activity-clear-top
        包含 flag值 FLAG_ACTIVITY_CLEAR_TOP. 
    --activity-clear-when-task-reset
        包含 flag值  FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET. 
    --activity-exclude-from-recents
        包含 flag值  FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS. 
    --activity-launched-from-history
        包含 flag值  FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY. 
    --activity-multiple-task
        包含 flag值  FLAG_ACTIVITY_MULTIPLE_TASK. 
    --activity-no-animation
        包含 flag值  FLAG_ACTIVITY_NO_ANIMATION. 
    --activity-no-history
        包含 flag值  FLAG_ACTIVITY_NO_HISTORY. 
    --activity-no-user-action
        包含 flag值  FLAG_ACTIVITY_NO_USER_ACTION. 
    --activity-prevIoUs-is-top
        包含 flag值  FLAG_ACTIVITY_PREVIoUS_IS_TOP. 
    --activity-reorder-to-front
        包含 flag值  FLAG_ACTIVITY_REORDER_TO_FRONT. 
    --activity-reset-task-if-needed
        包含 flag值  FLAG_ACTIVITY_RESET_TASK_IF_NEEDED. 
    --activity-single-top
        包含 flag值  FLAG_ACTIVITY_SINGLE_TOP. 
    --activity-clear-task
        包含 flag值  flag FLAG_ACTIVITY_CLEAR_TASK. 
    --activity-task-on-home
        包含 flag值  FLAG_ACTIVITY_TASK_ON_HOME. 
    --receiver-registered-only
        包含 flag值  FLAG_RECEIVER_REGISTERED_ONLY. 
    --receiver-replace-pending
        包含 flag值  FLAG_RECEIVER_REPLACE_PENDING. 
    --selector
        必须使用 -d 和 -t 参数 来设置intent 数据和类型. 
    <URI> <COMPONENT> <PACKAGE>
        直接指定URI、组件名、包名方式启动Activity是无法使用上述选项的,当参数不合法时,am命令默认的识别方式是,URI方式需要包含":";组件名方式是包含"/";其他的格式,am命令默认识别为包名方式。
    原文链接:https://www.f2er.com/bash/390065.html

    猜你在找的Bash相关文章