微信的研究

本文探讨了微信在Android上的音频编码使用speex库,数据库采用sqlcipher加密,地理位置依赖google地图,视频通信基于speex、webrtc等技术,并独立于QQ协议,使用特定服务器进行网络握手。微信的发展趋势可能朝平台化方向,提供消息推送服务,支持第三方应用开发。
摘要由CSDN通过智能技术生成

下面是个人研究微信android 4.2版本的一些结果,不一定正确。

1. 微信android使用的是amr编码;iphone未知,估计是aac,转码会在微信服务器上完成。android上使用了speex这个库,估计是为了达到边录边发。在服务器做格式转换确实比客户端方便多了,用ffmpeg就可以搞定了,也是瘦客户端的一种思路,而且可以依此延伸很多扩展业务。


2. 微信android最新版的数据库依然是sqlite,但文件做了加密,用的是http://sqlcipher.net/


3. 微信发送地理位置用的是google地图,网页地址在assets\map\map_cn.html


4. 微信的视频通信不是在QQ的基础上做的,而是自己实现的一套,基于speex,webrtc, voip等库。微信和QQ的视频通信和skype相差太远了,特别是网络好的情况下。看来视频通信还是有技术壁垒的,现在只能希望Google将webrtc做成熟一点了。


5. 微信使用了一些jni:
    libImgProcess.so 用于gif处理,特别是抠背景。这个微信在一个讲座里面还专门提过。
    libvprotocal.so 用于视频录制,不过这个库效率也不高。录制一分钟的视频,等待压缩要半分钟。干嘛不像Instagram放在后头偷偷去做,或者边做边录。
    libMMProtocalJni.so  用于pcm转amr,不用android系统自带的是因为可以边录边发,这个库也做了插件相关的一些处理
    libvoipMain.so 视频通话
    libvoi
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值