adb shell循环命令_Android adb 命令使用总结

参考文档

How ADB works        http://www.cnblogs.com/ifantastic/p/5186362.html

http://blog.csdn.net/stpeace/article/details/24933813

Adb是Android调试桥的缩写。在看Adb命令前,先弄清楚原理,一图顶千言。

总结下:无论是执行adb命令和还是调用ddmlib库都是作为adb client连接到pc上的adb server服务(默认端口为5037)。adb server服务再连接到各个设备上运行着的adbd服务(默认监听端口为5555),建立连接后adb server负责在adb client 和adbd之间转发信息。

方式一是直接通过TCP连接设备。方式二是通过USB连接设备。

Adb命令

help帮助信息

version版本信息

服务启停

adb start-server  启动adb server

adb kill-server   停止adb server

设备相关

adb devices显示所有设备(格式为 串号和状态)-l   显示qulifiers (如: product:MT7-CL00 model:HUAWEI_MT7_CL00 device:hwmt7)

adb wait-for-device  device online前一直阻塞,可以作为不需要系统完全启动就能执行的命令的前缀使用:如 adb wait-for-device shell getprop

adb get-state

adb get-serialno

adb get-devpath

adb status-window  持续显示设备状态(有变化时更新)

adb connect [:]  通过TCP网络连接设备,即上图中的方式一。(默认端口:5555)

adb disconnect [:]  断开通过网络连接的设备

adb root  以root权限重启设备上的adbd服务

adb usb  重启adbd服务,监听USB

adb tcpip  重启adbd服务,监听指定的TCP端口

adb指定目标设备选项(可以没有)

-a   所有设备

-d  USB连接的设备

-e  模拟器设备

-s 按串号指定设备

-p 不清楚

-H 指定连接的adb server主机

-P 指定连接的adb server端口

adb remout  重新以读写模式挂载/system 和 /vendor 分区

adb reboot  重启设备bootloader  重启进入bootloader模式

recovery  重启并进入recovery模式

文件传送

adb pull   把设备中的文件或目录拷贝到PC端-p  显示进度

adb push  把PC端文件或目录拷贝到设备-p  显示进度

-a  拷贝时间戳和模式

adb sync []     把PC端改动的内容拷贝到设备(默认为/system,/vendor,/data)-l 只列出,不拷贝

adb install  安装应用-r  替换

-s  安装到SD卡

可能的错误信息:

adb uninstall  移除应用-k  保留数据和缓存目录

调用Android shell命令

adb shell  进入shell环境

adb shell [shell-cmd]  执行shell命令

网络相关

adb forward  socket定向绑定:

spec格式为:

tcp:localabstract:localreserved:localfilesystem:dev:jdwp:(remote only)

--no-rebind  如果local端已经绑定则失败

adb forward --remove 移除指定的定向绑定

adb forward --remove-all

adb reverse --list  显示所有从设备发出的反向socket连接

adb reverse 反向socket绑定

spec格式为:

tcp:localabstract:localreserved:localfilesystem:

--norebind  已经绑定则失败

adb reverse --remove 移除反向绑定

adb reverse --remove-all  移除所有反向绑定

adb ppp [parm]  通过USB运行PPP

logcat

adb logcat [option] [FILTER-SPECS]  输出日志数据。可以重定向到文件:adb logcat>d:\logcat.txt

options:

-s沉默默认的过滤器,以下两种方式等效

logcat -s tagName:I

logcat tagName:I *:s

-v指定输出格式,默认为

-fLog to file

-cclear(flush) 所有log,然后退出

-ddump log,退出

-g获取log循环缓冲大小,退出

-b请求其他循环缓冲,main(default), radio, events

-Boutput log in binary

FILTER-SPECS:   tagName:[PRIORITY]...

PRIORITY:

VVerbose

DDebug

IInfo

WWarn

EError

FFatal

SSilent (supress all output)

tagName和priority都可以用*作为通配符,logcat命令中必须使用-s选项或加*:s才能过滤掉无关的log

调试相关

adb bugreport  显示dumpsys, dumppstate, logcat信息

adb jdwp  显示有效地jdwp (java debug wire protocol) 进程

其他

adb emu  模拟器控制台命令

adb backup  备份系统数据到文件-f 指定文件名(省确为backup.ab)

-apk | -noapk  是否备份.apk(默认为-noapk)

-obb | -noobb  是否备份apk扩展文件.obb,默认为noobb

-shared | -noshared  是否备份Shared Storeage,SD 卡内容(默认为noshared)

-all  备份所有安装的应用

-system|-nosystem  -all是否包括系统应用,(默认为system)

[]  要备份的应用列表。如果有-all或-shared,可以没有此项。

adb restore  从备份文件恢复数据。

adb disable-verity

adb keygen  生成密钥对,文件中存放私钥,.pub中存放公钥。已存在文件会被覆盖。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: adb shell循环命令是指在Android设备上使用adb shell命令执行循环操作的命令。常见的循环命令包括for循环、while循环等,可以用于批量处理文件、目录、文本等操作。例如,使用for循环命令可以遍历指定目录下的所有文件并进行操作,使用while循环命令可以在满足条件的情况下一直执行某个命令。需要注意的是,在使用循环命令时要确保语法正确、逻辑清晰,避免出现死循环等问题。 ### 回答2: adb shell循环命令可以用于在Android设备的shell环境下执行重复的操作。它通常用在需要大量处理数据或执行多个任务的情况下,可以减少手动操作的次数,提高工作效率。 最常用的adb shell循环命令是for循环,格式为: for 变量 in 列表 do 命令 done 其中,变量指定一个循环计数器,列表指定要重复执行的对象,命令指定要执行的操作。下面是一个简单的例子: for i in `seq 1 10` do echo "the number is $i" done 执行这个脚本会输出从1到10的数字。其中,`seq 1 10`是一个命令,用于生成从1到10的数字列表。 除了for循环,还有while循环和until循环。while循环会在条件成立的情况下一直重复执行,格式为: while 条件 do 命令 done 例如: i=0 while [ $i -lt 10 ] do echo $i i=$((i+1)) done 这个脚本会输出从0到9的数字。其中,[ $i -lt 10 ]用于判断$i是否小于10。当$i小于10时,循环继续执行。 until循环和while循环类似,但会在条件不成立的情况下重复执行,格式为: until 条件 do 命令 done 例如: i=0 until [ $i -eq 10 ] do echo $i i=$((i+1)) done 这个脚本同样会输出从0到9的数字。其中,[ $i -eq 10 ]用于判断$i是否等于10。当$i等于10时,循环终止。 总之,adb shell循环命令可以帮助我们在Android设备的shell环境下快速并自动化地执行重复的操作。根据具体需求选择合适的循环命令,能够提高工作效率,省去冗余操作。 ### 回答3: adb shell循环命令是指在ADB Shell中通过循环控制语句来实现多次执行同一段命令的操作。常见的循环控制语句有for循环和while循环。 for循环语法为: ```shell for 变量名 in 变量取值列表 do 命令列表 done ``` 其中,变量取值列表可以是一组值,也可以是一个命令的输出结果。执行过程中,循环变量会依次取得取值列表中的每个值,并执行命令列表中的命令。 例如,要在ADB Shell循环执行十次“echo hello”命令,可以使用以下命令: ```shell for i in {1..10} do echo hello done ``` 其中,{1..10}表示从1到10的整数列表,i为循环变量。 while循环语法为: ```shell while 条件 do 命令列表 done ``` 执行过程中,如果条件为true,则不断执行命令列表中的命令,直到条件变为false。 例如,要在ADB Shell循环执行“adb shell ps”命令,直到其中出现包含“com.android.settings”的进程为止,可以使用以下命令: ```shell while ! adb shell ps | grep "com.android.settings" do adb shell ps done ``` 其中,| 符号表示管道,将前面命令的输出结果作为后面命令的输入。! 符号表示取反,也就是只要前面命令的输出结果中不包含“com.android.settings”,while循环就继续执行。 通过使用循环控制语句,可以方便地在ADB Shell中实现循环执行一组命令的需求,提高工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值