Mobile Development 21 min read

How Baidu Built a Scalable Android IM SDK for Real‑Time Messaging

This article explains the background, architecture, core processes, and engineering challenges of Baidu's Android instant‑messaging SDK, detailing how the public IM system, long‑connection layer, and modular components enable reliable, real‑time communication across multiple devices.

Architecture & Thinking
Architecture & Thinking
Architecture & Thinking
How Baidu Built a Scalable Android IM SDK for Real‑Time Messaging

Background

With the rapid growth of mobile internet services such as social media, mobile payments, and e‑commerce, demand for instant messaging (IM) has surged. Integrating an IM SDK reduces development cost and speeds up feature delivery for apps.

Baidu Public IM System

Baidu operates many apps (Baidu APP, Wenxin Yiyan, Tieba, Haokan Video, etc.). Building separate IM solutions for each caused high development and maintenance overhead. A shared public IM system provides a unified set of capabilities—client SDKs, long‑connection SDK, IM plugins, and group‑chat components—so each product can plug in the needed functionality with minimal effort.

Android IM SDK Component Design

Overall Architecture

The Android SDK consists of three layers:

Interface Layer : Exposes unified APIs for messaging, conversation, settings, unread counts, and member queries.

Business Layer : Implements login management, sync management, configuration management, notification management, message management, conversation management, and group/member management.

Data Layer : Stores raw data and provides low‑level CRUD operations.

Core Processes

Login Management

Handles SDK initialization, long‑connection establishment, Baidu account login, logout, and reconnection. An abnormal‑recovery mechanism detects network, account, or connection failures, reports them to callers, and automatically re‑logs in when conditions normalize.

Data Synchronization

After login, the SDK synchronizes offline single‑chat and group‑chat sessions, messages, and contacts via the long‑connection SDK. To reduce server QPS, a versionCode mechanism and a pull‑queue are used so that unchanged sessions are not re‑queried.

Notification Management

Server pushes notifications for new messages, read status, deletions, and other events. Devices parse these notifications and pull the corresponding data, ensuring multi‑device consistency through an instruction‑message model.

Message Send/Receive

A push‑pull hybrid approach is adopted: the server pushes a lightweight notification, and the client pulls the full message. Failure‑retry and reconnection logic guarantee reliable delivery even under network instability.

Challenges & Solutions

Environment Changes : Implement listeners for network, account, and connection status; provide feedback to callers; auto‑reconfigure and re‑login when conditions recover.

High QPS on Server : Use local unread‑count calculation, batch session pull, and versionCode to avoid unnecessary queries.

Message Loss During Sync : Delay versionCode recording until all messages are fetched; add retry mechanisms for failed pull tasks.

Multi‑Device Data Consistency : Encode user actions as instruction messages stored on the server; offline devices retrieve and replay these instructions upon reconnection.

Reliable Message Delivery : Add upstream failure marking with UI feedback, enable manual resend, and implement downstream pull‑after‑reconnect to fetch missed messages.

Conclusion

The public IM system delivers a modular, high‑cohesion set of capabilities—long‑connection SDK, IM SDK, chat plugins, and group components—that support real‑time, reliable, and secure messaging for a wide range of Baidu products. By addressing performance, reliability, and multi‑device consistency challenges, the solution dramatically reduces development effort and cost while providing a robust user experience.

mobile developmentSystem ArchitecturereliabilityReal-time CommunicationAndroid SDKInstant Messaging
Architecture & Thinking
Written by

Architecture & Thinking

🍭 Frontline tech director and chief architect at top-tier companies 🥝 Years of deep experience in internet, e‑commerce, social, and finance sectors 🌾 Committed to publishing high‑quality articles covering core technologies of leading internet firms, application architecture, and AI breakthroughs.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.