​前言

Android开发调试工具ADB的使用。ADB(Android Debug Bridge)是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。

ADB主要功能有:
1、在Android设备上运行Shell(命令行)
2、管理模拟器或设备的端口映射
3、在计算机和设备之间上传/下载文件
4、将电脑上的本地APK软件安装至Android模拟器或设备上

本章只介绍一些我常用的指令,有一些指令没用过,或者本人未了解不介绍,有些指令只是说明作用,具体使用细节可以去网上查具体使用,比如adb logcat和adb shell dumpsys指令,使用细节很多,不做具体介绍,以后可能会慢慢补全。

显示设备   

显示连接到当前电脑上的设备

> adb devicesList of devices attached4b5df8f1    device59a85475    device

多台设备

如果多台设备连接到电脑,使用-s来选择指令执行的设置。

adb -s 4b5df8f1 install test.apk  // 向id为4b5df8f1的设备安装test应用

安装包相关指令  安装程序,指令格式,adb install [option] <app_path>

adb install test.apkadb install -r test.apk // 覆盖安装卸载程序,指令格式,adb uninstall [options] <PACKAGE_NAME>adb uninstall com.test.app // 卸载包名为com.test.app的程序adb uninstall -k com.test.app // 卸载包名为com.test.app的程序,但是保留数据列出设备中已安装的程序,adb shell pm list packages [options] <Filter_name>

查看id为4b5df8f1设备的第三方安装程序,过滤词为baidu,示例:

> adb -s 4b5df8f1 shell pm list packages -3 baidu  package:com.baidu.lbs.waimai  package:com.baidu.netdisk
adb shell pm list packages // 列出设备中所有已安装程序adb shell pm list packages -d // 列出设备中无用程序,目前不知道有什么用adb shell pm list packages -e // 列出设备中可用程序adb shell pm list packages -s // 列出系统程序adb shell pm list packages -3 // 列出第三方程序adb shell pm list packages -i // 列出所有程序,并显示安装来源adb shell pm list packages -u // 列出所有程序,包括已卸载程序

查看安装程序的apk文件目录: adb shell pm path <PACKAGE>

在id为4b5df8f1设备查看中包名为com.baidu.netdisk程序的安装包路径位置,示例:

清空程序缓存: adb shell pm clear <PACKAGE>

示例:> adb shell pm clear com.baidu.netdiskSuccess

文件相关指令

local_path可为相对路径,可为相对路径

从设备中拷贝文件, adb pull <remote_path> <local_path>

// 将设备中/sdcard/demo.mp4拷贝到本机的e盘根目录
adb pull /sdcard/demo.mp4 e:\

本地文件拷贝至设备adb push <local_path> <remote_patch>

// 将本地d盘的test.apk文件拷贝至设备的/sdcard目录下

adb push d:\test.apk /sdcard

进入设备系统adb shell,Android设备底层是Linux内核,好多指令是和Linux种指令相同,下面列出一些。使用adb shell指令进入设备系统之后,可使用以下指令。

ls            // 列出当前目录下面的文件ls -a         // 列出当前目录下的所有文件,包括隐藏文件ls -l         // 列出文件,包括文件的读写权限和组关系cd <文件夹名称> // 进入某个文件夹rm <文件名>    // 删除某个文件rm -f <文件名> // 强制删除某个文件rm -r <文件夹> // 删除某个非空文件夹rm -d <文件夹> // 删除文件夹,包括空文件夹,等同于rmdir指令mkdir <文件名/文件夹名> // 创建文件或者文件夹mkdir -m 777 <文件名/文件夹名> // 创建相应权限的文件夹,777是一种权限的代称mkdir -p <文件名/文件夹名> // 如果不存在该文件或者文件夹,就创建touch <文件名> // 新建文件pwd // 打印当前目录cp [options] <source_path> <dest_path> // 拷贝文件或者文件夹move [options] <source_path> <dest_path> // 移动文件或者重命名文件

日志指令

输出日志,adb logcat [option] [filter-specs],具体使用可以查看这里,点这里,个人常用的指令格式。

// 以单个关键字过滤日志,日志显示时间戳adb logcat -v time | grep 关键字adb logcat -v time | grep "关键字"// 以多个关键字过滤日志,日志显示时间戳adb logcat -v time | grep "关键字一\|关键字二"

输出手机信息:

adb shell dumpsys [options],

// 查看电池使用情况
adb shell dumpsys battery
还有更多使用方法,官方文档,例如利用它去查看内存使用情况,

adb shell dumpstate查看各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等,有些手机不适用,提示说没有找到sh脚本,OAO,嗯,系统定制化的结果。查看当前Activity:

// linuxadb shell dumpsys activity | grep "mFocusedActivity"//windowsadb shell dumpsys activity | findstr "mFocusedActivity

截屏,截取当前手机屏幕,adb shell screencap <filename>,然后可以再利用adb pull指令将图片拷贝到本地

// 截取当前屏幕,图片保存到/sdcard目录下,名称为screen.pngadb shell screencap /sdcard/screen.png

录制视频,录制屏幕操作视频,adb shell screenrecord [options] <filename>按ctrl+c停止录制,该指令仅适用于4.4版本以及以上的系统。

// 录取屏幕操作视频,保存到/sdcard目录下,名称为demo.mp4adb shell screenrecord /sdcard/demo.mp4
// 录取视频,并设置录取视频的长宽
adb shell screenrecord --size <WIDTHxHEIGHT> <filename>
// 录取视频,设置最长录取时间
adb shell screenrecord --time-limit <TIME> <filename>
// 录取视频,角度旋转90度
adb shell screenrecord --rotate <filename>

ADB命令使用大法的更多相关文章

  1. 常用adb命令总结

    前言 很早就想整理一下自己平时常用的一些adb命令,不仅为了便于以后查找,而且整理的过程自己又重新复习了一遍,但是当我开始在度娘一搜的时候,发现很多人已经写的非常详细了,尤其是当我发现了这篇adb概括 ...

  2. Android之什么是Activity和常用的ADB命令以及Android项目结构的认识

    总结一下之前学习Android的一些内容 一:  Android常用的ADB命令(adb android调试桥)      1.adb devices   查看模拟器设备并重新连接. 2.adb ki ...

  3. 分享一个常用Adb命令

    分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...

  4. Android ADB命令大全

    通过ADB命令查看wifi密码.MAC地址.设备信息.操作文件.查看文件.日志信息.卸载.启动和安装APK等   ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-s ...

  5. Android的常用adb命令

    第一部分:1. ubuntu下配置环境anroid变量:在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#setandroid environment2. 运行E ...

  6. ADB命令详解

    一.adb介绍 ADB的全称为Android Debug Bridge,字面意思就是安卓调试桥接,简单点说,它是Android系统提供的一套工具,通过它,我们可以在电脑上建立一个连接到手机的通道,然后 ...

  7. adb 命令

    adb命令 su 获取权限 ls 显示目录下的文件 cd / 跳转路径 pm 直接执行设备命令 exit 退出 adb devices 查看设备 adb shell 登录设备shell adb 用桥接 ...

  8. 在Mac上配置adb命令

    在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件 ...

  9. python学习之——调用adb命令完成移动端界面测试

    实现原理 Hierarchy Viewer:获得当前手机实时的UI信息,方便用于手机的自动化测试: python中的subprocess.Popen():调用系统命令: uiautomator工具:获 ...

随机推荐

  1. QA流程

    一.测试人员的介入时间 1.当产品经理与业务人员制定需求的时候,测试人员不宜介入: 2.当下一期的需求原型出来以后,这个时候就进入了需求评审.需求分析阶段,此时,测试人员应该介入: 3.当开发人员在编 ...

  2. pycharm激活2018(终极解决办法)

    1.将“0.0.0.0 account.jetbrains.com”中的内容添加到hosts文件中,hosts路径为:C:\Windows\System32\drivers\etc 2.打开http: ...

  3. C++报错:全局变量重定义或是多次定义

    如何在C++中定义全局变量时避免重复定义呢? 只要在定义时尽量在.cpp文件中进行,而不要在.h 文件中定义,定义好了之后,可以在.h文件中利用extern关键字进行声明. 如果在.h文件中定义的话, ...

  4. BZOJ 4919: [Lydsy1706月赛]大根堆 set启发式合并

    这个和 bzoj 5469 几乎是同一道题,但是这里给出另一种做法. 你发现你要求的是一个树上 LIS,而序列上的 LIS 有一个特别神奇的 $O(n\log n) $ 做法. 就是维护一个单调递增的 ...

  5. Python 05 Geany的基本使用1

    问题01:代码中包含中文编译时提示错误 原文:https://blog.csdn.net/weixin_43345286/article/details/82951698 解决:文档 - 设置文件编码 ...

  6. 【后缀数组】【LuoguP4051】 [JSOI2007]字符加密

    题目链接 题目描述 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法. 例如'JSOI07' ...

  7. CDH 版本 6.0.1 升级到 6.2.0 当前最新版本(CentOS 7.x)

    前文「CDH CM版本 6.0.1 升级到 CM 6.2.0 当前最新版本(CentOS 7.x)」 承接上文,当我们完成 CM 6.2.0 的升级之后,我们已经相当于完成了80% minor 的升级 ...

  8. 两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这 句话对不对

    答:不对,有相同的 hash code这是java语言的定义:1) 对象相等则hashCode一定相等:2) hashCode相等对象未必相等 1.如果是基本变量,没有hashcode和equals方 ...

  9. 【Alpha】“北航社团帮”小程序v1.0项目展示

    目录 1.团队介绍 2.回答一些工程问题 整个项目的目标和预期功能 整个项目的预期典型用户 整个项目的预期用户数量 alpha满足的用户需求 alpha用户量一览 团队分工及经验教训 团队项目管理 时 ...

  10. [Beta]第七次 Scrum Meeting

    [Beta]第七次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/17 22:00 10min 大运村公寓6F寝室 附Github仓库:WEDO 例会照片 工作情况 ...