androidscreencap源码,android后台截屏实现(3)--编译
screencap
修改好之后就要编译了,screencap的编译是要在源码环境中进⾏的。
将修改后的screencap.cpp⽂件替换源码中的原始⽂件,然后修改screencap的Android.mk⽂件,修改后的⽂件如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
screencap.cpp
LOCAL_SHARED_LIBRARIES := \
libcutils \
libutils \
libbinder \
libskia \
libui \
libgui
电脑如何截屏LOCAL_MODULE:= libscreencapservice
LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE_TAGS := optional
LOCAL_CERTIFICATE := platform
LOCAL_C_INCLUDES += \
external/skia/include/core \
external/skia/include/effects \
external/skia/include/images \
external/skia/src/ports \
external/skia/include/utils
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的机器才成功截屏的。因此跟⼈觉得这种截屏⽅式不具有普适性。
android后台截屏实现(2)--screencap源码修改
⾸先到screencap类在Android源码中的位置,/442/frameworks/base/cmds/screencap/screencap.cpp
源码如下: /* * Copyright ...
android后台截屏实现(1)--源码编译
前段时间接到任务要实现后台截图并上传的功能,在⽹上查了好久,发现遇到这类问题的⼈还不少.经过⼀番对⽐后发现还是修改并编译源码中的screencap类然后通过JNI来调⽤这种⽅法⽐较可靠,⽽其他的在ja ...
Android系统截屏的实现(附代码)
1.背景 写博客快两年了,写了100+的⽂章,最⽕的⽂章也是⼤家最关注的就是如何实现android系统截屏.其实我们google android_screen_ ...
Android长截屏-- ScrollView,ListView及RecyclerView截屏
Android 长截屏原理
Stick hero ";攻略";, android 代码编写与分析(后台截屏, 后台模拟点击)
论⽂写完,感觉头脑好久没被灵感刺激了,前些天室友介绍了个⼩游戏,我突然来了灵感可以写的简单的android 程序实现⾃动运⾏.主要的过会为三步: 1,Android 屏幕的获取.因为安全的原因,过程⽐ ...
Android⼿机截屏
刚开始打算做⼀个简单的截屏程序时,以为很轻松就能搞定. 在Activity上放⼀个按钮,点击完成截屏操作,并将数据以图⽚形式保存在⼿机中.动⼿之前,⾃然是看书和⽹上各种查资料.结果发现了解的知识越多 ...
android⼿机截屏、录屏
1. ⼿动截屏,通过其他第三⽅软件发送截图,或者从⼿机取出截图
2. 使⽤命令截图,将截图保存到⼿机,再拉取到电脑 #!/bin/sh #运⾏ sh screenshot name picName=$ ...
Android代码截屏
随机推荐
idea ⼯程添加svn关联
1.想启⽤idea的SVN插件还需要在idea配置⼀下(Ctrl + Alt + S),如下图所⽰:
2.接下来启⽤idea的版本控制插件(这⾥当然是启⽤Subversion了),打开“VCS”菜单项 ...
建模算法(六)——神经⽹络模型
(⼀)神经⽹络简介 主要是利⽤计算机的计算能⼒,对⼤量的样本进⾏拟合,最终得到⼀个我们想要的结果,结果通过0-1编码,这样就OK啦 (⼆)⼈⼯神经⽹络模型 ⼀.基本单元的三个基本要素 1.⼀组连接(输 ...
(C/C++ interview) Static 详解
たくさんの数式 / Many Formulas AtCoder - 2067 (枚举⼆进制)
Problem Statement You are given a string S consisting of digits between 1 and 9, inclusive. You can ...
Redis常⽤操作--------SortedSet(有序集合)
1.ZADD key score member [[score member] [score member] ...] 将⼀个或多个 member 元素及其 score 值加⼊到有序集 key 当中. ...
Mybatis3——使⽤学习(⼀)
⽬录 Mybatis Mybatis参考资源 Mybatis 使⽤ 肯定TM要跑起来 XML映射配置⽂件 Mapper XML ⽂件 Mybatis Mybatis参考资源Mybatis官⽹⼿册:h ...
python+selenium环境配置及浏览器调⽤
最近在学习python⾃动化,从项⽬⾓度和技术基础⾓度出发,我选择了python+selenium+appium的模式开始我的⾃动化测试之旅:
⼀.python安装 ⼆.python IDE使⽤简介 ...
Mac安装PhoneGap3
Mac安装PhoneGap3第⼀步需要安装NodeJS,在Mac下有⼀个.pkg安装包(Mac OS X Installer (.pkg),下载下来⼀路点击就可以安装成功了.在Terminal控制台输 ...
js备忘录_1
js没有重载,只有同名覆盖,参数任意 所有参数封装在arguments数组中 Uncaught ReferenceError: d is not defined js引擎会当做变量处理 functio ...
awk 数组
Arrays Arrays are subscripted with an expression between square brackets ([ and ]). If the ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论