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

execlp启动android进程命令的更多相关文章

  1. Android进程命令查看

    •       进程 是指一个具有独立功能的程序在某个数据集上的一次动态运行过程,它是系统进行资源分配和调度的最小单元. •       一个进程能够拥有多个线程.每一个线程必须有一个父进程. •   ...

  2. init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件

    Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译 ...

  3. Android(java)学习笔记161:Framework运行环境之启动SystemServer进程

          SystemServer进程是zygote孵化出的第一个进程,该进程是从ZygoteInit.java的main函数中调用startSystemServer()开始的.与启动普通进程的差别 ...

  4. 【转】使用命令行方式创建和启动android模拟器

    原文网址:http://blog.csdn.net/tiandinilv/article/details/8953001 1.Android模拟器介绍 Android中提供了一个模拟器来模拟ARM核的 ...

  5. Android(java)学习笔记104:Framework运行环境之启动SystemServer进程

    1. SystemServer进程      SystemServer进程是zygote孵化出的第一个进程,该进程是从ZygoteInit.java的main函数中调用startSystemServe ...

  6. python 怎么启动一个外部命令程序, 并且不阻塞当前进程

    http://www.myexception.cn/perl-python/1278887.html http://blog.chinaunix.net/uid-25979788-id-3081912 ...

  7. 【系统之音】Android进程的创建及启动简述

    Android系统中的进程(这里不包括init等底层的进程)都是通过Zygote fork而来的,那这些进程的启动流程都是怎样的呢? 这里将Android进程分为两个部分: (1)系统框架进程Syst ...

  8. 015 Linux 标准输入输出、重定向、管道和后台启动进程命令

    目录 1 三种标准输入输出 2 什么是重定向?如何重定向? (1)什么是重定向? (2)如何重定向? 3 管道符以及和它容易混淆的一些符号使用 (1)管道符 | (2)&和&& ...

  9. 【腾讯Bugly干货分享】Android进程保活招式大全

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ac4a0ea374c75371c08ce8 作者:腾讯——张兴华 目前市面上 ...

随机推荐

  1. SDUT 3362 数据结构实验之图论六:村村通公路

    数据结构实验之图论六:村村通公路 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 当前农村公 ...

  2. c/c++头文件中#ifndef/#define/#endif的用法

    想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文 ...

  3. 操作系统--UNIX代码段和数据段分开

    (1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像.代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作----它是不可写的. (2) ...

  4. GPU,CUDA,cuDNN的理解

    最近用到这方面的知识,感觉这篇文章写的很好,为了方便自己查阅,就搬运了过来,如果牵涉到侵权,请联系我,我会删除该博文!!! 我们知道做深度学习离不开GPU,不过一直以来对GPU和CPU的差别,CUDA ...

  5. oracle如何去除字符串中的重复字符

    create or replace function remove_rame_string(oldStr varchar2, sign varchar2) return varchar2 is /** ...

  6. 51nod 1350 斐波那契表示(递推+找规律)

    传送门 题意 分析 我们发现该数列遵循下列规律: 1 1,2 1,2,2 1,2,2,2,3 1,2,2,2,3,2,3,3 我们令A[i]表示f[i]开始长为f[i-1]的i的最短表示和 那么得到A ...

  7. [Django笔记] 从已有的数据库构建应用

    Django适合从零开始构建,所谓 'Green-field' 开发.那么当我需要基于已存在的数据库构建应用时怎么办呢? inspectdb # 扫描默认数据库 python manage.py in ...

  8. cuda by example

    int offset= x+y*dim   x 线程块内的线程索引 y 线程块索引 dim 线程块的维度   tid = threadIdx.x+blockIdx.x*blockDim.x 计算大于或 ...

  9. cenos 上的php 支持GD库问题

    ---恢复内容开始--- thinkphp 开发的项目verify类无法引用,原因是没有开启gd库 环境:CentOS 6.4,php-5.3.3需求:php支持GD库解决方案:GD是Linux下的一 ...

  10. Python-6-字典-函数dict,字典的基本操作及将字符串设置功能用于字典

    phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 字典由键及其相应的值组成,这种键-值对称为项. 键必须为独一无二,值不必如 ...