Android常用adb命令总结(二)
2016-10-29 17:29
639 查看
adb shell 命令
简单点讲,adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下,如下在命令行中敲这样一个命令:root@generic:/ # adb shell jjj
adb shell jjj
/system/bin/sh: jjj: not found
很明显,在 bin 目录下并不存在这个命令。
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029171952875-861218419.png)
想看看有哪些命令,也不想去找文档,于是就启动模拟器,将整个 system/bin 目录复制了出来,然后一个一个的去试。
C:\Users\Administrator>adb pull /system/bin/ E:\system-bin
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172011109-2040788038.png)
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172020984-967664614.png)
打开这些文件就可以发现,里面有些命令其实是一个 shell 脚本,例如打开 monkey 文件:
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172033468-1152455412.png)
打开 am:
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172049984-1887193102.png)
pm
Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息pm 的源码 pm.java , 直接运行
adb shell pm 可以获取到该命令的帮助信息
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172107515-895379849.png)
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172114281-164005492.png)
pm list package 列出安装在设备上的应用
不带任何选项:列出所有的应用的包名![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172125187-33341609.png)
-s:列出系统应用
adb shell pm list package -s![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172135171-456924926.png)
-3:列出第三方应用
adb shell pm list package -3![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172149828-1544078857.png)
-f:列出应用包名及对应的apk名及存放位置
adb shell pm list package -froot@generic:/ # pm list package -f
pm list package -f
package:/system/app/SoundRecorder.apk=com.android.soundrecorder
package:/system/app/SdkSetup.apk=com.android.sdksetup
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172232562-2016716939.png)
-i:列出应用包名及其安装来源,结果显示例子:
adb shell pm list package -i![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172247875-1110408996.png)
package:com.zhihu.android installer=com.xiaomi.market
adb shell pm list package -i
命令最后加上grep关键字,可以很方便地查找自己想要的应用
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172306015-651489876.png)
参数组合使用,例如,查找三方应用中知乎的包名、apk存放位置、安装来源:
root@generic:/ # pm list package -f -i fused
pm list package -f -i fused
package:/system/app/FusedLocation.apk=com.android.location.fused installer=null
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172324796-546883520.png)
pm path 列出对应包名的 .apk 位置
root@generic:/ # pm path com.android.smoketestpm path com.android.smoketest
package:/data/app/SmokeTestApp.apk
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172339140-1609954378.png)
pm list instrumentation , 列出含有单元测试 case 的应用,
后面可跟参数 -f (与 pm list package 中一样),以及 [target=package]![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172354343-1894835602.png)
pm install , 安装应用
目标 apk 存放于 PC 端,请用 adb install 安装目标 apk 存放于 Android 设备上,请用 pm install 安装
pm uninstall , 卸载应用,同 adb uninstall ,
后面跟的参数都是应用的包名
am
am start 程序名 , 启动一个 Activity,已启动系统相机应用为例
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172434562-1469161083.png)
启动通讯录
root@generic:/ # am start com.android.contactsam start com.android.contacts
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L
AUNCHER] pkg=com.android.contacts }
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172446765-144643559.png)
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172451250-289136814.png)
启动拨号器拨打 10086
root@generic:/ # am start -a android.intent.action.CALL -d tel:10086am start -a android.intent.action.CALL -d tel:10086
Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172517468-2106960250.png)
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172522234-34909641.png)
am monitor , 监控 crash(闪退) 与 ANR(Application Not Responding)
root@generic:/ # am monitor
am monitor
Monitoring activity manager... available commands:
(q)uit: finish monitoring
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172538718-1064092473.png)
Input
这个命令可以向 Android 设备发送按键事件,其源码 Input.javainput text , 发送文本内容,不能发送中文(前提先将键盘设置为英文键盘)
root@generic:/ # input text testrabbit![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172602953-1270646775.png)
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172608312-1826699466.png)
screencap
adb shell screencap -p /sdcard/screen.png 截图命令
截屏,保存至 sdcard 目录root@generic:/ # screencap -p /sdcard/screen.jpg
screencap -p /sdcard/screen.jpg
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172626281-1441937788.png)
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172632015-352788794.png)
查看到截图如下:
![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172642265-1772879442.png)
getprop
查看 Android 设备的参数信息,只运行 adb shell getprop,结果以 key : value 键值对的形式显示![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172724406-1386233191.png)
adb shell getprop ro.build.version.sdk
获取设备的 sdk 版本![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172736875-1423133149.png)
adb shell getprop ro.build.version.release
获取手机系统版本:![](https://images2015.cnblogs.com/blog/551006/201610/551006-20161029172745640-1664473247.png)
学习交流QQ:270224761 (ep)
相关文章推荐
- Android 常用 adb 命令总结(相当全)
- android adb常用命令总结【安卓进化十】
- Android 常用 adb 命令总结
- Android 开发中常用 ADB 命令总结
- Android 常用 adb 命令总结
- 【转】Android 常用 adb 命令总结
- Android常用adb命令总结
- 总结一下 Android adb常用命令
- Android开发中常用ADB命令总结
- Android常用adb命令总结(一)
- Android开发中常用ADB命令总结
- android adb常用命令总结
- Android 开发中常用 ADB 命令总结
- Android 常用 adb 命令总结
- Android 常用 adb 命令总结
- Android 开发中常用 ADB 命令总结
- Android 常用 adb 命令总结
- Android 常用 adb 命令总结
- Android开发中常用ADB命令总结
- Android 常用 adb 命令总结