ADB

其实大部分的PC开发机与Android设备的操作都是通过adb(android debug bridge)技术完成的,这是一个C/S架构的命令行工具,主要由三个部分组成

  • 运行在PC开发机上的命令行客户端:可以通过它安装、卸载并调试应用
  • 运行在PC开发机上的服务器:它管理客户端到Android设备上adb后台进程的链接
  • 运行在Android设备上的在后台执行的adb 后台进程

1.adb命令参考

子命令 说明
devices 列出所有运行的Android设备
logcat 答应Android系统的日志
bugreport 打印dumpsys、dumpstate和logcat的输出,用在错误报告上作为附件辅助开发人员事后分析
install 把一个.apk 文件安装到指定的设备
uninstall 从指定的设备上卸载一个应用
pull 将Android设备上的文件复制到本地开发机
push 将本地开发机上的文件复制到Android设备
forward 将本地套接字连接转发到指定设备的端口,可以是套接字端口,也可以是其他端口
ppp 通过USB执行ppp
get-serialno 打印设备的序列号
get-state 打印设备的状态
wait-for-device 在设备可用之后再执行命令
start-server 启动adb服务器进程
kill-server 结束adb服务器进程
shell 打开指定Android设备的shell,以执行shell命令

2.adb常用命令

1.列出所有连接到开发机的设备

adb devices

List of devices attached
7f324a28 device

其中7f324a28是序列号,是adb生成的用来唯一标识一个模拟器实例或Android设备的字符串

device是状态,表示设备已经链接到adb服务器了。

还有其他的状态,如offline,表示设备没有链接到adb服务器,或者因为某种原因没有响应;no device,表示当前没有连接任何设备

2.使用adb安装和卸装应用

安装应用

adb install test.apk

卸装应用

adb uninstall com.test

安装的参数是需要安装的.apk 文件的绝对路径,而卸载时,参数是应用的包名

3.使用adb在设备和PC间传输文件

从PC上传文件到Android

adb push ~/dumpstate.txt /sdcard/

上面表示将pc上dumpstate.txt上传到Android的sdcard目录

从Android下载到PC

adb pull /sdcard/dumpstate.txt ~/Desktop/

将Android中sdcard的dumpstate.txt下载到PC的桌面

4.执行Android shell命令

Android是基于Linux系统开发的,因此其也提供了一个Linuxshell以便于程序员运行常见的Linux命令,这些命令都保存在Android系统中的“/system/bin” 文件夹中,可以通过adb启动远程Android系统的shell,或者是直接执行某个shell命令.

Android shell命令中包括了很多常见的Linux shell命令(如 ls,cat,ps,kill)等,下面介绍几个Android附带的重要命令进行介绍

  • df

adb shell df

显示Android系统中各个分区的空间

Filesystem               Size     Used     Free   Blksize
/dev 1011.4M 164.0K 1011.2M 4096
/mnt/secure 1011.4M 0.0K 1011.4M 4096
/mnt/asec 1011.4M 0.0K 1011.4M 4096
/mnt/obb 1011.4M 0.0K 1011.4M 4096
/system 1009.3M 413.5M 595.8M 4096
/cache 252.1M 4.3M 247.8M 4096
/data 4.9G 186.4M 4.7G 4096
/mnt/shell/emulated 16.0G 29.2M 16.0G 32768
  • dumpstate

输出Android系统当前的状态,如果不附带任何参数,则其将输出打印到屏幕。因为输出的内容非常多,一般来说都是使用其 “-o”选项输出到Android设备的一个文件中,有时为了节省空间,也可以使用 “-z”选项告诉dumpstate 已gzip格式将内容压缩到输出文件中。

adb shell dumpstate -o /sdcard/dumpstate -z
adb pull /sdcard/dumpstate.txt.gz ~/Desktop
gunzip ~/Desktop/dumpstate.txt.gz
  • dumpsys

Android系统默认运行了很多系统服务,如监控电池信息的battery 服务等。

  1. dumpsys meminfo ,打印内存使用率情况
  2. dumpsys activity , 打印所有Activity的信息
  3. dumpsys wifi , 打印无线网络连接信息
  4. dumpsys window ,打印关于键盘,所有窗口以及窗口之间的Z轴层叠顺序的信息

可以通过一个小技巧列出所有dumpsys子命令

adb shell dumpsys | grep DUMP

android调试之adb的更多相关文章

  1. 转:Android 调试桥(adb)是多种用途的工具

    转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ...

  2. Android 调试桥(adb)是多种用途的工具

    Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ...

  3. Android调试桥 adb安装详解

    Android调试桥(adb) 一.简介 Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Uni ...

  4. Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看

    Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...

  5. Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”

    资源来源:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会 ...

  6. (转)当android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 .

    转:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会儿出现 ...

  7. Android调试时, "adb devices"命令提示 adb server is out of date. killing...

    C:\Users\xxxx>adb devicesadb server is out of date. killing... 查看端口, 发现被占用 C:\Users\xxxx>adb n ...

  8. Android 调试桥介绍 (adb)

    Android 调试桥 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试 ...

  9. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

随机推荐

  1. Swift的两个小窍门

    一:查看Swift版本号(How do I see which version of Swift I’m using in Xcode?) 终端下输入:xcrun swift -version(in ...

  2. 开启kbmmw 5.09 中的XML-RPC和 JSON-RPC 服务

    kbmmw 5.09 里面增加了XML-RPC和 JSON-RPC 服务支持,但是默认没有开启. 需要在安装前,修改kbmMWConfig.inc文件. 加入以下定义 {$DEFINE KBMMW_J ...

  3. 同一世界服务器架构--Erlang游戏服务器

        Erlang最大的优点是方便,很多基础功能都已经集成到Erlang语言中.之前用C++写服务器的时候,管理TCP连接很繁琐,需要写一大堆代码来实现.底层的框架需要写很多代码实现,这样既浪费时间 ...

  4. for(String s:list)的运行

    源码 List<String> list = new ArrayList<>(); for (String s:list){ } class文件 List<String& ...

  5. PAT 天梯赛 L1-049. 天梯赛座位分配 【循环】

    题目链接 https://www.patest.cn/contests/gplt/L1-049 思路 用一个二维数组来保存一个学校每个队员的座位号 然后需要判断一下 目前的座位号 与该学校当前状态下最 ...

  6. Code Review 规范

    CodeReview规范 CodeReivew 标准 通用原则 提交 PR 的代码必须保证自测通过 只 review 代码规范.业务逻辑,不 review 架构设计(那是写代码前应该做的事情) 干掉重 ...

  7. POJ2115 C Looooops ——模线性方程(扩展gcd)

    题目链接:http://poj.org/problem?id=2115 C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submi ...

  8. Redis使用经验之谈

    应用场景 保存用户喜欢的商品信息. 类型: Hash, key: usr:${type_id}:${version_id}:${user_id}:${warehouse_id}, field: ${s ...

  9. BluetoothLELibrary 支持1对1连接

    github地址:https://github.com/qindachang/BluetoothLELibrary 该库只支持1对1连接,如果你想1对多设备连接,请移步至 BluetoothLE-Mu ...

  10. codeforces B. George and Round 解题报告

    题目链接:http://codeforces.com/contest/387/problem/B 题目意思:给出1-n个问题,以及要满足是good rounde条件下这n个问题分别需要达到的compl ...