一. adb 常用命令
adb version --查看adb版本
adb devices–用来查看当前连接的设备,已连接的设备会显示出来
adb connect ip地址–用来连接设备
adb disconnect ip地址-- 断开设备
adb kill-server/start-server–终止adb服务/启动adb服务
logcat-- 查看日志
adb logcat -v time *:W |grep pid > /data/data/log.txt
adb pull /data/data/log.txt d:/log/
adb shell "logcat -v time *:W |grep pid " > d:/log/log.txt
adb logcat -c
日志的指令
logcat -v time -n 10 -r 102400 -f /sdcard/logcat.txt(一直发送)
logcat -v time -n 10 -r 102400 -f /sdcard/logcat.txt &(发送一次)
adb shell monkey -p com.xyy.vwill -s 100 10000–momkey测试 得到1个小时,设置次数可能在百万以上
monkey日志分析:
日志: app的日志(adb logcat :crash anr error等日志) monkey执行日志(执行过程,正常结束,异常结束,执行了哪些事件,执行时长)
adb shell svc wifi disable–关闭WiFi
adb shell svc wifi enable–开启WiFi
ping -c 1 -w 1 119.29.29.29/ping 119.29.29.29–ping网络动态
adb pull 文件路径 D:/file/20220421.txt(存放的文件路径和文件名)–连接设备,传输文件从设备传到电脑
adb push C:/users/desktop/gc2093_default_JX8006.json vendor/etc/camera/rkisp2/gc2093_YT-RV1109-2-V2_40IR-2MP-F20.json–从电脑传到设备端
当传输文件提示没有权限,需要获得权限 adb root adb remount

adb shell screencap -p /sdcard/screenshots/01.png/adb pull /sdcard/screenshots D:/file–adb命令截图
adb shell
su
wm density–查看设备密度
wm density 120–改密度
adb uninstall com.imstlife.anaerobic-- 卸载程序
adb install anaerobic.apk --安装(可以直接拖到文件到cmd里,cmd自动识别路径)
adb shell
su
am start -n com.cghs.stresstest/.StressTestActivity–设备压力测试
adb shell
su
chmod -R 777 vendor–权限
adb shell pm list packages–显示系统应用包名
adb shell pm list packages -3–显示第三方应用包名
查询手机cpu和内存信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
adb shell ps
adb shell kill pid
使用-c参数:adb shell ping -c 4 www.baidu.com,ping4次后停止ping:

adb shell netstat
网络统计。用来查看网络当前状态:

adb shell netcfg
通过配置文件配置和管理网络连接。命令行格式:netcfg [{dhcp|up|down}]
由于手机是6.0版本,提示该命令不存在。无法演示。通过查阅,要获取Android手机的IP地址,必须先保证你的Android手机已经连接到无线网络(此处的无线网络包括WiFi和WAPI,不包括3G或2G的移动网络)。执行如下命令:
先执行命令"adb shellnetcfg"
再执行命令 “adb shell ifconfigrmnet0”
不过如果想查询WiFi的IP地址,可以通过ip命令:adb shell ip -f inet addr show wlan0

adb 是什么,学习它有什么意义?
adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S
架构的命令行工具,主要由 3 部分组成:
运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样
地用到了 adb 的功能来与 Android 设备进行交互。
PC 端的手机助手,诸如 360 手机助手、豌豆荚、应用宝等,其除了安装第三
方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里建议
尽量不要在电脑上安装这类手机助手,因为其自带的 adb 程序可能会
与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb
命令时无法连接到设备
运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的
连接
adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程
运行在 Android 设备上的 adb 后台进程
执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请
使用 findstr 替代 grep
这个进程是需要用户手动开启,打开方法:
1、在手机设置 → 关于手机 → 版本号 点击多次,直到提示已进入开发这
模式 ,然后退出这个页面,
2、手机设置→ 开发者选项 → 打开usb调试
学习的意义针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb
命令熟记于心, 将会为 Android 测试带来很大的方便,
其中很多命令将会用于自动化测试的脚本当中。
三、常用adb 命令
在终端输入 adb(配置好环境变量情况下) 或者 adb help,会自动弹出常用的
adb 命令列表,如图
重启adb服务
adb kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令
一起用
一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用
kill-server,然后运行 start-server 进行重启服务
查看日志
adb logcat
Android 的日志分为如下几个优先级(priority):
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)
如: adb logcat -s 标签名 只查看对应标签名日志
adb logcat *:d 只查看 D级别以上的日志
adb logcat *:d 标签名 只查看 D级别以上制定标签名的日志
安装、卸载应用
adb install 安装包路径 安装应用,覆盖安装是使用 -r 选项
如 adb install -r /Users/cbf/TCL/Demo/app/build/outputs/apk/app-debug.apk
(安装包名称尽量使用英文)
adb uninstall 对应包名 卸载应用 adb uninstall com.taobao.taobao (卸载淘
宝)将 Android 设备上的文件或者文件夹复制到本地
adb pull 如将 sdcard 目录下 pull.txt 文件拷贝到 D 盘: adb
pull sdcard/pull.txt d:
推送本地文件至 Android 设备
adb push 如:
adb push d:\push.txt sdcard/ 注意: sdcard 后面的斜杠不能少,否则会出现下面
错误failed to copy ‘push.txt’ to ‘sdcard’: Is a directory
获取管理员权限
adb root
重现挂在手机文件系统为可读写状态
adb remount
adb root , adb remount 一般你想pull某个文件夹到电脑里,或者拷贝某个文件到
手机某个目录下,提示你没有读写权限时,使用这个两个命令重现挂载系统文件
夹为可读写状态
重启手机
adb reboot
查看bug报告
adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误
android 7.0以后手机才能用,输入命令比较多,建议重定向到一个文件中
adb bugreport > d:\bugreport.log
获取设备的状态
adb get-state 设备的状态有 3 钟,device , offlfline ,
unknown device:设备正常连接
offlfline:连接出现异常,设备无响应
unknown:没有连接设备
四、常用 adb shell 命令
adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录
下,大家可以通过进入到该文件夹下,通过cat 命令发现这些其实都是通过shell 来
实现的. 如cat am
package:后是apk的路径地址 = 后面是包名 install = 代表来源 这里null 表示
是未知来源
更多詳细用法,请见pm使用帮助.
4、screencap 截图命令
adb shell screencap -p /sdcard/screen.png
截屏,保存至 sdcard 目录
5、screenrecord 4.4 新增的录制命令
adb shell screenrecord sdcard/record.mp4
6. dumpsys
dumpsys activit
dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity services
dumpsys activity activities
dumpsys activity processes
dumpsys window
dumpsys window windows
dumpsys window tokens
dumpsys window sessions
dumpsys window policy
dumpsys window input
dumpsys statusbar
dumpsys notifification
dumpsys package [ ]
dumpsys location
dumpsys alarm
dumpsys connectivity
dumpsys wififi
……等等
7. ime 输入法管理
ime list [-a] [-s]
list command prints all enabled input methods
-s option to see only a single summary line of each.
-a option to see all input method
五、参考资料
http://www.cnblogs.com/bravesnail/articles/5850335.html
https://github.com/mzlogin/awesome-adb (很全面)
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa
关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程
我在目录“C:\DocumentsandSettings\test.exe”中有一个文件,但是当我用单引号编写命令时`C:\DocumentsandSettings\test.exe(我无法在此框中显示),用于在Ruby中执行命令,我无法这样做,我收到的错误是找不到文件或目录。我尝试用“//”和“\”替换“\”,但似乎没有任何效果。我也使用过系统、IO.popen和exec命令,但所有的努力都是徒劳的。exec命令还使程序退出,这是我不想发生的。提前致谢。 最佳答案 反引号环境就像双引号,所以反斜杠用于转义。此外,Ruby会将空格解
我正在尝试将cucumber项目的用户名和密码置于版本控制之外。有没有办法在命令行上手动将用户名和密码等变量传递给Cucumber脚本?我的备份计划是将它们放在一个YML文件中,然后将该文件添加到gitignore,这样它们就不会被置于版本控制中。 最佳答案 所以,我看到了您对铁皮人的评论,答案是肯定的。cucumberPASSWORD=my_passwordPASSWORD被设置为环境变量,您可以通过将其引用为ENV['PASSWORD']来使用它的值。例如,browser.text_field(:id=>'pwd').setEN
我想在Windows7上安装带有ruby1.9.3的rspec-railsgem。我收到一些错误消息,提示无法安装某些json库。所以,我使用下面的说明来解决它。来源=The'json'nativegemrequiresinstalledbuildtools从[rubyinstaller.org][3]下载[Ruby1.9.3][2]从[rubyinstaller.org][3]下载DevKit文件对于Ruby1.9.3,使用[DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe][4]将DevKit解压到路径C:\Ruby193\DevKit运行cd