学习目标:学会使用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 -r 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 adb: failed to install C:\Users\17704\Desktop\HookDemo.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]在尝试安装 APK 文件时失败了,这通常是因为 APK 文件被标记为仅用于测试,系统默认不允许安装这类 APK。 使用adb install -t xxx.apk
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快捷方式,主要存放链接其他文件的路径