Nhận xét Android quản lý các tiến trình như thế nào? là chủ đề trong bài viết hôm nay của blog Tiên Kiếm. Đọc content để biết đầy đủ nhé.
Windows vẫn duy trì chương trình, “đối đãi” với chúng như nhau dù bạn có thu nhỏ cửa sổ. iOS chỉ cho phép 1 ứng dụng duy nhất hoạt động tại một thời điểm. Android nằm đâu đó ở giữa, ứng dụng đang chạy được ưu tiên nhưng những ứng dụng khác không bị “siết chặt” như iOS.
Hãy cùng đi sâu vào bên trong “chú robot xanh” để xem cách thức quản lý các ứng dụng (app) và tiến trình (process) của “chú”.
Điều gì nằm bên dưới “chú robot xanh”?
Hệ thống phân cấp
Thứ bậc của process trong Android được chia thành 5 cấp theo 5 mức độ quan trọng từ cao đến thấp:
Foreground process (tạm dịch: tiến trình nổi bật): Đây chính là những process dùng để chạy ứng dụng (app) bạn đang dùng. Những process khác cũng có thể được xem là foreground khi chúng có liên hệ trức tiếp với process “xử lý” app đang chạy. Tại một thời điểm cũng chỉ có vài foreground process mà thôi.
Visible process (tạm dịch: tiến trình nhìn thấy được): Visible process không liên quan đến app đang chạy nhưng có tác động đến những gì thể hiện trên màn hình. Ví dụ, foreground process có tính năng “trong suốt” (transparent) và những ứng dụng được hiển thị đằng sau chính là visible process. Dễ thấy nhất là khi cài các theme hỗ trợ khả năng “làm mờ” ứng dụng hoặc “ghim” ứng dụng lên màn hình.
Service process (tạm dịch: tiến trình dịch vụ): Tiến trình dạng này không liên quan đến bất kì ứng dụng cả đang chạy và “dưới” đang chạy nào. Chúng thực hiện công việc một cách âm thầm như chơi nhạc hay tải tập tin. Ví dụ bạn đang nghe nhạc và muốn chuyển sang chơi game, khi bạn mở game cũng là lúc process phát nhạc trở thành service process, vẫn tiếp tục chơi nhạc khi bạn làm việc khác.
Background process (tạm dịch: tiến trình nền): Background process không xuất hiện, cũng không thực hiện vai trò dễ nhận ra (như chơi nhạc), chúng không ảnh hưởng đến trải nghiệm sử dụng. Tại một thời điểm, có rất nhiều background process đang chạy và bạn có thể xem chúng là những ứng dụng đang “tạm dừng”. Background process vẫn sử dụng RAM, cho phép bạn nhanh chóng chuyển đổi trở lại nhưng không sử dụng thêm tài nguyên phần cứng nào khác. Ví dụ khi dùng Chrome và bấm phím Home, Chrome trở thành background process và khi mở lại Chrome, nó cũng lập tức mở lại tab đang xem.
Empty process (tạm dịch: tiến trình rỗng): Tiến trình này không còn tiêu tốn tài nguyên nào nữa. Chúng được giữ lại nhằm mục đích tạo bộ nhớ đệm cho lần khởi động sau và hệ thống có thể tùy ý loại bỏ chúng.
Service process đang phát nhạc
Một ví dụ tổng quát sẽ giúp bạn hình dung dễ hơn: Angry Birds là foreground process khi bạn đang “bắn heo”. Ngừng chơi và mở Gmail, Angry Birds trở thành background process và Gmail thành foreground process. Kiểm tra xong email và trở lại Angry Birds, trò chơi hiện lại ngay màn bạn đang chơi. Trong khoảng thời gian đó, Angry Birds được duy trì trên RAM, bộ nhớ đệm và luôn trong tình trạng sẵn sàng khôi phục.
Tính năng tự động quản lý tiến trình của Android
Android có khả năng quản lý process một cách tự động, do đó bạn không cần cài đặt bất kì ứng dụng “quản lý ứng dụng” nào.
Khi cần nhiều tài nguyên, Android tự động xóa các process ít quan trọng nhất, bắt đầu từ empty và background process. Khi cần nhiều tài nguyên hơn nữa như lúc chơi game nặng, hệ thống tự động loại bỏ thêm service process. Chơi game nặng, nhạc của bạn sẽ tự tắt, tập tin tải về tự động dừng.
Trong đa số trường hợp, bạn không cần lo về lượng RAM của máy. Nhiều người lo rằng máy mình chỉ còn 1 ít RAM và “đổ thừa” cho hệ thống là không đúng. Cơ chế quản lý thông minh của Android tự động lưu giữ các ứng dụng và dữ liệu khác trên RAM cho bạn trải nghiệm tốt nhất có thể.
Dĩ nhiên, sự linh hoạt cũng có điểm yếu. Nếu một ứng dụng được lập trình không tốt, một service process có thể tiếp tục sử dụng tài nguyên CPU và RAM khiến máy nóng lên và tụt pin nhanh chóng. Về mặt kĩ thuật, tình trạng này được gọi là “memory leaked” (rò rỉ bộ nhớ).
Một số ứng dụng được lập trình đặt icon trên thanh thông báo notification như avast!, TrustGo Antivirus hay… Advanced Task Killer. Nếu bạn cố tắt icon này, ứng dụng “chống lại”. Bằng cách luôn giữ icon trên thanh thông báo, chúng cho biết mình không phải là background process để khỏi bị hệ thống loại bỏ khi cần tài nguyên.
avast! “chống lệnh” tắt icon
Ứng dụng Android có thể tự đáp ứng các sự kiện
Các lập trình viên có thể cho ứng dụng của mình quyền tự khởi động cùng hệ thống hay chạy một dịch vụ ngầm. Ứng dụng có thể tự khởi động bởi nhiều loại “sự kiện” khác nhau: khi mở máy, khi chụp ảnh, khi thay đổi mạng. Khả năng này cho phép ứng dụng làm việc mà không cần tiêu tốn tài nguyên “chạy nền” (background process). Ví dụ Facebook Messenger biết khi nào bạn mở wifi để tự nhận tin nhắn.
“Quyền đặc biệt” của ứng dụng
Quản lý tiến trình “cơ bản”
Người dùng không cần tự mình làm việc này, nhưng cũng có vài cách để bạn “làm chủ” thiết bị. Có thể dùng menu đa nhiệm của Android 4.0 trở lên (thường gọi Recent Apps). Kích hoạt menu này bằng cách nhấn và giữ Home, nhấn liên tiếp Home 2 lần, chọn biểu tượng chỉ định (thường là 2 hình chữ nhật xếp chồng)… tùy vào loại máy.
Những ứng dụng hiện lên là chúng đang ở trạng thái “background process”. Dùng tay “quét bỏ” sẽ loại bỏ hoàn toàn ứng dụng khỏi bộ nhớ RAM của máy. Cách này thực sự cũng không quá cần thiết nhưng cũng có thể giải quyết các trường hợp ứng dụng gặp lỗi (đứng hình, vẫn chạy nhưng mất cảm ứng…).
Menu Recent Apps
Cũng có thể vào mục Settings > Apps > chọn ứng dụng và bấm Force stop để tắt chúng đi.
Force stop cũng có thể dừng ứng dụng
Android là hệ điều hành dựa trên Linux, mỗi ứng dụng được gán một mã số người dùng riêng (Linux user ID hoặc user account). Mã số này giúp phân biệt ứng dụng này với ứng dụng khác. Khi root Android, ứng dụng có thể tự “phá rào” và chạy với quyền cao nhất, quyền root.
Trường hợp này không thường xảy ra nhưng cũng đáng để cảnh báo, đây là một trong những lý do Android không được root sẵn khi đến tay người dùng.
Thái Bình