adb 之android的神器am
am命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等
命令窗口通过adb shell 进入android 的Linux命令界面,输入am -help看到如下信息:

force-stop <PACKAGE> : 强制停止指定的package包应用。
kill [options] <PACKAGE> :杀死指定package包应用进程,该命令在安全模式下杀死进程,不影响用户体验。参数选项:--user <USER_ID> | all | current: 指定user进程杀死,如果不指定默认为所有users。(关于USER_ID下面会介绍到)
kill-all :杀死所有的后台进程。
broadcast [options] <INTENT> :发送一个intent。具体intent参数参照start命令参数。参数选项:--user <USER_ID> | all | current: 指定user进程杀死,如果不指定默认为所有users。
instrument [options] <COMPONENT> :测试命令,不多作介绍。
profile start <PROCESS> <FILE> :在<PROCESS>进程中运行profile,分析结果写到<FILE>里。
profile stop <PROCESS> :停止profile。
set-debug-app [options] <PACKAGE> :设置package包应用为debug模式。参数选项:-w|--persistent:等待进入调试模式,保留值。
clear-debug-app :清空之前用set-debug-app命令设置的package包应用。
以下命令查看官网:
monitor [options]
screen-compat [on|off] <PACKAGE>
display-size [reset|<WxH>]
display-density <dpi>
to-uri <INTENT>
to-intent-uri <INTENT>
我们可以通过命令启动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
6 启动一个Activity
# am start -n 包(package)名/包名.活动(activity)名称
启动的方法可以从每个应用的AndroidManifest.xml的文件中得到
Music 和 Video(音乐和视频)的启动方法为:
# am start -n com.android.music/com.android.music.MusicBrowserActivity
# am start -n com.android.music/com.android.music.VideoBrowserActivity
# am start -n com.android.music/com.android.music.MediaPlaybackActivity
Camera(照相机)的启动方法为:
# am start -n com.android.camera/com.android.camera.Camera
Browser(浏览器)的启动方法为:
# am start -n com.android.browser/com.android.browser.BrowserActivity
启动 google map 直接定位到北京 :
am start -a android.intent.action.VIEW geo:0,0?q=beijing
am还有很多的用法,有待研究。
接下来介绍pm命令,pm全称package manager,你能使用pm命令去模拟android行为或者查询设备上的应用等,当你在adb shell命令下执行pm命令:
pm <command>
你也可以在adb shell前执行pm命令:
adb shell pm uninstall com.example.MyApp
关于一些pm命令的介绍:
list packages [options] <FILTER> :打印所有包,选择性的查询包列表。参数选项:-f:查看关联文件,即应用apk的位置跟对应的包名(如:package:/system/app/MusicPlayer.apk=com.sec.android.app.music);-d:查看disabled packages;-e:查看enable package;-s:查看系统package;-3:查看第三方package;-i:查看package的对应安装者(如:1、package:com.tencent.qqmusic installer=null 2、package:com.tencent.qqpim installer=com.android.vending);-u:查看曾被卸载过的package。(卸载后又重新安装依然会被列入);--user<USER_ID>:The user space to query。
list permission-groups :打印所有已知的权限群组。
| list permissions [options] <GROUP> :选择性的打印权限。参数选项:
list features :设备特性。硬件之类的性能。 list libraries :当前设备支持的libs。 list users :系统上所有的users。(上面提到的USER_ID查询方式,如:UserInfo{0:Primary:3}那么USER_ID为0) path <PACKAGE> :查询package的安装位置。 install [options] <PATH> :安装命令。 uninstall [options] <PACKAGE> :卸载命令。 clear <PACKAGE> :对指定的package删除所有数据。 enable <PACKAGE_OR_COMPONENT> :使package或component可用。(如:pm enable \" package/class\" ) disable <PACKAGE_OR_COMPONENT> :使package或component不可用。(如:pm disable \" package/class\" ) disable-user [options] <PACKAGE_OR_COMPONENT> :参数选项:--user <USER_ID>: The user to disable. revoke <PACKAGE_PERMISSION> :撤销权限。 set-install-location <LOCATION> :设置默认的安装位置。其中0:让系统自动选择最佳的安装位置。1:安装到内部的设备存储空间。2:安装到外部的设备存储空间。(这只用于调试应用程序,使用该命令可能导致应用程序退出或者其他不适的后果)。 get-install-location :返回当前的安装位置。返回结果同上参数选项。 set-permission-enforced <PERMISSION> [true|false] :使指定权限生效或者失效。 create-user <USER_NAME> :增加一个新的USER。 remove-user <USER_ID> :删除一个USER。 get-max-users :该设备所支持的最大USER数。(某些设备不支持该命令) |
adb 之android的神器am的更多相关文章
- Android配置----小米手机通过wifi连接ADB调试Android应用
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- WIFI无线adb调试android
有个需求需要支持android插上键盘,鼠标等外设,但是这样就不能使用microusb口进行adb调试了. 研究了一番,发现可以利用wifi进行adb无线调试(adb应该本身已经支持无线调试). WI ...
- adb(android debug bridge)命令
adb(android debug bridge) adb devices --查看当前连接的模拟器/设备 adb remount --模拟器/设备重新启动,保证能用 adb push src des ...
- Ubuntu使用adb连接android手机失败unknown的解决的方法
Ubuntu使用adb连接android手机失败unknown的解决的方法 Ubuntu下通过USB数据线连接G11手机后,adb可能无法识别到设备.依照一下步骤能够解决此问题. 1.在termi ...
- 打造android偷懒神器———RecyclerView的万能适配器
转载请注明出处谢谢:http://www.cnblogs.com/liushilin/p/5720926.html 很不好意思让大家久等了,本来昨天就应该写这个的,无奈公司昨天任务比较紧,所以没能按时 ...
- Pyqt adb 获取Android手机屏幕
adb的全称为Android Debug Bridge,就是起到调试桥的作用.adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会da ...
- ADB 在 Android SDK 的中的路径
以前 adb.exe 是在 sdk/tools 目录下 现在 安装 sdk 之后, 需要打开 SDK Manager 下载 `Android SDK Platform-tools` 然后, 在 sdk ...
- 【python调用windows CLI】调用adb统计Android app的流量消耗
主要记录python如何调用windows CLI 手机连接PC,adb devices可以看到手机sn 通过adb 获取指定app的processID UID 读取Android /proc/ne ...
- Android模拟神器Genymotion eclipse插件安装问题出解决
我之前一直是打开eclipse之前直接运行Genymotion模拟器就可以连接到adb了,非常方便,但最近突然想来装个eclipse的Genymotion插件玩玩,安装时居然出错了,于是不折腾好心里不 ...
随机推荐
- poj1887 Testing the CATCHER
Testing the CATCHER Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 13968 Accepted: 5 ...
- AIDL使用详解
一.对AIDL进行说明 AIDL允许定义一个编程的接口来作为客户端和服务端通信的桥梁,AIDL定义了客户端和服务端的编程标准,在Android里边一个进程无法直接访问另一个进程的内存信息,但是要访问的 ...
- easyui只选择年份月份的插件---SimpleCanleder
<td>日期</td> <td> <input type="text" id="search_begindate" s ...
- BZOJ 1260: [CQOI2007]涂色paint( 区间dp )
区间dp.. dp( l , r ) 表示让 [ l , r ] 这个区间都变成目标颜色的最少涂色次数. 考虑转移 : l == r 则 dp( l , r ) = 1 ( 显然 ) s[ l ] = ...
- 关于UIText换行
话不多说,直接上代码 --代码是lua的,c++也一样 local text = ccui.Text:create("text can line wrap text can line wra ...
- 130825组队赛-Regionals 2012, North America - East Central NA
A.Babs' Box Boutique 一道简单的dfs搜索题,需要两两比较,然后搜到底,得到最大值就行了.比赛时队友写的,我只负责debug..赛后自己写的.. #include<iostr ...
- Eclipse用法和技巧二十三:查看JDK源码
使用java开发,如果能阅读JDK的经典代码,对自己的水平提高是很有帮助的.笔者在实际工作中总结了两种阅读JDK源码的方式.第一种下载android源代码,直接在android源码代码中,这里的代码虽 ...
- WCF技术剖析之二十一:WCF基本异常处理模式[下篇]
原文:WCF技术剖析之二十一:WCF基本异常处理模式[下篇] 从FaultContractAttribute的定义我们可以看出,该特性可以在同一个目标对象上面多次应用(AllowMultiple = ...
- Java EE登陆界面生成随机数防止恶意注册或者登录
package cn.com; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.a ...
- 【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列5
Oracle(用户)进程 以下这些操作都是需要消耗大量CPU资源的:解析大型查询,存储过程编译或执行,空间管理和排序. 下面这几篇文章可以帮助采集关于使用高CPU资源的进程的更多信息: Note:35 ...