首页 > IT业界 > 正文

微信android 4.2版本功能分析(一)

2013-08-13 11:33:50  来源:于斌blog

摘要:下面是个人研究微信android 4.2版本的一些结果,微信后面应该是朝着平台方向发展,也就是它提供推送和消息发送平台,让其他厂商依此开发应用,发布信息,做活动等。
关键词: 微信 数据库 互联网

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


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


    3. 微信发送地理位置用的是google地图,网页地址在assetsmapmap_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 视频通话


    libvoice.so 视频通话语音处理,用了speex


    libSync.so 用于通讯录同步


    libImgFilter.so 用于图片处理的滤镜


    libmmcrypto.so 数据库加密,其实就是sqlcipher


    6.  我原先以为微信会在QQ的基础上做视频通话,但实际上它没有,可能是因为这样可以比较独立,不用遵循QQ的协议。不过QQ的协议为了兼容,有了很重的历史包袱,已不太适合新潮流了。微信的视频通话用了两个服务器:punch.weixin.qq.com和voip.weixin.qq.com。这两个服务器主要是为了打洞和握手。


[page]    7. 从http://timyang.net/architecture/notes-weixin/和腾讯大讲堂的一些资料,谈的比较多的是类Sync协议。从张小龙做邮箱的背景来看,我原本以为会是这样一种协议:每个消息相当于一条邮件,而微信的各个界面相当于邮箱的各个文件夹,例如收件箱,发件箱,垃圾邮件,自定义文件夹等,客户端和服务器端要做的就是做这些文件夹同步,就像rsync一样。但从后面的了解来看,实际上并没有这样做。我觉得用邮件来理解IM系统是最直观的方式,发一条消息相当于发一封邮件,邮件体系里面已经很好地做到了转发,分布式,邮件组,邮件状态等功能,客户端要做的就是同步邮件和联系人等。


    8. 从微信的发展来看,微信后面应该是朝着平台方向发展,也就是它提供推送和消息发送平台,让其他厂商依此开发应用,发布信息,做活动等。现实中的一句话:要致富,先修路。互联网的路就是互通,就是交流。QQ就是站住了这个先机,所以后面可以做很多其他的事情来赚钱。


    9. 从现在互联网的发展而言,IM和视频(包括IM里面视频通话)是一个方向,这些都应该成为互联网的基础设施,就像浏览器一样。现在IM还没有一个很好的解决方案,XMPP并不能很好地做到业务逻辑独立开来。从IM的本质来看,IM其实就是将一条消息从一个地方传输到另外一个地方,这个和TCP很像,为什么不实现一个高级点的TCP协议了,只是将TCP/IP里面的IP地址换成了一个类似XMPP的唯一ID而已,其他的很多细节都可以照搬TCP协议。有了这个协议之后,将业务逻辑在现有HTTP server的基础上做,例如发送语音和图片就相当于上传一个文件,服务器在处理完这个文件后就发一条特殊的IM消息。客户端收到这个IM消息后,按照IM消息里面url去HTTP server取语音文件和图片文件。将HTTP server和IM server打通之后,可以做很多事情。但将这个两个server合并在一块并不是一个好事,不然腾讯也不会有2005年的战略转型了。从现在的情况来看,应用除了游戏,都没怎么赚钱,现在能够承载赚钱业务的还是以web为主。IM不可以赚钱,但没有却是不行的,就像一个地方要致富,不修路是不行的道理一样。


第四十一届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:董光帅

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。