Ⅰ 安卓截屏命令
在安卓开发中, 我们很多时候都要用到截屏这个功能。
有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine等Bug跟踪系统中上传截图), 有时是为了发布应用时要用的截图。
今天就来聊聊如何快速只用一句简单的命令就搞定截图。
由繁到简的演进:三种方法
这篇主要讲Linux系统下如何android手机截屏(当然了,Windows下也类似,可以自行尝试):
首先你的Linux中要安装了adb(也就是Android Debug Bridge,可以在你下载的Android的SDK的platform-tools文件夹中找到,只要把路径加入PATH环境变量就可以)。
而且你的Android手机须要开启了Develop options (开发者选项,要开启好像一般是在Settings(设置)里的About device(关于本机)中按7次Build number那个地方),如下:
那么截屏有哪几种方式呢?应该有很多,这里提供由繁到简的三种方法,也记录了小编从事Android开发之后的截屏方法的“演进”。哈哈,以前是挺蠢萌的(话外音:小编你只有蠢,没有萌,好不...):
1. 手动+adb命令
用你的手机的组合键来截屏(一般是同时按下Home键和电源键),然后用adb pull来取回本地:
adb pull /手机的截屏图片保存路径/xxx.png
2. 纯adb命令
1.使用screencap这个命令,配合adb命令来实现截图并保存到手机的/sdcard目录中:
adb shell screencap -p /sdcard/hello.png
2.用adb pull将手机中的文件取回本地:
adb pull /sdcard/hello.png
成功运行上面两行命令之后,你的家目录~中就会多出一个hello.png的图片。
当然了,截图时注意不要锁屏,不然截出来就是黑屏。
3. Shell函数+命令
第二种用adb命令的方式已经比较简单快捷了。但是,作为程序员,难道每次截屏都要输入这两个命令吗?简直不能忍。
程序员要学会“偷懒”
一般Ubuntu(或其他Linux发行版,例如Fedora)中默认的Shell程序是Bash。因此我们其实可以在.bashrc中写一个函数:
1.用你惯用的文本编辑器打开.bashrc
Ⅱ 安卓手机app里面ScreenCap有什么作用
录屏或者说截图
Ⅲ Android命令截屏srenncap pc 端adb截图成功,但是用代码执行为空白图
java层代码根本就获取不到root权限,
Runtime.getRuntime().exec("su -c 'screencap /mnt/sdcard/test.png'")
Ⅳ ADB怎么自动根据报停界面截屏
一、使用数据线连接手机截图
1、首先关闭手机管理软件(91助手、360助手等),然后运行【cmd】;
截图命令
adb shell /system/bin/screencap -p /sdcard/screenshot.png将截图复制到电脑盘中adb pull /sdcard/screenshot.png E:\download
2
二、手机无线截图(电脑与手机必须在同局域网内)
1、下载并安装《adbWireless》,需要root权限~
2、运行adbWireless,点击按钮启动adbWireless,然后会提示设备的IP地址;
3
3、输入 adb connect IP:端口号连接到手机,然后就可以截图了。。
截图命令 adb connect 192.168.1.106:5555 adb shell /system/bin/screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png E:\download
END
方法/步骤2
一句命令搞定截屏
在安卓开发中, 我们很多时候都要用到截屏这个功能。
有时是为了演示, 有时是为了报告问题(比如在Bugzilla, Jira, Redmine等Bug跟踪系统中上传截图), 有时是为了发布应用时要用的截图。
今天就来聊聊如何快速只用一句简单的命令就搞定截图。
2
由繁到简的演进:三种方法
这篇主要讲Linux系统下如何Android手机截屏(当然了,Windows下也类似,可以自行尝试):
首先你的Linux中要安装了adb(也就是Android Debug Bridge,可以在你下载的Android的SDK的platform-tools文件夹中找到,只要把路径加入PATH环境变量就可以)。
3
而且你的Android手机须要开启了Develop options (开发者选项,要开启好像一般是在Settings(设置)里的About device(关于本机)中按7次Build number那个地方),如下:那么截屏有哪几种方式呢?应该有很多,这里提供由繁到简的三种方法,也记录了小编从事Android开发之后的截屏方法的“演进
Ⅳ 如何在命令行截屏
1.在G1里的设置->应用程序->开发->里usb调试勾上
2.运行你的安装目录下的D:\unsetup\android-sdk-windows-1.5_r1\tools\ddms.bat,选择Device->Screen
capture就可以截屏了。
Ⅵ dell笔记本电脑的截屏命令快捷键是什么
1、Ctrl + PrScrn
2、Alt + PrScrn
3、Ctrl + Alt + A
介绍三种截屏的快捷键:
第一种:Ctrl + PrScrn 使用这个组合键截屏,获得的是整个屏幕的图片。
(6)android截图命令扩展阅读:
其他电脑快捷键命令:
CTRL+N新建一个新的文件
CTRL+O打开“打开文件”对话框
CTRL+P打开“打印”对话框
CTRL+S保存当前操作的文件
CTRL+X剪切被选择的项目到剪贴板
Ctrl+w 关闭当前网页
CTRL+INSERT 或 CTRL+C复制被选择的项目到剪贴板
SHIFT+INSERT 或 CTRL+V粘贴剪贴板中的内容到当前位置
另外,Android手机屏幕截图方法:同时按下电源键+音量调节键,Android 4.0截图成功后,图片会被保存在媒体库中。截屏后,只需要打开媒体库就可以找到刚才截取的屏幕图像了。
这个功能对于游戏玩家在不退出游戏的情况下可以很方便地截取游戏画面。
Ⅶ 如何在Android里面使用代码截屏
回答:Android SDK的截屏
方法步骤:如下
方法一:
(1)主要就是利用SDK提供的View.getDrawingCache()方法。网上已经有很多的实例了。首先创建一个android project,然后进行Layout,画一个按键
HelloAndroid.java实现代码为:packagecom.example.helloandroid;
这个代码会在按下app中按键的时候自动在手机的/sdcard/目录下生成一个时间戳命名的png截屏文件。
这种截屏有一个问题,就是只能截到一部分,比如电池指示部分就截不出来了。
(2)在APK中调用“adb shell screencap -pfilepath” 命令
该命令读取系统的framebuffer,需要获得系统权限:
(1). 在AndroidManifest.xml文件中添加
(3).利用系统的API,实现Screenshot,这部分代码是系统隐藏的,需要在源码下编译,
1).修改Android.mk, 添加系统权限
LOCAL_CERTIFICATE := platform
2).修改AndroidManifest.xml 文件,添加
权限
方法二:
Android ddmlib进行截屏
Android本地编程(Native Programming)读取framebuffer
(1)命令行,框架的截屏功能是通过framebuffer来实现的,所以我们先来介绍一下framebuffer。
Linux FrameBuffer 本质上只是提供了对图形设备的硬件抽象,在开发者看来,FrameBuffer 是一块显示缓存,往显示缓存中写入特定格式的数据就意味着向屏幕输出内容。所以说FrameBuffer就是一块白板。例如对于初始化为16 位色的FrameBuffer 来说, FrameBuffer中的两个字节代表屏幕上一个点,从上到下,从左至右,屏幕位置与内存地址是顺序的线性关系。帧缓存有个地址,是在内存里。我们通过不停的向frame buffer中写入数据, 显示控制器就自动的从frame buffer中取数据并显示出来。全部的图形都共享内存中同一个帧缓存。
方法三:Android截屏实现思路
Android系统是基于Linux内核的,所以也存在framebuffer这个设备,我们要实现截屏的话只要能获取到framebuffer中的数据,然后把数据转换成图片就可以了,android中的framebuffer数据是存放在 /dev/graphics/fb0 文件中的,所以我们只需要来获取这个文件的数据就可以得到当前屏幕的内容。
现在我们的测试代码运行时候是通过RC(remote controller)方式来运行被测应用的,那就需要在PC机上来访问模拟器或者真机上的framebuffer数据,这个的话可以通过android的ADB命令来实现。
注意:
1、需要在AndroidManifest.xml中加入代码:android:sharedUserId="android.uid.system"。
2、由于调用了@hide的API,所以编译得时候请使用makefile编译。或者通过在Eclipse中添加Jar文件通过编译。
3、此代码只在Android4.0中使用过,2.3的就没去做测试了。
补充说明:
利用TakeScreenShotService截图Android手机一般都自带有手机屏幕截图的功能:在手机任何界面(当然手机要是开机点亮状态),通过按组合键,屏幕闪一下,然后咔嚓一声,截图的照片会保存到当前手机的图库中,
对手机android源码中通过组合键屏幕截图的整个流程有个大体了解了,在改动中熟悉按键的捕获原理,并且清楚调用的截屏函数接口即可。
Ⅷ 为什么 Android 截屏需要 root 权限
android 截屏为什么需要root权限?
【主要原因】
andorid系统在调用截图功能的时候一般会调用命令的形式去截屏,而这些命令在普通用户权限下是没办法执行的,必须是在root用户权限下才能进行截屏。
【主要实现方式和原因】
传统截屏方式,采用读取 framebuffer 的方式实现截屏,需要root权限,Android 3.0以前android sdk提供的截屏方式。
SurfaceFlinger 方式截屏,在 Android 4.0 里提供的一种解决方案,改方案需要系统级权限READ_FRAMEBUFFER 权限,由于是系统权限也必须是root的权限下才可以进行截屏
由于目前大多数android开发的基础版本都是在4.0的基础上开发,所以会看到很多第三方的截屏软件截屏需要在root的权限下才能进行截屏。
【另外】
并不是所有的截屏都必须需要root的权限,其实在众多截屏方案中还有一种截屏方案不需要root权限也可以截图。
主要实现方式
Android 截屏 -- ddms方式。
实现原理
主要是通过执行adb shell命令的形式进行截屏。而调用这些命令会实际上也要系统权限,但是这个方法特殊的地方就在他其实是通过adb shell进行截图的时候把命令个了设备上的 adbd 守护进程,而这个进程间接的启动了screencap,也就是开启了上面的方法二中的SurfaceFlinger 截屏方式的后段截屏步奏,所以导致不需要root权限进行截屏。
其中:
adbd 是以 shell 用户执行的, 而系统为 shell 用户分配 graphics 组,所以 shell 用户是有权限调用 surfaceflinger 的接口的。
【最后】
推荐使用不需要root权限截屏的方案。
Ⅸ 安卓版的按键精灵怎么截屏
手机插上USB线链接电脑
电脑打开安卓按键精灵助手
链接你的手机,提示链接成功后下一步
点击截屏,即可截图手机的屏幕!
2-4步骤我用图片+红框标示了,第一步就无需细说了吧~~要点是第3部必须链接成功手机!
Ⅹ 如何在安卓Wear上截图
给你的安卓Wear表盘截个图,是一个展示的便捷方法。遗憾的是,在安卓Wear设备上截图并不是一件那么容易的事。实际上,要是不连接到电脑上并使用命令行捕获和导出截图的话,你是不能在你的手表上截图的。
如果你很熟悉怎样使用安卓设备以及ADB命令,很可能你已经知道接下来步骤应该怎么做了。但是对于那些还不是那么熟悉的人来说哦,你需要下载并且安卓SDK工具以及适合你设备的驱动程序。你可以先浏览安卓开发者网页,在上面你就能找到安卓SDK以及开发者工具。
安装了安卓SDK之后,在尝试给你的安卓Wear设备截图之前,你需要在你的手表上启用开发者模式。你可以点击进去“设置”,然后是“关于”,点击“构建版本号”总共七次,或是你看到一个提示说明你已经是一名开发者了。然后一个新的“开发者选项”就会在“关于”列表里面出现(如上图)。
从这儿开始,通过USB连接你的手表到电脑上,然后输入几个ADB指令。记得,如果是Mac用户,你需要在指令之前添加“/”(不需要加引号)。
1.截图:
2.输入指令:adb shell screencap -p /sdcard/screenshot.png
3.把截图转到你的电脑上去
4.输入指令:adb pull /sdcard/screenshot.png
整个输入ADB的流程可能有点吓人,又有点让人疑惑,但是不要沮丧。每个人都需要从某个地方开始的。就我个人而言,我从Android Central的这个指南启动并运行这款设备开始,非常好用!如果你遇到问题并且想要设置好它,记得要浏览我刚刚链接的那个安卓开发者页面。这个页面的内容很易懂,它的确能够帮助新手。