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

感谢网友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 := false

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := SimpleScreenshot
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

LOCAL_CERTIFICATE := platform

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

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

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

资源下载

 

时间: 2024-08-20 21:55:17

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

android 4.3操作源码实现系统截屏

1.背景 android系统的系统截屏功能是google封装起来的,也是大家都很想获得的,经过一个多月的漫长研究,博主终于成功的在android新版本也就是4.3以上版本实现了系统截屏.如果大家想更好的了解这些知识,我建议您先把android截屏源码捕获以及android截屏尝试方法总结看完再来接着看.下面这种方法是接着上面两篇博客的内容.首先先奉献一张我的截图. 2.需要满足的条件 1.root的手机 2.android4.1以上源码 3.基本的刷机知识,或是用刷机软件 查看本栏目更多精彩内容

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

1.背景                     写博客快两年了,写了100+的文章,最火的文章也是大家最关注的就是如何实现android系统截屏.其实我们google android_screen_shot就会找到很对办法,但那些都是很多年前的了,在android4.*版本后,android对于源码进行了更正,使得以前的方法都不能够使用.        感谢cjd6568358这名网友,我们一起讨论,最终由他实现了android系统截屏功能,为了让以后想要这个功能的coder可以少走一些弯路,

Android实现屏幕锁定源码详解_Android

最近有朋友问屏幕锁定的问题,自己也在学习,网上找了下也没太详细的例子,看的资料书上也没有有关屏幕锁定程序的介绍,下个小决心,自己照着官方文档学习下,现在做好了,废话不多说,先发下截图,看下效果,需要注意的地方会加注释,有问题的朋友可以直接留言,我们共同学习交流,共同提高进步!直接看效果图: 一:未设置密码时进入系统设置的效果图如下:   二:设置密码方式预览: 三:密码解密效果图 四:九宫格解密时的效果图 下面来简单的看下源码吧,此处讲下,这个小DEMO也是临时学习下的,有讲的不明白的地方请朋友

Android实现屏幕锁定源码详解

最近有朋友问屏幕锁定的问题,自己也在学习,网上找了下也没太详细的例子,看的资料书上也没有有关屏幕锁定程序的介绍,下个小决心,自己照着官方文档学习下,现在做好了,废话不多说,先发下截图,看下效果,需要注意的地方会加注释,有问题的朋友可以直接留言,我们共同学习交流,共同提高进步!直接看效果图: 一:未设置密码时进入系统设置的效果图如下: 二:设置密码方式预览: 三:密码解密效果图 四:九宫格解密时的效果图 下面来简单的看下源码吧,此处讲下,这个小DEMO也是临时学习下的,有讲的不明白的地方请朋友直接

Android消息循环机制源码深入理解

Android消息循环机制源码 前言: 搞Android的不懂Handler消息循环机制,都不好意思说自己是Android工程师.面试的时候一般也都会问这个知识点,但是我相信大多数码农肯定是没有看过相关源码的,顶多也就是网上搜搜,看看别人的文章介绍.学姐不想把那个万能的关系图拿出来讨论. 近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子. andriod提供了 Handler 和 Looper 来满足线程间的通信.例如一个子线程从网络上下载了一副图片,当它下

android的actionbar的源码位置在哪?求大神帮助

问题描述 android的actionbar的源码位置在哪?求大神帮助 RT :在哪修改系统的actionbar,在framworks层如何修改actionbar

深度理解Android InstantRun原理以及源码分析

深度理解Android InstantRun原理以及源码分析 @Author 莫川 Instant Run官方介绍 简单介绍一下Instant Run,它是Android Studio2.0以后新增的一个运行机制,能够显著减少你第二次及以后的构建和部署时间.简单通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果.而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果. 传统的代

Spark jdbc postgresql数据库连接和写入操作源码解读

概述:Spark postgresql jdbc 数据库连接和写入操作源码解读,详细记录了SparkSQL对数据库的操作,通过java程序,在本地开发和运行.整体为,Spark建立数据库连接,读取数据,将DataFrame数据写入另一个数据库表中.附带完整项目源码(完整项目源码github). 1.首先在postgreSQL中创建一张测试表,并插入数据.(完整项目源码Github) 1.1. 在postgreSQL中的postgres用户下,创建 products CREATE TABLE pr

求一份android照片涂鸦的源码

问题描述 求一份android照片涂鸦的源码 要求能将照片缩放处理啊,现在做出来的不支持缩放啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 解决方案 这个你网上自己搜搜好了,应该有很多的 解决方案二: http://blog.csdn.net/sjf0115/article/details/7333718 参考. 另外可以找个有类似功能的APP,反编译一下.,. 解决方案三: https://github.com/bm-x/PhotoView