现在的位置: 首页 > 综合 > 正文

android adb shell 命令

2014年01月20日 ⁄ 综合 ⁄ 共 3880字 ⁄ 字号 评论关闭
文章目录

主要关于adb shell 中的命令(am 、pm、input等): 

一、am:

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

位置: framework/base/cmd

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 或者

包名和应用名可以在Androidmanifest.xml文件查看到

    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 broadcast -a com.company.application.tag.action -e key value -e speech_content 请说我是好孩子 -e ui_show true   


6、启动一个activity

adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)
 

实例1:

 am start -n com.android.camera/.Camera
 
实例2:(带extra 的 intent)

am start -n com.android.camera/.Camera -e abc hello
Starting: Intent { cmp=com.android.camera/.Camera (has extras) }

其中 extra 的 key 为 abc ,value 为字串 "hello"

extra中的值 类型不同可以  通过 -ei el 等标识

Intent参数:

[-a <ACTION>]  action字符串

[-d <DATA_URI>]  传入数据

[-t <MIME_TYPE>] 数据类型
    [-c <CATEGORY> [-c <CATEGORY>] ...]
    [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
    [--esn <EXTRA_KEY> ...]
    [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
    [--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
    [--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
    [--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]
    [--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]
    [--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
    [--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
    [--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
    [--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
    [-n <COMPONENT>]  组件一般是全路经: 包名/类名全路径

    [-f <FLAGS>]

二、pm

位置: framework/base/cmd

1、pm install 安装apk文件,貌似 adb install 就是调的这个方法 

    -l: install the package with FORWARD_LOCK.
    -r: reinstall an exisiting app, keeping its data.
    -t: allow test .apks to be installed.
    -i: specify the installer package name.
    -s: install package on sdcard.
    -f: install package on internal flash.

pm install xxx.apk

2、pm uninstall 包名     卸载一个程序

pm uninstall: removes a package from the system. Options:
    -k: keep the data and cache directories around after package removal.

三、input 往系统中注入

位置: framework/base/cmd

1、输入文字,限英文,符号和数字,中文不可以

input text  hello

2、输入键盘字符

input keyevent 23  输入回车

具体keyevent code 到 keyevent中查找 

四、svc 命令

位置: framework/base/cmd

1.svc命令 这个脚本在/system/bin目录下,这个命令可以用来控制电源管理,wifi开关,数据开关(就是上网流量)

2.svc power stayon [true|false|usb|ac] 这个是控制usb插入的时候屏幕是否常亮,这个有地方设置,就不多说了

  1. svc power  
  2. Control the power manager  
  3. usage: svc power stayon [true|false|usb|ac]  
  4. Set the 'keep awake while plugged in' setting.//设置屏幕的常亮,true保持常亮,false不保持,usb当插入usb时常亮,ac当插入电源时常亮  

3、# svc data  

  1. # svc data  
  2. svc data  
  3. Control mobile data connectivity  
  4. usage: svc data [enable|disable]  
  5. Turn mobile data on or off.//设置移动网络的数据是否启用  
  6. svc data prefer  
  7. Set mobile as the preferred data network//设置移动网络的数据优先于WIFI  

.svc data disable这个命令可以关闭数据连接,就是上网流量,大家都知道控制上网的开关很多,但是大都是通过在apn上的接入点加后缀来实现的,但是这个命令不会更改apn的任何设置,直接在底层关闭数据连接。
应该是最彻底的,而且又不影响apn的设置。 

这个跟apndroid有什么区别,apndroid是在关闭上网数据的时候,已经在下载的连接可能不会被强制关闭(这个在apndroid自己的说明中也有提到)。比如你在下载一个10M的电影,下载了1M,不响下载了。用apndroid关闭连接,可能这个下载还会继续,不会马上停掉。 

但是用这个命令,绝对毫不留情的咔嚓掉。

4.svc data enable 这个是打开上网数据连接,跟上一个命令是相反的。

5 svc data prefer 这个命令是控制3g数据连接比wifi优先。我们都知道,正常情况下,有wifi的时候,不会用到3g连接。但是这个命令是相反,有3g的话先用3g流量,没有3g的时候采用wifi.我想大家不会这么傻吧,所以这个命令没什么用。


6. svc wifi 

  1. # svc wifi  
  2. svc wifi  
  3. Control the Wi-Fi manager  
  4. usage: svc wifi [enable|disable]  
  5. Turn Wi-Fi on or off.//设置WIFI是否启用  
  6. svc wifi prefer  
  7. Set Wi-Fi as the preferred data network//设置WIFI优先于移动网络的数据,一般应设置成这样,除非你刻意使用移动网络数据传输  

 svc wifi disable 关闭wifi 连接

7 svc wifi enable 开启wifi连接

8 svc wifi prefer 设置wifi优先,跟5是相反的。

上面的命令都要在shell中执行,需要root。 

参考:

http://www.cnblogs.com/healthy-tree/archive/2012/05/31/2528135.html

http://blog.csdn.net/liucheng2009/article/details/6565540

五、wpa_supplicant  wpa_cli

六、netd

抱歉!评论已关闭.