前段时间接到任务要实现后台截图并上传的功能,在网上查了好久,发现遇到这类问题的人还不少。经过一番对比后发现还是修改并编译源码中的screencap类然后通过JNI来调用这种方法比较可靠,而其他的在java层实现的基本都是只能截取Activity,在service里是不行的,还有一个是在java层去读取framebuffer然后解析什么的,原理上和screencap是一样的,但是看到最后发现博主把关键的一步(把读取到的数据转换程像素)省略了,于是只好老老实实来用screencap了。

选择好方向接下来就看路要怎么走了。要在源码中编译,首先要有源码,由于特殊原因想直接下载源码比较困难,刚好同事有一份4.4.2的,于是就直接拿来用了,其实她也是在网上下的别人分享的,不过能用就好。源码包不到4G,解压后8G+。

编译环境:

ubuntu14.04  64位:当时个人电脑上刚好在用这个

JDK1.6  64位:必须这个版本,而且必须是oracle的(最起码这个版本的源码是这样)。

由于编译源码需要很多的依赖库,所以先安装他们,免得几分钟一出错:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev
x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-glx  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev lib32readline6-dev gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib

(这是从参考链接里copy过来的,我当时安装的只是其中一部分,因为我有些库我早就安装过了)

安装好依赖库之后就可以开始编译了。

切换到源码所在目录,执行

source build/envsetup.sh

然后执行

lunch

选择一个要编译的类型

1

执行

make

此时源码就开始编译了。

如果该安装的库都安装了,编译过程一般不会出现什么问题,几个小时后就编译完了。

至此,安装源码编译部分完成。

oracle下载老版本的jdk需要注册,略显麻烦,我把我下的放网盘了

链接: http://pan.baidu.com/s/1jG45Veu 密码: muc2

参考链接:Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA

最新文章

  1. Oracle数据库操作分类DDL、DML、DCL、TCL类别清单异同
  2. (翻译)Angular.js为什么如此火呢?
  3. css sprites介绍
  4. 在Struts2中配置Action
  5. ContentProvider 使用示例(转载)
  6. LBS由ip查经纬度
  7. GIT Learning
  8. 持有对象:总结JAVA中的常用容器和迭代器,随机数 速查
  9. apache开源项目--log4j
  10. Python - Python2与Python3合理共存Windows平台
  11. C字符串处理函数
  12. 基于IPv6的数据包分析(第三组)
  13. POJ-1679 The Unique MST (判断最小生成树的唯一性)
  14. KMP,深入讲解next数组的求解(转载)
  15. Linux 小知识翻译 - 「克隆」
  16. Confluence 6 自动添加用户到用户组
  17. content-box与border-box区别
  18. Mysql 插入时间时报错Incorrect datetime value: '' for column 'createtime'
  19. ie浏览器升级的正确姿势
  20. 【python】matplotlib进阶

热门文章

  1. C++输出hello world 详细注释
  2. jQuery幻灯插件:Nivo Slider
  3. Wcf+EF框架搭建实例
  4. MSSQL 字符串替换语句
  5. Windows7电脑上不去网,ipconfig查询时默认网关会出现0.0.0.0问题的解决
  6. MYSQL注释
  7. PHP XML Parser
  8. 武汉科技大学ACM:1004: 零起点学算法36——3n+1问题
  9. java事件处理
  10. decode()与case then 学习与使用