学习目标:学会使用adb与Linux的常见命令以及logcat的使用方法 adb adb的作用
可以方便的在电脑端通过命令操控手机
很多手机自动化指令也是通过adb来实现的
adb的构成
client端,在电脑上,负责发送adb命令
daemon守护进程(adbd),在手机上,负责接收和执行adb命令
server端,在电脑上,负责管理client和daemon之间的通讯
adb工作原理
client端将命令发送给server端
serever端会将命令发送给daemon端
将执行结果返回给server端
server端将结果再返回给client端
adb常用命令 adb/ adb help/ adb --help 查看adb帮助文档 adb version 显示adb版本和路径 adb devices 显示连接的设备列表 adb install xxx.apk 通过adb安装app adb install pr xxx.apk 覆盖安装 adb uninstall 包名 通过adb卸载app adb push xxx xxx 推送电脑的文件到手机 adb pull xxx 拉取手机的文件到电脑 adb shell 进入到手机的Linux控制台 adb -s 设备名 shell 多设备时,指定设备 adb start-server 启动Server adb kill-server 停止Server
logcat AndroidStudio中的logcat package: mine 用当前运行的应用包名进行过滤 level: DEBUG 显示调试级别以上信息 tag: xxxx 过滤xxxx的标签 -tag: xxxx xxxx的标签除外 message: xxxx 过滤包含xxxx关键字的信息
logcat常用选项 adb logcat -help 常看logcat的帮助文档 adb logcat 常规显示日志 adb logcat -c 清除日志 adb logcat -g 显示缓冲区大小 adb logcat -G 256M 修改缓冲区大小
Linux cmd命令和Linux命令的区别
cmd里面输入的命令用来控制Windows电脑
adb shell进入手机控制台以后,支持使用Linux命令,输入的命令用来操控手机
这两者命令是不一样的,比如Windows查看目录下的文件及文件夹信息用dir,切换目录用cd;而Linux里用ls和cd
adb shell进入手机控制台以后,显示的信息
oriole:/$
冒号前面的oriole代表设备名
冒号后面的/代表当前路径
$代表当前是shell权限,#代表是root权限
如果手机已经root,可以使用su命令来获取root权限
根目录 /
可以简单的理解为Windows的盘符,比如C:\
/soft可以理解为C:\soft;/soft/Android可以理解为C:\soft\Android
/ 开始的路径都是绝对路径
pwd
显示当前目录的绝对路径
cd
xxx可以是绝对路径,也可以是相对路径
命令或者文件名打不全,可以按tab会补全
cd ~切换到自己的用于目录
~开始的也都是绝对路径
其他特点
Linux命令实际上是系统中的一个二进制文件
Linux文件不需要扩展名,有的时候为了区分,才人为的加上扩展名
Linux文件也是有类型的,可以使用file xxx来查看
很多命令支持通配符,文件名以.开头即可
Linux中的隐藏文件,文件名以.开头
Linux命令组成 命令 选项 参数
选项和参数是可选的:命令、命令 选项、命令 参数、命令 选项 参数
一般命令都是小写,选项区分大小写
命令
作用
直接使用
ls
显示当前目录下的文件及目录信息
加参数
ls 路径
显示对应路径下文件及目录信息
加选项
ls -a
显示当前目录下所有文件和目录
加多个选项
ls -a -l
上面的基础上显示详细信息
多个选项简写
ls -alh
上面的基础上,显示统计信息
选项顺序可以颠倒
ls -lha
同上
输出 echo hyq echo $PATH 输出环境变量 echo $HOSTNAME 输出主机名
重定向与追加 > 输出重定向 本身应该在终端显示的内容,变成写入文件覆盖 >> 追加 echo Hello World! > text 输出内容保存到文件
输出文件内容
创建 touch xxx 创建空文件 mkdir aaa 创建aaa目录,如果目录存在会报错 mkdir aaa bbb 同时创建多个目录,如果目录存在会报错 mkdir -p aaa/bbb 递归创建,如果目录存在不报错;不错在则创建
删除 rmdir xxx 删除空目录 rm xxx 删除文件 rm aaa bbb 删除多个文件 rm -r 递归删除整个目录 rm -rf xxx 递归删除,且强制删除不提示控制信息 (在Android里本来就没有提示)
复制 cp a /sdcard/ 复制文件到sdcard,保持原名 cp a b /sdcard/ 复制多个文件到sdcard,保持原名 cp * /sdcard/ 复制当前目录下所有文件到sdcard,保持原名 cp a /sdcard/b 复制文件到sdcard,重命名为b cp -r a b 递归复制整个目录,重命名为b
移动 mv oldName newName 移动文件同时重命名 mv oldName /sdcard/newName 移动文件同时重命名 mv oldName /sdcard/ 移动文件,保持原名
grep grep -ril hyq* -r代表递归查找,-i代表忽略字母大小写,-l代表只显示文件名
管道命令 相当于命令的组合使用,把上个命令的执行结果,作为数据源,交给下个命令处理
查找文件或目录 指定目录,递归查找文件
软链接 软链接也称符号链接,类似windows快捷方式,主要存放链接其他文件的路径