-- 作者 谢恩铭 转载请注明出处

一句命令搞定截屏


在安卓开发中, 我们很多时候都要用到截屏这个功能。

有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine等Bug跟踪系统中上传截图), 有时是为了发布应用时要用的截图。

今天就来聊聊如何快速只用一句简单的命令就搞定截图。

由繁到简的演进:三种方法


这篇主要讲Linux系统下如何Android手机截屏(当然了,Windows下也类似,可以自行尝试):

首先你的Linux中要安装了adb(也就是Android Debug Bridge,可以在你下载的Android的SDK的platform-tools文件夹中找到,只要把路径加入PATH环境变量就可以)。

而且你的Android手机须要开启了Develop options (开发者选项,要开启好像一般是在Settings(设置)里的About device(关于本机)中按7次Build number那个地方),如下:

那么截屏有哪几种方式呢?应该有很多,这里提供由繁到简的三种方法,也记录了小编从事Android开发之后的截屏方法的“演进”。哈哈,以前是挺蠢萌的(话外音:小编你只有蠢,没有萌,好不...):

1. 手动+adb命令


用你的手机的组合键来截屏(一般是同时按下Home键和电源键),然后用adb pull来取回本地:

adb pull /手机的截屏图片保存路径/xxx.png复制代码

2. 纯adb命令


1.使用screencap这个命令,配合adb命令来实现截图并保存到手机的/sdcard目录中:

adb shell screencap -p /sdcard/hello.png复制代码

2.用adb pull将手机中的文件取回本地:

adb pull /sdcard/hello.png复制代码

成功运行上面两行命令之后,你的家目录~中就会多出一个hello.png的图片。

当然了,截图时注意不要锁屏,不然截出来就是黑屏。

3. Shell函数+命令


第二种用adb命令的方式已经比较简单快捷了。但是,作为程序员,难道每次截屏都要输入这两个命令吗?简直不能忍。

程序员要学会“偷懒”

一般Ubuntu(或其他Linux发行版,例如Fedora)中默认的Shell程序是Bash。因此我们其实可以在.bashrc中写一个函数:

1.用你惯用的文本编辑器打开.bashrc这个bash的配置文件,位于你家目录中:

vim ~/.bashrc复制代码

2.在.bashrc里加入以下的函数(名字是droidshot 。当然了,你可以随便取什么名字):

# For Android Device Screenshot
function droidshot() {    adb shell screencap -p /sdcard/$1.png && adb pull /sdcard/$1.png
}复制代码

3.保存,退出。然后,用source命令使修改立即生效:

source ~/.bashrc复制代码

4.之后,使用很简单,在终端中输入:

droidshot hello复制代码

hello就是你传给droidshot这个函数的第一个参数(你也可以随便取其他名字),相当于函数里那个$1。

因此,在你的家目录~下就会多了一个 hello.png的图片,就是你刚才先截图,保存到Android手机的/sdcard目录下,再从Android手机中用adb pull来取回到本地的那张屏幕截图。

screen.png这张截图就如上图这样,这张是在三星的Galaxy S7上截的。

是不是超级省事呢?以后你想创建其他截屏图片,只要在终端输入:

droidshot hehedroidshot haha复制代码

等等,就可以在本地获得hehe.png,haha.png这些图片了。

下期我们继续分享Android开发小技巧。


人世间,
万千情感皆有温度,
千万代码似有性格。
这里有原创教程,IT丛林......
和你一起探索程序人生。
微信公众号「程序员联盟」ProgrammerLeague
我是谢恩铭,在巴黎奋斗的嵌入式软件工程师。
个人简介
热爱生活,喜欢游泳,略懂烹饪。
人生格言:“向着标杆直跑”

Android 开发小技巧 | 一句命令搞定截屏相关推荐

  1. Android开发小技巧 | 一句命令搞定截屏

    -- 简书作者 谢恩铭 转载请注明出处 一句命令搞定截屏 在安卓开发中, 我们很多时候都要用到截屏这个功能. 有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine ...

  2. 命令启动jar包_java项目打jar包,一句命令搞定

    jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名 其中{ctxu}这四个参数必须选选其一. [v f m e 0 M i ]是可选参数,文件名也是必须 ...

  3. Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定

    Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定 docker run --name mysql8.db -p 3307:3306 -e MYSQL_ROOT_PASSWORD=Csd ...

  4. 如何阻止华为杀应用_华为手机“杀”后台严重受不了?别慌,这些小技巧就能轻松搞定...

    原标题:华为手机"杀"后台严重受不了?别慌,这些小技巧就能轻松搞定 现在有越来越多的小伙伴喜欢使用华为手机,觉得其性价比非常高.但是不少使用华为手机的朋友会发现,华为手机" ...

  5. Android 开发小技巧(2)

    转自:农民伯伯: http://www.cnblogs.com/over140/ 常用代码 7.1   在当前Activity中启动另外一个Activity startActivity(new Int ...

  6. Android开发-小技巧汇总2

    启动虚拟机时,在 launch options 窗口中 有个 wipe user data ,勾选它,将会让虚拟机 [恢复出厂设置] 2.[如果想让自己的应用程序有多个启动图标:] 为一个应用的 多个 ...

  7. android开发小技巧:实现listview异步加载图片

    2019独角兽企业重金招聘Python工程师标准>>> 针对listview异步加载图片这个问题,麦子学院android开发老师讲了一种非常实用的方法,麦子学院android开发老师 ...

  8. Android开发——小技巧:推荐辅助工具(icon图标网站、在线取色网站以及视频学习网站)

    图标网站: Iconfont-阿里巴巴矢量图标库 https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 在线取色网站: R ...

  9. canvas 实现图片局部模糊_小技巧!H5使用Html2Canvas实现自动截屏(下)

    上文写到使用html2Canvas实现截屏.上次留了一个问题,如果当前dom元素对象比较大,比如包含一个比较大的图片等,在将dom序列化成字符串时,极易导致字符串超长.对于超长的内容,后台程序将获取不 ...

最新文章

  1. C++ 汇编代码查看
  2. Linux之Sed工具的使用详解
  3. Delphi APP 開發入門(五)GPS 定位功能
  4. jquery 前台分页插件总结(1 前台假分页 2 后台分页)
  5. Lua1.0 代码分析 库
  6. Python操作MySQL数据库的三种方法
  7. 透过汇编另眼看世界之多继承下的虚函数函数调用
  8. 内存不足而没有OutOfMemoryError
  9. ICCV 2019 | 北邮提出高阶注意力模型,大幅改进行人重识别SOTA精度
  10. 2018-11-13#Hive外表创建和加载数据
  11. Linux 下 Weblogic 的安装 、配置以及发布
  12. Java 递归算法之斐波那契数列第 N 项
  13. 上网认证页面html,如何设置网页认证上网
  14. spring容器的refresh方法分析
  15. 卫星遥感—地块/边界提取相关论文
  16. npm引入gojs如何去除水印
  17. 11 万金油 String,为什么不好用了?
  18. uni-app实现尺子效果
  19. 小程序miniprogram自动化上传,不需要依赖微信开发者工具
  20. 毕业设计-基于深度学习的图像质量评价

热门文章

  1. 房产中介管理软件源码下载
  2. 什么是电导率,如何理解电导率,说白了就是电阻的倒数。
  3. 百度商户遭今日头条销售威胁;阿里CTO张建锋将彻查抄袭事件;苹果回应iPhone8爆裂事件丨价值早报
  4. Python 学习之路(上)
  5. torch.utils.data.DataLoader()到底是什么作用?
  6. 【老脸教你做游戏】小鸟飞过障碍物的游戏(下)
  7. Fabfilter发布虚拟合成器插件-Twin 3
  8. 网络直播系统的架构,基础版直播间搭建
  9. oracle_OEM与常见故障处理
  10. Jetson tx2刷机指南及gparted扩容全踩坑实录