Vòng đời của Process

Một phần của tài liệu Quản lý, giám sát và điều khiển thiết bị bằng phần mềm trên Android thông qua mạng điện thoại di động (Trang 26 - 27)

Hệ thống Android có thể cần để kill một tiến trình để lấy lại bộ nhớ. Để chắc chắn rằng điều này tác động tối thiểu đến ngƣời dùng, Android xếp hạng các Process thành hạng đƣợc ƣu tiên nhƣ sau:

Foreground Process: Một process là cần thiết cho những gì ngƣời dùng hiện

đang làm. Nhƣ vậy process bị kill chỉ là giải pháp cuối cùng.

Visible Process: Đây là Process không trong foreground nhƣng có thể ảnh hƣởng đến những gì ngƣời dùng nhìn thấy trên màn hình. Ví dụ nó có thể tổ chức một Activity tạm dừng. Một process nhƣ vậy sẽ không bị kill trừ khi làm nhƣ vậy là cần thiết để giữ tất cả các process ở foreground đang hoạt động.

Service Procress: Một process đang chạy một service và không là một trong hai loại trên. Ví dụ service có thể đang chơi nhạc hoặc tải cái gì đó. Hệ thống sẽ tiếp tục giữ cho process đang chạy, trừ khi không đủ bộ nhớ để giữ Foreground và Visible process đang chạy.

Background Process: Một process tổ chức cho một Activity hiện tại không

hiển thị cho ngƣời dùng (Activity bị dừng). Một process nhƣ vậy không tác động đến ngƣời dùng (nếu vòng đời của Activity đƣợc thực hiện chính xác và trạng thái Activity đƣợc lƣu và phục hồi). Hệ thống có thể kill process loại

này bất cứ lúc nào. Thông thƣờng, có nhiều background process đang chạy và hệ thống lƣu trữ một danh sách LRU đƣợc sử dụng để kill process nhƣ vậy. Process rỗng: Mộtprocess rỗng không tổ chức bất kỳ một thành phần nào hoạt

động. Lý do duy nhất một process nhƣ vậy đƣợc giữ sống ở nơi đầu tiên của bộ nhớ đệm và cải thiện thời gian khởi động. Hệ thống thƣờng xuyên kill process nhƣ vậy để duy trì cân bằng giữa các quá trình lƣu trữ và các lƣu trữ kernel cơ bản.

Tất nhiên, nhƣ vậy có thể xảy ra rằng một Process ƣu tiên cao hơn lại phụ thuộc vào một Process ƣu tiên thấp hơn. Trong trƣờng hợp này việc xếp hạng Process đƣợc tăng lên mức tƣơng tự nhƣ của quá trình phụ thuộc.

Một tình huống mà bảng xếp hạng (ƣu tiên các Process) này tác động trực tiếp là: Ứng dụng của bạn cần tải cái gì đó lớn và có thể mất thời gian và ngƣời dùng thích di chuyển ra ngoài activity của ứng dụng để làm việc khác.Nếu bạn sinh ra một thread nhân công làm cho quá trình này và ngƣời dùng di chuyển ra ngoài, thì process trở thành background process.Thay vì vậy, nếu bạn sinh ra một dịch vụ, process sẽ là service process và ít có khả năng bị kill.

Một phần của tài liệu Quản lý, giám sát và điều khiển thiết bị bằng phần mềm trên Android thông qua mạng điện thoại di động (Trang 26 - 27)