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概括 ...
随机推荐
- js对象数组中的某属性值 拼接成字符串
js对象数组中的某属性值 拼接成字符串 var objs=[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'}, {id:4,name:'赵六' ...
- vue项目、路由
目录 Vue项目创建 pycharm配置并启动vue项目 vue项目目录结构分析 js原型补充 vue项目生命周期 页面组件 配置自定义全局样式 路由逻辑跳转 路由重定向 组件的生命周期钩子 路由传参 ...
- PyCharm2019 激活
文章末尾补充几个激活码:网上收集 一.破解补丁激活优点:永久期限 缺点:需要修改配置文件和下载破解文件 1.下载破解文件点击链接 链接: https://pan.baidu.com/s/1T405JC ...
- 无需重新安装软件,将软件从C盘移至其他盘(mklink)
事先说明,这篇博文算是视频的文字转载版,来源为该视频的五分钟后内容→https://www.bilibili.com/video/av78397784/ 如何拯救标红的C盘[高玩] 有时候安装软件会手 ...
- C和C++常见误区以及问题整理
c和c++的关系 c是面向过程的语言,c++是在c的基础上扩展的面向对象的编程语言. c++具备c的所有功能,对c的库完全兼容. c++的标准在98年确定,在那之前已经有一些库大量使用. 新标准中,推 ...
- linux配置LAMP(CentOS7.4 Apache2.4 PHP5.6)
1.安装Apache 这个就不手动安装了,直接上脚本执行 bash apache.sh 以下为脚本的内容: #!/bin/bashversion=`lsb_release -a|grep Releas ...
- PostgreSQL数据库一些tricks
PostgreSQL自带Pgadmin客户端,可用于访问本地和远程PG库,一些tricks如下: 1.联合查询 SELECT * FROM table1 INNER JOIN table2 ON ta ...
- Java题库——Chapter6 一维数组
1)What is the representation of the third element in an array called a? 1) _______ A)a(3) B) a(2) C) ...
- ASP.NET Core MVC配置差异(3.0和2.X)
https://www.cnblogs.com/lonelyxmas/p/10934388.html net core 2.x MVC配置 public void ConfigureServices( ...
- 在python函数中默认参数的一些坑
一.默认参数 python为了简化函数的调用,提供了默认参数机制: 这样在调用pow函数时,就可以省略最后一个参数不写: 在定义有默认参数的函数时,需要注意以下: 必选参数必须在前面,默认参数在后: ...