android下截屏的思路很簡單,就是去讀framebuffer,android下framebuffer在/dev/graphics/fb0而不是linux下的/dev/fb0,讀完以后保存圖像數(shù)據(jù)到文件即可。至于保存成png格式還是jpg格式都可以,有相應(yīng)的庫支持就可以了。
我承認(rèn),我沒有完全的把這個功能作完整,因?yàn)榕龅搅藱?quán)限的問題。也就是在打開/dev/graphics/fb0這個文件因?yàn)闆]有權(quán)限的緣故而失敗了,那么接下來的讀取framebuffer的步驟也就沒有辦法執(zhí)行了。
目前所能做到的則是將截屏程序編譯成可執(zhí)行程序,在有root權(quán)限的機(jī)器上執(zhí)行這個可執(zhí)行程序,運(yùn)行正常。
當(dāng)我把代碼編譯成動態(tài)鏈接庫,在java端調(diào)用時,不能夠成功。這是因?yàn)闄?quán)限的問題,權(quán)限被屏蔽的這部分代碼可以在android的源碼:system/core/init/devices.c中找到,可以看到只有root用戶或者屬于graphics組的用戶才可以訪問/dev/graphics/fb0
不知道這個問題如何解決,如果有哪位哥們知道解決方案,盼望告訴我,先謝啦。
我就不發(fā)代碼了,李先靜的博客里面
有個例子,可以直接使用。