adb启动程序命令:adb shell am start
2017-11-08 16:55
471 查看
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.
启动的方法为
adb shell
# am start -n {包(package)名}/{包名}.{活动(activity)名称}
第一种情况: 从源代码,得知包名。
程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为例,它的
<manifest xmlns:android="http://schemas.android.com/apk/res/android" …
package="com.android.calculator2" …>…
由此计算器(calculator)的启动方法为:# am start -n com.android.calculator2/com.android.calculator2.Calculator
对于HelloActivity这个示例工程,AndroidManifest.xml如下所示:
<manifest …
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)。
usage: am [subcommand] [options]
start an Activity: am start [-D] <INTENT>
-D: enable debugging
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
<INTENT> specifications include these flags:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>] [-f <FLAGS>] [<URI>]
启动的方法为
# am start -n 包(package)名/包名.活动(activity)名称
启动的方法可以从每个应用的AndroidManifest.xml的文件中得到
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
第二种情况:从log信息得知包名。
例如:使用logcat,得到如下log;
... ...
11-08 16:13:28.060 1477 1477 E WindowService: Send default show!
11-08 16:13:28.065 540 1127 I ActivityManager: START u0 {cmp=com.miren.dvr/com.miren.view.Sci_MainActivity} from uid 10025 on display 0
11-08 16:13:28.065 540 1127 D PackageManager: [isApkLocateInSystemDir] codePath:/data/app/com.miren.dvr-1
11-08 16:13:28.065 540 1127 W ActivityManager: startActivity called from finishing ActivityRecord{1cf36c4 u0 com.miren.dvr/com.miren.view.SplashActivity t29 f}; forcing Intent.FLAG_ACTIVITY_NEW_TASK fo}
11-08 16:13:28.200 1477 1477 E WindowService: Send default show!
... ...
从以上信息,得知包名是 com.miren.dvr/com.miren.view.Sci_MainActivity
则,运行时的命令为:
am start com.miren.dvr/com.miren.view.Sci_MainActivity
第三种情况:使用 pm 和 dumpsys命令得知
这种情况下,只有一个apk,也没有打开使用过,则首先使用
pm list package
列出全部的包名,在这些包名中找出和apk相似的包。com.miren.dvr
然后使用命令 dumpsys package com.miren.dvr 列出包的信息。
在包的信息中,有如下信息:
Activity Resolver Table:
Non-Data Actions:
android.intent.action.MAIN:
9d1b3ed com.miren.dvr/com.miren.view.SplashActivity
这样就找到了需要启动的包和activity。
am start com.miren.dvr/com.miren.view.SplashActivity
启动的方法为
adb shell
# am start -n {包(package)名}/{包名}.{活动(activity)名称}
第一种情况: 从源代码,得知包名。
程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为例,它的
<manifest xmlns:android="http://schemas.android.com/apk/res/android" …
package="com.android.calculator2" …>…
由此计算器(calculator)的启动方法为:# am start -n com.android.calculator2/com.android.calculator2.Calculator
对于HelloActivity这个示例工程,AndroidManifest.xml如下所示:
<manifest …
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)。
usage: am [subcommand] [options]
start an Activity: am start [-D] <INTENT>
-D: enable debugging
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
<INTENT> specifications include these flags:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>] [-f <FLAGS>] [<URI>]
启动的方法为
# am start -n 包(package)名/包名.活动(activity)名称
启动的方法可以从每个应用的AndroidManifest.xml的文件中得到
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
第二种情况:从log信息得知包名。
例如:使用logcat,得到如下log;
... ...
11-08 16:13:28.060 1477 1477 E WindowService: Send default show!
11-08 16:13:28.065 540 1127 I ActivityManager: START u0 {cmp=com.miren.dvr/com.miren.view.Sci_MainActivity} from uid 10025 on display 0
11-08 16:13:28.065 540 1127 D PackageManager: [isApkLocateInSystemDir] codePath:/data/app/com.miren.dvr-1
11-08 16:13:28.065 540 1127 W ActivityManager: startActivity called from finishing ActivityRecord{1cf36c4 u0 com.miren.dvr/com.miren.view.SplashActivity t29 f}; forcing Intent.FLAG_ACTIVITY_NEW_TASK fo}
11-08 16:13:28.200 1477 1477 E WindowService: Send default show!
... ...
从以上信息,得知包名是 com.miren.dvr/com.miren.view.Sci_MainActivity
则,运行时的命令为:
am start com.miren.dvr/com.miren.view.Sci_MainActivity
第三种情况:使用 pm 和 dumpsys命令得知
这种情况下,只有一个apk,也没有打开使用过,则首先使用
pm list package
列出全部的包名,在这些包名中找出和apk相似的包。com.miren.dvr
然后使用命令 dumpsys package com.miren.dvr 列出包的信息。
在包的信息中,有如下信息:
Activity Resolver Table:
Non-Data Actions:
android.intent.action.MAIN:
9d1b3ed com.miren.dvr/com.miren.view.SplashActivity
这样就找到了需要启动的包和activity。
am start com.miren.dvr/com.miren.view.SplashActivity
相关文章推荐
- adb启动程序命令:adb shell am start
- adb启动程序命令:adb shell am start
- 使用 adb shell am start-W 命令查看应用启动时间的注意事项
- execlp启动android进程命令窗口通过adb shell 进入android 的Linux命令界面,输入am -help看到如下信息: 我们可以通过命令启动android中的
- adb shell命令--命令创建模拟器并启动,命令打开手机程序的界面
- adb shell am 命令启动不知类名情况下的 main activity
- adb的am start命令启动Activity报Error type 3错误
- adb shell am start 命令
- 如何用adb shell am命令启动 MTKLogger?
- android 性能分析之常用adb命令adb shell am start -W
- adb shell am start -d 启动应用之uri被*吃了
- adb shell命令--命令创建模拟器并启动,命令打开手机程序的界面
- No local changes, not deploying APK,adb shell am start -n
- java中调用adb shell 命令启动android应用程序
- adb shell am 命令
- Android命令行启动程序-am命令的使用
- Android命令行启动程序-am命令的使用-纠正网上大部分资料的错误
- Android cmd下运行命令“adb无法启动此程序”
- Android命令行启动程序-am命令的使用-纠正网上大部分资料的错误
- adb shell am命令