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

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


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

打开 am:

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


pm list package 列出安装在设备上的应用
不带任何选项:列出所有的应用的包名

-s:列出系统应用
adb shell pm list package -s

-3:列出第三方应用
adb shell pm list package -3

-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

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

package:com.zhihu.android installer=com.xiaomi.market
adb shell pm list package -i
命令最后加上grep关键字,可以很方便地查找自己想要的应用

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

pm path 列出对应包名的 .apk 位置
root@generic:/ # pm path com.android.smoketest
pm path com.android.smoketest
package:/data/app/SmokeTestApp.apk

pm list instrumentation , 列出含有单元测试 case 的应用,
后面可跟参数 -f (与 pm list package 中一样),以及 [target=package]

pm install , 安装应用
目标 apk 存放于 PC 端,请用 adb install 安装
目标 apk 存放于 Android 设备上,请用 pm install 安装
pm uninstall , 卸载应用,同 adb uninstall ,
后面跟的参数都是应用的包名
am
am start 程序名 , 启动一个 Activity,已启动系统相机应用为例

启动通讯录
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 }


启动拨号器拨打 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


am monitor , 监控 crash(闪退) 与 ANR(Application Not Responding)
root@generic:/ # am monitor
am monitor
Monitoring activity manager... available commands:
(q)uit: finish monitoring

Input
这个命令可以向 Android 设备发送按键事件,其源码 Input.java
input text , 发送文本内容,不能发送中文(前提先将键盘设置为英文键盘)
root@generic:/ # input text testrabbit


screencap
adb shell screencap -p /sdcard/screen.png 截图命令
截屏,保存至 sdcard 目录
root@generic:/ # screencap -p /sdcard/screen.jpg
screencap -p /sdcard/screen.jpg


查看到截图如下:

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

adb shell getprop ro.build.version.sdk
获取设备的 sdk 版本

adb shell getprop ro.build.version.release
获取手机系统版本:

学习交流QQ:270224761 (ep)
Android常用adb命令总结(二)的更多相关文章
- Android 常用 adb 命令
查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...
- Android 常用 adb 命令总结
Android 常用 adb 命令总结 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命 ...
- [原创]Android 常用adb命令总结
[原创]Android 常用adb命令总结 1 adb介绍 1.1 adb官方网站及下载 官方网站下载安装:http://adbshell.com/downloads 1.2 adb安装是否成功检查? ...
- 『与善仁』Appium基础 — 5、常用ADB命令(二)
目录 9.查看手机运行日志 (1)Android 日志 (2)按级别过滤日志 (3)按 tag 和级别过滤日志 (4)日志格式 (5)清空日志 10.获取APP的包名和启动名 方式一: 方式二: 11 ...
- 【转】Android 常用 adb 命令总结
原文地址:http://testerhome.com/topics/2565 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Andr ...
- Android 常用 adb 命令总结【转】
原文链接 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中 ...
- Android常用adb命令总结(一)
ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备. ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是an ...
- Android常用adb命令
1.进入手机命令行模式 adb shell 有多部手机的话 adb -s + 手机编号 + shell 2.安装apk adb install 然后将apk文件拖进命令行 卸载apk adb unin ...
- 常用adb命令总结
前言 很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了这篇adb概括 ...
随机推荐
- 【Beta阶段】第十二周Scrum会议
[Beta阶段]第十二周Scrum会议 本次会议为第十二周第一次Scrum Meeting,会议对Beta阶段工作进行了总结,针对Beta阶段还未完成的问题进行了讨论. 会议时间为2019.12.3. ...
- Python语法速查:目录
1. 数据类型与内置函数 2. 列表.元组.字典.集合操作 3. 字符串格式化 4. 字符串常用操作 5. 运算符.math模块.表达式 6. 循环与迭代 7. 函数基础 8. 类与对象 9. 函数进 ...
- Red Hat Enterprise Linux 官方正式版镜像下载
Red Hat Enterprise Linux是美国红帽公司开发的商业市场导向的Linux发行版,为方便大家学习研究,整理分享历代红帽官方正式版镜像给有需要的朋友们. 下载地址:https://ww ...
- WPF 中 Path 使用虚线
效果如下: 上图由两个圆弧组成,代码如下: <!--红色的实线圆弧,旋转200度,顺时针,获取大圆弧--> <Path Data="M 50,200 A 100,100 2 ...
- make && make install的区别
./configure 配置环境make 是编译的意思.就是把源码包编译成二进制可执行文件make install 就是安装的意思. make && make install 的意思是 ...
- 剑指Offer-37.二叉树的深度(C++/Java)
题目: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 分析: 递归求解左右子树的最大值即可,每遍历到一个结点,深度加1,最后 ...
- 关于中医的一段对话 [ZZ] -- 思维训练故事
转载自新浪博客 网址: http://blog.sina.cn/dpool/blog/s/blog_9880df4201015khq.html?type=-1 关于中医的一段对话 2013-01-26 ...
- java之父类中的构造器是否能被子类继承?
子类默认继承父类的属性和方法,但不会继承父类的构造器,而是在子类被实例化时会默认调用父类的空构造器.子类在创建的时候会调用自己的空构造器,并在空构造器会隐式调用super(),即父类的空构造器.如果父 ...
- 一起学SpringMVC之Json
本文主要以一个简单的小例子,简述SpringMVC开发中,Json的相关应用,仅供学习分享使用,如有不足之处,还请指正. 什么是Json ? JSON 指的是 JavaScript 对象表示法(Jav ...
- Servlet小结(面试)
1.doGet()和doPost()区别/get和post请求方法区别: (1)在form表单中:method = “get/post”相对应doGet和doPost方法. (2)在http协议中: ...