Mars简介

  1. Mars介绍
    依据Github上介绍:“Mars是微信官方的跨平台跨业务的终端基础组件”。
    2012年,微信需要同时支持Android、iOS、Symbian三个平台,然而三个平台没有统一的基础模块。因迭代速度、编程语言、后台架构不同造成各平台基础模块出现差异,服务器需要做大量兼容工作。
    2012年开始,微信团队开始着手做基于C++语言的通用基础组件,并已实际接入微信各平台客户端。2016年底、微信团队以“Mars”为项目名称将微信通用网络基础组件开源。
  2. Mars功能
    Mars主要解决跨平台移动终端基于移动互联网的小数据通信。它能够解决如下问题:
    1、提供长连、短连两种网络通道;
    2、常规的网络通信能力,例如DNS防劫持、动态IP下发、就近接入、容灾恢复
    3、贴合移动互联网的网络层解决方案;
    4、贴合移动终端的平台特性:前后台、活跃态、休眠、省电、省流量等
  3. Mars结构分析
    Mars简介
    开源Mars主要包括Comm、STN、XLOG、SDT四个模块。
    Comm模块:是Mars基础库,主要包括socket、线程、消息队列、协程等基础工具。
    STN模块:信令传输网络模块,是Mars的核心模块。负责终端与服务器的小数据信令通道。与AFNetworking、Retrofit、Okhttp等框架不同,STN更着重于“移动互联网”这个特点,结合移动互联网的不稳定特性,做了大量优化工作,并且这些优化都经过微信长时间的验证和使用。STN还提供其他功能:提供许多数据回调接口用于数据监控;包含有许多关键日志用于网络层问题定位;参数抽离为配置,方便用户修改。
    SDT模块:网络诊断模块,提供最基础的检查能力。用于替换系统API,满足更高的网络诊断要求,需用户自己组合使用。
    XLOG模块:通用日志模块,充分考虑移动终端特点,提供高性能、高可用、安全性、容错性的日志功能。
  4. Mars同类技术对比
    Mars简介
    AFNtworking、Retrofit、OkHttp在各自使用平台上都是非常出色的网络通信库,但是它们都没有结合移动互联网特点做相应优化。Mars基于微信业务需求充分考虑移动网络特点,是能够很好满足大规模用户环境稳定、省流量、省电、数据传输流畅、弱网络健壮、后台自动保活的网络通信组件。