修改好之后就要编译了,screencap的编译是要在源码环境中进行的。

将修改后的screencap.cpp文件替换源码中的原始文件,然后修改screencap的Android.mk文件,修改后的文件如下:

[plain] view plaincopy
  1. LOCAL_PATH:= $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_SRC_FILES:= \
  4. screencap.cpp
  5. LOCAL_SHARED_LIBRARIES := \
  6. libcutils \
  7. libutils \
  8. libbinder \
  9. libskia \
  10. libui \
  11. libgui
  12. LOCAL_MODULE:= libscreencapservice
  13. LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog
  14. LOCAL_MODULE_TAGS := optional
  15. LOCAL_CERTIFICATE := platform
  16. LOCAL_C_INCLUDES += \
  17. external/skia/include/core \
  18. external/skia/include/effects \
  19. external/skia/include/images \
  20. external/skia/src/ports \
  21. external/skia/include/utils
  22. include $(BUILD_SHARED_LIBRARY)

LOCAL_MODULE指定生成文件的名字;

BUILD_SHARED_LIBRARY告诉编译器生成文件的类型是动态库

-llog引入打印日志的库

由于修改后的screencap引入了jni.h,去系统安装的jdk下的找到该头文件并拷贝到screencap目录下。1.6版本的jni.h在jdk*/include/下,jni.h又需要jni_md.h,该文件在jdk*/include/linux/下。将这两个文件一起拷贝到screencap目录。

编译动态库

两种方法:

1、mm命令

在screencap目录下执行

mm

2、make命令

在源码根目录执行

make  libservicescreencap

一些问题

由于Android版本升级太快,源码一旦改动这种截屏方式就会出错,我在测试时发现,442源码所编译的动态库无法在422系统上实现截屏,甚至都无法在444上截屏,最后还是找了台442的机器才成功截屏的。因此跟人觉得这种截屏方式不具有普适性。


原文地址: http://blog.csdn.net/lingfengxu/article/details/43488653

android后台截屏实现(3)--编译screencap相关推荐

  1. android后台截屏实现(2)--screencap源码修改

    首先找到screencap类在Android源码中的位置,/442/frameworks/base/cmds/screencap/screencap.cpp. 源码如下: [cpp] view pla ...

  2. Android后台截屏功能

    前言 最近公司领导要求我做一个截屏的功能,说是为了方便监控小屏.本来以为没什么难度,然后就答应了下来.谁知道全都是坑. 这里要说明一点,我这里做的Android程序是 安装在 Android小屏上和机 ...

  3. android 后台截屏代码,Android实现截图和分享功能的代码

    先给大家展示下效果图吧 直接上代码: xml的布局: android:id="@+id/btn_jp" android:layout_marginTop="10dip&q ...

  4. android截屏功能实现方式汇总【包括后台截屏】

    前言 对于android实现截屏功能,简单讲述一下可行的方法和之间的利弊 使用canvas View v = getWindow().getDecorView(); Bitmap bitmap = B ...

  5. Android实现截屏方式

    本文介绍了Android 实现截屏方式整理,分享给大家.希望对大家有帮助 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选取一部分 自动截取某个空间或者布局 截取长图 ...

  6. Android系统截屏的实现(附代码)

    1.背景 写博客快两年了,写了100+的文章,最火的文章也是大家最关注的就是如何实现android系统截屏.其实我们google android_screen_shot就会找到很对办法,但那些都是很多 ...

  7. Android实现截屏和截长图功能的几种方法

    一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...

  8. Android系统截屏监听工具

    Android系统截屏监听工具 做系统截屏通知的时候,找了很多资料,测试后发现要做挺多机型适配的,而且有时候会没有监听到,有时候又监听到多次,不能实现想要的效果.一下是最终的解决方案,已在足够多的手机 ...

  9. android 截长图 方法,Android实现截屏与截长图功能

    本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...

最新文章

  1. 004_Redis的String数据类型
  2. c/c++字符串混淆工具
  3. Uncaught TypeError: Cannot read property 'length' of null错误怎么处理?
  4. react-事件相关
  5. Web开发之二:什么是前端、什么是后端
  6. JSF学习笔记--JSF简介,JSF第一个应用程序
  7. 江苏计算机等级考试试卷,江苏省计算机等级考试程序设计 试卷.docx
  8. 路由器交换机防火墙无线AP基础理论知识总结
  9. mvc新增,上架及下架
  10. 剑圣一族x8鼠标驱动v1.21加强版
  11. Python中使用seek方法来移动文件指针的位置
  12. 阿里资深架构师总结:顶级高手都具备的四种思维模型
  13. 如何在Mac上快速显示桌面以便快速访问
  14. 占优策略名词解释_占优策略均衡
  15. 纯干货:Linux抓包命令集锦
  16. 字节跳动 数据分析 一轮技术面
  17. 【office 2007~office 2019】Excel日期选择控件插件安装
  18. templets/default/index.htm Not Found! 图文教程 织梦程序的安装方法
  19. C语言读书1000字报告,c语言实验一实验报告1000字范文.docx
  20. depth是什么意思啊(depth是什么意思啊英语)

热门文章

  1. C++ vector容器简单解释
  2. 新浪宣布2010年第四季度业绩 盘后跌4%
  3. WIN10下gnuplot 的安装
  4. ubuntu14.04环境下spyder的安装
  5. 量子遗传算法原理与MATLAB仿真程序
  6. 狄克斯特拉(Dijkstra)算法原理详细解释与实现(python)
  7. [云炬创业管理笔记]第三章打造优秀创业团队讨论4
  8. [云炬创业基础笔记] 第三章测试4
  9. 手撕 CNN 经典网络之 VGGNet(理论篇)
  10. hex editor怎么搜索代码_代码审计从入门到放弃(三) phplimit