Firefly开源社区

打印 上一主题 下一主题

ADB高级应用

279

积分

10

威望

9

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
279
QQ

ADB高级应用

发表于 2014-10-30 10:43:35      浏览:10319 | 回复:3        打印      只看该作者   [复制链接] 楼主
本帖最后由 ZZP 于 2014-10-30 10:52 编辑


一、利用无线来查看adb shell
> adb tcpip 5555

连接:
> adb connect IP:5555

见后文《调试注意事项

二、模拟按键
> adb shell input keyevent "value"

部分常见按键对应值(其它见KeyEvent):
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过滤
  1. adb logcat -s TAG_NAME
  2. adb logcat -s TAG_NAME_1 TAG_NAME_2
  3. adb logcat “*:PRIORITY”
  4. adb logcat -s TAG_NAME:PRIORITY
  5. 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信息
root@android:/ # cat proc/kmsg >/data/kmsg.txt &
root@android:/ # 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

PS:
以上部分命令以RK平台为准

引用:
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评分威望 +8 灯泡 +8 贡献 +9 收起 理由
Xinxin_2011 + 8 + 8 + 9 很给力!

查看全部评分

回复

使用道具 举报

122

积分

1

威望

0

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
122
发表于 2014-10-30 13:23:19        只看该作者  沙发
这个比较全,学习一下了。
回复

使用道具 举报

6

积分

0

威望

0

贡献

游客

积分
6
发表于 2014-10-31 19:09:10        只看该作者  板凳
学习了 又对adb命令有了新的认识!
回复

使用道具 举报

279

积分

10

威望

9

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
279
QQ
发表于 2017-3-10 15:49:46        只看该作者  地板
录制屏幕操作
Android4.4版本以上支持录制屏幕
adb shell screenrecord /sdcard/demo.mp4

-----------------------------

ADB logcat 输出时间信息
> adb logcat -v time

同样也可以组合使用:
> adb logcat -v time -s PowerManagerService

--------------------------------

ADB无线调试,在设备端无法连接电脑限制下,在Android 系统中安装“终端模拟器”,在终端下输入以下指令:
在手机中打开这个终端(terminal)应用,输入如下命令:
> setprop service.adb.tcp.port 5555
> stop adbd
> start adbd

PC 端与设备端连接同一局域网,PC端在终端输入:
> adb connect wifi.ip.address:5555 (例如:adb connect 192.168.1.115:5555)

注:设备端IP地址可以进入设置->WLAN-》右上角菜单->高级WLAN
可以查看到设备端IP地址
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表