关于应用:mac专业投屏软件AirServer-7-激活

想要疾速高效的将ios上的内容文件投屏到mac上,怎么操作呢?AirServer 7 激活永恒版是个很好的工具,无需下载第三方软件,即可将ios的音频,视频,照片,幻灯片和镜像接管功通过AIrPlay投射到Mac。自动检测启用AIrPlay的设施一旦在iOS设施上启用了AIrPlay镜像服务,AIrServer会主动在桌面上关上一个新窗口,显示挪动设施的屏幕。这样,您能够轻松共享图像,视频,音轨等。为不便起见,AIrServer还能够录制和解决视频您能够随时疾速创立本人的教育演示文稿。在应用程序中,您能够抉择垂直或程度方向翻转图像,以调整亮度和对比度值等。优化镜像分辨率并调整音频同步频率AIrServer窗口能够轻松调整大小(全屏幕反对),但您也能够通过首选项窗口指定首选镜像分辨率:1080p,720p,投影机(1600X1200或1024X768)和更多。雷同的区域容许您抉择音频内容的输出设备,并容许您调整同步速率。最初但并非最不重要的是,AIrServer可帮忙您为Mac设置连贯明码。 AirServer 7 破解版点此获取

October 9, 2022 · 1 min · jiezi

关于应用:上新了-亚麻云-远程办公有点上头解锁云上应用现代化的奥秘

直播概要直播演讲主题:近程办公有点上头?解锁云上利用现代化的神秘 直播工夫:5月31日19:00 直播地址:微信视频号、哔哩哔哩、知乎搜寻@亚马逊云科技,三大平台同步直播。 话题介绍在新挑战频发的动荡改革期间,企业时刻直面市场变动的风浪,借助云计算进行智能化改革曾经是大势所趋。在数字化利用“上云”的浪潮中,亚马逊云科技有哪些“黑科技”,助力企业在保障平安稳固经营的根底上升高交换老本、加强治理效力、放慢业务的数字化转型呢? 在本期《上新了,亚麻云》直播间,特邀大咖嘉宾来聊聊以下话题: 1、 头部企业对云上利用的扩展性和稳定性有何心得2、 云计算大数据研究所的规定制定者对企业数字化转型的独家解读3、 亚马逊云计算为企业提供稳固松软的“上云”服务背地,又有哪些新倒退 嘉宾介绍张鹏 小米基础架构高级总监 在小米参加了离线剖析架构从无到有、再到规模化的倒退;近年参加推动小米在线服务向容器化架构的演进倒退。 王海清 中国信通院云大所工程师,混沌工程实验室负责人 从事云计算行业钻研多年,牵头制订《云原生数据库能力要求》、《混沌工程平台能力要求》、《分布式系统稳定性度量模型》等多项行业标准。 曹志斌 亚马逊云科技产品营销经理 有20多年的计算机行业教训,先后在贝尔实验室,SAP从事过数据科学家和SAP HANA内存数据库产品营销等岗位。 郭立 亚马逊云科技资深解决方案架构师经理 于2019年退出亚马逊云科技,负责率领架构师团队反对策略客户和企业客户,同时为亚马逊云科技机器学习、数据分析与平安合规技术专家。

May 30, 2022 · 1 min · jiezi

关于应用:一文带你看懂ATM的应用权限访问控制能力

1. 背景随着智能终端时代的到来以及各类智能终端产品的日益遍及,社会对于隐衷保护意识也大幅晋升,爱护用户集体数据和隐衷的平安已成为操作系统的外围性能之一。 而利用权限访问控制就是零碎保障用户隐衷和数据不被滥用的一道松软的平安屏障。但目前利用权限访问控制广泛面临权限滥用和缺失跨设施访问控制场景等问题。 针对以上问题, OpenHarmony构建了ATM(AccessTokenManager,总体治理服务),用于提供利用权限访问控制能力。ATM通过对利用进行分级,执行最小受权准则,防止了权限滥用问题;同时反对跨平台执行权限访问控制性能,以便满足分布式应用场景。 注:因为篇幅无限,本文将次要介绍单设施场景下的利用权限访问控制。 2. ATM的利用权限访问控制概念介绍1) 利用权限 默认状况下,利用只能拜访无限的系统资源。但某些状况下,利用为了扩大性能,须要拜访额定的零碎或其余利用的数据(包含用户集体数据)、性能。零碎或利用也必须以明确的形式对外提供接口来共享其数据或性能。OpenHarmony提供了一种访问控制机制来爱护这些数据或性能不被非法应用,这种访问控制机制就是利用权限。 利用权限爱护的对象能够分为数据和性能: ● 数据蕴含了集体数据(如照片、通讯录、日历、地位等)、设施数据(如设施标识、相机、麦克风等)、利用数据。 ● 性能则包含了设施性能(如打电话、发短信、联网等)、利用性能(如弹出悬浮框、创立快捷方式等)等。 利用权限是利用拜访操作某种对象的通行证。当利用拜访操作指标对象时,指标对象会对利用进行权限查看,如果没有对应权限,则拜访操作将被回绝。 2) 利用 利用权限访问控制中所指的利用,按可信水平从高到低的程序进行划分,能够分为:零碎服务、零碎利用、零碎预置特权利用、同签名利用、零碎预置一般利用、持有权限证书的后装利用以及其余一般利用。 零碎利用内核爱护机制来辨认和隔离利用资源,将不同的利用隔离开,爱护各个利用本身和零碎免受歹意利用的攻打。默认状况下,利用间不能彼此交互,而且对系统的拜访会受到限制。 例如,如果利用A(一个独自的利用)尝试在没有权限的状况下读取利用B的数据或者调用零碎的能力拨打电话,操作系统会阻止此类行为,因为利用 A 没有被授予相应的权限。 理解完利用权限等概念后,你是否也好奇ATM是如何提供利用权限访问控制能力的呢?请追随小编一起往下看。 3. ATM如何提供利用权限访问控制能力?通过ATM,零碎提供了对立的利用权限访问控制性能,反对利用或者其余服务查问与校验利用的APL(Ability Privilege Level, 元能力权限等级)等信息,实现零碎归一化的权限管理体系。接下来小编将从以下两个方面为大家介绍ATM如何实现利用权限访问控制能力的: ATM服务框架,介绍ATM如何通过对立架构治理利用的AT(AccessToken)信息。洋葱式访问控制模型,介绍ATM如何对利用权限申请范畴进行管控;1) ATM服务框架 对于运行在设施上的利用, ATM为每个利用调配惟一的标识(TokenID),在资源应用时通过TokenID作为惟一身份标识映射获取对应利用的权限和受权状态信息,并依此进行鉴权,以管控利用的资源拜访行为。ATM的服务框架如图1所示: 图1 ATM服务框架图 ATM总体治理服务作为ATM 服务的总体入口,它能够将业务申请散发到上级的三个模块:TokenID治理、权限治理和APL治理。 TokenID治理模块:在TokenID与AT信息一一对应的根底上,TokenID治理提供了TokenID及其对应AT信息的初始化创立、查问、更新以及删除等服务。当指标利用被拉起时,ATM会为其调配惟一身份标识TokenID,并保留利用的初始化AT信息。每个AT信息由设施内的一个32bits的惟一标识符TokenID来进行标识。 ● TokenID是每个利用的身份标识(能够了解为利用的身份证)。 ● AT信息包含利用身份标识APP ID、子用户ID、利用分身索引信息、利用APL、利用权限受权状态等信息(能够了解为利用的身份证信息)。 权限治理模块:次要提供利用权限定义信息、利用权限受权状态信息的解决服务。权限治理模块在TokenID治理模块的根底上,向业务提供利用的权限信息查问、受权、鉴权等服务,治理利用权限的应用记录,构筑ATM的利用权限访问控制性能。 APL治理模块:APL治理模块基于惟一身份标识TokenID,提供利用的权限申请合法性校验性能,规范化权限申请范畴,进行权限最小化治理。以后,利用的权限申请规定是基于洋葱式访问控制模型的,上面请追随小编持续理解洋葱式访问控制模型。 2) 洋葱式访问控制模型 i. 介绍 利用的权限申请规定是基于洋葱式访问控制模型的,如图2所示,洋葱式访问控制模型分为三层,从里往外看:最里层是操作系统核心层,利用的APL=system_core。中间层是零碎加强服务层,利用的APL=system_basic。最外层则是一般应用程序层,利用的APL=system_normal。 图2 洋葱式访问控制模型 咱们通过给利用调配APL等级,来管控不同利用对系统资源的拜访,不同APL等级的利用能申请的权限范畴也是不同的,上面一起看一下APL等级的划分规定。 ii. APL等级划分规定 APL等级的划分规定依据是否是操作系统外围能力(system_core)、零碎根底服务(system_basic)和一般利用(normal)进行划分的。具体介绍如下: A. 操作系统外围能力APL="system_core" 操作系统外围能力是零碎最外围的底层服务,它须要领有所有权限以便实现对系统的治理。 操作系统外围能力包含:AMS(Ability Manager Service,能力管理系统)、BMS(Bundle Manager Service,包管理系统)、DMS(Distributed Manager Service,分布式音讯零碎)、软总线等。 操作系统外围能力的APL="system_core"。这类利用可申请拜访操作系统外围资源的权限,对系统的影响水平十分大,目前只对系统服务凋谢。 ...

April 29, 2022 · 1 min · jiezi

关于应用:上班没找到车位硬核程序员做了套园区车位实时推荐系统还获了奖

在一年一度的1024程序员节上,网易技术马拉松再次拉开帷幕。限时48小时,16支队伍,共84名技术酷爱者开展了角逐。 与大多数我的项目和业务非亲非故不同,有一只队伍的我的项目和理论生存更贴近。来自有道的“车位不必等”队,参赛课题为《园区车位实时举荐零碎》,利用视觉辨认、语音合成等技术,打造了一套停车解决方案。最终在本次技术马拉松当中,取得了技术极客优秀奖。 谈到为什么抉择这样一个课题,队长Shinji示意,“有时候下班停车要花费不少工夫,而且停车难也是目前很广泛的一个问题,所以想要用技术形式来设计一个解决方案。” 一、项目分析有车的小伙伴应该都有过被停车摆布的恐怖,无论是在商场、园区,明明显示还有空位,但绕了两圈也不晓得在哪…好不容易找到了一个空位,然而正要开过来却被人抢了先… 总结起来,艰难点就是两个——找车位和抢车位。 那么,如何利用技术来解决这两个问题呢? 整体的设计思路是:依靠于视频车辆检测算法,达到对多个车位的实时监控,灵便适配无效区域并肯定水平升高算法误识率。利用工作园区内车辆以及车主等无效信息为进场车辆正当调配停车区域,升高人工指挥停车的老本,并晋升停车效率。 二、解决方案1.车位区域监控利用车辆辨认算法对监控范畴内的车辆进行监控,并将数据实时上报。 这种形式的施工难度小,能够监控多车位,并且能够筛选掉有效区域。不过比拟依赖辨认算法的准确度,对于摄像头的装置地位和角度有肯定的要求。 车辆检测咱们针对实际场景思考了两种计划。 计划一:基于深度学习和图像识别技术,采纳边缘计算,摄像头内置算法进行车辆检测。计划二:摄像头只做图像采集,每10秒上传到服务器。服务器再对数据做车辆检测的计算。计划一比照计划二的劣势是摄像辨认以后拍摄范畴内车辆的数量和具体位置,数量发生变化的时候告诉给服务器。边缘计算会大大的缩小带宽以及服务器的计算压力。但带来的问题是这种摄像头的老本会比拟高。 但无论计划一还是计划二摄像头的摆放都有肯定的要求,一个摄像头要清晰笼罩到尽可能多的车位,现实状况是笼罩到10-12个车位,具体还是要结合实际状况。笼罩到足够多的车位的次要因素是升高硬件老本,即摄像头的老本。 基于公司已有摄像头,初期模型咱们应用的是计划二。 2.车位区域划分将停车场内所有车位依照地位、大小、监控区域等条件划分为若干区域。 治理的最小粒度由某一车位扩充为一组车位,不便路线布局且升高治理难度。派位时给予车主肯定的抉择权力,适配分派中的简单需要且有利于推广。3.车位举荐车辆入场,道闸辨认车牌或车型数据上报举荐服务。举荐服务匹配车辆信息。 匹配胜利,对所有可停车区域按闲暇车位数粗排,再依据匹配策略进行重排,最初依据分流策略确认举荐车位;匹配失败,按默认最多空位规定确认举荐车位。对车位进行预占,将入区域预占池。过期后预占将生效。将举荐车位告诉道闸和APP,发送语音播报或告诉,告知车主停车区域。举荐车位会思考多个维度。 车位间隔楼梯,电梯的地位,进一步楼梯、电梯和员工具体的工位地位。依据已入场车辆的路线,举荐不是特地多的车辆的地位。远离豪车华。员工习惯停车地位。新能源优先举荐新能源车辆可充电车位。大车优先举荐大车位,缩小小车应用大车位的几率。进一步买通会议零碎,若间隔会议工夫比拟近,依据会议室的地位以及间隔现有的空车位举荐最正当,能够疾速停车的车位。尽可能的做到个性化,合理化。 三、我的项目利用成果展现https://www.bilibili.com/vide... 总结为了解决停车场景中找车位和抢车位的问题,咱们将视觉辨认技术和举荐算法引入停车治理我的项目。依靠于视频车辆检测算法,达到对多个车位的实时监控,灵便适配无效区域并肯定水平升高算法误识率。利用工作园区内车辆以及车主等无效信息为进场车辆正当调配停车区域,升高人工指挥停车的老本,并晋升停车效率。 以派位的形式解决停车过程中的问题,联合路线布局还能够防止拥挤,前面如果有机会也会思考退出我的项目布局。同时,将来心愿扩大反对地上停车位的治理,并进一步升高我的项目施行的老本,摊薄算法检测老本并让单路摄像头能够无效监控更多的停车位,进步我的项目收益。

November 19, 2021 · 1 min · jiezi

关于龙芯:干货应用迁移|搜狗输入法在龙芯平台上的适配与应用

技术引领翻新,用“芯”构建生态,第一期龙芯生态论坛于2021年3月12日(周五)隆重开讲!龙芯生态论坛作为龙芯生态建设的重要技术交换窗口,将汇聚龙芯资深技术专家及行业生态搭档精英,继续发展行业建设成绩及技术分享流动,为凋敝龙芯生态、推动技术创新,贡献力量。作为生态资源建设中的重要内容,龙芯架构下的利用迁徙备受关注。目前基于龙芯架构,已构建起了残缺的适配体系,内容涵盖操作系统、中间件及各类应用软件,输入法工具作为常用软件也成为龙芯架构利用迁徙适配的重要内容。享有“国民输入法”美誉、采纳经典C/C++语言研发的搜狗输入法,目前已实现龙芯架构下的迁徙适配,正服务于党政企业、高等院校及泛滥终端用户。 本次流动邀请龙芯中科资深工程师韩广以及搜狗输入法资深开发工程师王宇航两位老师,围绕龙芯架构下C/C++类利用迁徙技术根底及搜狗输入法企业级利用迁徙案例,从实践到实际,分享技术教训,分析迁徙过程中的技术问题,率领大家一窥利用迁徙技术全貌。 以下内容为流动速记 分享主题:搜狗输入法在龙芯平台上的适配与利用分享嘉宾:搜狗资深高级开发工程师 王宇航 目前就任于搜狗输入法事业部。从事跨平台搜狗输入法的研发工作,爱好各种跨平台技术,致力于为输入法用户提供极致的输出体验。 注释如下 1、我的项目背景本次分享的主题的是搜狗输入法在龙芯平台上的适配与利用,接下来次要从以下几个方面开展:我的项目的背景和介绍,目前的适配成绩,迁徙门路和后续布局. 搜狗成立于2003年,搜狗月沉闷用户数仅次于BAT,是中国用户规模第四大互联网公司。搜狗成立至今经验6次冲破,一直的成长,成长的背地是一直冲破翻新的谋求。在中国,提到输入法首先会想到搜狗输入法,搜狗输入法在2006年一经公布就迅速占领市场,目前搜狗输入法在APP榜单排名第三,沉闷用户8.2亿,市场份额占到86%。 搜狗输入法秉承为用户提供极致的输出体验,每一次更新都会给用户带来不同的输出体验。2014年公布linux输入法,前面的迭代速度也是一直的放慢。2020年1月搜狗输入法推出全新的企业版1.0,冲破了只适配传统的x86,同时适配的还有arm以及mips多架构,并且反对五笔。 2、适配成绩搜狗输入法在龙芯平台上的适配成绩,目前搜狗输入法对支流的硬环境以及外围的输出场景已达到100%的适配。 在操作系统方面:信创畛域,占支流的UOS以及麒麟操作系统齐全适配。Cpu架构方面,龙芯架构曾经齐全适配在linux发行版中的两个支流包管理器:rpm和deb这两种安装包的格局,搜狗输入法曾经齐全反对从输入法性能维度看,根底输出的拼音输入,五笔输出,英文输出,小语种输出100%反对扩大输出方面:虚构键盘输入语音输入,以及辅助性能的属性设置曾经迁徙实现实现100%反对3、搜狗输入法迁徙门路 迁徙准则:迁徙速度快,迁徙成果好.后期:对搜狗输入法对平台架构进行梳理和设计.中期:三个阶段:编译,调试和部署,部署胜利就能够胜利运行.前期:运行胜利不意味着迁徙胜利,搜狗输入法秉承为用户提供极致的输出体验。在实现部署后,须要对输入法的晦涩度,性能做进一步的验证,调试,测试,调优等,从而达到最好的成果。上面将从迁徙后期、中期、前期三个阶段进行介绍。 4、 迁徙后期遇到的问题&解决方案迁徙后期,对输入法软件进行了分层设计,形象出与平台相干的性能,对下层屏蔽平台差别,实现输入法原有逻辑的最大复用。 此前,搜狗输入法只运行在Windows零碎上,合乎TSF输入法框架,而龙芯架构只运行Linux零碎,因而搜狗输入法须要对Linux零碎进行适配并接入Linux零碎支流的Fctix输入法框架。为了适配全新的Fctix框架,并达到“速度快、成果好”的迁徙指标,从新对输入法软件进行了架构设计,形象出与平台相干的Platform层,对下层屏蔽了平台差别,为最大水平地复用现有稳固代码提供了技术根底。 上面对新的输入法软件架构进行阐明。如下图。 Platform层:集中形象实现了平台相干的局部,包含UI绘制、音讯循环、零碎信息等性能,屏蔽了各平台的差别,为下层提供了对立的操作接口。Foundation层:该层为根底性能层,为下层提供了根底通用性能及UI元素。本层分为CommonLib与UILib两局部,其中通用库为根底性能库,次要实现ini及XML解析、加解密、容器、锁、认证等根底性能;UI库为UI提供了根底UI元素,包含图片、字体、画布、定时器、窗口及各类控件。输入法逻辑层:因为底层曾经解决了平台差别,因而本层大量复用了搜狗输入法原有稳固运行的输入法逻辑。本层分为输出逻辑层和UI逻辑层两局部,输出逻辑层包含语音输入、物理键盘输入、手写输入、虚构键盘输入、小语种及多语言输出等输出逻辑;UI逻辑层次要包含搜狗输入法的UI的窗口界面,包含写作窗口、软件盘、状态栏等。SDK层:作为输入法和零碎输入法框架的桥梁,SDK层屏蔽了不同输入法框架间的差别,为输入法的逻辑层提供了稳固对立的接口,实现了对现有逻辑的高复用,为又好又快地迁徙提供了松软的根底。上面将介绍的是Linux平台上,搜狗输入法和Fctix输入法框架以及各利用之间的过程关系。见下图。 图片图右下方为Linux中Fctix输入法框架,该框架为C/S架构,是Linux零碎中独立运行的过程。 图片左半部分为Linux中运行的各种应用程序,包含GTK、Qt及X Window应用程序。各应用程序与Fctix输入法框架之间通过XIM协定进行通信,例如键盘按键,Fcitx收到键盘按键音讯后,会依照以后选中的输入法,调用相应的输入法插件,因而在Linux零碎中搜狗输入法实现了一个Fctix框架的插件运行在Fctix输入法框架中。 搜狗输入法插件被Fcitx调用后,通过音讯队列(MessageQueue)进行过程间调用,调用到搜狗输入法的服务端(service),音讯队列传输的具体数据应用ProtoBuf进行序列化与反序列化,并实现了数据打包后的信息。输入法的service被调用后会将数据传递给搜狗输入法的SDK,依照SDK中蕴含的各种输出逻辑进行解决,处理结果再通过音讯队列(MessageQueue)返回给Fctix插件,Fcitx再通过XIM协定返回给各应用程序,实现输出流程。 实现整体的框架设计之后,就能够发展理论的迁徙工作了,随之也进入到了迁徙中期。迁徙中期,在编译、调试、部署不同阶段也遇到了不同的问题,次要包含开发环境的构建比较复杂、编码调试工具应用不太不便、短少软件运行依赖。 具体来看一下,迁徙中期遇到的理论问题及解决方案。因为须要进行跨平台的构建,选用了cmake作为工具链,然而在某些平台上面临cmake、gcc工具链的缺失,那么就须要龙芯或OS厂商提供工具链。 在编码阶段,咱们团队对立了编码工具,因为VSCode目前在其官网上还未提供MIPS架构的安装包,VSCode无奈应用,因而抉择了Qt Creator这一轻量级的IDE作为代替工具,之所以抉择Qt Creator,次要因其对Qt的开发调试比拟敌对,尤其对于Qt的数据结构,例如罕用的QString、QRect等数据结构可能显示其外部信息,比非Qt出品的IDE应用更加不便。 部署时可能存在运行时依赖缺失的问题,则须要由龙芯或OS厂商提供相应的运行时依赖软件包。 5、迁徙过程中遇到的问题&解决方案Windows平台文件系统中门路分隔符是反斜线(\),Linux的门路分隔符是斜线(/),另外Linux文件系统的文件门路名称辨别大小写,而Windows并不辨别,这些问题都须要留神。基于以上起因,输入法所有C++代码中include的头文件都应用斜线进行门路分隔,避免在不同零碎中编译出错。对立应用UTF-8字符编码。UTF-8编码的劣势:兼容英文的 ASCII编码,因为英文字符是罕用字符,因而应用UTF-8编码比UTF-16,UTF-32等编码节俭空间,另外UTF-8编码无字节序问题,其余多字节编码存在大端、小端编码值的差别。6、 迁徙前期遇到的问题&解决方案实现迁徙中期的工作后,输入法就能够失常运行了,但仅能够失常运行还远远不够,搜狗输出是要提供极致的输出体验,因而在迁徙前期须要在运行流畅性及用户体验等方面进行优化、调试。上面分享两个迁徙前期的问题。 手写输入呈现卡顿:输出笔画越多,卡顿越显著。例如下图,红框局部手写输入区域,经剖析,产生卡顿的起因为UI刷新逻辑,原有的刷新逻辑为全量刷新,例如“大家好”三个字,书写过程中的每一笔都会进行UI刷新,随着笔画的增多,刷新就会呈现卡顿。找到了问题起因,采取的解决办法为递增式刷新,即只绘制有变动的局部,如图,写“大家好”的“好”字的最初一笔“子”时,只有最初一笔的“子”进行绘制,其余笔画以及控件并不会从新绘制,大大晋升了绘制效率,改良后手写的晦涩度大幅晋升。 属性设置app启动慢:通过使用性能剖析工具-火焰图,进行问题定位。火焰图的剖析后果如下图。 火焰图Y轴为调用栈(调用方向:从下向上),X轴为采样点的记录。因为CPU中个别会有PMU单元记录程序运行过程中硬件应用状况,采集点数越多,代表该函数运行工夫越长。须要留神的是X轴不是时长,只示意采样的数量。图中蓝色局部,其占用的时长超过app启动时长的40%,依据函数名称能够断定,该函数次要实现界面创立,初步确定属性设置app启动的性能瓶颈为界面创立,再联合性能日志工具,确定了问题起因确为UI页面创立耗时较长。经评估,采纳了延时创立的办法解决该问题。属性设置的UI页面比较复杂,一共为7个,且页面间能够任意切换,但同一时刻只会显示一个页面,基于这种应用形式,在属性设置程序启动时,只创立用户可见的页面,待程序启动实现后在后盾再逐渐创立其余页面,既晋升了用户体验,又保障了性能的残缺,改良后启动效率进步了40%。 搜狗输入法不会满足于现有问题,后续还会有更多布局。在产品性能方面,打算增加符号大全、语音合成、手写反对字符等性能,在根底品质打磨上也将持续致力,一直晋升输出准确率,进步语音及手写辨认的速度,从而让用户享受到更为极致的用户体验。 问答环节: Q1:当初是否可能提供龙芯架构下的deb包? A1:目前还未提供,请网友继续关注。 Q2:搜狗输入法反对阿拉伯语? A2:目前反对的小语种有几十种,须要明确网友关注的是手写输入还是语音输入。 Q3:搜狗输入法和jetbrains全家桶抵触的问题解决得怎么样? A3:目前在踊跃沟通解决中。 Q4:搜狗输入法在平安方面的设计有哪些? A4:搜狗输入法中提供了加解密、认证模块;输入法安装包做了签名,在加载时会进行签名验证,另外也提供了接口级别的加密认证,通过这些技术手段来实现搜狗输入法的安全性。 Q5:利用cmake gcc以及内部依赖的PC端的软件迁徙,其必要性体现在哪里? A5:cmake构建零碎是跨平台的,通常在Windows上应用VC,但VC不能在非Windows平台应用,因而思考到跨平台要求,采纳了cmake构建零碎,因为cmake既能够生成Linux 零碎下的makefile等工程管理文件,也能够生成Windows零碎下VC开发工程,从而实现了构建工具的跨平台化。 龙芯技术博客:https://blog.csdn.net/loongnix?spm=1010.2135.3001.5343&type=blog 龙芯技术社区:https://loongson.cloud.csdn.net/

March 22, 2021 · 1 min · jiezi

关于应用:NOR-Flash市场增量的几大应用领域

NOR Flash和NAND FLASH是目前两种次要的非易失闪存技术。NAND FLASH具备“容量大、单位容量成本低”等特点是高数据存储密度的现实解决方案。而NOR Flash“读写速度快、可靠性高、使用寿命长”,多用来存储大量代码。 近一两年的NOR Flash市场失去了飞速增长。该增速次要得益于汽车电子和物联网、5G和智能手机及其周边(如TWS耳机和可穿戴式设施)等需要的推动。本篇文章存储芯片供应商英尚微电子介绍次要带给NOR Flash市场增量的几大应用领域: (1)生产电子:智能手机及周边设备也催生了大量需要。例如智能手机跟可穿戴式设施的配合跟蓝牙耳机/智能音响的配合等。这些设施一方面须要采集用户的数据信息,例如地位信息、心率信息等,另一方面也须要把外界数据传输给用户,比方音乐、视频与通话等。这些都离不开NOR Flash代码存储芯片的撑持。到2021年仅TWS耳机就可为NOR Flash带来5.8亿美元的市场。 (2)物联网:随同着5G基站的高密度布局,物联网对NOR Flash将是一个长期利好。万物互联时代的数据流源源不断,人与人之间、人与设施之间、人与云端服务器之间、设施与设施之间的各种数据交互都会产生海量的IoT节点且这些节点对应的设施都要用到NOR Flash。 (3)车载:小到汽车摄像头大到高级驾驶辅助零碎(ADAS)都对NOR Flash有大量需要。到2021年仅在ADAS畛域NOR Flash的市场空间就将达到6.7亿美元。 (4)工业畛域:如国内三表市场(外加南方热表)对NOR Flash需要回升,其中基于国内最新标准的IR46智能电表,对NOR Flash的洽购量会很快呈现。 (5)5G、通讯设备:5G基站、微基站催生出了各种各样的节点设施,5G 还减速推动了工业物联网、车联网、主动驾驶、边缘计算的倒退,这些利用都离不开NOR Flash。“物联网+5G”带动的norflash市场空间将在2020年达到1.2亿美元,在2021年达到2.2亿美元。 (6)手机屏幕:次要体现在TDDI(触控和显示驱动集成)对小容量2Mb/4Mb NOR Flash的采纳以及AMOLED对8Mb-32Mb NOR Flash的需要减少等。 AMOLED须要外挂一颗8Mb(Full HD)或32Mb(QHD)的NOR Flash进行光学弥补,而全面屏手机则偏向于采纳TDDI计划,需外挂一颗NOR Flash用于存储触控性能所需的分位编码。

March 4, 2021 · 1 min · jiezi

关于应用:Windows-10下常用软件

前言最近换了新的台式机,所有的生产力工具都要重新安装,趁此机会整顿下我的真香软件,如果其中有小伙伴还没有据说过的,那么你用了后可是能够进步幸福感的喔! No.1 Snipaste应用过最好用的收费截屏软件,没有之一。很久以前用微信截屏工具,当初尽管Win10本人出了截屏,然而齐全不如这个好用,性能也十分弱小。 https://zh.snipaste.com/ No.2 Bandizip以前用好压,起初发现在了这个就始终在用了,界面更好看,性能能齐全。尽管当初有广告了,然而是一个小屏在界面右下角,不流氓。 https://cn.bandisoft.com/band... No.3 PotPlayer如同是从DaumPlayer宰割进去的收费版本。应该是反对所有媒体格式。 https://potplayer.daum.net/ No.4 Screencast-O-Matic一个收费绿色录屏软件,高级版带有视频批改性能,不过免费版已够用,根本录屏性能都有。 https://screencast-o-matic.co... No.5 Everything & Listary一个用来找文件,一个用来找利用。 https://www.voidtools.com/zh-cn/https://www.listary.com/ No.6 DeepL翻译尽管最近出了Win软件,然而我还是喜爱用网页版,是我当初用过最好的翻译网页利用,甚至好过Google Translate,没有机翻感,上图: Google Translate DeepLhttps://www.deepl.com/translator

January 22, 2021 · 1 min · jiezi

关于应用:如何将开源容器应用快速打造为云开发应用

什么是云开发利用云开发利用能够了解为运行在云开发环境的利用,例如一个蕴含前后端、数据库等能力等服务,能够通过一键部署,间接部署在云开发环境中,应用云开发底层的各项 Serverless 资源,享受弹性免运维的劣势。 一个云开发利用能够拆解为三个局部,包含代码、申明式配置和环境变量信息。 上面咱们以开源存储我的项目Nextcloud为例,演示如何将一个开源的容器化的我的项目疾速打造为能够一键部署的云开发利用。 Nextcloud 是一套集体云存储解决方案,内置了图片相册、日历联系人、文件治理、RSS 浏览等丰盛的利用,这个利用自身是开源的,同时提供了部署的 Docker 镜像,须要搭配 MySQL 数据库,上面会演示如何实现这个利用的一键部署。 通过云开发一键部署,能够部署在用户的云开发环境中,无需关怀服务器治理和运维。 一键部署的流程也十分简洁,只需三步即可在云开发控制台疾速装置部署:第一步:抉择云开发环境(留神:须要抉择一个 HTTP 拜访门路的根门路未被占用的环境)。 第二步:能够进行网络配置、标签配置,以及关联或者创立云上的资源,比方这个利用依赖了 CFS 来实现容器的文件存储,应用了 CynosDB for MySQL(Serverless版本)来作为数据库依赖。 第三步,点击 实现 ,期待装置实现之后即可在控制台关上利用的拜访地址来进行拜访。 如何打造一个云开发利用那么问题来了:如何打造这样一个反对一键部署的云开发利用呢? 整体的步骤分为开发、配置和部署验证三个环节。这篇文档会次要介绍配置和部署验证两个环节。 开发开发环节在此不作重点介绍,能够通过文末的源码链接来理解具体的实现。 开发用到的云开发和云上其余资源云开发的云托管服务:应用云托管来部署利用的后端服务; CynosDB:应用 CynosDB 数据库存储数据; CFS:应用 CFS 长久化存储数据。 配置有了我的项目的代码之后,如何把这个利用打造成为能够一键部署的云开发利用呢? 上面会分步骤介绍如何通过配置来打造云开发利用。 配置利用根底信息首先创立一个 cloudbaserc.json 配置文件,文件的内容如下。 { "envId": "{{env.ENV_ID}}", "version": "2.0", "$schema": "https://framework-1258016615.tcloudbaseapp.com/schema/latest.json", "framework": { "name": "nextcloud", "plugins": {} }}要点envId 指定利用部署在哪个环境下,这里咱们用模板变量 env.ENV_ID示意读取 ENV_ID 环境变量;framework.name 是利用的英文名,只反对 A-Z a-z 0-9 - 和 _,长度 1-32 位;framework.plugins 是利用用到的插件信息,这里先留空,上面咱们依据资源和利用类型来填写;如果须要理解更多我的项目信息的配置,请参考利用我的项目信息阐明文档。应用云托管插件这一步咱们须要应用云托管插件,来自动化地部署容器服务到云开发的云托管上。 ...

January 21, 2021 · 1 min · jiezi

从零开始入门-K8s-可观测性你的应用健康吗

作者 | 莫源 阿里巴巴技术专家 一、需求来源 首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强: 首先是提高应用的可观测性; 第二是提高应用的可恢复能力。 从可观测性上来讲,可以在三个方面来去做增强: 首先是应用的健康状态上面,可以实时地进行观测; 第二个是可以获取应用的资源使用情况; 第三个是可以拿到应用的实时日志,进行问题的诊断与分析。 当出现了问题之后,首先要做的事情是要降低影响的范围,进行问题的调试与诊断。最后当出现问题的时候,理想的状况是:可以通过和 K8s 集成的自愈机制进行完整的恢复。 二、Liveness 与 Readiness 本小节为大家介绍 Liveness probe 和 eadiness probe。 应用健康状态-初识 Liveness 与 Readiness Liveness probe 也叫就绪指针,用来判断一个 pod 是否处在就绪状态。当一个 pod 处在就绪状态的时候,它才能够对外提供相应的服务,也就是说接入层的流量才能打到相应的 pod。当这个 pod 不处在就绪状态的时候,接入层会把相应的流量从这个 pod 上面进行摘除。 来看一下简单的一个例子: 如下图其实就是一个 Readiness 就绪的一个例子: 当这个 pod 指针判断一直处在失败状态的时候,其实接入层的流量不会打到现在这个 pod 上。 当这个 pod 的状态从 FAIL 的状态转换成 success 的状态时,它才能够真实地承载这个流量。 Liveness 指针也是类似的,它是存活指针,用来判断一个 pod 是否处在存活状态。当一个 pod 处在不存活状态的时候,会出现什么事情呢? ...

October 16, 2019 · 5 min · jiezi

程序员请创建你的第一个产品

作为一名技术开发人员,拥有创造产品的能力,是我们得天独厚的优势. 现在的互联网企业,就是把一些新的概念和想法,构造成应用,提供服务和数据等来获得收益. 程序员可以开发自己的产品,除了没有公司强大的财力背景,其他的地方并没有什么区别,依然可以打造一个小而完整的生态链. 核心资源 常常一直在思考,什么才是一个程序员最核心的资源? 它既是你的资产,也是能力的证明,可以打包带走,也可以分享给他人. 我们可以开发软件应用,也可以录制视频教程和出版书籍等信息产品. 教程和书籍能够扩大我们的影响力,带来一定的收入,可它们不足以构建一个企业. 线上教育类型的企业到是符合,但是这远不是一个单兵作战能够胜任的. 而软件才是大多数互联网公司的基础和核心,对于程序员的意义也同样如此. 最小化应用 软件开发应该秉着快速创建,小步迭代,持续优化的原则. 快速创建一个最小化应用,先开发核心功能,再逐步扩展. 这个应用可以没有登录,没有支付,没有分享,没有其他附加属性,只有我们最初的想法和创意. 最小化应用有以下好处: 用极短的时间创建并发布一个,快速触达用户,甚至快到只需要十几分钟或者几个小时.获取产品使用数据和用户建议及反馈,数据分析有助于了解市场,用户的反馈是持续扩展的前提.产品矩阵和占位,互联网应用千千万,相似的太多,好的创意都已经被别人实现了,谁先谁就可能赢.举个栗子我的第一款产品是一个chrome扩展,名称叫做click nice 当时在查找html模板资源的时候,看到了鼠标指针图标的推荐,觉得很是好看. 然后在替换鼠标指针的时候,发现不仅要在电脑系统设置中修改光标文件,而且修改之后所有的地方鼠标指针都变成同一样式,可我只需要在浏览网页时替换光标即可,并且支持随意更换,省去繁琐的设置过程. 这个时候,就产生了自己制作chrome扩展的想法,花费了大概一天时间,完成了第一个应用. 后来,为了使用番茄工作法写了小程序番茄钟,为了学习React,写了App简易计算器,为了查看照片元信息,写了网站Exif元信息,为了记录属于自己的私有笔记,写了云笔记,学习python,开发了桌面应用微信机器人等,还有一些其他应用就不一一列举了. 有些已经失效不再维护,有些正在自己使用,有的尝试分享或者商业化. 服务集成 我有一个好点子,就差一个程序员了. 程序员也仅仅只需要一个好的创意就足够开发一个优秀的产品. 产品知识简单学习即可,设计有现成的第三方UI框架,测试可以自己复测,后端可以使用serverLess云服务. 你能想到的一切,都有第三方提供服务,只需要一定的费用,也可以部分外包. 总而言之,能用框架的用框架,能用服务的用服务,尽可能负责核心功能的开发和维护,弱化对其他环节的依赖. 这能保证我们的应用在初期快速而相对完整. 当产品第一版发布,就可以开始扩展和优化,完善到一定程度时,就可以尝试使用自己的技术重构,减少对第三方的依赖. 作为一个练手产品,我们更多的是注重技术的学习和熟练运用,作为一个商业产品,我们应该注重的是实际功能和市场价值. 所以作为一个独立开发者,要根据具体情况分析产品的开发过程,依据时间和财力等因素选择适合自己的一套方案. 持续开发 还是一句经常提到的话,程序员不要陷入技术思维,也要具备商业思维和其他能力. 我们学习技术是为了更好的生活,不是为了学而学,学习就是为了使用,不论是工作还是其他. 开发一个产品就是除了工作以外,学习技术发挥作用的真正载体,这个过程可能持续几天甚至好几年. 一般情况下,三个月为一个产品的完整开发周期,当产品基本完成后,剩下的就是日常维护和新功能的添加等. 独立开发也分为产品开发周期,到后期维护阶段,时代发展太快,用户需求也一直在变. 持续开发能使我们的技术和能力一直顺应市场和变化,和完成一个足够优秀的自己的产品. 一些问题 市场上有很多符合我们需求的产品,为什么还要开发一款类似的应用呢? 从个人角度上讲,原因有很多,最主要的是软件对数据和隐私的收集,谁也不希望用个计算器,手电筒等工具型应用等,都把自己的老底给扒个干净. 本质上免费和付费的服务都是或多或少出售了用户的隐私和数据,你没得选. 从用户体验上讲,不喜欢无处不在的广告,不喜欢设计的操作流程,或者功能不足以满足等,谁也不想广告一直粘着你的眼睛. 从开发角度来讲,我们可以设计的更好看,功能更完善,甚至比对方便宜或者免费,不受对方限制,拥有更多的自定义的权利. 创建产品可以学习开发技术,可以解决某些痛点,可以将其商业化,可以成为独属于自己的核心资源.

October 1, 2019 · 1 min · jiezi

BBR在实时音视频领域的应用

小议BBR算法 BBR全称Bottleneck Bandwidth and RTT,它是谷歌在2016年推出的全新的网络拥塞控制算法。要说明BBR算法,就不能不提TCP拥塞算法。 传统的TCP拥塞控制算法,是基于丢包反馈的协议。基于丢包反馈的协议是一种被动式的拥塞控制机制,其依据网络中的丢包事件来做网络拥塞判断。即便网络中的负载很高时,只要没有产生拥塞丢包,协议就不会主动降低自己的发送速度。 TCP在发送端维护一个拥塞窗口cwnd,通过cwnd来控制发送量。采用AIMD,就是加性递增和乘性递减的方式控制cwnd,在拥塞避免阶段加性增窗,发生丢包则乘性减窗。这个拥塞控制算法的假定是丢包都是拥塞造成的。 TCP拥塞控制协议希望最大程度的利用网络剩余带宽,提高吞吐量。然而,由于基于丢包反馈协议在网络近饱和状态下所表现出来的侵略性,一方面大大提高了网络的带宽利用率;但另一方面,对于基于丢包反馈的拥塞控制协议来说,大大提高网络利用率同时意味着下一次拥塞丢包事件为期不远了,所以这些协议在提高网络带宽利用率的同时也间接加大了网络的丢包率,造成整个网络的抖动性加剧。TCP拥塞控制算法的假定是丢包都是拥塞造成的,而事实上,丢包并不总是拥塞导致,丢包可能原因是多方面,比如:路由器策略导致的丢包,WIFI信号干扰导致的错误包,信号的信噪比(SNR)的影响等等。这些丢包并不是网络拥塞造成的,但是却会造成TCP 控制算法的大幅波动,即使在网络带宽很好的情况下,仍然会出现发送速率上不去的情况。比如长肥管道,带宽很高,RTT很大。管道中随机丢包的可能性很大,这就会造成TCP的发送速度起不来。 Google 的BBR出现很好的解决了这个问题。BBR是一种基于带宽和延迟反馈的拥塞控制算法。它是一个典型的封闭反馈系统,发送多少报文和用多快的速度发送这些报文都是每次反馈中不断调节。BBR算法的核心就是找到两个参数,最大带宽和最小延时。最大带宽和最小延时的乘积就是BDP(Bandwidth Delay Product), BDP就是网络链路中可以存放数据的最大容量。知道了BDP就可以解决应该发送多少数据的问题,而网络最大带宽可以解决用多大速度发送的问题。如果网络比作一条高速公路,把数据比作汽车,最大带宽就是每分钟允许通行的汽车数量,最小RTT就是没有拥堵情况下,汽车跑一个来回需要的时间,而BDP就是在这条路上排满汽车的数量。 BBR如何探测最大带宽和最小延时BBR是如何探测最大带宽和最小延时呢?首先有一点就是最大带宽和最小延时是无法同时得到的。 如图所示,横轴是网络链路中的数据量,纵轴分别是RTT和带宽。可以发现在RTT不变的时候,带宽一直在上升,没有达到最大,因为这个时候网络没有拥塞,而带宽停止上涨的时候RTT持续变大,一直到发生丢包。因为这个时候,网络开始拥塞,报文累积在路由器的buffer中,这样延时持续变大,而带宽不会变大。图中BDP的竖线所标识的就是理想情况下最大带宽和最小延时。很明显,要找到BDP, 很难在同一时刻找到最小的RTT和最大带宽。这样最小RTT和最大带宽必须分别探测。探测最大带宽的方法就是尽量多发数据,把网络中的buffer占满,带宽在一段时间内不会增加,这样可以得到此时的最大带宽。探测最小RTT的方法就是尽量把buffer腾空,让数据交付延时尽量低。由此,BBR就引入了基于不同探测阶段的状态机。 状态机分为4个阶段,Startup,Drain,ProbeBW, ProbeRTT。Startup类似于普通拥塞控制里的慢启动,增益系数是 2ln2,每一个来回都以这个系数增大发包速率,估测到带宽满了就进入 Drain状态,连续三个来回,测得的最大瓶颈带宽没有比上一轮增大 25%以上,就算带宽满了。进入 Drain状态,增益系数小于 1,也就降速了。一个包来回,把 Startup状态中产生的拍队排空,怎样才算队列空了?发出去还没有 ACK 的数据包量 inflight,与 BDP 进行比较,inflight < BDP 说明空了,道路不那么满了,如果 inflght > BDP 说明还不能到下一个状态,继续 Drain。ProbeBW是稳定状态,这时已经测出来一个最大瓶颈带宽,而且尽量不会产生排队现象。之后的每个来回,在 ProbeBW状态循环(除非要进入下面提到的 ProbeRTT状态),轮询下面这些增益系数,[5/4, 3/4, 1, 1, 1, 1, 1, 1],如此,最大瓶颈带宽就会在其停止增长的地方上下徘徊。大部分时间都应该处于 ProbeBW状态。前面三种状态,都可能进入 ProbeRTT状态。超过十秒没有估测到更小的 RTT 值,这时进入 ProbeRTT状态,把发包量降低,空出道路来比较准确得测一个 RTT 值,至少 200ms 或一个包的来回之后退出这个状态。检查带宽是否是满的,进入不同的状态:如果不满,进入 Startup状态,如果满,进入 ProbeBW状态。BBR算法不会因为一次或者偶然的丢包就大幅降低吞吐量,这样就比TCP就有较强的抗丢包能力。 如图所示,cubic在丢包率上升的时候,吞吐量下降很快。而BBR在5%以上的丢包才会出现明显的吞吐量下降。BBR与基于丢包反馈的cubic和基于延时反馈的vegas算法的本质区别在于,BBR无视随机丢包,无视时延短暂波动,采用了实时采集并保留时间窗口的策略,保持对可用带宽的准确探知。事实上,丢包并不一定会造成带宽减少,延迟增加也不一定会造成带宽减少,cubic无法判断是否拥塞造成的丢包,vegas对延时增加过于敏感,会导致竞争性不足。BBR可以区分出噪声丢包和拥塞丢包,这样意味着,BBR比传统TCP拥塞控制算法具有更好的抗丢包能力。 BBR在实时音视频领域的应用实时音视频系统要求低延时,流畅性好,而实际网络状态却是复杂多变的,丢包,延时和网络带宽都在时刻变化,这就对网络拥塞控制算法提出了很高的要求。它需要一种带宽估计准确,抗丢包和抖动能力好的拥塞控制算法。目前Google的webrtc提供了GCC控制算法,它是一种发送侧基于延迟和丢包的控制算法,这个算法的原理在很多地方都有详细描述,这里不再赘述。GCC用于实音视频的主要问题还在于在带宽发生变化时,它的带宽跟踪时间比较长,这样就会造成带宽突变的时候无法及时准确探测带宽,可能造成音视频卡顿。既然BBR有良好的抗丢包能力,自然也被想到应用到实时音视频领域。但是,BBR并不是为处理实时音视频设计的,所以需要对一些问题做一些优化。第一,BBR在丢包率达到25%以上,吞吐量会断崖式下降。这是由BBR算法的pacing_gain数组[5/4, 3/4, 1, 1, 1, 1, 1, 1]的固定参数决定的。在pacing_gain数组中,其增益周期的倍数为5/4,增益也就是25%,可以简单理解为,在增益周期,BBR可以多发送25%的数据。在增益期,丢包率是否抵消了增益比25%?也就是说,x是否大于25。假设丢包率固定为25%,那么,在增益周期,25%的增益完全被25%的丢包所抵消,相当于没有收益,接下来到了排空周期,由于丢包率不变,又会减少了25%的发送数据,同时丢包率依然是25%...再接下来的6个RTT,持续保持25%的丢包率,而发送率却仅仅基于反馈,即每次递减25%,我们可以看到,在pacing_gain标识的所有8周期,数据的发送量是只减不增的,并且会一直持续下去,这样就会断崖式下跌。 怎样才能对抗丢包,这就需要在每个周期考虑丢包率,把丢包率补偿进去。比如丢包率达到25%的时候,增益系数就变成50%,这样就可以避免由于丢包带来的反馈减损,然而,你又如何判断这些丢包是噪声丢包还是拥塞丢包呢?答案在于RTT,只要时间窗口内的RTT不增加,那么丢包就不是拥塞导致的。第二,BBR的最小RTT有个10s超时时间,在10s超时后,进入ProbeRTT 状态,并持续最小200ms,此状态下,为了排空拥塞,inflight只允许有4个包,这会导致音视频数据在这段时间内堆积在发送队列中,使得时延增加。可行的解决办法是,不再保留ProbeRTT状态,采用多轮下降的方式排空拥塞,然后采样最小RTT,也就是在infight > bdp的时候,设置pacing gain为0.75,用0.75倍带宽作为发送速率,持续多轮,直到inflight < bdp, 此外,最小RTT的超时时间改成2.5s,也就是说不采用非常激进的探测方式,避免了发送速率的大幅波动,可以改善探测新的带宽过程中发送队列中产生的延时。第三,开始提到pacing gain数组上探周期为1.25倍带宽,随后是0.75倍带宽周期,这两个RTT周期之间会出现发送速率的剧烈下降,这可能会使音视频数据滞留在buffer中发不出去,引入不必要的延时。解决办法可以考虑减小上探周期和排空周期的幅度,比如使用[1.1 0.9 1 1 1 1 1 1]这种pacing gain参数,这样做的优点就是可以保证媒体流的平稳发送,发送速率不会大幅波动,缺点是,网络带宽改善的时候,上探时间会变长。第四,BBR探测新带宽收敛慢的问题原始的BBR算法的收敛性受到pacing gain周期影响,带宽突降的时候,BBR需要多个轮次才会降到实际带宽。这是由于BBR每轮只能降速一次,而pacing gain的6个RTT的保持周期大大加长了这个时间。解决的办法就是随机化pacing gain的6个保持周期,如果是0.75倍周期,就一次降速到位,这样可以极大的减少BBR的收敛时间。最后,BBR算法看似简单,但是应用到实时音视频却没有那么简单,需要大量的实验优化,谷歌也在webrtc中引入BBR,目前仍在测试中。本文提到的改进方法是网易云信在这方面的一些尝试,希望能够抛砖引玉,有更多有兴趣的人能够为BBR应用到实时音视频领域出力。 ...

June 28, 2019 · 1 min · jiezi