adb常用命令

        前言:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。

adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).  它的主要功能有:

* 运行设备的shell(命令行)

* 管理模拟器或设备的端口映射

* 计算机和设备之间上传/下载文件

* 将本地apk软件安装至模拟器或android设备

ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备

Device offiline 处理方法

在调试Android设备时,时常会遇到Device offiline情况,尽管我们的设备已经连接到计算机上,遇到此类情况,可尝试如下方法。

一、adb device offline

1、打开设置 > 开发者选项 > 开启手机USB调试,连接到电脑,新版本Android此时会进行指纹弹出认证(手机端),此时如果不点确认的话,即使在电脑上使用adb devices指令,依然看到设备处于offline状态,此时只要在手机上点击同意调试即可。

2、重启adb kill-server、adb devices。端口USB设备并再次连接到计算机,或者重启USB设备一次。

3、如果此时还是找不到设备状态在位(offline),可怀疑是adb版本问题,在部分早期adb版本会有此问题,此时升级adb工具到新版本上(发文截至,最新版本adb 1.03)。

如果是使用Ubuntu等Linux系统可,还可尝试使用Eclipse SDK管理工具更新驱动包。

adb devices找不到

之前还遇到过adb devices找不到情况,这时启动adb shell当然也是无法进入, 由于是进行裸板调试 所以就无法像用真机那样把手机调成USB调试模式 经过反复的查阅资料和探索 找到了解决办法 通过adb help可以查到相关的命令 我们通过执行命令 adb wait-for-device 这条命令是等待设备上线 执行后把usb拔出来再插上后就可以看到设备已经连接上 可以顺利的进入adb的shell 问题成功解决

adb 命令

adb help 查看adb帮助

adb get-serialna  获取序列号 

adb devices   获取设备列表及状态

adb bugreport 查看bug报告

adb remount   将system分区重新挂载为可读写分区

adb devices  -l  查看连接计算机设备详细列表

adb get-state 获取设备状态:device offline unknown

adb reboot 重启安卓设备

adb reboot bootloader 重启到刷机模式

adb reboot recovery 重启到恢复模式 

adb kil-server 终止adb服务进程

adb start-server 重启adb服务进程

adb install xxx.apk  安装apk

adb install -r 保留数据与缓存文件,覆盖安装apk

adb install -s 安装apk到sd卡

sdb uninstall xxx包  卸载apk

adb uninstall -k xxx包  卸载app但保留数据和缓存文件

adb push local remote 推送本地文件至 Android 设备

adb pull remote local 将Android设备上的文件或文件夹复制到本地

adb forward 将 宿主机上的某个端口重定向到设备的某个端口

adb forward tcp:1314 tcp :8888

adb connect 远程连接设备  (手机pc要处于同一网络环境下,手机root,手机安装adbwireless,启动然后再pc运行adb connect ip号 即可实现无线连接)

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

adb locat 命令

adb logcat 查看log

adb logcat -d    输出当前日志,自动结束

adb logcat > log1.txt   输出重定向续输出

adb logcat -d > log1.txt  输出结束就退出

adb logcat -c  清空日志缓存信息

adb bugreport > d:\bugreport.log 日志输出

adb logcat —t 5 输出最近的5行日志

adb logcat -b 产看日志缓冲区信息

adb logcat -B 以二进制形式输出日志

logcat -f /sdcard/log.txt   将日志保存到手机端的文件中

可以指定logcat的日志输出格式

  -v 选项 :

adb logcat  -v time

add logcat  -v thread time

add logcat  -v process

adb logcat -v tag

add local -v thread

raw

time

long

logcat 日志的过滤

使用管道过滤固定字符串

adb logcat | grep 过滤某个文件

adb logcat | grep Wifi

adb logcat | grep -i Wifi  过滤字符串忽略大小写

根据规则过滤

adb -e logcat Android:W *.s

adb -e logcat mes:I *.s > 1og3.txt    I  D  S W E

adb logcat 10 *:E  显示error以上级别的日志

adb logcat  WifiHW:D *:S (过滤指定标签等级日志) 含义: 输出10条日志,日志的标签为WifiHW,并且优先级为Debug以上

adb logcat WifiHW:D dalvikvm:I *:S 命令,(同时设置多个过滤器) 输出 WifiHW 标签 的 Debug 以上级别 和 dalvikvm 标签的 Info 以上级别的日志;

  •   日志的标签是系统部件原始信息的一个简要的标志。(比如:“View”就是查看系统的标签)
  •   优先级有下列几种,是按照从低到高顺利排列的:
    •  V — Verbose (lowest priority)
    •  D — Debug
    •  I — Info
    •  W — Warning
    •  E — Error
    •  F — Fatal
    •  S — Silent (highest priority, on which nothing is ever printed

例子1:过滤出标签ActivityManager,级别高于I的日志,以及标签为dalvikvm,级别高于D的日志,其它屏蔽 *.s

adb -e logcat ActivityManager:I dalvikvm:D *.s

例子2:过滤出级别高于W的所有日志

adb -e logcat *:w

例子3:过滤出级别高于I的,标签为mes的日志,其它屏蔽 *.s

如何过滤adb logcat输出 

本文介绍如何在 shell 命令行中过滤 adb logcat 输出的几个小技巧。 

开发当中经常看到别人的 log 如洪水般瞬间刷满了屏幕,对自己有用的信息都被淹没了,影响心情也影响效率。下面是几个我所知道的过滤方法。 

1. 只显示需要的输出白名单 

最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp: 

adb logcat | grep MyApp 

adb logcat | grep -i myapp #忽略大小写。 

adb logcat | grep --color=auto -i  myapp #设置匹配字符串颜色。更多设置请查看 grep 帮助。 

进阶一点可以使用 grep 的正则表达式匹配。例如上一个例子会匹配一行中任意位置的 MyApp,可以设置为仅匹配 tag。默认的 log 输出如下,如果修改过输出格式相应的表达式也要修改。

命令停止方法

1、获取logcat_pid    adb shell ps|grep logical

2、 停止方法  adb shell kill -9  <logcat_pid>

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

adb shell 命令

adb 命令是 adb 这个程序自带的一些命令

ddb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下(am ,pm. shell)

adb shell cat/sys/class/net/wlan0/address 获取器Mac地址

adb shell cat/proc/cpuinfo  获取CPU序列号

adb shell top  查看设备cpu和内存占用情况

adb shell top -m6 查看占用内存前6的app

adb shell top -n1 刷新一次内存信息,然后返回

adb shell procrank 查询各进程内存使用情况

adb shell cat /proc/meminfo 查看当前手机内存占用

adb shell cat /proc/iomem 查看IO内存分区

adb shell kill pid 杀死一个进程

adb shell ps  查看进程列表

adb shell ps -ef 查看详细进程信息

adb shell ps -x pid 查看指定的进程状态

adb shell service list 查看后台services信息

adb shell dumpsys cpuinfo 查看CPU信息 cl

adb shell dumpsys meminfo 查看所有内存信息 

adb shell dumpsys meminfo 应用包名 查看应用的内存信息

adb shell  dumpsys pkg_name 查看某个包的内存信息 

adb shell dumpsys battery 查看电量信息 

 adb shell pm path 应用包名 查看应用的安装路径

 adb shell pm list packages 获取手机上已经安装的所有的程序  (-s 列出系统应用  -3 列出第三方应用 -f 列出应用报名及对应的 apk名字 及存放位置-i 列出应用包及其安装来源)

adb shell ls 查看目录下的文件

adb shell ls -l   查看目录下的文件及详细属性

adb shell ls -a  查看目录下的隐藏文件

adb shell ls -F  展开目录层次层次结构

adb shell ls -R 展示文件扩展类型

adb shell ls -t 将文件进行先后顺序排序再展示

adb shell cd 进入文件目录

adb shell rename path/oldfilename path/newfilename 重命名文件

adb shell rm /system/avi.apk 删除 avi.qpk

adb shell rm -r folder 删除文件及其下面所有文件

adb shell mv path/file newpath/file 移动文件

adb shell chmod 777 /system/fonts/DroidSansFallback.ttf 设置文件权限

adb shell mkdir path/foldelname 新建文件夹 

adb shell cat file 查看文件内容

adb shell cat /data/misc/eifi/*.conf 查看WiFi密码

adb shell cat /system/build.prop 获取设备名称

adb shell screencap -p /sdcard/Download/screen.png 截图

adb shell screenrecord sdcard/record.mp4 执行命令后录制手机屏幕活动,按ctrl+c结束录制,并保存

adb shell uiautomator dump 获取当起界面的控件信息

pm

adb shell pm path 

adb shell pm instrumentation 列出家含有单元测试用例的应用

adb shell pm dump  后跟包名,列出指定应用的各种信息

adb shell pm install (目标apk安装在pc端用adb install,目标安装在Android设备上,用pm install)

adb shell pm uninstall

adb shell pm clea

adb shell pm set-install-location

adb shell pm get-install-location

am

am start 启动一个Activity

adb shell am start -n com.android.camera/.Camera

启动一个浏览器打开一个网页

adb shell am start -a android.intent.action.VIEW -d http://testhome.com

如:打开团队商品详情兜底页

 adb shell am start -a android.intent.action.VIEW  -d imeituan://www.meituan.com/merchant?id=119794726

启动拨号10086

adb shell am start -a android.intent.action.CALL -d tel:10086

Music 和 Video(音乐和视频)的启动

adb shell am start -n com.android.music/com.android.music.MusicBrowserActivity

adb shell am start -n com.android.music/com.android.music.VideoBrowserActivity

adb shell am start -n com.android.music/com.android.music.MediaPlaybackActivity

Camera(照相机)的启动

adb shell am start -n com.android.camera/com.android.camera.Camera 

Browser(浏览器)的启动

adb shell am start -n com.android.browser/com.android.browser.BrowserActivity

 启动 google map 直接定位到北京

am start -a android.intent.action.VIEW geo:0,0?q=beijing

am instrument 

am monitor 监控crash与ANR

am force-stop 强制结束应用

am startservice 启动一个服务

am broad cast 发送一个广播

input 

该命令可以想Android设备发送按键事件

input.java 源码:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.4_r1/com/android/commands/input/Input.java#Input

adb shell input text yiduanfeihanziwenben 需要将手机端设为英文输入

adb shell input keyevent KEYCODE_HOME

adb shell input keyevent 3
key event.java : http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.4_r1/android/view/KeyEvent.java#KeyEvent

adb shell input tap 500 500 在屏幕500 500 位置发送触摸事件

adb shell input swipe 900 500 100 500从右向左滑动屏幕 

adb shell input swipe 500 500 501 501 2000 在一个很小的范围内,持续长时间的滑动,就表现出长按动作

runtest 与 dump

adb shell ime list -s 列出系统上的输入法

adb shell wm size 获取设备的分辨率

adb shell getprop 得到key : value

adb shell getprop key 得到该key值对应的value 以查看设备参数信息

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

adb获取手机所有参数参 

adb shell getprop 

adb获取iccid 

service call iphonesubinfo 4(需要权限android.permission.READ_PHONE_STATE) 

adb获取imei 

adb -d shell dumpsys iphonesubinfo 

adb获取androidid 

androidid藏在这里[net.hostname]: [android-b33f3ac550112627] 

命令:getprop net.hostname 

adb获取serialno 

命令:getprop ro.boot.serialno或者getprop ro.serialno 

adb获取imei 

service call iphonesubinfo 1 

更多信息参考这个 

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

截屏

1、adb shell /system/bin/screencap -p /sdcard/screenshot.png 

2、adb pull /sdcard/screenshot.png ~/screenshot.png 

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

aapt 命令

aapt d badging xx.apk     aapt命令可查看 package/class

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值