这里21年的对之前的以下总结。bash脚本和Linux命令更熟练了,但是没有总结和记录。旧方式,截图很鸡肋,不太好用

电脑上的一些脚本

截图命令使用,原理是 adb exec-out

run-adb.bash

#adb 快捷命令alias ar="adb reboot"function adbConnect(){echo "Your connect is 192.168.$1"   # 这个 $1 必须要参考底下命令的下达adb connect 192.168.$1
}function adbDisconnect(){adb disconnect
}function adbShell(){adb shell
}function devices(){adb devices
}# 获取安卓设备数量
function getAdbDevicesCount(){no_dev=2 #没有设备的总行数   第一行: List of devices attached  第二行 空line="`adb devices | wc -l`"# echo "$line"echo $(($line-$no_dev))
}#获取自定义格式设备名称 参数1: adb devices 设备ID index
function getFmtDeviceName(){if [ -n "$1" ]; thenline=$1let "line++" #跳过1行deviceId="`adb devices | sed -n "${line}p" | awk '{printf $1"\n"}' `"     # name="`adb devices | sed -n "2p;${line}p" | awk '{printf NR ". " $1"\n"}' `" #简单列出设备IDmanufacturer="`adb -s $deviceId shell getprop ro.product.manufacturer`"model="`adb -s $deviceId shell getprop ro.product.model`"version="`adb -s $deviceId shell getprop ro.build.version.release`"sdk="`adb -s $deviceId shell getprop ro.build.version.sdk`"name="${manufacturer} ${model} Android ${version} API ${sdk} Serial: ${deviceId} "# 去除某些设备后面携带回车符name=`echo ${name} | tr -d '\r'`echo ${name}elseecho "requires an argument"fi
}# 列出所有设备
function listFmtDevices(){count=`getAdbDevicesCount`index=1while(( $index<=count ))doname=`getFmtDeviceName ${index}`echo "${index}. ${name} "let "index++"done
}# 获取设备ID 参数1: adb devices 设备ID index
function getFmtDeviceId(){if [ -n "$1" ]; thenline=$1let "line++" #跳过1行deviceId="`adb devices | sed -n "${line}p" | awk '{printf $1"\n"}' `"# 去除某些设备后面携带回车符deviceId=`echo ${deviceId} | tr -d '\r'`echo ${deviceId}elseecho "requires an argument"fi
}# 安装apk
function apk(){if [ -n "$1" ]; thencount=`getAdbDevicesCount`one_dev=1if [ $count -eq $one_dev ]then# 单设备name=`getFmtDeviceName 1`echo "install apk to devices: ${name}"adb install -r $1elif [ $count -gt $one_dev ] then # 多设备if [ -n "$2" ]; then# 带设备indexindex=$2deviceId=`getFmtDeviceId ${index}`name=`getFmtDeviceName ${index}`echo "install apk to devices: $name"adb -s $deviceId install -r $1else# 带apk文件路径echo "install apk to which devices?"listFmtDevicesread -p "Enter: " indexapk $1 $indexfielseecho "no devices"fielseecho "apk requires an apkPath argument"fi
}# 卸载apk
function uapk(){if [ -n "$1" ]; thencount=`getAdbDevicesCount`one_dev=1if [ $count -eq $one_dev ]then# 单设备name=`getFmtDeviceName 1`echo "uninstall apk on $name"adb uninstall $1elif [ $count -gt $one_dev ] then # 多设备if [ -n "$2" ]; then# 带设备indexindex=$2deviceId=`getFmtDeviceId ${index}`name=`getFmtDeviceName ${index}`echo "uninstall apk on devices: $name"adb -s $deviceId uninstall $1else# 带apk文件路径echo "uninstall apk on which devices?"listFmtDevicesread -p "Enter: " indexuapk $1 $indexfielseecho "no devices"fielseecho "uapk requires an pkg argument"fi
}# 进入adb shell 环境
function as(){count=`getAdbDevicesCount`one_dev=1if [ $count -eq $one_dev ]then# 单设备name=`getFmtDeviceName 1`echo "${name} Last login: `date`"adb shellelif [ $count -gt $one_dev ] then # 多设备if [ -n "$1" ]; then# 带设备indexindex=$1deviceId=`getFmtDeviceId ${index}`name=`getFmtDeviceName ${index}`echo "${name} Last login: `date`"adb -s $deviceId shellelse# 不带设备indexecho "enter shell which devices?"listFmtDevicesread -p "Enter: " indexas $indexfielseecho "no devices"fi
}
# tcpip 5555
alias a-tcpip="adb tcpip 5555"# 截图
# adb exec-out screencap -p > screen.png
alias scap="adb exec-out screencap -p >"function fcap(){# savepath=$(cd `dirname $0`; pwd)count=`getAdbDevicesCount`one_dev=1if [ $count -eq $one_dev ]then# 单设备name=`getFmtDeviceName 1`echo "${name} Last login: `date`"while true; doDATE=`date +%Y%m%d%H%M%S`scap screen_${DATE}.png echo "save screen_${DATE}.png success!"read -p 'Press any key to continue screencap ...'doneelif [ $count -gt $one_dev ] then # 多设备if [ -n "$1" ]; then# 带设备indexindex=$1deviceId=`getFmtDeviceId ${index}`name=`getFmtDeviceName ${index}`echo "${name} Last login: `date`"while true; doDATE=`date +%Y%m%d%H%M%S`adb -s $deviceId exec-out screencap -p > screen_${DATE}.png echo "save screen_${DATE}.png success!"read -p 'Press any key to continue screencap ...'doneelse# 不带设备indexecho "enter shell which devices?"listFmtDevicesread -p "Enter: " indexfcap $indexfielseecho "no devices"fi}

旧方式,很久没更新

对于Android Studio 截图功能不得吐槽一下,截图慢而不能连续截图,而且在某些android上不能截屏 .
具体使用adb 的 screencap 命令进行截图

Here

立马下载

截图bash脚本

#!/bin/bash
savepath=$(cd `dirname $0`; pwd)
function pause(){read -n 1 -p "$*" INPif [ [$INP != ''] ] ; thenecho -ne '\b \n'fi
}adb wait-for-device
echo 'wait-for-device'result=`adb devices`ipAddr=${result#*attached}
ipAddr=${ipAddr%%device*}
ipAddr=${ipAddr:1:19}
echo $ipAddrpause 'Press any key to continue...'
while true;
dopause 'Press any key to continue screencap ...'DATE=`date +%Y%m%d%H%M%S`adb -s ${ipAddr} shell screencap ./sdcard/screen_${DATE}.png adb -s ${ipAddr} pull ./sdcard/screen_${DATE}.png ${savepath}adb -s ${ipAddr} shell rm ./sdcard/screen_${DATE}.png echo "save screen_${DATE}.png to ${savepath} success!"
done

效果图

注意

允许上面脚本,当前电脑只允许一个adb设备连接。 回车即截图保存当前目录下

adb 超快速截图bash脚本相关推荐

  1. 巧用别名和 sh 脚本,adb 快速截图和录屏,提高你的效率

    本文首发我的微信公众号程序员徐公,回复 徐公 666 可以获得我精心整理的简历模板,带你走近大厂 前言 在平时开发过程中,我们经常需要截图和录制视频,尤其是客户端开发和测试. 可能有一些人的姿势是这样 ...

  2. bash 脚本_实用的 bash 自定义脚本,快速提效工作流程

    作者:掘金@苏里    https://juejin.im/post/6844904185599623175 前言 工作时间久了,发现越来越离不开 bash 自动化脚本了.bash 对于我们的便利体现 ...

  3. python:通过python脚本快速执行 bash 命令

    * git镇楼:git config --global core.filemode false* 实践出真知.虽然这个脚本代码量不大,但是也是经过3次修改才达到预期效果的. * 第一次写的时候,凭逻辑 ...

  4. 我们的手机还可以这样快速截图,你肯定不知道,超方便

    手机我们天天使用,但是你知道手机快速截图的姿势吗?下面我们一起来分享一下实用小技巧. 1.华为手机快捷截图方法:用手指关节,敲击两次屏幕.如果敲了没反应的话就设置-智能辅助-手势控制-智能截屏开启.第 ...

  5. python快速开发app_python 使用Airtest超快速开发App爬虫

    使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2 ...

  6. linux内核与bash脚本接囗,Bash脚本编程之脚本基础和bash配置文件

    脚本基础 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成机器可运行的二进制程序文件后,方可运行.例如C语言和Java语言. 解释运行:需要一个 ...

  7. Bash脚本编程学习笔记02:脚本基础和bash配置文件

    脚本基础 参考资料:Shell Scripts (Bash Reference Manual) 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成 ...

  8. 全面超越Appium,使用Airtest超快速开发App爬虫,你会吗?

    全面超越Appium,使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你 ...

  9. 如何写出安全的、基本功能完善的Bash脚本

    每个人或多或少总会碰到要使用并且自己完成编写一个最基础的Bash脚本的情况.真实情况是,没有人会说"哇哦,我喜欢写这些脚本".所以这也是为什么很少有人在写的时候专注在这些脚本上. ...

最新文章

  1. 如何使用 Spring 实现策略模式+工厂模式
  2. python实现简单的api接口-对Python实现简单的API接口实例讲解
  3. python2基础教程廖雪峰云-Python 基础教程
  4. CreateFile创建文件 writeFile 向文件中写入东西
  5. 《软件设计师教程最新版(第三版》
  6. SEO基本概念之死链接
  7. 第三十三章 SQL函数 COT
  8. 计算高德经纬度坐标点之间的距离
  9. MySQL启动常见错误:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
  10. 一位博士在华为的22年(干货满满)
  11. 浅谈Unity中的rotation和Quaternion的乘法
  12. KEIL5创建新工程模板 以及文件简介概述
  13. html文件上传到云服务器,把html文件上传到云服务器上
  14. c语言blackjack设计思路,blackjack基本策略.doc
  15. raid卷的作用_Raid卷详解
  16. 为爱限定、将爱保鲜|初巧鲜炖燕窝献礼七夕
  17. word自带公式编辑_关于Word内置公式编辑器不能使用的解决方法,请收藏
  18. Firefox备份图文教程
  19. Qt中QPainter的使用
  20. Supervised Online Hashing via Hadamard Codebook Learning

热门文章

  1. 多个小电容并联取代大电解电容的作用
  2. 毕业设计 红外热释电的房间人数计数系统 - 单片机 物联网嵌入式
  3. 判赔20万!星愿浏览器因拦截广告被优酷起诉;苹果调查iPhone 14 Pro传输数据后卡死问题|极客头条
  4. linux封包工具下载,Linux 的 ngrep 網路封包分析工具使用教學
  5. Mycat安装、配置与实践(兼容mysql8)
  6. pcs和serdes_Lattice ECP3/ECP5器件中的SerDes/PCS简要介绍
  7. JAVA大学实用教程(第四版)课后习题三、四章答案(自整理)
  8. C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)
  9. 如何弹出QQ临时对话框,实现不添加好友的在线交谈效果。
  10. 最全Android安全检测漏洞解决方案