设为首页 加入收藏

TOP

在Android中加入抓屏软件fbdump.
2014-11-24 07:48:44 来源: 作者: 【 】 浏览:1
Tags:Android 加入 软件 fbdump.

目标:将fbdump-0.4.2放到andrioid中运行,能够抓framebuff中的桌面。


方法:


内容如下:


LOCAL_PATH :=$(call my-dir)



include $(CLEAR_VARS)



charge_local_path := $(LOCAL_PATH)


LOCAL_SRC_FILES := src/main.c \


src/cmap.c \


src/surface.c \


src/convert.c \


src/fb.c \


src/vga.c \


src/vt.c \


src/options.c


LOCAL_MODULE := fbdump


LOCAL_FORCE_STATIC_EXECUTABLE := true


LOCAL_CFLAGS += -DPACKAGE='"fbdump"' \


-DVERSION='"0.4.2"' \


-DDEBUG


LOCAL_MODULE_TAGS := eng



LOCAL_STATIC_LIBRARIES := libminzip libunz libminui libpixelflinger_static libpng libcutils libstdc++ libc



include $(BUILD_EXECUTABLE)


修改文件fbdump-0.4.2/src/config.h


加入#undef SUPPORT_VGA16FB


fbdump-0.4.2/src/vt.c加入


#include




上面的Android.mk是我从其他工程复制过来的,粗略调整一下,有些冗余。


2 编译并打包到系统中。


3 运行测试:fbdump -fb /dev/graphics/fb0 >test.ppm



3 附注说明:有些嵌入式linux厂家的提供的linux 中的framebuff驱动不完成,导致fbdump运行直接出错。根据我目前经验(至少两种cpu)一般都是没有填充pseudo_palette,方法为:


修改probe函数,在register_framebuffer前加入这样几句:



//shuaiwen added begin


#define MAX_PALETTES 16


fbinfo->pseudo_palette = kmalloc(sizeof (u32) * MAX_PALETTES, GFP_KERNEL);


if (fb_alloc_cmap(&fbinfo->cmap, 256, 0) < 0) {


printk(KERN_ERR " Can't allocate color map\n");


goto free_video_memory;


}



//shuaiwen added end


当然是否真的是这个原因造成的还得靠你自己分析。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇S3C6410+Linux系统崩溃的问题咨询 下一篇利用BLCR加快Android的启动过程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)