Android下am命令启动Activity、Service、BroadcastReceiver

  • 今天在跟踪android.intent.action.BATTERY_WARNING通知的出处的时候,意外的发现发通知的地方在底层c部分的代码,并且使用am命令发送通知出来。可以通过adb shell 进入android 的Linux命令界面,输入可以通过am命令启动android中的Activity,Service,BroadcastReceiver 等组件。

Android下有am命令非常实用,其代码在frameworks\base\cmds\am\src\com\android\commands\am


1.具体用法
1.1: 启动一个指定Activity:
方法为:
am start  

-n<COMPONENT>

COMPONENT为:package名/Activity名。

例:
Android有个OpenGLES例子程序.GL2JNI.

其main.xml中显示:其package="com.android.gl2jni"
activity android:name="GL2JNIActivity"

则Package名为:com.android.gl2jni
Activity名为:com.android.gl2jni.GL2JNIActivity.或者可以写为.GL2JNIActivity.

am start -n  com.android.gl2jni/ com.android.gl2jni.GL2JNIActivity
或者:
  am start-n    com.android.gl2jni/ .GL2JNIActivity 



1.2: 利用Action启动
例如启动一个网页:http://www.sina.com.cn:
am start -a android.intent.action.VIEW-d  http://www.sina.com.cn
Action非常多,有些使用起来会有问题。之后再研究之。



1.3: 启动一个services:
am  startservice package/services
还未具体尝试,之后准备专门写个services来尝试。


1.4: 发送一个广播

通过命令行执行adb shell am broadcast发送广播通知。


adb shell am broadcast 后面的参数有:

[-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>]


例如:

adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true


说明:蓝色为key,红色为alue,分别为String类型,int类型,boolean类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值