1. 什么是adb

在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为Android Debug Bridge,就是调试桥的作用。可以与模拟器或android设备通信。adb可分为三部分:

  • 客户端:运行在pc机上,通过console调用 adb 命令。其他工具,如ADT插件 和 DDMS工具等,都会调用adb客户端。
  • 服务器:运行在pc机上,以后台程序方式运行。负责客户端与adb 守护进程(deamon)之间的通信。
  • adb 守护进程(deamon):运行在android设备或模拟器上。

adb工具放在android_SDK/platform-tools/下。启动adb客。户端后,会首先检测服务器是否已启动。未启动起会将服务器自动起起来,服务器绑定在tcp 5037端口。服务器会扫描5555 to 5585端口段来发现adr设备。当发现adb守护进程后,会建议连接。注意,每个连接会占用两个端口,双数端口用来响应console,单数端口用来adb连接。如,设备1,console: 5554; 设备1,adb: 5555。

2. 启动adb

我使用adb安装apk时,提示:

adb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *

原因上,电脑上安装的手机助手占用了adb的端口5037,所以adb启动不起来。如果可以退出手机助手,且插上手机后助手也不会霸占adb的端口,倒是可以保留。无奈,我PC上的手机助手做不到,我只能卸之。卸载后就OK了,命令行下adb操作就能启动adb server了。使用adb时,需开启android的debug模式。

3. 常用adb命令

adb命令 解释
adb start-server

启动adb服务器

adb kill-server

终止adb服务器

adb version

查看adb版本

adb version

查看adb的各种命令和参数的介绍

adb devices

查看连接到pc上的adr设备。第一列为设备的uid号,第二列为设备的状态。

  • offline 此状态下adb无法通信成功。可以尝试重起adb服务器;安装高版本的adb
  • 设备列表为空  有时adb版本与device的adr版本不匹配也会遇到此问题
adb -s deviceID xxxx

多个设备时,指定操作其中某一个deviceID号为xxxx的设备

 adb install xxx.apk -r/d/s

安装app
-r 覆盖安装,保留数据和缓存文件 -d 解决低版本version问题
 adb uninstall -k <package_name>  卸载app -k表示保留配置和缓存文件 
 adb pull <remote> <local>  从设备上取回文件  当记下日志后,就可以使用pull命令,将日志文件传到本地查看了
 adb push <local> <remote>  从pc上推送文件到设备

4. adb shell

ad shell即可用shell来管理android设备。因为android本质上是linux系统,所以和linux上的操作命令类似。如cd/ls/rm等。

命令 解释
adb shell dumpsys package <package_name> 查看与某app相关的所有信息,如action, codepath, version,权限等信息
adb shell dumpsys activity activities|sed -En -e '/Running activities/,/Run #0/p' 查看当前activity名
adb shell dumpsys meminfo <package_name|PID> 查看某个app的内存占用
adb shell dumpsys batterystats <package_name> xxx.txt 获取单个应用的电量消耗信息  可以使用python historian.py xxx.txt > xxx.html将数据转为html文件

adb shell dumpsys window|grep Surface 或

adb shell wm size

查看手机分辨率
adb shell getprop | grep heapgrowthlimit / version / product 查看单个应用程序的最大内存限制 / sdk版本 / 型号
adb shell am start -n/W <package_name>/.<activity_class_name> -n:启动某个app的某个activity  -W 启动并记录启动时长,从startActivity到应用第一帧完全显示的时长
adb shell pm list packages 列出设备上的所有app包名
adb shell ps | grep xxx 查看进程
adb shell kill PID  终止某个进程
adb shell monkey -v -p <package_name> 500 -p 对象包 -v 反馈信息级别  运行monkey
adb shell getprop ro.build.version.release 获得设备操作系统版本

adb -s xxxx shell getprop ro.product.model

 获得设备名
adb [-d/-e/-s <serial no>] <command> -d 多个真机设备时,-d后

5. adb常用命令之logcat

adb命令语法:

[adb] logcat [<option>] ... [<filter-spec>] ...
  • adb logcat -c 清除所有以前的日志
  • adb logcat -d 打印日志,且自动退出log模式
  • adb logcat -f 将日志输出到文件中。注意,这个文件保存在设备上,所以需要将日志创建在可写入的地方。比如/sdcard/logs.txt
  • adb logcat -s 设置默认的过滤器, 如 我们想要输出 "System.out" 标签的信息, 就可以使用adb logcat -s System.out
  • adb logcat -t N 查看最后的N条日志
  • adb logcat | grep XXX 管道命令,同Linux

也可以进入adb shell后,运行logcat。与adb logcat 参数一样。

6. adb常用命令pm

pm,即package management。  详细可参看这篇博文:https://www.cnblogs.com/JianXu/p/5380882.html

  • adb shell pm list packages -3 仅显示第三方apk
  • adb shell pm list packages | grep xxxx 显示包含xxxx的已安装app名

这个网站不错,http://adbshell.com/commands/adb-connect 与adb相关的命令这里有一些简单的介绍

7. adb常用命令am

《每天一个adb命令:am》

android adb介绍的更多相关文章

  1. Android monkey介绍

    Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...

  2. [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍

    注:为了看上去比较清晰这里只转载了中文 原地址:  [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...

  3. 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

    原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ  A2DP.SINK.sink_connect.s ...

  4. Android平台介绍

    一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操 ...

  5. Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

    关键词:蓝牙blueZ  A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_ ...

  6. Android bluetooth介绍(两): android 蓝牙源架构和uart 至rfcomm过程

    关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本号:基于android4.2先前版本 bluez内核:linux/linux3.08系统:an ...

  7. android Animation介绍

    Animation介绍: 在Android SDK介绍了2种Animation模式: 1. Tween Animation:间动画,通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即 ...

  8. android adb常用命令

    android adb命令: adb root --获取root.adb remount --获取文件操作权限(push)adb shell pm list package 获取包名列表com.mqt ...

  9. Android adb push 和 pull操作

    由于安卓真机本地调试时,每次启动并生成apk然后安装到设备比较费时,而很多情况是仅仅修改了hot 脚本文件(cocos2dx + lua). 所以,使用热更机制把修改后的lua文件push到热更目录( ...

随机推荐

  1. Codeforces 948D Perfect Security(字典树)

    题目链接:Perfect Security 题意:给出N个数代表密码,再给出N个数代表key.现在要将key组排序,使key组和密码组的亦或所形成的组字典序最小. 题解:要使密码组里面每个数都找到能使 ...

  2. idea 中全局查找不到文件 (两shift),单页搜索不到关键字的原因

    全局查找不到文件是因为把要找的目录的本级或者上级设置为了额外的,所以自然找不到 而单页搜索不到内容是因为设置了words关键字,这个要全部都输入完才能找到(也就是整个关键字进行匹配,匹配到了整体才会查 ...

  3. 修改 input[type="radio"] 和 input[type="checkbox"] 的默认样式

    表单中,经常会使用到单选按钮和复选框,但是,input[type="radio"] 和 input[type="checkbox"] 的默认样式在不同的浏览器或 ...

  4. Spring Boot(十一):Spring Boot 中 MongoDB 的使用

    MongoDB 是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配 ...

  5. golang高性能端口扫描

    前言 最近有个小项目的需要,使用golang写了个端口扫描工具,不得不说golang的效率确实比python快的太多了.在使用一段时间golang之后,感觉有三个方面是优于python的: 一个方面是 ...

  6. memcached 和redis比较

    同属于NOSQL存储,网上流传很多memcached能做的是redis都可以做,为什么基本现在两种都火,原因他们有各自擅长的地方. memcahed内部采用多核模式,单列运行很快.memcached采 ...

  7. 完爆Facebook/GraphQL,APIJSON全方位对比解析(三)-表关联查询

    相关阅读: 完爆Facebook/GraphQL,APIJSON全方位对比解析(一)-基础功能 完爆Facebook/GraphQL,APIJSON全方位对比解析(二)-权限控制 自APIJSON发布 ...

  8. Ubuntu 18.04下Couldn't connect to Docker daemon at http+docker://localunixsocket解决办法

    一台服务器系统为:Ubuntu 18.04 LTS,上面建了git裸仓库,用于开发吧代码push到这里.同时WEB测试环境通过docker也部署在这台.通过git钩子post-receive,当有新代 ...

  9. B1014. 福尔摩斯的约会

    14/20 #include<bits/stdc++.h> using namespace std; map<char,string> day; int main(){ day ...

  10. Hexo初体验

    title: Hexo初体验 date: 2018-05-10 tags: Hexo categories: Hexo --- Hexo本地安装 Node.js安装 Hexo npm安装如下 npm ...