感谢网友cjd6568358的帮助,新版的Android系统截屏功能已经实现,需要的朋友请移步项目主页:https://github.com/Android-ScreenShot/AndroidScreenShotService(别忘点个star哦)

(转载请注明出处:http://blog.csdn.net/buptgshengod)

1.背景

android系统的系统截屏功能是google封装起来的,也是大家都很想获得的,经过一个多月的漫长研究,博主终于成功的在android新版本也就是4.3以上版本实现了系统截屏。如果大家想更好的了解这些知识,我建议您先把android截屏源码捕获以及android截屏尝试方法总结看完再来接着看。下面这种方法是接着上面两篇博客的内容。首先先奉献一张我的截图。

2.需要满足的条件

1.root的手机

2.android4.1以上源码

3.基本的刷机知识,或是用刷机软件

3.主要步骤

(1) 编译自己的系统

因为控制截屏功能的SurfaceControl在源码中是@hide隐藏起来了(详见android截屏源码捕获)。我们要将这个文件里面的所有注释信息全部删除,事实证明只删除“@hide”是无法编译通过的。然后通过shell进入源码目录执行

source build/envsetup.sh

(激活make,mm等命令)

再执行(选择版本,没有可不必)

lunch

之后执行

make -j6

将生成的系统烧到手机中。(网上有教程)

(2)编译自己的sdk

接着上面的make完之后,执行以下命令,生成自己的去掉SurfaceControl中“@hide”的sdk。

make PRODUCT-sdk-sdk

编译完sdk将其导入eclipse,如果我们新建工程import android.view.SurfaceControl;不报错,说明sdk生成成功。

之后就可以通过返回bitmap获得屏幕截图。

bp=SurfaceControl.screenshot(width,length);

但是,这个工程不能在eclipse里编译,因为我们要在AndroidManifest.xml中加入以下代码,使得程序是系统级的app。

android:sharedUserId="android.uid.system"

(3)源码中编译app

将调试好的app(可以用我提供的版本),放到源码目录/packages/apps下面。编写Android.mk文件(根据需要自己修改)

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)#LOCAL_DEX_PREOPT := falseLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := SimpleScreenshot
LOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)
LOCAL_CERTIFICATE := platform

上面这句表明是系统级别的app

用命令mm进行编译,将生成的apk通过adb shell命令push到手机的/system/apps里就可以了。

提供一个demon供参考吧,这个是我从网上找的,然后修改成4.3能用的,不懂的可以留言讨论。

资源下载

android 4.3 操作源码实现系统截屏(暂无移植性)相关推荐

  1. 【汇编语言实战】一元二次方程ax2+bx+c=0求解(含源码与过程截屏,可修改参数)

    目录:

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

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

  3. Android 系统(78)---《android framework常用api源码分析》之 app应用安装流程

    <android framework常用api源码分析>之 app应用安装流程 <android framework常用api源码分析>android生态在中国已经发展非常庞大 ...

  4. android系统源码之 系统应用安装过程(下)

    android系统源码之 系统应用安装过程(上) :http://blog.csdn.net/king1425/article/details/70135813 下图是PackageParser主要数 ...

  5. 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码

    http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...

  6. Android录音下————AudioRecord源码分析

    Android录音下----AudioRecord源码分析 文章目录 Android录音下----AudioRecord源码分析 一.概述 1.主要分析点 2.储备知识 二.getMinBufferS ...

  7. 使用Android Studio导入安卓源码

    1 背景 这篇文章主要说明的是用它来看源码的相关配置(该实例依据官方源码进行配置说明).在android源码中发现有一个development/tools/idegen目录,查了一下发现是生成IDE的 ...

  8. Android上百实例源码分析以及开源分析集合打包

    感谢网友banketree的收集,压缩包的内容如下: 1.360新版特性界面源代码 实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件.但源码好像是c++. 2.aidl跨进程调 ...

  9. Android contacts 联系人 通讯录 源码 完全解析

    Android contacts 联系人 通讯录 源码 完全解析 1简介 2软件架构 3各功能模块分析 1联系人数据的显示 1联系人列表显示 2联系人详细信息数据的显示 2联系人数据的编辑和存储 1编 ...

最新文章

  1. PL/SQL导入/导出dmp文件-Oracle表空间不一致
  2. 紧致差分的matlab程序,对流占优扩散方程的一种新C—N 紧致差分格式
  3. Winform中设置ZedGraph曲线图的水平与竖直参考线
  4. cmake / cmake --build 如何理解
  5. 长度最小的子数组--滑动窗口
  6. mysql 高版本检索外键_第05期:外键到底能不能用?
  7. codeforces 483B Friends and Presents 解题报告
  8. linux下 c语言 用write open二进制写文件,Linux下用C语言fopen、fread和fwrite函数对二进制文件的操作-Go语言中文社区...
  9. RS-485总线和Modbus通信协议的关系
  10. Codeforces 505 A Mr. Kitayuta's Gift【暴力】
  11. NYOJ71-独木舟上的旅行
  12. Python安装和几种Python编程工具介绍
  13. android mediaplayer单曲循环播放,android mediaplayer永远在ICS上循环播放
  14. 2022年系统分析师综合知识考点整理
  15. YOLO5Face:为什么要重新发明人脸检测器
  16. Rstudio的安装操作
  17. json转义问题(消除反斜杠及{}外面多余的“)
  18. 岁末年初,为你打包了一份技术合订本
  19. u盘被写保护?几行代码轻松搞定
  20. 保罗·艾伦去世:他是微软帝国缔造者,最慷慨的慈善家

热门文章

  1. 吴恩达机器学习Ex2
  2. Unable to handle kernel paging request at virtual address 问题定位
  3. 安卓实现定位功能的4种方式
  4. mysql-5.7.18-winx64 安装 net start mysql 发生系统错误2
  5. spring boot地一讲
  6. 惠普打印机节能环保认证证书_学生在家学习 入门级喷墨打印机 300元-500元档
  7. mysql schedule event,MySQL 定时器event
  8. as工程放到源码编译_关于AS高版本SDK编译生成的apk放入低版本android源码中集成编译...
  9. h5红包雨代码_html5移动端手机微信抢红包雨代码
  10. matlab编写识别手写数字_用于图像识别的五大最佳编程语言!