此次融云SDK触达用户数突破30亿,2018年08月02日Smack正式发由了4.3版

摘要腾讯微信团队于2018年9月底宣布开源 MMKV ,这是基于 mmap 内存映射的
key-value 组件,底层序列化/反序列化使用 protobuf
实现,主打高性能和稳定性。近期也已移植到 Android
平台,一并对外开源。简介MMKV 是基于 mmap 内存映射的 key-value
组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015
年中至今,在 iOS 微信上使用已有近 3
年,其性能和稳定性经过了时间的验证。近期也已移植到 Android
平台,一并开源。MMKV最新源码托管地址:
源起在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的
crash(请参见文章:《微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?》、《微信团队分享:iOS版微信的高性能通用key-value组件技术实践》),文章里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。在会话列表、会话界面等有大量
cell
的地方,希望新加的计时器不会影响滑动性能;另外这些计数器还要永久存储下来——因为闪退随时可能发生。这就需要一个性能非常高的通用
key-value 存储组件,我们考察了 SharedPreferences、NSUserDefaults、SQLite
等常见组件,发现都没能满足如此苛刻的性能要求。考虑到这个防 crash
方案最主要的诉求还是实时写入,而 mmap
内存映射文件刚好满足这种需求,我们尝试通过它来实现一套 key-value
组件。MMKV 原理内存准备通过 mmap
内存映射文件,提供一段可供随时写入的内存块,App
只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash
导致数据丢失。数据组织数据序列化方面我们选用 protobuf 协议,pb
在性能和空间占用上都有不错的表现。写入优化考虑到主要使用场景是频繁地进行写入更新,我们需要有增量更新的能力。我们考虑将增量
kv 对象序列化后,append 到内存末尾。空间增长使用 append
实现增量更新带来了一个新的问题,就是不断 append
的话,文件大小会增长得不可控。我们需要在性能和空间上做个折中。更详细的设计原理参考MMKV
原理。iOS 指南安装引入推荐使用
CocoaPods:安装CocoaPods;打开命令行,cd到你的项目工程目录, 输入pod repo
update让 CocoaPods 感知最新的 MMKV 版本;打开 Podfile, 添加pod
‘MMKV’到你的 app target 里面;在命令行输入pod install;用 Xcode 打开由
CocoaPods 自动生成的.xcworkspace文件;添加头文件#import
<MMKV/MMKV.h>,就可以愉快地开始你的 MMKV
之旅了。更多安装指引参考iOS Setup。快速上手MMKV
的使用非常简单,无需任何配置,所有变更立马生效,无需调用synchronize:MMKV*mmkv=[MMKVdefaultMMKV];[mmkvsetBool:YESforKey:@”bool”];BOOLbValue=[mmkvgetBoolForKey:@”bool”];[mmkvsetInt32:-1024forKey:@”int32″];int32_tiValue=[mmkvgetInt32ForKey:@”int32″];[mmkvsetObject:@”hello,mmkv”forKey:@”string”];NSString*str=[mmkvgetObjectOfClass:NSString.classforKey:@”string”];更详细的使用教程参考iOS
Tutorial。性能对比循环写入随机的int1w
次,我们有如下性能对比:更详细的性能对比参考iOS Benchmark。Android
指南安装引入推荐使用
Maven:dependencies{implementation’com.tencent:mmkv:1.0.10’//replace”1.0.10″withanyavailableversion}更多安装指引参考Android
Setup。快速上手MMKV
的使用非常简单,所有变更立马生效,无需调用sync、apply。 在 App
启动时初始化 MMKV,设定 MMKV 的根目录(files/mmkv/),例如在
MainActivity
里:protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);StringrootDir=MMKV.initialize(this);System.out.println(“mmkvroot:”+rootDir);//……}MMKV
提供一个全局的实例,可以直接使用:importcom.tencent.mmkv.MMKV;//……MMKVkv=MMKV.defaultMMKV();kv.encode(“bool”,true);booleanbValue=kv.decodeBool(“bool”);kv.encode(“int”,Integer.MIN_VALUE);intiValue=kv.decodeInt(“int”);kv.encode(“string”,”Hellofrommmkv”);Stringstr=kv.decodeString(“string”);MMKV
支持多进程访问,更详细的用法参考Android
Tutorial。性能对比循环写入随机的int1k
次,我们有如下性能对比:更详细的性能对比参考Android Benchmark。

摘要据融云官方消息:融云SDK触达用户数突破30亿。以下消息来自于融云官方:2018年9月4日,融云SDK触达用户数突破30亿,业务增长速度及用户覆盖量继续领跑行业。众所周知在互联网通信云行业,终端用户获取云服务厂商Token数量,即SDK触达用户数是衡量PaaS云服务厂商业务量规模的重要指标。对于PaaS云服务厂商来说,SDK触达用户数越多意味着该厂商所在的细分领域市场占有率越大。针对融云SDK触达用户数突破30亿,我们将此数据进行细分拆解,分别从不同维度来说明融云业务的快速发展。同时,通过对合作伙伴和海外用户的增幅动向,来了解未来融云的发力趋势。此次融云SDK触达用户数突破30亿,较2017年11月1日的20亿触达用户数,时间上快了2个月。在中国互联网红利消退的今天,融云依旧能保持高速发展态势,证实了融云继续引领通信云行业的实力。据中国互联网络信息中心CNNIC发布统计报告:中国网民规模首度超过8亿,相当于每个网民的手机上有3.75个App的内核是嵌入了融云SDK实现通信能力。伴随着中国互联网产品出海和跨国公司全球化运营需要,融云的C端海外用户持续增加,截止到目前,已有3亿的海外触达用户数。截止目前,融云渠道合作伙伴SDK触达企业级用户数超过1亿。未来,融云将进一步携手可持续发展的合作伙伴共同服务各行业客户。融云SDK触达按行业TOP5划分排名为:社交、直播、在线教育、金融、电商。社交类业务量级依旧占比很大,但在线教育、金融等垂直行业的通信需求正逐渐加大。一直以来,融云专注为互联网、移动互联网开发者提供国内外领先的即时通讯和实时音视频技术。融云将复杂的互联网通信能力进行封装,让开发者和企业可以通过调用SDK的方式迅速获取即时通讯和实时音视频沟通交流的能力。融云即时通讯主要包括单聊、群聊、聊天室、客服、运营平台等功能。同时可以对接语音转文字、语音输入、翻译、地图、红包等系统。用户可以根据自己的需求简单调用相关接口,大大节约在通讯能力上的研发时间。融云实时音视频主要包括实时音视频通话、千人会议、会议控制、互动白板、屏幕共享、录音录像等功能。同时可以对接语音转文字、人脸识别、CDN推流等系统。融云实时音视频具备部署简单、扩展灵活、容错容灾、网络优选与弱网对抗等技术优势,以保证在低成本环境下输出高性能的实时音视频能力。融云构建了一张覆盖全球所有国家及地区(共233个)的通信云网络,在全球各地设立多个数据中心及数千个加速节点。基于客户业务需求,融云可提供多种部署模式——公有云、私有云、混合云,为全球企业提供稳定的互联网通信云服务。截止目前,融云已服务了超过22万的开发者,这一数据较之去年也取得大幅增长,融云互联网通信云平台显然已成为广大开发者的口碑之选。

摘要Smack是著名的开源XMPP客户端库,另一个开源IM全功能客户端Spark就是基于此库编写的,2018年08月02日Smack正式发由了4.3版。前言Smack是著名的开源XMPP客户端库,另一个开源IM全功能客户端Spark就是基于此库编写的(Spark或其修改版被众多国内中小企业作为内部沟通工具),2018年08月02日Smack正式发由了4.2.2版,此版为小幅更新版。更新内容Bug[SMACK-759]

  • PubSubManager.getLeafNode() throws
    PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its
    not a PubSub Node[SMACK-814] – NPE when using
    Node.getAffiliationsAsOwner()[SMACK-815] – XEP-0184: DeliveryReceipt
    requires ID, although the XEP defines it as optional
    attribute[SMACK-818] – EntityCapsManager sends presences with multiple
    CapsExtension causing disco#info lookup to fail[SMACK-819] –
    ConcurrentModification Exception in
    MultiUserChatManager.java[SMACK-820] – DNSUtil.setDaneProvider() does
    not set the DANE providerTask[SMACK-769] – Rename XMPPError to
    StanzaError[SMACK-776] – Remove deprecated reconnection callbacks in
    ConnectionListenerImprovement[SMACK-761] – Adopt ChatStateManager to
    new Chat API (chat2)[SMACK-812] – Enable ModifierOrder checkstyle
    check[SMACK-816] – SimplePayload should infer the XML element name and
    namespace详见官方博客:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

CopyRight © 2015-2020 新萄京娱乐3730-娱乐场官网app下载 All Rights Reserved.
网站地图xml地图