Android常用adb命令总结(二)

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 目录下并不存在这个命令。

Android常用adb命令总结(二)

想看看有哪些命令,也不想去找文档,于是就启动模拟器,将整个 system/bin 目录复制了出来,然后一个一个的去试。

C:\Users\Administrator>adb pull /system/bin/ E:\system-bin

Android常用adb命令总结(二)

Android常用adb命令总结(二)

打开这些文件就可以发现,里面有些命令其实是一个 shell 脚本,例如打开 monkey 文件:

Android常用adb命令总结(二)

打开 am:

Android常用adb命令总结(二)

pm

Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息
pm 的源码 pm.java , 直接运行
adb shell pm 可以获取到该命令的帮助信息

Android常用adb命令总结(二)

Android常用adb命令总结(二)

pm list package 列出安装在设备上的应用

不带任何选项:列出所有的应用的包名

Android常用adb命令总结(二)

-s:列出系统应用

adb shell pm list package -s

Android常用adb命令总结(二)

-3:列出第三方应用

adb shell pm list package -3

Android常用adb命令总结(二)

-f:列出应用包名及对应的apk名及存放位置

adb shell pm list package -f

root@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

Android常用adb命令总结(二)

-i:列出应用包名及其安装来源,结果显示例子:

adb shell pm list package -i

Android常用adb命令总结(二)

package:com.zhihu.android installer=com.xiaomi.market

adb shell pm list package -i

命令最后加上grep关键字,可以很方便地查找自己想要的应用

Android常用adb命令总结(二)

参数组合使用,例如,查找三方应用中知乎的包名、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

Android常用adb命令总结(二)

pm path 列出对应包名的 .apk 位置

root@generic:/ # pm path com.android.smoketest

pm path com.android.smoketest

package:/data/app/SmokeTestApp.apk

Android常用adb命令总结(二)

pm list instrumentation , 列出含有单元测试 case 的应用,

后面可跟参数 -f (与 pm list package 中一样),以及 [target=package]

Android常用adb命令总结(二)

pm install , 安装应用

目标 apk 存放于 PC 端,请用 adb install 安装
目标 apk 存放于 Android 设备上,请用 pm install 安装

pm uninstall , 卸载应用,同 adb uninstall ,
后面跟的参数都是应用的包名

am

am start 程序名 , 启动一个 Activity,已启动系统相机应用为例

Android常用adb命令总结(二)

启动通讯录

root@generic:/ # am start com.android.contacts

am start com.android.contacts

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.L

AUNCHER] pkg=com.android.contacts }

Android常用adb命令总结(二)

Android常用adb命令总结(二)

启动拨号器拨打 10086

root@generic:/ # am start -a android.intent.action.CALL -d tel:10086

am start -a android.intent.action.CALL -d tel:10086

Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx

Android常用adb命令总结(二)

Android常用adb命令总结(二)

am monitor , 监控 crash(闪退) 与 ANR(Application Not Responding)

root@generic:/ # am monitor

am monitor

Monitoring activity manager...  available commands:

(q)uit: finish monitoring

Android常用adb命令总结(二)

Input

这个命令可以向 Android 设备发送按键事件,其源码 Input.java

input text , 发送文本内容,不能发送中文(前提先将键盘设置为英文键盘)

root@generic:/ # input text testrabbit

Android常用adb命令总结(二)

Android常用adb命令总结(二)

screencap

adb shell screencap -p /sdcard/screen.png  截图命令

截屏,保存至 sdcard 目录

root@generic:/ # screencap -p /sdcard/screen.jpg

screencap -p /sdcard/screen.jpg

Android常用adb命令总结(二)

Android常用adb命令总结(二)

查看到截图如下:

Android常用adb命令总结(二)

getprop

查看 Android 设备的参数信息,只运行 adb shell getprop,结果以 key : value 键值对的形式显示

Android常用adb命令总结(二)

adb shell getprop ro.build.version.sdk

获取设备的 sdk 版本

Android常用adb命令总结(二)

adb shell getprop ro.build.version.release

获取手机系统版本:

Android常用adb命令总结(二)

学习交流QQ:270224761 (ep)

上一篇:heritrix 3.2.0 -- 环境搭建


下一篇:写CSS的布局