在Android中加入抓屏軟體fbdump

來源:互聯網
上載者:User

轉自http://www.linuxidc.com/Linux/2011-02/32328.htm

 

目標:將fbdump-0.4.2放到andrioid中運行,能夠抓framebuff中的案頭。

方法:

1 下載http://linux.softpedia.com/progDownload/fbdump-Download-24576.html

將fbdump解壓縮到externel目錄,建立編譯檔案:external/fbdump-0.4.2/Android
.mk

內容如下:

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 <fcntl.h>

 

上面的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

當然是否真的是這個原因造成的還得靠你自己分析。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.