核心原理
Android 推送通過 長連接 或 系統級廣播 實現應用未啟動時也能接收消息:
- 註冊階段:App 首次啟動向推送服務器(如 Firebase FCM、個推、極光、小米/華為廠商通道)註冊,獲取唯一
Registration ID(Token)。
- 保活機制:系統級服務(Google Play Services、廠商推送服務)常駐後台,維持與雲端的心跳長連接。
- 下發階段:服務端調用推送平台 API,攜帶 Target Token 下發消息;平台通過長連接將消息推送至設備系統服務。
- 展示通知:系統服務解析消息,在通知欄顯示(可自定義布局
RemoteViews),用戶點擊啟動對應 Activity。
通知欄布局
默認使用系統樣式;高版本 Android 支持 NotificationCompat.Builder 自定義圖標、標題、內容、大圖、按鈕等;極致自定義需使用 RemoteViews 佈局 XML。
常見方案
- 國內:個推、極光、友盟、小米/華為/OPPO/vivo 廠商通道(覆蓋率高)。
- 國際:Firebase Cloud Messaging (FCM)。
- 自建:基於 MQTT/TCP 長連接,需自行解決保活、省電策略,成本較高。
建議集成主流 SDK,兼容廠商通道,提升送達率。