Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果我发布';adb外壳屏蔽盖/存储/SD卡/文件。结果是什么类型的文件?_Android_Adb - Fatal编程技术网

Android 如果我发布';adb外壳屏蔽盖/存储/SD卡/文件。结果是什么类型的文件?

Android 如果我发布';adb外壳屏蔽盖/存储/SD卡/文件。结果是什么类型的文件?,android,adb,Android,Adb,在adb shell中,screencap-h告诉我: usage: screencap [-hp] [-d display-id] [FILENAME] -h: this message -p: save the file as a png. -d: specify the display id to capture, default 0. If FILENAME ends with .png it will be saved as a png. I

在adb shell中,screencap-h告诉我:

usage: screencap [-hp] [-d display-id] [FILENAME]  
    -h: this message  
    -p: save the file as a png.  
    -d: specify the display id to capture, default 0.  
If FILENAME ends with .png it will be saved as a png.  
If FILENAME is not given, the results will be printed to stdout. 

它不指示捕获的屏幕是什么类型的文件

首先,您发布的消息确实表明了有关格式的一些信息:您可以使用
-p
标志获取PNG文件

您可以找到screencap的来源。显然,
screencap
以原始格式保存数据(除非您告诉它保存为PNG)

您可以在源代码中找到有关该格式的更多信息:

  • 它似乎以一个12字节的头开始:

  • 宽度(4字节)
  • 高度(4字节)
  • 像素格式(4字节)。以下列出了可用的格式:

    PIXEL_FORMAT_RGBA_8888=HAL_PIXEL_FORMAT_RGBA_8888,//4x8位RGBA PIXEL_FORMAT_RGBX_8888=HAL_PIXEL_FORMAT_RGBX_8888,//4x8位RGB0 PIXEL_FORMAT_RGB_888=HAL_PIXEL_FORMAT_RGB_888,//3x8位RGB PIXEL_FORMAT_RGB_565=HAL_PIXEL_FORMAT_RGB_565,//16位RGB 像素\u格式\u-BGRA\u 8888=HAL\u像素\u格式\u-BGRA\u 8888,//4x8位BGRA PIXEL_FORMAT_RGBA_5551=HAL_PIXEL_FORMAT_RGBA_5551,//16位ARGB PIXEL_FORMAT_RGBA_4444=HAL_PIXEL_FORMAT_RGBA_4444,//16位ARGB 像素\u格式\u A\u 8=8,//8位A

  • 文件的主要部分基本上是图像的内存表示。此部分的大小为
    宽度*高度*字节/像素(像素格式)
    字节。图像逐行保存,因此给定屏幕位置的像素数据从偏移量
    (y*宽度+x)*字节/像素(像素格式)
    开始

  • 大多数像素格式的解码应该非常简单。屏幕缓冲区将始终为
    像素\u格式\u RGBA\u 8888
    。查看链接问题的答案,了解如何将其转换为文件的说明,或者只使用
    -p
    选项

    你说的类型是什么意思?你想要什么类型的
    adb shell screenrecord/sdcard/video。mp4
    将以
    mp4
    格式保存视频。@java\u dude
    screencap
    screenrecord
    之间有区别。@still\u learning当然有区别。我只是添加了它作为一个示例来显示文件扩展名
    mp4
    。still\u learning的答案是正确的,但是我注意到12字节的头信息是little-endian格式的。也许这是一个我不知道的已知事实。不管怎样,希望这能帮助那些没有帮助的人。