话题公司 › 映客

公司:映客

Flutter与原生组件的相爱相杀:PlatformView与纹理渲染原理大揭秘!

Flutter外接纹理渲染存在一个Bug,当使用Texture控件并引入PlatformView组件时,后者会导致Texture不再刷新。这个问题只在安卓平台上出现。文章介绍了PlatformView的渲染方案演进,从VirtualDisplay到现在的Hybrid Composition和PlatformViewWrapper。Hybrid Composition可以同时渲染原生组件和Flutter画布,解决了手势问题。Flutter团队对新的PlatformView实现方案非常有信心,即将退出舞台的Hybrid Composition渲染方式需要及时适配。对于外接纹理的刷新机制,通过源码得知,当视频渲染完成时,通过Android SurfaceTexture的OnFrameAvailableListener回调通知c层,但具体的刷新机制和Bug没有详细说明。根据Debug和nativeMarkTextureFrameAvailable的实现分析,Java层回调正常,问题可能出现在C层逻辑中。

利用AIGC稳定重绘视频风格实践

在当前数字媒体时代,视觉内容的创新与个性化已变得尤为重要。

私信服务MySQL迁移到PolarDB实战

业务背景映客作为一款广受欢迎的社交应用,其私信功能是维系用户互动的重要桥梁。

仿Fresco图片加载架构优化阅读器章节内容加载

随着产品设计的不断深入,对代码的健壮性要求越来越高,同时也希望能从架构方面入手去修正一些问题。「阅读器章节内容加载」和「图片加载」总有着异曲同工的感觉,看看能否临摹下Fresco的优秀代码。

海外流量平台搭建实践

公司海外投放项目增多,流量平台需要快速搭建起海外环境,本文主要介绍海外流量平台的搭建过程实践。

映客基于Clickhouse的日志体系建设实践

作为线上定位问题和排查故障的重要手段,日志在可观测领域有着不可替代的作用。因此,日志系统需要追求稳定性、性能、成本、易用性、可扩展性等关键点。

目前我司的日志系统是基于ELK的,支持云主机、容器日志采集和特殊分类日志的综合采集等功能。但是随着公司的业务发展,日志应用场景逐渐遇到了一些瓶颈:

  1. 数据增长和处理需求增加:业务的不断扩张和数据量的增加,原有的日志系统无法满足现有的数据处理需求。数据处理速度变慢,存储空间不足等问题。
  2. 数据质量和可靠性要求提高:日志数据对于公司业务和运维至关重要,因此数据质量和可靠性要求越来越高。原有的日志系统存在日志丢失、日志收集慢等问题,需要进行改进。

现状:目前总共运行 8个 ES 集群,机器数量100+, Logstash 机器 50+,需要的硬件和维护成本很高,通过扩容的方法去满足业务场景,ES集群会太大会变动不稳定,创建独立集群,也需要更高成本,两者都会使得成本和维护工作量剧增。

鉴于这些问题,去年下半年开始探索新的日志系统架构,以彻底解决上面的问题。

探索Flutter路由管理新姿势

mixin机制助力Flutter路由模块化。

映宇宙AI游戏机器人系统

映宇宙AI游戏机器人系统是提供用户游戏机器人陪玩的系统,人数较少时游戏无法正常开始的问题。AI游戏机器人的技术特点是基于强化学习技术框架,对机器人进行反馈学习,可以做到无需游戏真实上线情况下,产生机器人,不受用游戏上线或者线上用户数据影响。映宇宙AI游戏机器人系统通过对训练游戏机器人过程,对游戏、学习策略以及强化学习模型进行解耦通用化,这样接入不同模型更加便利、快速,达到模型和策略和复用的能力。与此同时,框架支持多进程、多线程加速,框架支持多worker游戏机器人与环境交互产生数据,分布式训练模型,以及快速评估各机器人效果等功能。

映客有丰富的社交游戏场景以及趣味游戏产品,通过通用化的方式,业务只需要实现相应的接口,就能提供强化学习框架,利用框架强大的高并发能力,模拟产生强化学习策略数据,与此同时,支持模型多gpu、多cpu并行训练强化学习策略模型,快速提高模型产出速度;同时可以在训练时及训练完成后,评估各个策略的强度,从而可准确评估模型的效果。

打造高效的一站式数据集成平台

随着业务的增加,数据集成任务大量增长,越来越多的数据源的需要支持,原有的系统已经无法完全支撑现有体量。随着业务的不断增加现有数据集成平台短板慢慢展现导致部分业务线无法快速对接。数据源的架构在变得繁多和复杂,数据应用也逐渐变得更加垂直和场景化,这也倒逼了现代数据架构飞速发展。从而数据集成已经从一项技术管理工作升级为系统工程。

原原世界任务系统的设计与实现

大部分的app都有任务系统,这是一种很好的激励用户的方式。今天以原原世界app为例,和大家分享一个基础的任务系统是如何设计与实现的,希望在大家遇到相似业务场景时能够有所帮助。

映客客户端Unity实践

目前映客内部的 Unity 创新项目均处于起步阶段,遇到如下问题:

  • 代码拷贝方式降低了项目的可持续迭代能力
  • 无公共仓库导致信息不共享,造成重复工作和无效产出
  • 多团队多标准,认知不统一,造成项目后续维护困难

本文主要和大家分享下映客 Unity SDK 多语言混编、包管理相关技术方案及一些实战经验。

如何建设高可用、高稳定、可观测的短信系统

短信系统相信大家并不陌生,在日常生活中,用户注册登录、密码找回、账户变更、确认支付、活动认证、营销推广等场景都会出现它的身影。本文将着重从短信的高可用和可观测两个方面去介绍短信系统。

面向用户个性化push系统实践

push是用户促活和内容推广的重要手段,通过对推送形式、内容、时间等push元素的个性化定制,

push可以成为产品的延伸,在脱离app的情况为用户提供服务。push的形式多样,比如邮件、站内信息、短信等。

iOS VoIP应用

很多朋友都喜欢使用网络聊天工具来进行语音聊天,这种语音并不是通过电信运营商的传统电话网络进行传输,而是通过互联网进行传输。这种将语音转化为IP数据包,部分或全部基于IP网络传输的技术就是VoIP (Voice over IP,IP承载语音)技术。

基于IP的语音传输(英语:Voice over Internet Protocol,缩写为VoIP)是一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行通信。其他非正式的名称有IP电话(IP telephony)、互联网电话(Internet telephony)、宽带电话(broadband telephony)以及宽带电话服务(broadband phone service)。

陌生人社交推荐系统实践

以积目App的实践为例,从算法和工程两方面,介绍卡牌社交推荐的架构设计。

麦序列表性能优化实践

通过对麦序列表性能优化,最终减少一半以上机器。

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.129.0. UTC+08:00, 2024-06-24 02:29
浙ICP备14020137号-1 $访客地图$