微信移动端数据库组件WCDB即将开源,详见各平台 API 文档新增

摘要声网SDK 1.12版于2017年07月25日发布。声网 Agora.io 是为 App
开发者提供全球范围实时音视频通信服务的云服务商。简介以下是来自声网官方网站的介绍:声网
Agora.io 是首家为 App
开发者提供全球范围实时音视频通信服务的服务商,在全球部署了近 100
个数据中心,搭建 SD-RTN™(Software Defined Real Time
Network)这个专为「实时」所设计的虚拟通信网,来极大优化全球范围内的实时传输。声网Agora.io
为开发者提供有质量保证 QoE 的实时云服务。声网 Agora.io 于 2014
年成立,隶属于上海兆言网络科技有限公司,总部位于硅谷,研发中心位于上海。团队
90% 均为全球技术工程师,包括苹果Apple 视频算法架构师、Vidyo
产品负责人、Polycom 工程总监等,平均行业经验 10
年以上,团队有年服务数千亿分钟音视频通话经验和千万级并发的互联网直播经验。更新内容新功能:Android/iOS直播场景下,
新增 API 方法injectStream在当前频道内插入一条 RTMP 流。详见各平台 API
文档。该功能目前为 beta 版在 API
方法setEncryptionMode里新增加密模式aes-128-ecb。详见各平台 API 文档在
API 方法startAudioRecording里新增参数quality用于设置录音音质。详见各平台
API 文档新增一系列 API 管理音效。详见各平台 API 文档Mac:直播场景下,
新增 API 方法injectStream在当前频道内插入一条 RTMP 流。详见各平台 API
文档。该功能目前为 beta 版在 API
方法setEncryptionMode里新增加密模式aes-128-ecb。详见各平台 API 文档在
API 方法startAudioRecording里新增参数quality用于设置录音音质。详见各平台
API 文档新增一系列 API 管理音效。详见各平台 API 文档新增
APIActiveSpeaker提示当前频道内谁在说话通信场景下,删除了原有的 API
方法setScreenCaptureWindow(),更新 API
方法startScreenCapture()共享整个屏幕、指定窗口或指定区域通信场景下,启用屏幕共享功能后,在屏幕共享过程中可以显示鼠标Windows:直播场景下,
新增 API 方法injectStream在当前频道内插入一条 RTMP 流。详见 API
文档。该功能目前为 beta 版在 API
方法setEncryptionMode里新增加密模式aes-128-ecb。详见 API 文档新增
APIonActiveSpeaker提示当前频道内谁在说话通信场景下,删除了原有的 API
方法setScreenCaptureWindow(),更新 API
方法startScreenCapture()共享整个屏幕、指定窗口或指定区域通信场景下,启用屏幕共享功能后,在屏幕共享过程中可以显示鼠标Web:
新增和更新了一系列 API
支持通信或直播场景网页端和本地客户端的互通。详见Agora Web SDK
发版说明录制: 新增实时合图,网页端录制和回调功能。详见录制 SDK
发版说明改进:Android/iOS/Mac/Windows: 通信场景下针对 320 x 180
分辨率提供了以下改进方案:网络和设备状态较差的情况下仍能保证画质流畅度网络和设备状态良好的情况下可以做到比
180P 更好的画质清晰度修复问题:Android:
修复了部分机型上蓝牙相关的语音路由问题Android/iOS/Mac/Windows:
修复了部分机型上偶现的崩溃问题声网链接下载地址:

摘要邀请参加即时通讯云服务端环信提供的公开课第15期:如何用AI+深度学习实现视频美颜。环信简介环信成立于2013年4月,是一家国内领先的企业级软件服务提供商,于2016年荣膺“Gartner
2016 Cool
Vendor”。产品包括国内上线最早规模最大的即时通讯云平台——环信即时通讯云,以及移动端最佳实践的全媒体智能云客服平台——环信移动客服。参会方式点此链接进入报名:

摘要微信开发团队宣布将微信自用的移动端数据库组件 WCDB(WeChat
Database)正式对外开源。前言微信团队两周前预告即将开源WCDB后(详见当时资讯《[资讯]
微信移动端数据库组件WCDB即将开源!》),于2017年06月09日正式开源了微信自用的移动端数据库组件
WCDB(WeChat
Database)。WCDB简介WCDB是一个高效、完整、易用的移动数据库框架,基于
SQLCipher,支持 iOS、macOS 和
Android。微信高级工程师何俊伟表示:“开源只是故事的开始,我们仍会持续对
WCDB
做改进,包括更易用的接口、更好的性能、更高的可靠性。这些改进最终也会原封不动地在微信使用。”WCDB(WeChatDataBase)是微信官方的移动端数据库组件,致力于提供一个高效、易用、完整的移动端存储方案。它包含三个模块:WCDB-iOS/Mac;WCDB-Android;数据库损坏修复工具WCDBRepair。WCDB的开发背景对于iOS开发者来说,数据库的技术选型一直是个令人头痛的问题。由于Apple提供的CoreData框架差强人意,使得开发者们纷纷将目光投向开源社区,寻找更好的存储方案。
对于微信也是如此。数据库是微信内最基础的组件之一,消息收发、联系人、朋友圈等等业务都离不开数据库的支持。为了满足需求,我们也对现有方案做了对比研究。目前移动端数据库方案按其实现可分为两类:关系型数据库,代表有CoreData、FMDB等。CoreData
它是苹果内建框架,和Xcode深度结合,可以很方便进行ORM;但其上手学习成本较高,不容易掌握。稳定性也堪忧,很容易crash;多线程的支持也比较鸡肋。FMDB
它基于SQLite封装,对于有SQLite和ObjC基础的开发者来说,简单易懂,可以直接上手;而缺点也正是在此,FMDB只是将SQLite的C接口封装成了ObjC接口,没有做太多别的优化,即所谓的胶水代码(Glue

Code)。使用过程需要用大量的代码拼接SQL、拼装Object,并不方便。key-value数据库,代表有Realm、LevelDB、RocksDB等。Realm因其在各平台封装、优化的优势,比较受移动开发者的欢迎。对于iOS开发者,key-value的实现直接易懂,可以像使用NSDictionary一样使用Realm。并且ORM彻底,省去了拼装Object的过程。但其对代码侵入性很强,Realm要求类继承RLMObject的基类。这对于单继承的ObjC,意味着不能再继承其他自定义的子类。同时,key-value数据库对较为复杂的查询场景也比较无力。可见,各个方案都有其独特的优势及劣势,没有最好的,只有最适合的。而对于微信来说,我们所期望的数据库应满足:高效;增删改查的高效是数据库最基本的要求。除此之外,我们还希望能够支持多个线程高并发地操作数据库,以应对微信频繁收发消息的场景。易用;这是微信开源的原则,也是WCDB的原则。SQLite本不是一个易用的组件:为了完成一个查询,往往我们需要写很多拼接字符串、组装Object的胶水代码。这些代码冗长繁杂,而且容易出错,我们希望组件能统一完成这些任务。完整;数据库操作是一个复杂的场景,我们希望数据库组件能完整覆盖各种场景。包括数据库损坏、监控统计、复杂的查询、反注入等。显然,上述各个方案都不能完全满足微信的需求。于是,我们造了这个“轮子”

WCDB-iOS/Mac。WCDB通过ORM和WINQ,体现了其易用性上的优势,使得数据库操作不再繁杂。同时,通过链式调用,开发者也能够方便地获取数据库操作的耗时等性能信息。而高级用法则扩展了WCDB的功能和用法。详情请见:《微信移动端数据库组件WCDB系列(一)-iOS基础篇》WCDB源码下载WCDB源码托管地址:

相关文章