Android adb shell am start命令总结

本文详细介绍了ADB命令在Android设备上的使用方法,包括启动Activity、Service、强制停止应用、发送广播及性能分析等。提供了多个示例,如启动特定Activity、启动Service、发送用于关闭Activity的广播等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.adb shell am start [options] <INTENT>

作用:启动一个activity   adb shell am start com.android.settings/com.android.settings.Settings(com.android.settings/.Settings)

举例:adb shell am start -a com.e.uu.main1

举例:adb shell am start -n com.android.settings/com.android.settings.Settings(com.android.settings/.Settings)

举例:启动MainActivity laucher

adb shell am start -n com.android.settings/.Settings

说明:[options]与<INTENT>参见 http://developer.android.com/tools/help/adb.html#am

注:在实际调试的时候发现,调用start -n 启动activity时,必须有intent-filter(manifest.xml中的红色与蓝色activity);而startservice则不需要。

带String参数的命令

 adb shell am start -n com.e.uu/.MainActivity1 -e abc hello

代码中通过String value= getIntent().getStringExtra("abc")

2.adb shell am startservice [options] <INTENT>

作用:启动一个service

举例:adb shell am startservice -n com.e.uu/.CoreService -e key value

3.adb shell am force-stop <PACKAGE>

作用:强制关闭一个应用程序

举例:adb shell am force-stop com.lt.test

4.adb shell am broadcast [options] <INTENT>

作用:发送一个广播

举例:adb shell am broadcast -a "action_finish" (发送一个广播去关闭一个activity)

举例:adb shell am broadcast -a android.intent.action.MASTER_CLEAR(恢复出厂设置的方法,会清除内存所有内容)

举例:adb shell am broadcast -n com.lt.test/.MyBroadcast

adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。

添加网络DialogActivity

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

5.性能分析之常用adb命令adb shell am start -W

格式为adb shell am start -W 包名/全类名或叫activity名

该命令具体实现在/frameworks/base/cmds/am/src/com/android/commands/am/Am.java,原理是跨Binder调用ActivityManagerService.startActivityAndWait() 接口,其中返回数据分别调用对应

startTime:  调用startActivityAndWait()的时间点

endTime:   调用startActivityAndWait()函数调用返回的时间点

WaitTime:  调用startActivityAndWait()调用耗时。

再通过之间的计算得到。
 

查看页面启动时间:

以启动camera为例

C:\Users\Administrator>adb shell am start -W com.mediatek.camera/com.mediatek.camera.CameraLauncher
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.mediatek.camera/.CameraLauncher }
Status: ok
Activity: com.mediatek.camera/.CameraLauncher
ThisTime: 1340
TotalTime: 1340
WaitTime: 1384
Complete

打印的结果为

ThisTime  该activity启动耗时

TotalTime  应用自身启动耗时=ThisTime+应用application等资源启动时间

WaitTime  系统启动应用耗时=TotalTime+系统资源启动时间

在测试该启动时间时需要理解两个概念

冷启动:应用第一次启动

热启动:按back按键后再启动或非第一次启动切没有清除该应用后台或缓存数据

上面的数据为冷启动打印的数据,下面运行热启动的测试结果:

C:\Users\Administrator>adb shell am start -W com.mediatek.camera/com.mediatek.camera.CameraLauncher
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.mediatek.camera/.CameraLauncher }
Status: ok
Activity: com.mediatek.camera/.CameraLauncher
ThisTime: 544
TotalTime: 544
WaitTime: 579
Complete
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值