当前位置:   article > 正文

使用Android adb命令来启动Android应用程序_adb start --es简书

adb start --es简书

Android自带的ADB工具是一个很强大的工具,我们可以用ADB来完成非常多的工作。

具体ADB的使用可以参考这篇文章:Android adb常用指令使用指南


如何安装一个android app程序,可以使用adb install ApkName.apk命令来实现,那么安装完成之后可不可以用命令行来启动它呢?

Of Course!!!

那么如何启动已经安装好的Android App程序吗?


我们可以在命令行输入一下内容:

[plain]  view plain copy
  1. C:\Users\Administrator>adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n net.micod  
  2. e.fileexplorer/net.micode.fileexplorer.FileExplorerTabActivity  
  3. Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=net.micode.fileexplorer/.Fi  
  4. leExplorerTabActivity }  


有同学要说,上面的命令太长了,不好记,老师,能不能给力点?

好的,我们可以精简下:

[plain]  view plain copy
  1. C:\Users\Administrator>adb shell am start -n net.micode.fileexplorer/net.micode.fileexplorer.FileExplorerTabActivity  
  2. Starting: Intent { cmp=net.micode.fileexplorer/.FileExplorerTabActivity }  
  3.   
  4. C:\Users\Administrator>  


其中FileExplorerTabActivity是fileexplorer App应用程序的类名。


我们来看下adb shell am命令的帮助。

[plain]  view plain copy
  1. C:\Users\Administrator>adb shell am  
  2. usage: am [subcommand] [options]  
  3. usage: am start [-D] [-W] [-P <FILE>] [--start-profiler <FILE>]  
  4.                [--R COUNT] [-S] <INTENT>  
  5.        am startservice <INTENT>  
  6.        am force-stop <PACKAGE>  
  7.        am kill <PACKAGE>  
  8.        am kill-all  
  9.        am broadcast <INTENT>  
  10.        am instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w]  
  11.                [--no-window-animation] <COMPONENT>  
  12.        am profile [looper] start <PROCESS> <FILE>  
  13.        am profile [looper] stop [<PROCESS>]  
  14.        am dumpheap [flags] <PROCESS> <FILE>  
  15.        am set-debug-app [-w] [--persistent] <PACKAGE>  
  16.        am clear-debug-app  
  17.        am monitor [--gdb <port>]  
  18.        am screen-compat [on|off] <PACKAGE>  
  19.        am display-size [reset|MxN]  
  20.        am to-uri [INTENT]  
  21.        am to-intent-uri [INTENT]  
  22.   
  23. am start: start an Activity.  Options are:  
  24.     -D: enable debugging  
  25.     -W: wait for launch to complete  
  26.     --start-profiler <FILE>: start profiler and send results to <FILE>  
  27.     -P <FILE>: like above, but profiling stops when app goes idle  
  28.     -R: repeat the activity launch <COUNT> times.  Prior to each repeat,  
  29.         the top activity will be finished.  
  30.     -S: force stop the target app before starting the activity  
  31.   
  32. am startservice: start a Service.  
  33.   
  34. am force-stop: force stop everything associated with <PACKAGE>.  
  35.   
  36. am kill: Kill all processes associated with <PACKAGE>.  Only kills.  
  37.   processes that are safe to kill -- that is, will not impact the user  
  38.   experience.  
  39.   
  40. am kill-all: Kill all background processes.  
  41.   
  42. am broadcast: send a broadcast Intent.  
  43.   
  44. am instrument: start an Instrumentation.  Typically this target <COMPONENT>  
  45.   is the form <TEST_PACKAGE>/<RUNNER_CLASS>.  Options are:  
  46.     -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT).  Use with  
  47.         [-e perf true] to generate raw output for performance measurements.  
  48.     -e <NAME> <VALUE>: set argument <NAME> to <VALUE>.  For test runners a  
  49.         common form is [-e <testrunner_flag> <value>[,<value>...]].  
  50.     -p <FILE>: write profiling data to <FILE>  
  51.     -w: wait for instrumentation to finish before returning.  Required for  
  52.         test runners.  
  53.     --no-window-animation: turn off window animations will running.  
  54.   
  55. am profile: start and stop profiler on a process.  
  56.   
  57. am dumpheap: dump the heap of a process.  Options are:  
  58.     -n: dump native heap instead of managed heap  
  59.   
  60. am set-debug-app: set application <PACKAGE> to debug.  Options are:  
  61.     -w: wait for debugger when application starts  
  62.     --persistent: retain this value  
  63.   
  64. am clear-debug-app: clear the previously set-debug-app.  
  65.   
  66. am monitor: start monitoring for crashes or ANRs.  
  67.     --gdb: start gdbserv on the given port at crash/ANR  
  68.   
  69. am screen-compat: control screen compatibility mode of <PACKAGE>.  
  70.   
  71. am display-size: override display size.  
  72.   
  73. am to-uri: print the given Intent specification as a URI.  
  74.   
  75. am to-intent-uri: print the given Intent specification as an intent: URI.  
  76.   
  77. <INTENT> specifications include these flags and arguments:  
  78.     [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]  
  79.     [-c <CATEGORY> [-c <CATEGORY>] ...]  
  80.     [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]  
  81.     [--esn <EXTRA_KEY> ...]  
  82.     [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]  
  83.     [--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]  
  84.     [--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]  
  85.     [--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]  
  86.     [--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]  
  87.     [--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]  
  88.     [-n <COMPONENT>] [-f <FLAGS>]  
  89.     [--grant-read-uri-permission] [--grant-write-uri-permission]  
  90.     [--debug-log-resolution] [--exclude-stopped-packages]  
  91.     [--include-stopped-packages]  
  92.     [--activity-brought-to-front] [--activity-clear-top]  
  93.     [--activity-clear-when-task-reset] [--activity-exclude-from-recents]  
  94.     [--activity-launched-from-history] [--activity-multiple-task]  
  95.     [--activity-no-animation] [--activity-no-history]  
  96.     [--activity-no-user-action] [--activity-previous-is-top]  
  97.     [--activity-reorder-to-front] [--activity-reset-task-if-needed]  
  98.     [--activity-single-top] [--activity-clear-task]  
  99.     [--activity-task-on-home]  
  100.     [--receiver-registered-only] [--receiver-replace-pending]  
  101.     [--selector]  
  102.     [<URI> | <PACKAGE> | <COMPONENT>]  
  103. 来自:http://blog.csdn.net/tcpipstack/article/details/8553965

  104. adb shell am
    使用此命令可以从cmd控制台启动 activity, services;发送 broadcast等等:

    C:\Users\Administrator>adb shell am
    usage: am [subcommand] [options]

        start an Activity: am start [-D] [-W] <INTENT>
            -D: enable debugging
            -W: wait for launch to complete

        start a Service: am startservice <INTENT>

        send a broadcast Intent: am broadcast <INTENT>

        start an Instrumentation: am instrument [flags] <COMPONENT>
            -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
            -e <NAME> <VALUE>: set argument <NAME> to <VALUE>
            -p <FILE>: write profiling data to <FILE>
            -w: wait for instrumentation to finish before returning

        start profiling: am profile <PROCESS> start <FILE>
        stop profiling: am profile <PROCESS> stop

        start monitoring: am monitor [--gdb <port>]
            --gdb: start gdbserv on the given port at crash/ANR

        <INTENT> specifications include these flags:
            [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
            [-c <CATEGORY> [-c <CATEGORY>] ...]
            [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
            [--esn <EXTRA_KEY> ...]
            [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
            [-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
            [-n <COMPONENT>] [-f <FLAGS>]
            [--grant-read-uri-permission] [--grant-write-uri-permission]
            [--debug-log-resolution]
            [--activity-brought-to-front] [--activity-clear-top]
            [--activity-clear-when-task-reset] [--activity-exclude-from-recents]
            [--activity-launched-from-history] [--activity-multiple-task]
            [--activity-no-animation] [--activity-no-history]
            [--activity-no-user-action] [--activity-previous-is-top]
            [--activity-reorder-to-front] [--activity-reset-task-if-needed]
            [--activity-single-top]
            [--receiver-registered-only] [--receiver-replace-pending]
            [<URI>]


    使用实例:
    如启动一个 Activity:

    格式:
    adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。
     
    实例1:
    C:\Users\Administrator>adb shell am start -n com.android.camera/.Camera
    Starting: Intent { cmp=com.android.camera/.Camera }
     
    实例2:(带extra 的 intent)
    C:\Users\Administrator>adb shell am start -n com.android.camera/.Camera -e abc hello
    Starting: Intent { cmp=com.android.camera/.Camera (has extras) }
    其中 extra 的 key 为 abc ,value 为字串 "hello"

    还可以发送命令模拟手机低电环境:

    实例:

    adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level" 3 --ei "scale" 100


  105. 来自:http://blog.csdn.net/fulinwsuafcie/article/details/8092459


在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.

usage: am [subcommand] [options]

    start an Activity: am start [-D]
        -D: enable debugging

    send a broadcast Intent: am broadcast

    start an Instrumentation: am instrument [flags]
        -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
        -e : set argument to
        -p : write profiling data to
        -w: wait for instrumentation to finish before returning

    start profiling: am profile start
    stop profiling: am profile stop

    specifications include these flags:
        [-a ] [-d ] [-t ]
        [-c [-c ] ...]
        [-e|--es ...]
        [--ez ...]
        [-e|--ei ...]
        [-n ] [-f ] []

启动的方法为

      $ adb shell
      $ am start -n {包(package)名}/{包名}.{活动(activity)名称}

程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为例,它的

package="com.android.calculator2" …>…

由此计算器(calculator)的启动方法为:

# am start -n com.android.calculator2/com.android.calculator2.Calculator

对于HelloActivity这个示例工程,AndroidManifest.xml如下所示:

package="com.example.android.helloactivity" …>

由此它的启动方法为:

# am start -n com.example.android.helloactivity/com.example.android.helloactivity.HelloActivity

其他的一些应用启动命令,如下所示:

calendar(日历)的启动方法为:

# am start -n com.android.calendar/com.android.calendar.LaunchActivity

AlarmClock(闹钟)的启动方法为:

# am start -n com.android.alarmclock/com.android.alarmclock.AlarmClock

Music 和 Video(音乐和视频)的启动方法为:

# am start -n com.android.music/com.android.music.MusicBrowserActivity

# am start -n com.android.music/com.android.music.VideoBrowserActivity

# am start -n com.android.music/com.android.music.MediaPlaybackActivity

Camera(照相机)的启动方法为:

# am start -n com.android.camera/com.android.camera.Camera

Browser(浏览器)的启动方法为:

# am start -n com.android.browser/com.android.browser.BrowserActivity

  一般情况希望,一个Android应用对应一个工程。值得注意的是,有一些工程具有多个活动(activity),而有一些应用使用一个工程。例如:在Android界面中,Music和Video是两个应用,但是它们使用的都是packages/apps/Music这一个工程。而在这个工程的AndroidManifest.xml文件中,有包含了不同的活动(activity)。
 

Music 和 Video(音乐和视频)的启动方法为:

# am start -n com.android.music/com.android.music.MusicBrowserActivity

# am start -n com.android.music/com.android.music.VideoBrowserActivity

# am start -n com.android.music/com.android.music.MediaPlaybackActivity


Camera(照相机)的启动方法为:

# am start -n com.android.camera/com.android.camera.Camera

 
Browser(浏览器)的启动方法为:

# am start -n com.android.browser/com.android.browser.BrowserActivity

 
启动浏览器 :

am start -a android.intent.action.VIEW -d  http://www.google.cn/

 
拨打电话 :

am start -a android.intent.action.CALL -d tel:10086


启动 google map 直接定位到北京 :

am start -a android.intent.action.VIEW geo:0,0?q=beijing

url:http://greatverve.cnblogs.com/archive/2012/02/10/android-am.html
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/258072
推荐阅读
相关标签
  

闽ICP备14008679号