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

引用:

其它引用:

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 。


ADB高级应用的更多相关文章

  1. ADB 高级应用

    一.利用无线来查看adb shell > adb tcpip 5555   连接: > adb connect IP:5555   见后文<调试注意事项>   二.模拟按键   ...

  2. Android 工具-adb

    Android 工具-adb 版权声明:本文为博主原创文章,未经博主允许不得转载. Android 开发中, adb 是开发者经常使用的工具,是 Android 开发者必须掌握的. Android D ...

  3. Monkey的ADB命令简单使用示例和解析

    进行简单的压力测试: 1. adb shell monkey –p 包名 –v-v 3000 >E:\bugLog.txt -v -v 标识打印的日志的详细级别为2级,更高级有3级,也可以用1级 ...

  4. ADB简单基础命令

    1.查看设备 adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 2.安装软件 adb install adb install :这个命令将 ...

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

    转载地址:http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html 对于android的开发人员来说,首先要做的就是环境变量的配置. ...

  6. Android的ADB配置环境和adb指令使用

    adb的全称为Android Debug Bridge,就是起到调试桥的作用,作为一名开发者倒是常用到这个工具.借助adb工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手机操作,如安装软件. ...

  7. Android开发常见问题系列之一:eclipse中adb.exe启动失败或者无法启动

    这种情况下大多数是因为存在kadb.exe在执行,或者adb.exe端口被占用. 1,检查是否存在kadb.exe程序正在执行 打开任务管理器,打开详细信息,按照字母顺序找到kadb.exe,结束进程 ...

  8. ADB指令

    对于ADB指令的应用,首先应该配置环境,将文件所在路径复制到高级系统设置里面的环境变量path,然后就可以在命令符上进行ADB的指示 例如adb kill-server是关掉活动 adb start- ...

  9. Android 用adb pull或push 拷贝手机文件到到电脑上,拷贝手机数据库到电脑上,拷贝电脑数据库到手机上

    先说一下adb命令配置,如果遇到adb不是内部或外部命令,也不是可运行的程序或批量文件.配置下环境变量 1.adb不是内部或外部命令,也不是可运行的程序或批量文件. 解决办法:在我的电脑-属性-高级计 ...

随机推荐

  1. CSS 奇技淫巧

    用button实现垂直水平居中对齐 http://www.baidufe.com/item/113ce1894da2b5203669.html “今天同事在群里分享了一个特牛叉的前端小技巧:用butt ...

  2. windows下远程链接虚拟机Linux下MySQL数据库问题处理

    参考解决:https://www.cnblogs.com/blogforly/p/5997553.html 今天远程连接虚拟机中的MySQL数据库,一直连不上,在网上搜索了一下,发现原因是MySQL对 ...

  3. PostgreSQL Replication之第九章 与pgpool一起工作(1)

    在前面的章节中,我们已经能够深入地理解了pgbouncer,同时也学会了如何使用它来尽可能地优化复制设置.在本章我们将了解一个经常被称作与pgbouncer相对应的工具.尽管pgpool的思想与pgb ...

  4. 《剑指offer》树的子结构

    一.题目描述 输入两颗二叉树A,B,判断B是不是A的子结构. 二.输入描述 输入两棵树A,B. 三.输出描述 判断B是不是A的子结构,是返回true,否则返回false. 四.牛客网提供的框架 /* ...

  5. c#中debug和release版本的区别

    1 debug版本称为调试版本,包含各种调试信息,以为开发人员提供强大的应用程序调试能力,其没有做任何优化,速度慢. 2 release版本称为发布版本,不保存调试信息,但是做了各种的优化,体积小,运 ...

  6. HTTP状态码:300\400\500 错误代码

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解: 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 ...

  7. NodeJS学习笔记 (15)二进制数据-buffer(ok)

    模块概览 Buffer是node的核心模块,开发者可以利用它来处理二进制数据,比如文件流的读写.网络请求数据的处理等. Buffer的API非常多,本文仅挑选 比较常用/容易理解 的API进行讲解,包 ...

  8. 基于vue的无缝滚动组件

    vue-seamless-scroll A simple, Seamless scrolling for Vue.js 在awesome上一直没有发现vue的无缝滚动组件,在工作之余写了个组件,分享出 ...

  9. Win10 + YOLOv3 环境配置,编译,实现目标检测----How to compile YOLOv3 on Windows

    其他比较好的参考链接: 环境配置: 环境配置的最终图片列表:https://blog.csdn.net/shanglianlm/article/details/80322718 视频讲解YOLOv1: ...

  10. Git 服务器更换了IP的解决方法

    1.找到项目根目录中的.git文件夹 2..git文件夹里有一个config文件 3.用记事本打开后,修改为服务器的新ip就行了.