android常用的一些UI调试命令am,pm

转自:http://www.52rd.com/Blog/Detail_RD.Blog_blogercn_71675.html

android在开发者模式下,我们能够使用adb执行andorid手机上system/bin/目录下的几乎所有命令。这些命令有的和linux的原始命令功能一样,有些是android独有的,有些是MTK添加的。但他们无一例外,功能都相当强大。熟练使用这些命令,可以有效的减少程序调试的工作量。

am指令可以发送广播,可以启动activity,可以启动服务,同时还能在特定的窗口关闭他们。因此对于UI调试和模块交叉调试十分有用,一是对于一些不设置launcher的动作的activity,没有办法通过菜单启动,这时可以使用am指令,二是对于一些需要参数才能运行的activity,直接运行可能出错或者无法调用其功能,需要am来启动。三是在一些launcher和屏幕锁窗口,没有办法直接调用其他程序,但其他程序又会在特定条件下在这些窗口启动,为了测试他们交互运行情况,需要am指令。四对于一些在特定某些广播下运行的服务,活动,广播接收器来说,调试难度很大,使用am可以轻松解决。

5对于一些窗口调用出错的程序,也可以通过am指令来验证是发送出错还是接收出错

1.am启动一个activity

adb shell am start com.example.scr/.MainActivity

2.am启动一个带参数的activity

adb shell am start -n com.magcomm.touch/.TouchLetterActivity --es letter "e"

--es传递的是字符串,还有ei,el,ez等参数

-n使用包名加类名,还有a动作,c CATEGORY等

3.am发送一个广播,使用action

adb shell am broadcast -a magcomm.action.TOUCH_LETTER

4.am发送一个带参数的广播,使用action

adb shell am broadcast -a magcomm.action.TOUCH_LETTER --es letter "e"

5.am启动一个服务,不带参数时默认使用包名加类名启动,参数时n,a,c

adb shell am startservice com.android.music/.MediaPlaybackService

6.关闭一个activity或者服务之类,使用包名就行

adb shell am force-stop com.magcomm.touch

pm指令也很有用

1.可以列出手机上安装的apk与对应的软件包,由于使用命令删除apk时,需要知道包名,通过这条命令加上grep或者find就能找到需要的软件的包名

adb shell pm list packages -f

2找出对应包的安装目录路径,两条指令结合,可以知道要拷贝给别人的软件位于手机什么地方

adb shell pm path com.example.scr

2.可以列了使用的权限

adb shell pm list permission-groups

adb shell pm list permissions

转载请注明出处:

User_Index.rd

参考:

http://bbs.ydss.cn/thread-96113-1-1.html

上一篇:iOS XCode7制作.Framework动态库和.a静态库的总结


下一篇:Python编码与解码