下面是个人研究微信android 4.2版本的一些结果,不一定正确。
libImgProcess.so 用于gif处理,特别是抠背景。这个微信在一个讲座里面还专门提过。
libvprotocal.so 用于视频录制,不过这个库效率也不高。录制一分钟的视频,等待压缩要半分钟。干嘛不像Instagram放在后头偷偷去做,或者边做边录。
libMMProtocalJni.so 用于pcm转amr,不用android系统自带的是因为可以边录边发,这个库也做了插件相关的一些处理
libvoipMain.so 视频通话
libvoi
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做成熟一点了。
libImgProcess.so 用于gif处理,特别是抠背景。这个微信在一个讲座里面还专门提过。
libvprotocal.so 用于视频录制,不过这个库效率也不高。录制一分钟的视频,等待压缩要半分钟。干嘛不像Instagram放在后头偷偷去做,或者边做边录。
libMMProtocalJni.so 用于pcm转amr,不用android系统自带的是因为可以边录边发,这个库也做了插件相关的一些处理
libvoipMain.so 视频通话
libvoi