安卓高效率获取截图问题?

手机有Root,需要能在100ms左右完成截图并返回Bitmap的功能

目前了解到的想要获取到截图的Bitmap有几种

1:利用系统命令screenshot/screencap -p ,然后再读取,受手机限制,至少1500-2000ms,我在魅族MX5上反而用了3000。。完全无法忍受。

2:利用ddmlib,效率更低。。

3:读取framebuffer,这个在4.2以后的版本就失败了。只能读取黑屏或者带手机厂商logo的黑图。

4:反射系统自带的SurfaceControl方法,失败的,操作后没有任何提示,也得不到结果。

5:自编译的android.jar。方法可以调用,依然是操作后没有任何提示,应该是要添加systemuid。但是这样编译的话,只能在少部分手机上才能用,没什么意义。

6:在5.1以上版本使用MediaProjection,只需要60ms,不过不兼容5.1以下版本

目前用的是第一种,不过截屏效率实在太慢了。

不知道还有没有别的效率高点的办法,求大神赐救~~

阅读 8.5k
5 个回答

直接获取绘图缓存信息 view.getDrawingCache()
然后 createBitmap 我这么做的

新手上路,请多包涵

手机没有root,要截取的屏幕上有surfaceview,怎么实现截屏功能?

新手上路,请多包涵

你好 我是一名在校大学生 学安卓开发的 现在想做一个安卓共屏的软件 做了好久 也研究了好多东西 都没能搞定 在博客上看到您也在研究这方面的技术 希望咨询您一点技术上的问题 因为不知道怎么联系您 如果方便的话 您加我QQ 381855657 古人有云 帮助别人的同时自己也会快乐 (^__^) 嘻嘻 不胜感激!!!!!

没朋友 2016/9/12 19:44:27

新手上路,请多包涵

你好 你的 安卓高效获取截图问题 现在 有更好的方案了么
我现在 也需要一个这样的 功能 ,打算 试试 framebuffer 见你里面说 4.2以后不能用了 这个是真的吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题