前言

在平时开发过程中,我们经常需要截图和录制视频,尤其是客户端开发和测试。

可能有一些人的姿势是这样的。在电脑上开个模拟器,使用第三方工具后进行截图和录屏。还有一种最原始的方式,在手机上截图和录制视频,然后再通过 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"

小结

写这篇文章的目的,是想告诉大家,有别名这个概念。对于开发者来说,配置一些自己常用的别名,真的是很方便,可以快速提高效率。大家如果觉得不错的话,可以关注我的微信公众号程序员徐公

  1. 公众号程序员徐公回复黑马,获取 Android 学习视频
  2. 公众号程序员徐公回复徐公666,获取简历模板,教你如何优化简历,走进大厂
  3. 公众号程序员徐公回复面试,可以获得面试常见算法,剑指 offer 题解
  4. 公众号程序员徐公回复马士兵,可以获得马士兵学习视频一份

程序员该如何写好自己的简历,一位 5 年中大厂老哥跟你聊聊

我的 5 年 Android 学习之路,那些年一起踩过的坑

Android 启动优化(七) - JetPack App Startup 使用及源码浅析

Android 启动优化(六)- 深入理解布局优化

巧用别名和 sh 脚本,adb 快速截图和录屏,提高你的效率的更多相关文章

  1. linux服务器监控流量sh脚本

    服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需 ...

  2. sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory

    在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中 ...

  3. linux执行sh脚本文件命令

    linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...

  4. .sh脚本判断判断某一变量是否为某一数值

    .sh脚本中,判断某一变量(例如:OEM_CUSTOMER_SUPPORT)是否为某一数值(例如:0),并根据条件做不同处理,写法如下: if [ $OEM_CUSTOMER_SUPPORT -eq  ...

  5. sh脚本学习之: sh脚本 、sed、awk

    sh脚本 sh命令的批处理文件,支持更复杂的逻辑. Shell中的变量 参数 $0 当前脚本路径 $1....$n 脚本执行对应的第n个参数 条件判断 文件判断 test [op] path e存在 ...

  6. 安装GRID时跑root.sh脚本报错(ORA-27091: unable to queue I/O)

    在安装GRID过程中,运行root.sh脚本时报如下信息: Adding Clusterware entries to upstart CRS-2672: Attempting to start 'o ...

  7. 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 ...

  8. ubuntu sh脚本双击运行

    自从13.04以后,双击sh脚本文件就已经默认是geidt打开了,要想运行,从nautilus-->文件-->首选项-->行为-->可执行文件 有三个选项,默认是第二个,如果想 ...

  9. sh脚本执行Java程序

    1.不引用Jar包或者资源文件夹 最简单的程序Hello World. 首先创建Hello.java public class Hello { public static void main(Stri ...

  10. rac_进行grid自检时提示运行runfixup.sh脚本一例

    原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...

随机推荐

  1. windows11配置wsl2虚拟linux环境

    windows11配置wsl2虚拟linux环境 wsl( Windows Subsystem for Linux )是microsoft官方为windows开发的模拟Linux方法.避免了虚拟机vm ...

  2. 解密Spring Cloud微服务调用:如何轻松获取请求目标方的IP和端口

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 目的 Spring Cloud 线上微服务实例都是2个起步,如果出问题后,在没有ELK等日志分析平台,如何确定调用到了目标 ...

  3. 使用halo快速搭建应用文档中心

    背景 之前我写了一篇,用gitbook搭建文档中心,gitbook是一款搭建博客的技术,是静态博客技术,不带后台管理系统.不带数据库,要发文章的话,是通过提供markdown文件,渲染成html,通过 ...

  4. 实现 Raft 协议

    文章地址 简介 Raft 是一个分布式共识算法,用于保证所有机器对一件事达成一个看法.本文用于记录实现 Raft 选举和日志复制的代码细节. 选举 节点启动时首先是跟随者状态,如果到达选举超时时间就尝 ...

  5. Blazor入门100天 : 自做一个支持长按事件的按钮组件

    好长时间没继续写这个系列博客了, 不知道大家还记得我吗? 话不多说,直接开撸. 1. 新建 net8 blazor 工程 b19LongPressButton 至于用什么模式大家各取所需, 我创建的是 ...

  6. python 图片相关

    python 图片相关 本篇介绍两种方式来打开图片. 1: 使用matplotlib #!/usr/bin/python3 # -*- coding: UTF-8 -*- ""&q ...

  7. Python——第五章:Zipfile模块

    Zipfile模块 zipfile 模块是 Python 中用于处理 ZIP 文件的标准库模块.它提供了创建.读取和写入 ZIP 文件的功能. zipfile 模块在写入文件时,如果要将文件写入子目录 ...

  8. Ubuntu部署NTP服务器和客户端

    https://www.cnblogs.com/lsgxeva/p/14265513.html Ubuntu部署NTP服务器和客户端 NTP或网络时间协议是一种协议,用于将网络中的所有系统时钟同步以使 ...

  9. 玩转Python:数据可视化,一个很高级的交互式Python库,附代码

    在数据科学和分析的世界里,将数据可视化是至关重要的一步,它能帮助我们更好地理解数据,发现潜在的模式和关系.Python 提供了多种可视化工具,HvPlot 是其中一个出色的库,专为简单且高效的交互式可 ...

  10. .NET周刊 【12月第3期 2023-12-24】

    国内文章 CAP 8.0 版本发布通告 - CAP 7岁生日快乐! https://www.cnblogs.com/savorboard/p/cap-8-0.html 今天宣布CAP 8.0版本正式发 ...