0%

以 Android 9.0 为例,screencap 的实现可以查看 http://androidxref.com/9.0.0_r3/xref/frameworks/base/cmds/screencap/screencap.cpp
screencap 的命令格式是
screencap <imgpath> 或者 screencap -p <imgpath>
如果第一种命令的 imgpath 以 png 为结尾 或者加了 -p 参数的话,screencap 会将屏幕截图保存为 png 格式。否则screencap会将屏幕截图保存为一个裸 YUV 数据的图像,这个图像会保存所有的像素点信息,图像更为清晰。查看对应的代码实现即可知道如何打开这种 YUV 数据的图像。

1
2
3
4
5
6
7
8
9
10
11
12
} else {
uint32_t c = dataSpaceToInt(d);
write(fd, &w, 4);
write(fd, &h, 4);
write(fd, &f, 4);
write(fd, &c, 4);
size_t Bpp = bytesPerPixel(f);
for (size_t y=0 ; y<h ; y++) {
write(fd, base, w*Bpp);
base = (void *)((char *)base + s*Bpp);
}
}

从上面的实现可以看到,文件头是 16 字节,分别是图像宽,图像高,像素格式,reserved。然后是一个 RGBA 格式保存的图像数据(它为什么不保存为bitmap呢!)。
将文件名后缀改为 .raw 使用 Photoshop 即可打开文件查看。可以参考下图填写参数

如果不知道图像宽度和高度,可以将图像当作二进制打开。看前 8 个字节即可。
本文示例中,前 16 字节为

1
38 04 00 00 70 08 00 00 01 00 00 00 01 00 00 00

小端序存储,转换成整数为

1
2
0x0438 = 1080
0x0870 = 2160

在 Ubuntu(20.04) 内更改 Chrome 的语言时,并没有像是 Windows 的以这种语言显示 Google Chrome的选项。最多也只能修改提示翻译的优先语言。没有严格意义上的“更改显示语言”的选项。
在 Ubuntu 上,Chrome的显示语言可以根据系统语言变化,一种办法是将系统语言设置成你想要显示的语言,但是对于中文用户来说,更多的场景可能是系统语言是英文,应用语言是中文,比如这里的Chrome。如果你是我所说的这种情况,那么本文的内容可能对你有帮助。

Read more »

隐私政策

本软件值微信小程序码软件(以下称本软件),本软件并非微信官方应用,而是根据官方文档开发的第三方应用。
本软件重视用户隐私,本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。
除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本软件服务使用协议不可分割的一部分。

信息提供

使用本软件时,您需要提供您想要获取的小程序码对应的 appid 和 appsecret ,本软件不会存储您的小程序的 appid 和 appsecret,除非您主动在设置当中开启对应的选项。本软件仅在获取小程序码时使用您的 appid 和 appsecret,使用过程中不会访问除微信官方网站之外的任何网站。

信息存储和交换

使用本软件过程中,软件不会主动记录您的任何操作,除非您主动在设置中打开对应的选项。若您主动打开记录参数的选项,本软件仅仅会将您设置的参数保留在应用本地,不会上传至任何网站或个人。

安卓应用崩溃大致上可以分为java调用时的崩溃和native代码调用时的崩溃(我个人这样分)。下面我们分别看看这两种情况下,具体是如何崩溃的。

Read more »

本篇同样是Yeelight相关的文章的衍生。简单来说,Yeelight的设备会在监听组播地址 239.255.255.250:1982 的特定消息,收到这个特定消息之后,向发送特定消息的客户端发送自己的一些信息,方便这个客户端与自己进行交互。

ssdp(Simple Service Discovery Protocol) 协议原文可以查看 https://tools.ietf.org/html/draft-cai-ssdp-v1-00

Read more »

在安卓9.0之前,安卓的 tinycap 有一个 bug 是录音生成的文件头部标志错误,这个会导致生成的文件在某些播放器上无法识别。

Read more »

在比较新的Chrome浏览器中,长按图片的时候会有复制图片的选项,那么这个图片如何获取到呢。

Read more »

putty 几乎是我用过的远程工具里面的最好的了。目前感觉还有的缺憾有

  1. 缺少标签页切换
  2. 没有命令窗口
  3. log文件保存时没有保存时间线的选项

今天来动手为putty增加在保存的log的前面打上时间标签。

Read more »