ADB 高级应用

一、利用无线来查看adb shell

> adb tcpip 5555

连接:

> adb connect IP:5555

见后文《调试注意事项》

二、模拟按键

> adb shell input keyevent "value"

部分常见按键对应值:

Key  | Constant Value

Back 4

Power 26

Menu 82

Home 3

Search 84

方向键:

上 19

下 20

左 21

右 22

确认(类似单击):23

三、adb shell下查看系统盘符

> adb shell df

四、adb shell下挂载系统

> adb shell

> busybox mount -o remount,rw /system

五、adb shell 下移除USB设备

> adb shell

> vdc unshare /mnt/sdcard ums

六、adb shell 下查看内核信息

> cat /proc/kmsg &

七、查看build配置的值(以heap为例)

> adb shell getprop | grep heap

八、通过sendevent 模拟按键以及鼠标

直接用input实现:

> adb shell input keyevent 3

> adb shell input tap 250 250

> adb shell input swipe 250 250 300 300

九、查看屏幕显示的fps

开启系统属性:debug.sf.fps=1
然后直接logcat -s SurfaceFlinger -v time
(看SurfaceFlinger里面打印出来时多少)

十、查看当前运行程序栈

> dumpsys window windows | busybox grep "Window #"

十一、查看当前设备DDR运行频率

> cat /proc/clocks | busybox grep "ddr"

十二:ADB logcat过滤

adb logcat -s TAG_NAME
adb logcat -s TAG_NAME_1 TAG_NAME_2

adb logcat “*:PRIORITY”

adb logcat -s TAG_NAME:PRIORITY
adb logcat -s TAG_NAME_1:PRIORITY_1 TAG_NAME_2:PRIORITY

优先级(PRIORITY)分为以下几种:

V – Verbose
D – Debug
I – Info
W – Warning
E – Error
F – Fatal
S – Silent

范例:

> adb logcat *:E 查看异常信息

> adb logcat -s "TAG"    过滤TAG

十三:查看设备是否拥有su权限(4.2及之前版本)

> adb shell
> ps
# 会列出系统进程
# 选一个u开头的 表示普通程序
> su u0_a8
#切换到u0_a8下 #号变 >
> su
#如果可以执行,>号为#号,则表示有su权限,如果提示权限问题,就没有su权限

十四:查看应用引用

adb 查看Android应用所有引用

> adb shell

> ps  (查看PID号)

> cd /proc/PID号/fd

> busybox ls -l

也将文件拷贝出来

> cat xxx > /sdcard/xxx

十五:获取运行内存/CPU信息

> adb shell

> cat /proc/meminfo

> cat /proc/cpuinfo

十六:抓取Logcat信息及kmsg信息

# cat proc/kmsg >/data/kmsg.txt & 
 # logcat -v time >/data/logcat.txt &

十七:查看Android(手机\平板\开发板等)设备信息

> adb shell dumpsys package > package.xml

(此命令可显示手机(平板)可供应用查询到的library和feature)

十八、输出所有已经安装的应用

> adb shell pm list packages -f

十九、查看预安apk

> adb shell pm list packages -3

二十:清除logcat缓冲区

(用这个命令来清除一些重复出现的过时的日志)
> adb logcat -c

二十一、目前认为最牛的adb命令:截取屏幕图片

截图直接保存到电脑

$ adb shell screencap -p | sed ‘s/\r$//‘ > screen.png

执行adb shell 将\n转换\r\n, 因此需要用sed删除多余的\r

如果直接当命令用还可以用 alias 包裝装起來

$ alias and-screencap="adb shell screencap -p | sed ‘s/\r$//‘"
$ and-screencap > screen.png

以后就可以方便的用and-screencap > 直接将截图保存到电脑上了

其他入门级但也比较常见的adb命令

1、查看所有已经连接上的设备

adb devices

如果有多个设备连接到电脑,可以通过 adb -s DEVICE_ID 来指定用哪一个

2、挂载system分区(当然需要设备支持)

adb remount

3、安装与卸载应用

adb install <apk文件路径>
adb install -r <apk文件路径>     通过install命令来安装apk文件,-r参数可以重新安装某个应用并保留应用数据

#举例
adb install -r ~/chrome.apk

卸载应用:
adb uninstall <软件名>

adb uninstall -k <软件名>         如果加 -k 参数,为卸载软件但是保留配置和缓存文件
#举例
adb uninstall com.android.chrome

4、启动一个Activity

adb shell am start 包名/.类名
adb shell am start 包名/类的全名

5、登录设备shell

adb shell  --这个命令将登录设备的shell.
adb shell <command命令>      后面加<command命令>将是直接运行设备命令, 相当于执行远程命令

6. 从电脑上发送文件到设备

--用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

adb remount     ## remount ‘/system‘分区 as read-write

adb push <本地路径> <远程路径>

7. 从设备上下载文件到电脑

--用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

adb pull <远程路径> <本地路径>

8. 显示帮助信息(包括各种命令用法与含义)

adb help

引用:

http://www.growingwiththeweb.com/2014/01/handy-adb-commands-for-android.html

http://blog.csdn.net/wirelessqa/article/details/29187339

http://blog.csdn.net/centralperk/article/details/7644725

其他引用:

1.模拟功能按键

命令格式:adb shell sendevent [device] [type] [code] [value]

如: adb shell sendevent /dev/input/event0 1 229 1 代表按下按下menu键

adb shell sendevent /dev/input/event0 1 229 0 代表按下松开menu键

说明:上述的命令需组合使用

另外所知道的命令如下:

Key Name CODE

MENU 229

HOME 102

BACK (back button) 158

CALL (call button) 231

END (end call button) 107

2. 发送鼠标事件(Touch):

命令格式:adb shell sendevent [device] [type] [code] [value]

情况1:在某坐标点上touch

如在屏幕的x坐标为40,y坐标为210的点上touch一下,命令如下

adb shell sendevent /dev/input/event0 3 0 40

adb shell sendevent /dev/input/event0 3 1 210

adb shell sendevent /dev/input/event0 1 330 1 //touch

adb shell sendevent /dev/input/event0 0 0 0 //it must have

adb shell sendevent /dev/input/event0 1 330 0 //untouch

adb shell sendevent /dev/input/event0 0 0 0 //it must have

注:以上六组命令必须配合使用,缺一不可

情况2:模拟滑动轨迹(可下载并采用aPaint软件进行试验)

如下例是在aPaint软件上画出一条开始于(100,200),止于(108,200)的水平直线

adb shell sendevent /dev/input/event0 3 0 100 //start from point (100,200)

adb shell sendevent /dev/input/event0 3 1 200

adb shell sendevent /dev/input/event0 1 330 1 //touch

adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 0 101 //step to point (101,200)

adb shell sendevent /dev/input/event0 0 0 0

…………………… //must list each step, here just skip

adb shell sendevent /dev/input/event0 3 0 108 //end point(108,200)

adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 1 330 0 //untouch

adb shell sendevent /dev/input/event0 0 0 0



调试注意事项

当调试那些使用了USB外设和主机特性的应用时,你很有可能把你的USB硬件连接到你的Android设备上,这将阻止你通过USB建立adb到Android设备的连接。你通过网络仍可以访问adb。通过网络连接adb:

  1. 通过USB将Android设备连接到电脑。
  2. 从SDK 的 platform-tools 目录,在命令行输入adb tcpip 5555
  3. 输入:adb connect <设备的IP地址>:5555 ,你现在将被连接到Android设备并能像adb logcat一样发出通用的adb命令。
  4. 要设置你的设备监听USB,输入adb usb 。
时间: 2024-10-03 06:06:04

ADB 高级应用的相关文章

ADB高级应用

ADB高级应用 一.利用无线来查看adb shell > adb tcpip 5555 连接: > adb connect IP:5555 见后文<调试注意事项> 二.模拟按键 > adb shell input keyevent "value" 部分常见按键对应值: Key  | Constant Value Back 4 Power 26 Menu 82 Home 3 Search 84 方向键: 上 19 下 20 左 21 右 22 确认(类似单击

adb命令详解

本文的内容来自于网络的整理,引用的URL: http://blog.csdn.net/chief1985/article/details/5553022 Adb的工作原理 android的adb采用的是server+client的方式,所以adb是支持多个设备同时连接的.通过adb devices命令可以看到所有连接的android设备,而多个设备都连上adb server,如果你想针对某一个设备执行adb命令,可以在adb命令后面加上-s <serial number>,例如adb –s 1

android ADB学习记录

自从接触了android,就开始使用ADB. Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分: 1.客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端. 2.服务端部分,是运行在开发用电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信. 3.守护进程部分,运行于模拟器或手机的后

使用adb的时候出现 adb不是内部或者外部命令如何解决

我们经常看见在cmd命令行输入"adb devices" 时就会出现"adb不是内部命令或者外部命令....",出现这个问题主要是windows系统环境变量没设置好,我们可以自己手动来设置一下. 打开计算机--属性--高级系统设置--环境变量--Path,见下图设置,在已有的变量后加上";C:\adb"[引号内红色部分. 设置好了之后电脑重新注销一下就能生效了.

赵雅智_android使用adb命令详解附图

adb是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备 我们除了用可视化窗口中操作也可以采用cmd命令行进行操作. 在开始菜单的搜索栏中输入cmd打开命令行 在本地找到adb.exe路径(如图1.1),把adb.exe拖到cmd命令行敲击回车显示所有可操作帮助示例(如图1.2). 图1.1 adb.exe路径 图1.2 adb命令示例 如果不输入adb的正确路径就不能进行正常显示,如图1.3: 图1.3adb未能正确打开 为了保证adb在任何路径下都能使用,

adb安装与简单使用,和遇到一些问题的解决方法

1.通过链接http://www.laixiaxia.com/tools/3272.html下载adb的安装包adb.rar 2.解压安装包,配置adb的环境变量 3.运行adb,可以查看adb包含哪些基本的命令 4.手机通过usb数据线连接手机,手机设置--其他高级设置--开发者选项--勾选usb调试--保存 5.adb shell报错了 原因一般是端口绑定失败 查询哪些进程占用该端口 或打开任务管理器,根据pid终止占用5037端口的进程(发现win7进程没有显示pid,按照下面方面进行设置

怎么在命令模式下使用adb / 进入adb shell(脚本)

1.打开winows菜单,输入cmd命令,点击确定,进入命令模式下. 2.输入命令 D:(这里输入的D表示你的sdk存放的盘下) 然后回车输入cd 3.然后选择你sdk路径,复制路径. 4.鼠标点击cmd,选择编辑,选择粘贴 将复制的路径粘贴到 命令行 回车. 5.然后输入命令adb start-service 打开adb. 出现如图所示,表示adb服务开启成功,就可以使用adb命令了. 6.使用adb  shell 命令.--- 进入adb shell(脚本) 原文:http://jingya

【转】如何配置android的adb环境变量

转载地址:http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html 对于android的开发人员来说,首先要做的就是环境变量的配置.学习过java的人都知道,java是需要配置环境变量的,那么android 开发是否也需要我们配置环境变量呢?当然,安卓的环境变量需要我们配置adb的使用,将开发平台的两个工具包配置到环境变量里. 工具/原料 电脑 android ADK 方法/步骤 第一步,打开环境变量配置窗口.右击计算机,属性-

【ADB命令行】adb shell screenrecord命令行使用说明

一.查看帮助命令,参数 --help D:\>adb shell screenrecord --help Usage: screenrecord [options] <filename> Android screenrecord v1.2.  Records the device's display to a .mp4 file. Options: --size WIDTHxHEIGHT     Set the video size, e.g. "1280x720".