Android:adb shell am命令行发送Activity/Service/Broadcast

0.adb shell am命名行参数

F:\>adb shell
# am
am
usage: am [subcommand] [options]

    start an Activity: am start [-D] [-W] 
        -D: enable debugging
        -W: wait for launch to complete

    start a Service: am startservice 

    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   ...]
        [--esn  ...]
        [--ez   ...]
        [-e|--ei   ...]
        [-n ] [-f ]
        [--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]
        []

#
adb shell am activity/service/broadcast -a ACTION -c CATEGORY -n NAME

1. 启动activity/service

在adb shell中,通过am命令行启动一个Activity程序:


从superuser源代码中摘录一段使用示例:

am start -a android.intent.action.MAIN -n com.koushikdutta.superuser/com.koushikdutta.superuser.SuperuserRequestActivity --ei uid %d --ei pid %d

这个示例中:

-a 表示action (android.intent.action.MAIN)

-n 表示packagename (com.koushikdutta.superuser)

SuperuserRequestActivity是对应的Activity name

对应于AndroidManifest.xml文件中的描述。

 



	
		
			
				
				
			
		
		
			
				
				
			
		
	
 


 

2.发送broadcast,比如在模拟器中发生关机的broadcast

F:\>adb shell am broadcast -a android.intent.action.ACTION_SHUTDOWN -c android.intent.category.HOME
-n com.andy.androidtest/.ShutdownBroadcastReceiver

结果:
Broadcasting: Intent { act=android.intent.action.ACTION_SHUTDOWN cat=[android.intent.category.HOME]
cmp=com.andy.androidtest/.ShutdownBroadcastReceiver }
Broadcast completed: result=0

相关源代码:

ShutdownBroadcastReceiver.java

public class ShutdownBroadcastReceiver extends BroadcastReceiver {

	private static final String TAG = "ShutdownBroadcastReceiver";
    public ShutdownBroadcastReceiver()
    {
    	
    }
    //Once boot completed,start server
    public void onReceive(Context context, Intent intent)
    {
		String action = intent.getAction();
		if (action.equals(Intent.ACTION_SHUTDOWN))
		{
			//Toast.makeText(context, "Ready to shutdown....", 1000);			
			Log.v(TAG,"action:"+action);
		}
    }
}

AndroidManifest.xml:

      
            
                
                               
            
        

 Logcat将抓到action:

10-26 02:37:01.684: V/ShutdownBroadcastReceiver(293): action:android.intent.action.ACTION_SHUTDOWN



你可能感兴趣的:(Android基础,action,android,Android,debugging,profiling,returning)