摘要: 我们知道,DDMS可以很容易的获取Android 手机 的屏幕截图,那么它是怎么做到的呢?其实,android手机上有一个叫做FrameBuffer的设备,图像信息都是通过FrameBuffer写到手机屏幕上去的。因此可以通过读取此设备中的数据来获取当前正在显示的图像。当然DDMS也是这么做到的。FrameBuffer 对应的设备文件就是/dev/graphics/fb0。因此我们可以通过下面的代码读取屏幕图像数据。其中传入的参数fd为一个文件描述符,也可以是 socket描述符。这样我们就可以把从fb中读取的屏幕图像信息传递给我们自己的应用,从而获取手机屏幕信息。void framebuff 阅读全文
posted @ 2012-10-12 16:54 ansionchen 阅读(1860) 评论(0) 推荐(0)
摘要: 今天上班没事干,看看android的源码,发现在tool文件夹下有个screenshot的文件夹,好奇之下打开看看,原来是一个截屏幕的应用,于是速度打开,看到里面有个main方法,于是决定调教下此类,新建的java工程中复制这个类,但是需要引入ddmslib包里面的类,遂在源码里面搜索ddms,找到一个ddms.jar和ddmslib.jar于是把ddmslib.jar引入工程中。然后运行screenshot,等待。。擦,忘了这个需要启动模拟器,或者是devices,于是启动模拟器,再次ctrl+F11,这次结果还是错误,貌似是什么main的入口参数没写,于是在main的第一行加上args=n 阅读全文
posted @ 2012-10-12 16:51 ansionchen 阅读(385) 评论(0) 推荐(0)