感谢网友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 := SimpleScreenshotLOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)

LOCAL_CERTIFICATE := platform
上面这句表明是系统级别的app


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




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

资源下载



更多相关文章

  1. M2eclipse使用Maven编译Android下i-jetty
  2. 同步安卓源码错误:error: Cannot fetch CyanogenMod/android exte
  3. Mac系统下对Android(安卓)apk进行反编译
  4. 你确定已经掌握了adb的使用?
  5. Android源码50例汇总,欢迎各位下载 【转载自51CTO】
  6. Android系统移植与调试之------->如何修改Android设备的桌面背景
  7. Android系统APP安装流程
  8. Android解耦库EventBus的使用和源码分析
  9. Android(安卓)系统开发Android.mk的详解

随机推荐

  1. android UI布局 layer-list
  2. 移动应用测试框架—Calabash Android(安
  3. android小注意
  4. Android应用程序启动时发生AndroidRuntim
  5. Android
  6. android intent 最大传送内容 1m
  7. 【Linux】Lock cpu freq on Linux and An
  8. Android(安卓)P SystemUi启动流程
  9. Android下使用Logcat打印信息
  10. android 杀掉进程