skia实现动态差异录屏截图logo添加-千里马SurfaceFlinger专题实战项目背景介绍

项目背景

hi,粉丝朋友们:
大家好!因为前面一直忙于讲解surfaceflinger层面到的原理和源码分析部分,一直没有一个系统的项目来给大家练手实现,今天来实现一个sf层面的一个小项目。具体项目背景信息如下:
在这里插入图片描述
实现要求:
1、需要在截图时候有一个品牌logo
2、需要在投屏,录屏时候有品牌logo
3、手机画面不可以展示logo

项目需求分析

方案1(想不修改框架,直接应用层面实现):

一些同学可能会截图logo那不是很简单么,获取到了截图图片后再进行,绘制logo重新保存成带有logo图片既可以

在这里插入图片描述针对录屏也一样可以获取没有logo的mp4文件,然后对mp4文件进行水印添加保存

这种方案基本上明显不可行。。。。
相当于获取截图都是没有logo的还需要额外处理后才可以,达不到要求,因为用户依然可以获取没有logo图片或者录屏,速度慢,而且也没有办法针对投屏场景实现

综上:不修改sf框架等基本上是不可能可以实现该需求的,针对很多新手小白同学不知道framework具体做啥,是不是上面这个需求就要求你一定要深入了解系统,修改系统才可以实现。这些需求其实都是平常rom开发很常见的部分。

方案2(修改sf和framework合格方案)

具体方案如下图所示
在这里插入图片描述
总体思路就是上图所说的,需要对针对skia,或者opengl渲染时候进行hook,然后添加上自己的logo既可以,当然实现这个需求,必须要求你对surfaceflinger代码和framework的wms的代码非常熟悉才可以搞定,具体实现代码和详细方案可以看我视频哈

实现成果展示:

用户看到的手机画面,可以看到是完全没有logo的:
在这里插入图片描述

接下来看看截图场景:
在这里插入图片描述
明显看到截图后右下角带有了定制logo

再看看投屏情况:
在这里插入图片描述

可以看到投屏情况下一直右下角也有个logo

更多framework干货请关注“千里马学框架”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值