Khác biệt nằm trong cơ chế đẩy thông báo của iPhone khi không cần ứng dụng chạy ngầm nhưng vẫn gửi tin nhắn kịp thời đến cho người dùng.
Các điện thoại Android thường vốn có dung lượng RAM lớn hơn so với iPhone, nhưng đối với thiết bị Android tại Trung Quốc, dung lượng RAM còn lớn hơn nữa. Ví dụ iPhone 11 Pro mới ra mắt cũng chỉ có nhiều nhất là 4GB RAM, trong khi RAM của điện thoại Android tại Trung Quốc có thể lên đến 12GB.
Liệu có phải do gã nhà giàu Apple quá keo kiệt với người dùng đến mức chỉ trang bị bộ nhớ RAM với dung lượng nhỏ còn các nhà sản xuất Android, đặc biệt tại Trung Quốc, lại đang rộng rãi hơn với người dùng và trang bị các bộ nhớ siêu khủng lên thiết bị của họ. Không phải như vậy.
Nói một cách ngắn gọn, bởi vì phần lớn trong số 12GB RAM khổng lồ trên đã dành cho các ứng dụng đang chạy nền bên dưới. Trong khi đó iPhone có ít RAM hơn chỉ bởi vì iOS có thể hoạt động mà không cần nhiều bộ nhớ RAM.
Về cơ bản, điều này là vì hệ thống đẩy thông báo trên iPhone hoạt động độc lập với ứng dụng, chỉ phụ thuộc vào giao tiếp giữa thiết bị và máy chủ Apple, chứ không phải kết nối ngang hàng peer-to-peer giữa thiết bị và nhà cung cấp dịch vụ.
Ví dụ, đầu tiên máy chủ của Facebook phải gửi tin nhắn đến cho máy chủ phản hồi của Apple, rồi sau đó nó mới được chuyển sang thiết bị của bạn. Khi bạn nhận được thông báo, mở ứng dụng và bắt đầu nhận được dữ liệu từ máy chủ Facebook. Cho dù điều này xảy ra cùng lúc với khi bạn nhìn thấy thông báo, nhưng nó diễn ra trên hai kênh hoàn toàn khác nhau.
Bởi vì iOS làm đơn giản hóa quá trình giao tiếp trong bản thân thiết bị, nó chỉ cần một cổng duy nhất để giao tiếp với máy chủ của Apple, thay vì phải cần đến nhiều cổng khác nhau để giao tiếp với mỗi ứng dụng như Android. Chính vì vậy, iPhone có thể chạy được một cách mượt mà và vẫn nhận được thông báo đúng lúc dù bộ nhớ RAM nhỏ.
Trong khi đó, cơ chế đẩy thông báo của Android lại giống như “hệ thống máy tính” hơn. Mỗi ứng dụng cần đẩy thông báo khi chạy nền đều sẽ phải có một tiến trình chạy nền dành riêng cho nó để giao tiếp với máy chủ riêng nhằm trao đổi dữ liệu.
Điều này thực sự là một khác biệt kỹ thuật liên quan tới nguyên tắc thiết kế giữa hệ điều hành iOS và Android.
Trên Android, mọi ứng dụng đều phải có một số luồng chạy ngầm (nghĩa là chiếm một phần RAM) để sẵn sàng nhận thông tin gửi tới. Nói cách khác, ngay cả khi bạn mới bật điện thoại lên và chưa còn chưa sử dụng ứng dụng, một số thành phần trong mọi ứng dụng đã âm thầm khởi động và chiếm chỗ trong bộ nhớ. Những luồng khởi chạy ngầm này lại không thể bị đóng lại do chúng hoàn toàn “hợp lệ”. Nếu chúng bị đóng lại, người dùng sẽ không nhận được tin nhắn đúng lúc.
Trên thực tế, Android cũng có cơ chế đẩy thông báo tương tự như của iOS, nhờ sử dụng dịch vụ Google Cloud Message. Thông qua cơ chế đẩy thông báo của dịch vụ này, thiết bị Android cũng không cần bộ nhớ quá lớn để các ứng dụng chạy ngầm giúp người dùng nhận được thông báo kịp lúc nữa.
Thế nhưng thật đáng buồn là dịch vụ đẩy thông báo này lại bị chặn tại Trung Quốc và điều này kéo theo một hệ lụy khác cho điện thoại Android tại quốc gia này.
Tình trạng ngốn RAM trên Android càng trở nên tồi tệ hơn đối với thiết bị nền tảng này tại thị trường Trung Quốc.
Ví dụ, trong khi Huawei P30 bản quốc tế với bộ nhớ lưu trữ 128GB chỉ có 4GB hoặc 6GB RAM, còn phiên bản Trung Quốc với bộ nhớ lưu trữ 64GB đã có đến 8GB RAM. Thậm chí ở Trung Quốc gần như không thể tìm thấy chiếc Android nào có bộ nhớ lưu trữ 128GB mà lại chỉ có RAM 4GB, gần như ít nhất là phải 8GB.
Mới nhìn qua, có thể bạn sẽ thấy mừng cho người dùng Trung Quốc vì mua được máy cấu hình rất cao. Nhưng đây thực sự chỉ là một giải pháp vô vọng cho hệ sinh thái Android ở Trung Quốc nội địa.
Một ví dụ giải thích cho việc tai sao thiết bị Android tại Trung Quốc luôn cần RAM lớn là ứng dụng WeChat. Đầu tiên, sau khi bạn đăng nhập vào tài khoản WeChat, ứng dụng trên điện thoại sẽ duy trì một “kết nối dài hạn” với máy chủ của Tencent.
Khi bạn gửi tin nhắn đến bạn của mình, tin nhắn này sẽ không được gửi trực tiếp từ điện thoại của bạn đến điện thoại của anh ấy. Thay vào đó, điện thoại của bạn sẽ gửi tin nhắn đến máy chủ của Tencent, và sau đó nó mới được gửi tới bạn của mình.
Vấn đề bắt nguồn từ đây. Nếu ứng dụng WeChat trên điện thoại bị tắt, ngay cả khi máy chủ Tencent gửi tin nhắn, anh ấy cũng không nhận được nó bởi vì ứng dụng WeChat đã bị đóng hoàn toàn và ngắt kết nối với máy chủ Tencent.
Chỉ khi nào anh ấy mở lại WeChat, kết nối được phục hồi và nhận được tin nhắn. Nếu bạn muốn nhận tin nhắn đúng lúc, ứng dụng WeChat cần để lại một số luồng để chạy ngầm, và tiếp tục kết nối tới máy chủ Tencent. Chính vì vậy điện thoại Android tại Trung Quốc cần có bộ nhớ lưu trữ và bộ nhớ trong lớn. Bộ nhớ lưu trữ càng lớn, càng cài đặt được nhiều ứng dụng và càng cần nhiều RAM hơn để các ứng dụng có thể chạy ngầm một cách bình thường.
Vấn đề này có thể được giải quyết nếu máy chủ Google không được bị chặn tại Trung Quốc và các điện thoại Android tại đây có thể sử dụng dịch vụ đẩy thông báo Google Cloud Message của công ty.
Tại sao iPhone lại không cần có bộ nhớ lớn? Bởi vì Apple có server riêng của họ. Hệ điều hành iOS phải được đồng bộ với máy chủ của Apple để được hoạt động chính xác. Bất cứ khi nào thiết bị iOS kết nối với internet, việc đầu tiên nó làm là thiết lập kết nối Keep-Alive với máy chủ Apple.
Trên iOS, nếu WeChat được mở ra, cách hoạt động cũng tương tự như trên Android, sự khác biệt được phản ánh sau khi WeChat đóng lại. Nếu ứng dụng WeChat trên iPhone bị đóng lại, cũng như Android, nó sẽ bị mất kết nối với máy chủ của Tencent. Lúc này trình tự hoạt động của nó sẽ diễn ra như sau:
Tin nhắn gửi tới cho bạn đầu tiên sẽ đi tới máy chủ của Tencent. Máy chủ của Tencent nhận ra “Ứng dụng WeChat trên điện thoại của bạn không thiết lập kết nối với máy chủ.” Sau đó nó sẽ gửi tin nhắn đến máy chủ Apple. Máy chủ Apple sẽ gửi tin nhắn đó đến iPhone của bạn. Sau khi nhận được nó, iOS trên điện thoại sẽ thông báo kịp lúc.
Như vậy, nó sẽ cần thêm một bước nữa, nhưng đổi lại, ngay cả khi ứng dụng WeChat bị đóng hoàn toàn trên điện thoại, nó cũng không cần các luồng phụ để nhận được tin nhắn kịp thời. Tất cả nhờ vào máy chủ của Apple sẽ luôn luôn “nhận được tin nhắn” và gửi nó tới iOS, và sau đó đẩy thông báo tới cho bạn.
Nhờ cách làm này, iPhone không cần có bộ nhớ lưu trữ cũng như RAM “khủng” để hoạt động, bởi vì ngay cả khi ứng dụng bị đóng hoàn toàn, nó cũng không ảnh hưởng đến việc nhận được thông báo. Bên cạnh đó, iOS cũng không thực sự hỗ trợ các ứng dụng chạy ngầm. Chỉ có một số ứng dụng được chạy ngầm trên nền tảng này, bao gồm ứng dụng nghe nhạc, tải file và điều hướng.
Nếu một ứng dụng chuyển sang chạy ngầm và không được gọi lên trên bề mặt trong vòng 10 phút, hệ thống sẽ đóng nó lại, chỉ để lại “một ảnh chụp trạng thái trước khi chết“. Đây được gọi là “cơ chế bia mộ” nổi tiếng của iOS. Vì vậy, phần lớn bộ nhớ iPhone chỉ dành ứng dụng đang chạy, và chỉ cần 4G RAM là thừa đủ với chúng.
Như đã nói ở trên, việc chặn kết nối tới máy chủ Google làm các ứng dụng tại Trung Quốc không thể sử dụng cơ chế đẩy thông báo của Google và chỉ có một lựa chọn duy nhất đó là gia tăng kích thước bộ nhớ để duy trì một phần ứng dụng chạy nền và nhận thông báo kịp lúc.
Hậu quả là thiết bị Android tại Trung Quốc cần đến rất nhiều bộ nhớ để hỗ trợ cho các ứng dụng chạy nền đó. Hệ lụy lớn hơn nữa là điều này kéo theo chi phí gia tăng cho phần bộ nhớ lớn đó. Và ai là người phải gánh chịu phần chi phí này? Không ai khác ngoài người dùng Trung Quốc.
Do vậy, mọi nhà sản xuất điện thoại lớn tại Trung Quốc đều nỗ lực tìm giải pháp cho vấn đề này, ví dụ Xiaomi ra mắt dịch vụ đẩy thông báo của riêng họ, Huawei cũng có dịch vụ tương tự riêng của mình, … Nhưng nó lại quá phân mảnh giữa các nhà sản xuất với nhau khiến các nhà phát triển không muốn hợp tác với họ, khi phải tương thích với các cơ chế đẩy khác nhau, kéo theo chi phí phát triển và duy trì gia tăng.
Cơ chế đẩy thông báo thông qua máy chủ Apple Server còn có một lợi ích quan trọng khác: giúp iPhone trở nên bảo mật hơn và riêng tư hơn. Đó là vì khi một ứng dụng trên iPhone được đóng lại, nó thực sự tắt hoàn toàn khi không có phần nào chạy ngầm trong hệ thống.
Nhưng với Android, bởi vì mọi ứng dụng đều phải “có một số luồng nào đó chạy ngầm”, một số ứng dụng độc hại của các nhà phát triển bên thứ ba hoặc thậm chí của chính nhà sản xuất thiết bị còn có thể lưu lại các luồng để nghe trộm microphone hoặc theo dõi camera để thu thập dữ liệu người dùng. Vì những luồng này nằm ở tầng hệ thống của thiết bị, người dùng sẽ khó có thể tắt chúng hoàn toàn.