使用Android adb命令来启动Android应用程序

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android adb shell 命令大全 1. 显示系统中全部Android平台: android list targets 2. 显示系统中全部AVD(模拟器): android list avd 3. 创建AVD(模拟器): android create avd --name 名称 --target 平台编号 4. 启动模拟器: emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800) 5. 删除AVD(模拟器): android delete avd --name 名称 6. 创建SDCard: mksdcard 1024M ~/名称.img 7. AVD(模拟器)所在位置: Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd) 8. 启动DDMS: ddms 9. 显示当前运行的全部模拟器: adb devices 10. 对某一模拟器执行命令: abd -s 模拟器编号 命令 11. 安装应用程序adb install -r 应用程序.apk 12. 获取模拟器中的文件: adb pull 13. 向模拟器中写文件: adb push 14. 进入模拟器的shell模式: adb shell 15. 启动SDK,文档,实例下载管理器: android 16. 缷载apk包: adb shell cd data/app rm apk包 exit adb uninstall apk包的主包名 adb install -r apk包 17. 查看adb命令帮助信息: adb help 18. 在命令行中查看LOG信息: adb logcat -s 标签名 19. adb shell后面跟的命令主要来自: 源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。 20. 删除系统应用: adb remount (重新挂载系统分区,使系统分区重新可写)。 adb shell cd system/app rm *.apk 21. 获取管理员权限: adb root 22. 启动Activity: adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。 23、发布端口: 你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如: adb forward tcp:5555 tcp:8000 24、复制文件: 你可向一个设备或从一个设备中复制文件, 复制一个文件或目录到设备或模拟器上: adb push 如:adb push test.txt /tmp/test.txt 从设备或模拟器上复制一个文件或目录: adb pull 如:adb pull /addroid/lib/libwebcore.so . 25、搜索模拟器/设备的实例: 取得当前运行的模拟器/设备的实例的列表及每个实例的状态: adb devices 26、查看bug报告: adb bugreport 27、记录无线通讯日志: 一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录: adb shell logcat -b radio 28、获取设备的ID和序列号: adb get-product adb get-serialno 29、访问数据库SQLite3 adb shell sqlite3 #cd system/sd/data //进入系统内指定文件夹 #ls //列表显示当前文件夹内容 #rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 #rm xxx //删除文件xxx #rmdir xxx //删除xxx的文件夹

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值