Thứ Ba, 30 tháng 6, 2015

Đa nhiệm trên Android, iOS và Windows Phone

Android

Android có lẽ là hệ điều hành thú vị nhất để tìm hiểu về đa nhiệm, nó có một hệ thống "lai" mở rộng cửa cho phép các ứng dụng chạy nền nhưng lại được ẩn giấu đi để người dùng không phát hiện ra. Chính vì vậy mà bạn không thể chủ động quản lý ứng dụng chạy hay tắt được.

Khi bạn chuyển qua một chương trình khác, chương trình mà bạn đang chạy sẽ không bị dừng lại, toàn bô tiến trình của nó vẫn sẽ được mở cho đến khi nào máy còn chịu được. Khi Android xác định máy đang thiếu bộ nhớ, nó sẽ tự động tắt tiến trình đó đi để giải phóng tài nguyên. Trước khi tắt, trạng thái làm việc của chương trình sẽ được lưu lại để khi truy xuất lần nữa, mọi công việc bạn làm vẫn được giữ nguyên. Tất nhiên, với các quản lý này bạn sẽ không biết được chương trình đó vừa bị tắt.

Vậy các chương trình có thể làm gì khi nó chạy nền? Android có 2 công cụ cho các chương trình của bên thứ 2, đó là boardcast receivers và dịch vụ. Với Boardcast, khi một chương trình chạy nền, nó sẽ luôn được thông báo về các sự kiện nhất định, chẳng hạn như bạn đã di chuyển được 500 mét hay thời lượng pin của bạn giảm còn 47%... Đây cũng là cách thức các chương trình sử dụng cơ chế push của Google hoạt động. Gmail là một ví dụ, thay vì luôn gửi các lệnh về máy chủ để xác định email mới, nó chỉ việc ngồi chơi và chờ thông báo gửi tới là email đã đến. Với cách hoạt động này, các chương trình sẽ không sử dụng tài nguyên hệ thống nhưng vẫn sẵn sàng hoạt động khi cần thiết.

Dịch vụ có lẽ quen thuộc hơn với bạn, nó là các yêu cầu từ chương trình cho hệ thống biết là nó cần chạy những gì, trong khoảng thời gian nào, chẳng hạn như chơi nhạc, định vị...

Vậy những điều gì mà chương trình bên thế ba không thể làm khi chạy nền? Thật là thì Android cũng khá mở và hạn chế không phải là lớn. Chỉ là vì ở Android 1.0, Google hoàn toàn không đưa ra một giới hạn nào cho các chương trình nên chúng liên tục "đốt" pin của máy. Chính vì vậy mà từ Android 1.5 trở đi, tất cả các chương trình chạy nền không được sử dụng quá 5-10% công suất của CPU, ngoài ra thì các chương trình nền cũng không được phép thoát khỏi chạy nền một cách dễ dàng nữa mà phải phụ thuộc vào hệ thống cảnh báo của máy.

iOS:

iPhone luôn là hệ điều hành đa nhiệm kể từ thời điểm nó ra đời, nhưng nó lại bị giới hạn trong các chương trình của chính Apple. Kể từ OS 4.0, giới hạn đó đã phần nào được giảm bớt với việc hỗ trợ đa nhiệm từ phần mềm của bên thứ 3 và cho phép chúng chạy nền. Tuy vậy, những giới hạn của OS 4.0 vẫn là khá nhiều. Cũng như Android, ý tưởng đằng sau iPhone OS là người dùng không thật sự quản lý các chương trình theo ý mình mà hệ thống sẽ làm điều đó. Tuy vậy, không có nhiều tài liệu kỹ thuật nói rõ về việc này. Dù sao, chúng ta vẫn biết được một vài kiến thức cơ bản về nó.

iPhone hoạt động theo 7 dịch vụ đa nhiệm cơ bản mà bạn đã biết trong bài giới thiệu OS 4.0 Tinh Tế đăng tải trước kia. 2 dịch vụ cơ bản là fast-app switching và task finishing sẽ được hoạt động khi một chương trình được chạy nền. Dịch vụ đầu tiên sẽ bảo đảm đóng băng chương trình lại mà không tắt nó đi, cho phép người dùng giữ nguyên những gì đang làm khi thoát khỏi chương trình. Và vì người dùng không tự mình quản lý ứng dụng nào tắt hay mở, hệ điều hành sẽ quyết định điều đó. Nó sẽ tự động tắt các chương trình ngay khi có quá nhiều thứ đang chạy, gần giống với ý tưởng của Android. Khi bạn thoát ra khỏi một chương trình mà chương trình đó vẫn đang cần phải hoạt động để hoàn tất các tác vụ thì nó sẽ thông báo cho hệ điều hành biết để không ngắt tiến trình của nó đi cho đến khi tác vụ được hoàn thành.

Các chương trình bên thứ 3 cũng được Apple cung cấp một số tính năng hạn chế khi hoạt động trong chế độ chạy nền. Điểm khác biệt lớn nhất giữa iPhone và Android là các ứng dụng nền trên iPhone không hoạt động hoàn toàn như Android mà nó dựa vào các dụng vụ của Apple cung cấp, đó chính là dịch vụ VoIP, âm thanh và địa điểm. Dịch vụ địa điểm này hoạt động theo kiểu định vị bằng các trạm phát sóng để tiết kiệm pin và GPS cho các dịch vụ dẫn đường.

Hạn chế của đa nhiệm iPhone là không một phần mềm nào thoát khỏi 7 dịch vụ trên. Chẳng hạn nếu một phần mềm nào không phải là VoIP hay Audio... nó sẽ không thể chạy nền được cho dù phần mềm đó vẫn vẫn giữ nguyên được trang thái của mình trong RAM để quay trở lại nhanh chóng hơn khi được gọi.

 Windows Phone

Microsoft đã quay ngược 180 độ, họ đã từng có một trong những hệ điều hành đa nhiệm mở nhất là Windows Mobile nhưng giờ đây, Windows Phone 7 lại là hệ điều hành hạn chế nhất. Mục tiêu của họ là thiết kế Windows Phone 7 sao cho người dùng có những trải nghiệm tốt nhất mà không cần đụng đến đa nhiệm.


Khi bạn chuyển qua một chương trình khác, chương trình hiện tại sẽ không bị tắt đi hoàn toàn mà được lưu trạng thái vào bộ nhớ rồi đóng băng tại đó chờ đợi fast-app switching, giống với cách Android và iPhone thực hiện. Giám đốc bộ phận truyền thông di động của Microsoft, ông Aaron Woodman cho biết: "Khi bạn thoát một chương trình nào đó, tài nguyên hệ thống sẽ được giải phóng nếu hệ điều hành yêu cầu nhưng bạn vẫn có thể quay lại ngay vị trí mà mình tắt chương trình. Khi hệ điều hành cần, chương trình sẽ bị đưa vào quá trình dehydrated và sẽ mở lại ngay lập tức khi bạn truy xuất nó, Microsoft gọi quá trình này là rehydrated. Xếp theo mức độ, dehydrated nằm ngay trên tắt tiến trình 1 nấc, nghĩa là rất gần với việc bị tắt rồi.

Giống như các hệ điều hành iPhone trước bản 4.0, các ứng dụng không thể hoạt động nhiều khi nó bị tắt. Lúc này, hệ điều hành chỉ có thể phát ra các cảnh bảo. Nếu bạn từng coi video trình diễn phần mềm Pandora trên Windows Phone 7, đừng mong chương trình nào cũng được đối xử như vậy, chỉ một vài đối tác cao cấp mới được làm điều đó thôi. Microsoft cũng có rất nhiều cách thức thông báo khác nhau, từ tile notificatiion để push các thông tin lên phần Live Tile ở màn hình chủ, toast notification để hiện lên một cửa sổ pop-up, chẳng hạn như là cuộc gọi cho đến raw notification để phát thông báo đến các chương trình.

Bị giới hạn rất nhiều, hầu hết các phần mềm chỉ có thể nhận và gửi thông báo khi bị ẩn xuống. Tất nhiên là các phần mềm từ "đối tác đặc biệt" sẽ có nhiều quyền hạn hơn một chút. Tuy vậy, Woodman cho biết họ có thể sẽ thay đổi cách thức tùy thuộc và bên thứ ba và người dùng.

Không có nhận xét nào:

Đăng nhận xét