execlp启动android进程命令

execlp启动Android界面或service/广播参数设置

-n代表打开组件
-d代表 data
-a代表action

打开网页 调用am命令

     if (sdkVersion >= 17) {  
            // Android4.2系统之后支持多用户操作,所以得指定用户  
            execlp("am", "am", "start", "--user", "0", "-a",  
                    "android.intent.action.VIEW", "-d", "http://www.baidu.com",  
                    (char*) NULL);  
        } else {  
            // Android4.2以前的版本无需指定用户  
            execlp("am", "am", "start", "-a", "android.intent.action.VIEW",  
                    "-d", "http://www.baidu.com", (char*) NULL);  
        }  

打开Activity

execlp("am", "am", "start", "--user","0", "-n" , "com.test.demo/com.test.demo.MainActivity",(char *) NULL);

 

 

命令窗口通过adb shell 进入android 的Linux命令界面,输入am -help看到如下信息:

我们可以通过命令启动android中的Activity,Service,BroadcastReceiver 等组件

 

1. 拨打一个电话:

am start -a android.intent.action.CALL -d tel:10086

   这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型。

 

2. 打开一个网页:

am start -a android.intent.action.VIEW -d  http://www.baidu.com   //(这里-d表示传入的data)

 

3. 打开音乐播放器:  

 am start -a android.intent.action.MUSIC_PLAYER 或者

 am start -n com.android.music/om.android.music.MusicBrowserActivity

4. 启动一个服务:

    am startservice <服务名称>

    例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService (这里-n表示组件)

    或者   am startservice -a com.smz.myservice (这里-a表示动作,就是你在Androidmanifest里定义的) 

 

5. 发送一个广播:

    am broadcast -a <广播动作>

 例如: am broadcast -a com.smz.mybroadcast

 am还有很多的用法,有待研究。

 

一、adb启动activity:

$ adb shell
$ am start -n {包(package)名}/{包名}.{活动(activity)名称}
如:启动浏览器
# am start -n com.android.browser/com.android.browser.BrowserActivity
 
二、adb启动service:
$ adb shell
$ am startservice -n {包(package)名}/{包名}.{服务(service)名称}
如:启动自己应用中一个service
# am startservice -n com.android.traffic/com.android.traffic.maniservice
 
三、adb发送broadcast:
$ adb shell
$ am broadcast -a <广播动作>
如:发送一个网络变化的广播
# am broadcast -a android.net.conn.CONNECTIVITY_CHANGE
posted on 2017-06-02 17:14  mingfeng002  阅读(720)  评论(0编辑  收藏  举报