巧用别名和 sh 脚本,adb 快速截图和录屏,提高你的效率
前言
在平时开发过程中,我们经常需要截图和录制视频,尤其是客户端开发和测试。
可能有一些人的姿势是这样的。在电脑上开个模拟器,使用第三方工具后进行截图和录屏。还有一种最原始的方式,在手机上截图和录制视频,然后再通过 QQ 等工具发送到电脑,这多累呀。
其实,有一种很简便的方式,那就是说通过别名和 adb,一个简单命令,让你快速截图和录制视频,如 adbshot, adbrecord。下面让我们一起来看一下,怎么实现?
adb 命令和录制视频
adb 命令截图
第一种方法
#(保存到SDCard)
adb shell /system/bin/screencap -p /sdcard/screenshot.png
# 从SD卡导出到电脑,注意/Users/junxu 为电脑路径,必须存在
adb pull /sdcard/screenshot.png /Users/junxu
如果你想删除手机上的图片,那么你可以使用这个命令来删除
adb shell rm /sdcard/screen.png
开始录制命令:
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
说明:录制手机屏幕,视频格式为mp4,存放到手机sd卡里,默认录制时间为180s
mac 设置别名
1、基本语句
alias lts ="cd /Users/junxu/Desktop/sh"
2、修改文件
vi ~/.bash_profile
加入 alias lts="cd /data"
保存
3、使别名命令生效
source ~/.bash_profile
4、在命令行输入lts 就可以达成 cd /Users/junxu/Desktop/sh的效果
配合别名,快速截图和录屏
截图
增加截图别名
alias adbshot="sh /Users/junxu/Desktop/sh/shot.sh"
截图 SH 脚本
#!/bin/bash
# Android截图,定位和预览默认开启,如果想关闭,可以注释
echo "第一个参数为:$1";
dd=`date +%Y-%m-%d-%H-%M-%S`
pwd=`pwd`
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png
adb shell rm /sdcard/screenshot.png
mv screenshot.png $dd.png
echo "截图已保存为当前目录下的"$pwd$dd.png
# 修改图片尺寸,长或宽最大不超过960,等比缩放
echo "压缩图片..."
sips -Z 960 $pwd/$dd.png
# 定位到文件
open ./$dd.png -R
# 打开预览
open -a Preview $dd.png
# 复制到剪切板
osascript -e 'on run args' -e 'set the clipboard to POSIX file (first item of args)' -e end $pwd/$dd.png
echo "截图已复制到剪切板"
记得给 SH 脚本增加可执行权限。
chmod +x /Users/junxu/Desktop/sh/shot.sh
录屏
增加录屏别名
alias adbrecord="sh /Users/junxu/Desktop/sh/record.sh"
录屏脚本
#!/bin/bash
# Android录屏
time=$1
if [ ! $time ]; then
time=5
echo "IS NULL"
else
echo "NOT NULL"
fi
dd=`date +%Y-%m-%d-%H-%M-%S`"-$time"
echo "dd is $dd"
pwd=`pwd`
adb shell screenrecord --time-limit $time /sdcard/screenrecord.mp4
adb pull /sdcard/screenrecord.mp4
adb shell rm /sdcard/screenrecord.mp4
mv screenrecord.mp4 $dd.mp4
echo "$1秒视频已保存为当前目录下的"$dd.mp4
# 定位到文件
open ./$dd.mp4 -R
# 复制到剪切板
osascript -e 'on run args' -e 'set the clipboard to POSIX file (first item of args)' -e end $pwd/$dd.mp4
echo "$1秒视频已复制到剪切板"
记得给 SH 脚本增加可执行权限。
chmod +x /Users/junxu/Desktop/sh/record.sh
其他常用 adb 常用别名
alias adbtop="adb shell dumpsys activity top | grep "ACTIVITY" "
alias adbd="adb devices"
alias adbs="adb shell"
小结
写这篇文章的目的,是想告诉大家,有别名这个概念。对于开发者来说,配置一些自己常用的别名,真的是很方便,可以快速提高效率。大家如果觉得不错的话,可以关注我的微信公众号程序员徐公
- 公众号程序员徐公回复黑马,获取 Android 学习视频
- 公众号程序员徐公回复徐公666,获取简历模板,教你如何优化简历,走进大厂
- 公众号程序员徐公回复面试,可以获得面试常见算法,剑指 offer 题解
- 公众号程序员徐公回复马士兵,可以获得马士兵学习视频一份
Android 启动优化(七) - JetPack App Startup 使用及源码浅析
巧用别名和 sh 脚本,adb 快速截图和录屏,提高你的效率的更多相关文章
- linux服务器监控流量sh脚本
服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需 ...
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中 ...
- linux执行sh脚本文件命令
linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...
- .sh脚本判断判断某一变量是否为某一数值
.sh脚本中,判断某一变量(例如:OEM_CUSTOMER_SUPPORT)是否为某一数值(例如:0),并根据条件做不同处理,写法如下: if [ $OEM_CUSTOMER_SUPPORT -eq ...
- sh脚本学习之: sh脚本 、sed、awk
sh脚本 sh命令的批处理文件,支持更复杂的逻辑. Shell中的变量 参数 $0 当前脚本路径 $1....$n 脚本执行对应的第n个参数 条件判断 文件判断 test [op] path e存在 ...
- 安装GRID时跑root.sh脚本报错(ORA-27091: unable to queue I/O)
在安装GRID过程中,运行root.sh脚本时报如下信息: Adding Clusterware entries to upstart CRS-2672: Attempting to start 'o ...
- sh脚本异常:bad interpreter: No such file or directory
转:http://bluedest.iteye.com/blog/1674963 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file o ...
- ubuntu sh脚本双击运行
自从13.04以后,双击sh脚本文件就已经默认是geidt打开了,要想运行,从nautilus-->文件-->首选项-->行为-->可执行文件 有三个选项,默认是第二个,如果想 ...
- sh脚本执行Java程序
1.不引用Jar包或者资源文件夹 最简单的程序Hello World. 首先创建Hello.java public class Hello { public static void main(Stri ...
- rac_进行grid自检时提示运行runfixup.sh脚本一例
原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
随机推荐
- 火山引擎ByteHouse:如何优化ClickHouse物化视图能力?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近期,火山引擎 ByteHouse 升级了基于 ClickHouse 的物化视图能力,为解决数据量爆炸式增长带来的 ...
- UIPath流程控制
应当仔细地观察,为的是理解:应当努力地理解,为的是行动. UIPath程序中流程控制主要包括条件语句.循环语句以及中断语句.下面我们一一学习这些语句在RPA流程设计中的使用. 1. 条件判断 if ...
- 通过Span实现高性能数组,实例解析
Span<T> 是 C# 7.2 引入的一个强大的数据结构,用于表示内存中的一块连续数据.它可以用于实现高性能的数组操作,而无需额外的内存分配.在本文中,我将详细介绍如何使用 Span&l ...
- 虚拟机运行Hadoop | 各种问题解决的心路历程
ps:完成大数据技术实验报告的过程,出项各种稀奇古怪的问题.(知道这叫什么吗?经济基础决定上层建筑,我当时配置可能留下了一堆隐患,总之如果有同样的问题,希望可以帮到你) 一.虚拟机网络连接不通的各种情 ...
- Mybatis-Flex核心功能之@Id
1.是什么? 在 Entity 类中,MyBatis-Flex 是使用 @Id 注解来标识主键的 2.怎么玩? public @interface Id { /** * ID 生成策略,默认为 non ...
- 基于.NetCore开发博客项目 StarBlog - (30) 实现评论系统
前言 时隔五个月,终于又来更新 StarBlog 系列了~ 这次是呼声很大的评论系统. 由于涉及的代码量比较大,所以本文不会贴出所有代码,只介绍关键逻辑,具体代码请同学们自行查看 GitHub 仓库. ...
- 强!推荐一款自动化神器Autolt:不再重复工作
随着互联网不断发展,它给我们带来便利的同时,也带来了枯燥.重复.机械的重复工作.今天,我要和大家分享一款老牌实用的自动化工具:AutoIt,它能够让你告别繁琐的重复性工作,提高工作效率. 这里透露一下 ...
- Net 高级调试之十五:经典的锁故障
一.简介 今天是<Net 高级调试>的第十五篇文章,这个系列的文章也快结束了,但是我们深入学习的脚步还不能停止.上一篇文件我们介绍了C# 中一些锁的实现逻辑,并做到了眼见为实的演示给大家它 ...
- ElasticSearch之cat segments API
命令样例如下: curl -X GET "https://localhost:9200/_cat/segments?v=true&pretty" --cacert $ES_ ...
- 在Windows操作系统中,使用powershell脚本批量删除、批量替换文件名
比如我们下载的mp3文件或者小说.评书里都带很多作者.网站等信息,如何批量一键删除掉多余的字段呢? 下面举例:批量删除文件名称 可以看到原文中,所有文件名中均包含"小番茄与火龙果-" ...