Skip to content
garryyan edited this page Dec 19, 2016 · 32 revisions

#Mars -- 微信跨平台跨业务基础组件 ##Mars 是什么 Mars 是微信官方的终端基础组件, 是一个业务性无关,平台性无关 使用C++ 编写的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。

它主要包括以下几个部分:

  1. comm 封装了一些常用的公共函数,包括线程、消息队列等
  2. xlog 可以独立使用的日志组件
  3. sdt 可以独立使用的信令网络诊断组件
  4. stn 可以独立使用的信令分发网路组件

##为什么使用 Mars

Mars AFNtworking Retrofit OkHttp
跨平台 yes no no no
实现语言 C++ Objective-C Java Java
具体实现 基于 socket 基于 HTTP 基于 HTTP 基于 HTTP
支持完整的 HTTP no yes yes yes
支持长连 yes no no no
日志 yes no no no
DNS 扩展 yes no no no
结合移动 App做设计 yes no no no

##总的来说:

  1. Mars 中包括一个完整的高性能的日志组件 xlog。

  2. Mars 中 stn 是一个跨平台的 socket 层解决方案,并不支持完整的 HTTP 协议。

Mars 是一个结合移动 App 所设计的基于 socket 层的解决方案,在网络调优方面有更好的可控性,不过对于 HTTP 完整协议的支持,已经考虑后续版本会加入。

如果你想一次学习,多个平台使用,Mars 是一个比较好的选择,如果你面对的用户是移动网络下的用户,Mars 更是一个比较好的选择。但如果你只是想使用完整的 HTTP 协议,Mars暂时可能不适合你。

如何使用 Mars

在使用之前请务必先仔细阅读以下文档:

为了方便大家更容易的接入Mars 或讨论相关技术,大家可加入 QQ 交流群 。为了方便大家交流,入群请注明姓名与公司等信息。

##更多文章

Android微信智能心跳方案:
http://mp.weixin.qq.com/s/ghnmC8709DvnhieQhkLJpA

微信Mars — 移动互联网下的高质量网络连接探索(小蛮腰科技大会PPT):
http://ppt.geekbang.org/slide/show/630

微信终端跨平台组件 Mars 系列(一) - 高性能日志模块 xlog:
http://mp.weixin.qq.com/s/cnhuEodJGIbdodh0IxNeXQ

微信 Mars:客户端跨平台组件的开发经验:
http://mp.weixin.qq.com/s/obfHNHYXDZDMGrZd-TpRGA

微信终端跨平台组件 Mars 系列 (二) - 信令传输超时设计:
http://mp.weixin.qq.com/s/PnICVDyVuMSyvpvTrdEpSQ

微信客户端怎样应对弱网络(GMCC会议PPT):
http://ppt.geekbang.org/slide/show/203