android adb 命令详解

少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述android adb 命令详解相关的知识,希望能为你提供帮助。
ADB (android Debug Bridge)   是android SDK中的工具,需要先配置环境变量才能使用。起调试桥的作用,可以管理安卓设备。(也叫debug工具)
---------查看设备连接状态 -----------
adb get-serialno  获取设备的ID和序列号< serialNumber>
adb devices   查询当前计算机上连接那些设备(包括模拟器和手机)
adb get-state  查看模拟器/设施的当前状态.   
----------发送命令到设备 ----------- 
adb [-d|-e|-s < serialNumber> ] < command>
-d 发送命令给usb连接的设备
-e 发送命令到模拟器设备 
-s < serialNumber> 发送命令到指定设备   
如启动手机设备shell: adb -d shell    
adb forward < local> < remote> 发布端口,可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:adb forward tcp:5555 tcp:8000 
adb bugreport   输出bug日志
adb reboot 重启手机 
adb remount 将system分区重新挂载为可读写分区
adb kill-server 终止adb服务进程
adb start-server 重启adb服务进程
adb root 已root权限重启adb服务 
adb wait-for-device 在模拟器/设备连接之前把命令转载在adb的命令器中
adb jdwp 查看指定的设施的可用的JDWP信息. 
adb shell am 命令可以启动应用程序 
adb shell input text < string>   向设备输入文本(光标所在的文本框)
adb shell input keyevent < event_code> 向设备发送按键事件
如:在编辑短信时,往文本框输入文本:adb shell input text "hello"  
向手机发送键值回Home:adb shell input keyevent 3
参考view/KeyEvent.java中的  KEYCODE_*         
public static final int KEYCODE_SOFT_LEFT       = 1;        
public static final int KEYCODE_SOFT_RIGHT   = 2;        
public static final int KEYCODE_HOME             = 3;        
public static final int KEYCODE_BACK               = 4;      
public static final int KEYCODE_CALL               = 5;        
public static final int KEYCODE_ENDCALL         = 6;      
----------安装卸载 -----------   
adb install [-l] [-r] < package>   安装应用   (-l 表示锁定该程序; -r 重新安装该应用)
adb uninstall [-k] < package>   卸载应用     (-k 表示不删除程序运行产生的数据和缓存目录)
  如:  adb install d:\hello.apk (设备中的系统安装器一般是 “adb install -r apk路径”)
adb uninstall com.google.android.youtube
----------文件操作 -----------  
adb push < local> < remote>   把本地文件放到(复制)目标设备中
adb pull < remote> < local>     从设备中拖出(复制)文件到指定的本地目录
----------基本的linux shell命令---------- 
adb shell [command]   (exit 退出adb shell)
【android adb 命令详解】ls [-a] [-l] 列出目录下的文件和文件夹(-a 表示列出所有文件,包括隐藏文件; -l 表示已列表形式,且显示所有权限)
cd   切换目录 (cd .. 表示返回上层目录,理论可以执行多次..)
pwd 查看当前所在位置
mkdir 新建文件夹
touch 新建文件(可多次新建,如 touch a.txt b.txt .....)
cp 复制文件
mv 剪切/重命名文件 (重命名 mv old-name.txt new-name.txt)
rm 删除目录和文件 (rmdir 只能删除空文件夹)
find 查找文件或文件夹(find -name file-name ;find *a* 模糊查找)
cat  查看文件内容 
ps 可以看那个进程再跑 
ps -x [PID] 查看单个进程的状态
top 可以看那个进程的占用率最高
su 切换到root用户
kill [pid] 杀死一个进程 
chmod 777 < file> 修改该文件为可执行权限 (最高权限 )
----------查看系统状态和信息 -----------
adb shell procrank 查询各进程内存使用情况
adb shell service list 查看services信息 
adb shell cat /proc/meminfo 查看当前的内存情况
adb shell cat /proc/cpuinfo 查看CPU信息(硬件)
adb shell cat /proc/iomem  查看IO内存分区   
adb shell getprop 列出系统所有属性 
adb shell getprop | findstr "gsm" 列出包含gsm的属性
adb shell setprop < key> < value>   修改系统属性       
adb shell sqlite3 可以执行sql语句查看数据库信息。
adb shell dmesg    查询内核缓冲区信息 
adb shell dumpstate 各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等
adb shell dumpcrash   查看crash
adb shell dumpsys  查看系统
adb shell service  查询所有service的状态
-----------Logcat命令 ---------- 
adb logcat [< option> ] [ < filter-spec> ]   查看设备log.
adb logcat -c 清除日志信息
adb logcat -d
 
1.查看可用日志缓冲区: 
adb logcat -b radio — 查看无线/电话的相关的缓冲区信息. 
adb logcat -b events — 查看和事件相关的的缓冲区. 
adb logcat -b main — 查看主要的日志缓冲区
2.过滤日志输出: 
过滤器语句按照下面的格式tag[:priority] , tag 表示是component(*是指所有的), priority 是表示tag的报告的等级 (优先级)
adb logcat *:W  显示优先级为warning或更高的日志信息
adb logcat ActivityManager:I MyApp:D *:S  
优先级从低到高顺序排列:
V — Verbose (最低优先级,明细)
D — Debug (调试)
I — Info (信息)
W — Warning (警告)
E — Error (错误)
F — Fatal (致命的)
S — Silent (最高优先级,无记载)
3.控制日志输出格式: 
可以通过 -v 选项得到格式化输出日志的相关信息.  
[adb] logcat [-v < format> ] 
brief —显示优先级/标签和原始进程的PID(默认格式)
process — 只显示进程PID
tag —  显示优先级/标签
thread —  显示进程:线程和优先级/标签
raw —  显示原始日志消息,没有其他元数据字段
time — 显示日期,调用时间,优先级PID
long —显示所有的元数据字段并且用空行分隔消息内容
例如:adb logcat -v thread   
-----------Other----------  
waiting.......
 

    推荐阅读