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概括 ...
随机推荐
- 【Java基础】String 相关知识点总结
String 相关知识点总结 字符串的不可变性 概述 String 被声明为 final,因此它不可继承 在 Java8 中,String 内部使用 char 数组存储数据 public final ...
- web项目的初始搭建和intellij的tomcat的配置
点击web application
- 华为网络设备修改console密码
user-interface con 0set authentication password cipher 新密码 有的版本为 <FW> system-view[FW] user-int ...
- MySQL数据库:函数的应用
字符串截取 # 从左边开始 第1个字符 left(字段名,1) # 从那里开始,截取几个 substring(字段名,1,1) str函数 # 连接字符串 concat(s1,s2,s3,--,sn) ...
- Java_枚举Enum基本使用
特性 在某些情况下,一个类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类: 在 Java 中使用 enum 关键字来定义枚举类,其地位与 c ...
- centos8 yum 安装 rabbitmq
进入/etc/yum.repos.d/ 文件夹创建rabbitmq-erlang.repo 文件内容如下[rabbitmq-erlang] name=rabbitmq-erlangbaseurl=ht ...
- VSCode+C++环境搭建
date: 2019-10-05 VSCode+C++环境搭建 其实并不完整,毕竟我也只是一个OIer,并不会很高深的东西.(众所周知,OIer主业是软件开发) 安装VSCode 下载安装包 这个很简 ...
- Docker-Nginx,发布前端服务
1.安装环境: yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 yum-config-manager \ --add-r ...
- python通过多线程并获取返回值
以下是多线程获取返回值的一种实现方式 # -*-coding:utf-8-*- from time import ctime, sleep import threading import numpy ...
- 一年半前端工作经验试水杭州:我是如何拿下网易、阿里和滴滴 offer 的
前言 笔者毕业于东北大学,大学毕业社招进入环球网,前端开发工程师一职.技术栈:React+node,Github 地址 成果 来到杭州的目标非常的明确,大厂.其实就是网易.阿里和滴滴.好在基本三家都拿 ...