作为一个Android开发人员,经常需要把UI效果录制下来,有时候要给远程客户看效果,有时候要录制demo写博客或者教程,客户和QA也需要录制一些bug的表现给开发。在网上查阅了很多录屏的方法,但都不是很好用。比如有人推荐用“录屏大师”这样一款软件,我在手机和模拟器上都报错失败;还有人推荐用adb的adb shell screenrecord指令去录制,但是命令行一直提示“device not found”,那么有没有一种录制出来视频清晰度高,容量小,码流和帧率合适的方法呢,又如何把录制好的视频转换成清晰度高,观看流畅的gif呢。

在某度上来来回回查询了许多方案均以失败告终,总结出来目前Android录屏功能的现状

1、免费的模拟器几乎都不支持录屏功能,比如天天,夜神。。。收费模拟器GenyMotion号称支持录屏,但是我没试过好不好用(如果有人发现好用的录屏模拟器一定要告诉我)

2、手机真机几乎全部没有原生的录屏功能(MIUI,Flyme等等定制系统里面都没见有)

3、有很多第三方app专门用于录屏功能,是目前一种比较成熟的方案,adb shell screenrecord指令虽然有人说,但是用的不多

再去问谷歌,谷歌第一条就给了我一系列专门用于屏幕录制的app,各有特色,原文地址:http://www.hongkiat.com/blog/android-screen-recording-apps/

这里推荐一款我用起来感觉还不错的一款app:Rec.

GooglePlay下载地址:https://play.google.com/store/apps/details?id=com.spectrl.rec

如果你没有翻墙,或者手机没有安装谷歌框架,推荐一个可以直接下载其apk包的地址:https://apkpure.com/region-free-apk-download,将上面的url复制到它的大输入框里就能下载相应apk了,但是从这里下载的apk在关闭时会经常弹出一个全屏的广告

在我魅蓝note2(Android 5.1)上可以很流畅的运行,录出来的视频也清晰没有卡顿,30秒钟视频大小在2m左右,在天天模拟器上不能进行录制,有知道原因的朋友希望能告诉我。

这个app可以做很多实用的配置,如下图:

这里的size就是输出视频文件大小,它的默认值为手机屏幕的像素数,比如720x1280,1080x1920,这里我推荐使用720*1280 8m码流,这个配置已经可以清晰的看到屏幕上所有的元素了,而且可以减少视频文件的大小,延长录制时间

Bit rate:这里在1280*720的分辨率下使用8m码流(注意这里是动态码流,也就是说你的页面元素越复杂生成的视频文件就越大)已经可以清晰的显示页面元素了。这里要提示一下,8M为最大的动态码流,如果你的页面5颜六色或者有大量的图片要展示,使用8m录出来很卡的话,建议增大这个码流率,如果页面元素非常简单,颜色也比较统一,就不用管了。

Duration:录制的时间,默认5分钟,时间越长相应的视频文件大小也就越大,根据实际需要来设置,一般20-30s就足够应付日常需要(注:这个软件的免费版最长只支持录制5分钟,可以在app内购买)

Audio:是否录制声音(注:免费版最长支持录制30s的声音)

FileName:录制好文件的文件名,默认storage/emulated/0/Movies/screen-recording.mp4,文件放置的目录可以在app的setting页里设置,第一行就是

这个app有个很人性化的功能,就是在点击了record以后会用toast的形式进行10s的倒计时,在这宝贵的10s中里可以迅速切换到自己需要录制的app,并做好准备

如果录制到一般不想录了,可以下拉状态栏,点击取消

录制时间结束以后,可以用手机自带的文件浏览器storage/emulated/0/Movies/文件夹下浏览刚刚录制好的文件,并且可以用手机自带视频播放器打开

据我的录制结果来看,一个画面元素少,颜色单一的,30秒视频录像,320*640,大小约在2-3m,非常节省空间,甚至比一张照片都小

在录制demo的时候,推荐把触摸位置也展现出来,方便观看者想象你的手指移动,方法是进入安卓系统的设置->开发人员选项->显示触摸操作 打开

这样在点击屏幕的时候就会有小白点表示出来

那么一个更复杂的问题,如何将录制好的MP4文件转换成gif动图呢

我再百度上搜索解决方案,多数都提示我下载一些格式转换软件,我用了一下“格式工厂”,和“视频GIF转换器1.2.0 免费版”,转换出来的gif颜色糊成一块,而且非常卡顿,基本没法看。如下图

于是我又去问谷歌

习惯性的打开谷歌第一个给出的地址http://ezgif.com/video-to-gif

这是一个在线转换是文件到gif图片的网站,虽然是在线转换,但是却非常专业,可以调很多有用的参数,最重要的是转换完后的图片质量甩上面两款软件十条街

步骤也很简单:

需要先上传给它一个视频文件(60m)一下,大小越低越好

出乎我意料的是在上传完毕视频文件后,这个网站居然还支持视频的预览,还可以控制生成gif的时间段,帧数,大小等,我都快感动哭了

Start time 填开始转换的起始点秒数

End time 填结束时候的秒数,也可以在视频预览框里拖动滑块然后点击蓝色按钮自动帮你填

size 使用320*AUTO可以达到文件大小和清晰度的平衡,推荐选择,默认的比较大,不要使用默认

Frame rate:每秒帧数,默认是10,这样播放起来比较卡顿,建议选择20

其他的不用管,直接点击convert然后下载就好,下面给一个我转好的例子(csdn会对图片进行一定程度的压缩,看起来要比我上传的gif要模糊一点)

注意:同一个gif在ie下和在chrome下显示的流畅度是不同的,ie下会卡很多

Android屏幕录像转换GIF解决方案相关推荐

  1. android 屏幕录像

    第一种方法:  也是本人目前在用的.需要root权限,安装在genymotion上. 下载轮 :  http://download.csdn.net/detail/michael1112/955120 ...

  2. Android 屏幕录像教程

    一直以来,在 Android 系统上录制屏幕都是件令人困扰的事情.虽然第三方录屏工具多不胜数,但无一不要 Root 权限,且兼容性较差. 而在 Android 4.4 上,屏幕录制终于被深度集成在系统 ...

  3. Android 系统(186)---最易懂的Android屏幕适配解决方案--总结版

    最易懂的Android屏幕适配解决方案--总结版 本文参考自: Google的官方权威适配文档 郭霖:Android官方提供的支持不同屏幕大小的全部方法 Stormzhang:Android 屏幕适配 ...

  4. android4.2屏幕录像,android——使用自带录屏工具进行屏幕录像

    在做开源项目的时候,想传一个gif效果图上去.但是,要有连贯的动画效果.所以,就想到先录制视频,然后视频转gif.但是,用第三录屏软件总是不完美. 那么,怎么办呢? android4.4 提供了自带录 ...

  5. Android开发:最全面、最易懂的Android屏幕适配解决方案

    目录 Android屏幕适配解决方案.png 定义 使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果 相关重要概念 屏幕尺寸 含义:手机对角线的物理尺寸 单位:英寸(inch ...

  6. Android屏幕适配解决方案

    目录 Android屏幕适配解决方案.png 定义 使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果 相关重要概念 屏幕尺寸 含义:手机对角线的物理尺寸 单位:英寸(inch ...

  7. 目前Android最全面、最易懂的Android屏幕适配解决方案

    前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文档 郭霖: Android官方提供的支持不同屏幕大小的全部方法 Stormzhang ...

  8. android设置布局高度自适应,4种Android屏幕自适应解决方案

    Android支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源.本文就介绍了4中Android屏幕自适应解决方案. 一.细说layout_weight 目前最为推荐的Andr ...

  9. Android 屏幕适配:最全面的解决方案

    Android 屏幕适配:最全面的解决方案 参考文章: (1)Android 屏幕适配:最全面的解决方案 (2)https://www.cnblogs.com/onelikeone/p/9583446 ...

最新文章

  1. python3.9.0 print_关于 Python 3.9,那些你不知道的事
  2. bugzilla dbd-mysql_Linux下安装Bugzilla——完整版
  3. MATLAB信号处理之常用信号的表示
  4. 如何处理SAP Fiori gateway service使用过程中遇到的404 error
  5. java 缓存分页_基于redis做缓存分页
  6. 关于C语言static定义函数类型的具体解释
  7. 使用Encog,ROME,JSoup和Google Guava进行博客分类
  8. 【Kafka】failed due to invalid credentials with broker older than 1.1.0
  9. 人工智能目标检测模型总结(一)——R-CNN、Fast R-CNN、Faster R-CNN
  10. vivaldi浏览器_两款可以提升效率的网络浏览器
  11. 使用pdfbox将多个pdf合成一个pdf
  12. 一步步学习SPD2010--第八章节--理解工作流(8)--使用Visio映射工作流
  13. cannot import name 'izip_longest'
  14. first DG方法:二维ODE的边值问题
  15. php刷网站关键词排名,网站关键词排名如何刷点击流量?
  16. Direct Show学习方法
  17. 免费备份工具FreeFileSync
  18. 未能检测服务器连接失败,被控链接失败处理检查方法
  19. 活用WINDOWS,彻底保护隐私
  20. Java3D实现三维显示

热门文章

  1. 燕十八公益教程-学习感想
  2. Laravel6通过jwt(tymon/jwt-auth)实现API用户无感刷新TOKEN
  3. 人脸识别/车牌识别系统视频智能分析平台EasyCVR如何配置开启HTTPS协议?
  4. 如何用树莓派搭建远程服务器 (zerotier)
  5. 独家首发“JVM超硬核笔录”,连阿里面试官都赞不绝口(超清PDF+Xmind思维导图)
  6. 长春理工大学c语言题库word,长春理工大学DSP课本课后习题答案.docx
  7. matlab cplex 混合整数规划,Leapms + cplex解决 混合整数规划问题
  8. Cocos2dx学习笔记(三)背景、文字
  9. html实现原理和流程图,html5实现流程图
  10. 转载:程序员的十层楼