Google đã triển khai tính năng thông báo đẩy của họ như thế nào? Liệu nó hoạt động thông qua bỏ phiếu được thực hiện bởi một dịch vụ chạy trong nền hoặc theo một cách khác?
Google đã triển khai tính năng thông báo đẩy của họ như thế nào? Liệu nó hoạt động thông qua bỏ phiếu được thực hiện bởi một dịch vụ chạy trong nền hoặc theo một cách khác?
Câu trả lời:
Từ những gì tôi đã nghe trong một hội nghị các nhà phát triển Android ở Israel:
Đơn giản là có một ổ cắm TCP đang chờ trong chế độ chấp nhận trên máy chủ Google trên nền tảng đám mây. Kết nối TCP đã được bắt đầu bởi ứng dụng Google Play. Đó là lý do tại sao Google Play phải được cài đặt trên thiết bị để làm cho Google Cloud Messaging (GCM) (trước đây là Android Cloud to Device Messaging Service - C2DM ) hoạt động.
Khi ổ cắm máy khách TCP này nhận được một số thông báo, thông báo chứa thông tin như tên gói của ứng dụng cần được gửi đến, và dĩ nhiên - chính dữ liệu đó. Dữ liệu này được phân tích cú pháp và đóng gói vào một mục đích được phát và cuối cùng được ứng dụng nhận được.
Ổ cắm TCP vẫn mở ngay cả khi trạng thái radio của thiết bị chuyển sang chế độ "không hoạt động". Các ứng dụng không phải chạy để nhận được ý định.
Thêm thông tin tại http://developer.android.com/google/gcm/gcm.html
Android giữ một kết nối hoạt động với các máy chủ của Google, nhưng nó không sử dụng nhiều năng lượng hoặc dữ liệu, vì không có lưu lượng nào được gửi dọc theo cho đến khi có thứ gì đó gửi tin nhắn Google Cloud Messaging (GCM) đến một ứng dụng trên điện thoại của bạn. Chỉ có một kết nối trên điện thoại, được sử dụng bởi tất cả các ứng dụng: cài đặt ứng dụng mới sử dụng GCM không thêm bất kỳ tải nào.
Bước đầu tiên trong GCM là máy chủ của bên thứ ba (như máy chủ email) gửi yêu cầu đến máy chủ GCM của Google. Máy chủ này sau đó gửi tin nhắn đến thiết bị của bạn, thông qua kết nối mở đó. Hệ thống Android xem thông báo để xác định ứng dụng nào và bắt đầu ứng dụng đó. Ứng dụng phải được đăng ký với Android để sử dụng GCM và ứng dụng phải có sự cho phép liên quan. Khi ứng dụng khởi động, nó có thể tạo thông báo ngay lập tức với dữ liệu từ tin nhắn. Tin nhắn GCM có kích thước rất hạn chế, vì vậy, ứng dụng có thể mở kết nối bình thường đến máy chủ của bên thứ ba để có thêm thông tin (ví dụ: tải xuống tiêu đề của email mới).
Ưu điểm của việc sử dụng thông báo đẩy là các ứng dụng không phải chạy định kỳ để kiểm tra dữ liệu mới, tiết kiệm cả năng lượng và dữ liệu. Ưu điểm của việc có một cơ chế tập trung như GCM là thiết bị chỉ cần một kết nối mạng mở và hệ thống GCM của Android là điều duy nhất cần tiếp tục chạy, thay vì mỗi ứng dụng phải chạy trong nền để giữ mạng riêng. kết nối với máy chủ của riêng mình.
Bạn có thể tự thực hiện thông báo đẩy trên Android với kết nối tcp bỏ phiếu dài. Nhưng điều đó sẽ liên quan đến việc duy trì một ổ cắm thêm => hao pin. Hoặc bạn có thể mở kết nối theo định kỳ bằng Trình quản lý báo thức.
Google có thể mở một ổ cắm cho tất cả các thông báo đẩy C2DM, do đó, nó tiết kiệm pin hơn.
Kể từ ngày 10 tháng 4 năm 2018, Google đã không chấp nhận GCM. API máy chủ và máy khách GCM không được chấp nhận và sẽ bị xóa ngay sau ngày 11 tháng 4 năm 2019. Di chuyển các ứng dụng GCM sang Firebase Cloud Messaging (FCM), kế thừa cơ sở hạ tầng GCM đáng tin cậy và có thể mở rộng, cùng với nhiều tính năng mới.
Trên thiết bị Android, khi bạn nhận được thông báo đẩy, hình ảnh và thông báo của ứng dụng người gửi sẽ xuất hiện trên thanh trạng thái. Chính xác khi khách hàng nhấn vào thông báo, anh ấy / cô ấy sẽ vào ứng dụng.