Am命令用法(转)
一、概述作为一名开发者,相信对adb指令一定不会陌生。那么在手机连接adb后,可通过am命令做很多操作: (1) 拨打电话10086 adb shell am start -a android.intent.action.CALL -d tel:10086
(2) 打开网站 adb shell am start -a android.intent.action.VIEW -d http://gityuan.com
(3) 启动Activity: 启动包名为 am start -n com.yuanhh.app/.MainActivity -es website gityuan.com
am命令还可以启动Service、Broadcast,杀进程,监控等功能,这些功能都非常便捷调试程序,接下来讲述关于am更多更详细的功能。 二、Am命令命令格式: am [subcommand] [options]
命令列表:
am命令实的实现方式在Am.java,最终几乎都是调用 接下来,说说 三、 Options3.1 启动Activity 主要是启动Activity命令
启动Activity的实现原理: 存在-W参数则调用startActivityAndWait()方法来运行,否则startActivityAsUser()。 3.2 收紧内存命令 am send-trim-memory <pid> <level>
例如: 向pid=12345的进程,发出level=RUNNING_LOW的收紧内存命令 am send-trim-memory 12345 RUNNING_LOW。
那么level取值范围为: HIDDEN、RUNNING_MODERATE、BACKGROUND、RUNNING_LOW、MODERATE、RUNNING_CRITICAL、COMPLETE。 3.3 其他 对于am的子命令,startservice,stopservice,broadcast,kill,profile start,profile stop,dumpheap的可选参数都允许设置 例如:启动id=10010的用户的指定service。 am startservice --user 10010
四、 IntentIntent的参数和flags较多,本文为方便起见,分为3种类型参数,常用参数,Extra参数,Flags参数。 4.1 常用参数
实例 am start -a android.intent.action.VIEW
am start -n com.yuanhh.app/.MainActivity
am start -d content://contacts/people/1
am start -t image/png
am start -c android.intent.category.APP_CONTACTS
4.2 Extra参数(1). 基本类型
比如参数es是Extra String首字母简称,实例: am start -n com.yuanhh.app/.MainActivity -es website gityuan.com
此处 (2). 数组类型
比如参数eia,是Extra int array首字母简称,多个value值之间以逗号隔开,实例: am start -n com.yuanhh.app/.MainActivity -ela weekday 1,2,3,4,5
此处 (3). ArrayList类型
比如参数efal,是Extra float Array List首字母简称,多个value值之间以逗号隔开,实例: am start -n com.yuanhh.app/.MainActivity -efal nums 1.2,2.2
此处 4.3 Flags参数 在参数类型1中,提到有 [--grant-read-uri-permission] [--grant-write-uri-permission]
[--grant-persistable-uri-permission] [--grant-prefix-uri-permission]
[--debug-log-resolution]
[--exclude-stopped-packages] [--include-stopped-packages]
[--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] [--activity-clear-task]
[--activity-task-on-home]
[--receiver-registered-only] [--receiver-replace-pending]
例如,发送action=”broadcast.demo”的广播,并且对于forceStopPackage()的应用不允许接收该广播,命令如下:
am broadcast -a broadcast.demo --exclude-stopped-packages
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |