Các câu trả lời được cung cấp là chính xác, tôi chỉ muốn làm rõ từ quan điểm của một nhà phát triển iOS.
iOS được thiết kế để quản lý càng nhiều thứ càng tốt để bạn (và nhà phát triển) không phải lo lắng về chúng. Kết quả cuối cùng là một cách tiếp cận có phần nhất quán trên các ứng dụng, bao gồm cả những ứng dụng từ Apple (thậm chí đôi khi chính Apple cũng cắt giảm một số góc).
Điều đó đang được nói, tiền đề là:
- iOS biết nhiều về bộ nhớ hơn chúng ta. Nó biết nó có bao nhiêu, và nó cần bao nhiêu (ở một mức độ nhất định).
- iOS có toàn quyền kiểm soát bộ nhớ; Nó có từ cuối cùng về người sử dụng cái gì.
- Nếu iOS cần bộ nhớ, nó sẽ tìm thấy nó và điều này thường được thực hiện bằng cách giết các quá trình khác đã không hoạt động trong một thời gian (và có nhiều quy tắc đằng sau hậu trường, chúng tôi không biết tất cả và chúng tôi không thực sự biết lo lắng về họ).
- Mọi thứ Bộ xử lý (CPU) làm, đều tốn năng lượng. Hoàn toàn là tất cả. Đừng quên máy tính chỉ là những thùng chứa điện tử rất nhỏ di chuyển chúng xung quanh trong không gian rất nhỏ.
- Khi một ứng dụng bị giết, có một số giao thức (hợp đồng) đã thỏa thuận xác định những gì cần phải thực hiện. iOS thực thi và mang các giao thức này. Nhưng công việc phải được thực hiện, nó không miễn phí và chắc chắn không phải lúc nào cũng rẻ (nó thực sự phụ thuộc vào ứng dụng là gì).
Như đã nói, người ta cho rằng hầu hết người dùng đóng các ứng dụng với hy vọng tăng tuổi thọ pin, theo ấn tượng rằng, bằng cách đóng mọi thứ, thì sẽ lãng phí ít năng lượng hơn trong việc duy trì các ứng dụng này chạy.
Sự thật là, trên iOS, điều này gần như không bao giờ xảy ra. Khi bạn nhấn home, ứng dụng sẽ bị treo và nó không còn sử dụng các tài nguyên mà ứng dụng khác có thể cần. Nếu một ứng dụng mới (hoặc thậm chí iOS) cần bộ nhớ đó, nó sẽ tự chăm sóc nó, nhưng chỉ khi nó cần.
Bạn đóng ứng dụng nhiều lần, buộc iOS phải thực hiện nhiệm vụ đắt đỏ đó là thực sự dỡ tải ứng dụng, lưu trạng thái và không, với vấn đề được thêm vào là khi bạn mở lại ứng dụng, tất cả những thứ đó phải được hoàn nguyên và, tùy thuộc vào độ phức tạp của ứng dụng, rất nhiều thứ phải được đọc từ bộ lưu trữ, vào bộ nhớ chính của điện thoại, v.v. Tất cả công việc làm thêm này, có thể tránh được nếu bạn chỉ để ứng dụng ở trạng thái bị treo lơ lửng.
Tuy nhiên ...
Trong một số trường hợp (và chúng rất hiếm nhưng không hiếm khi xảy ra), bạn muốn giết các ứng dụng hoạt động sai. Ví dụ là (nhưng không giới hạn): Các ứng dụng xử lý âm thanh nền hoặc các dịch vụ không đồng bộ như vị trí (nơi ứng dụng yêu cầu vị trí và iOS phải đi và hỏi xung quanh vị trí của nó, ví dụ, bằng cách bắn GPS nếu cần) , truyền phát video, v.v.
Tôi đã có vô số trường hợp ứng dụng như Lyft, United Airlines, thậm chí Twitter, kết thúc ở trạng thái bị hỏng (hoặc đơn giản là không hoạt động đúng cách), vì bạn đang ở trong một mạng xấu (iOS đã rất tệ phục hồi từ một số mạng xấu trong 3-4 bản phát hành vừa qua) hoặc mạng đơn giản là không đáp ứng đúng.
Theo thời gian, hầu hết các vấn đề này có xu hướng biến mất và ứng dụng bắt đầu hoạt động trở lại; nhưng nếu bạn thực sự cần ứng dụng hoạt động ngay bây giờ , thì bạn phải tiếp tục và trả giá khi phải giết nó và khởi động lại từ đầu. Bạn đã sử dụng nhiều pin hơn bằng cách đó, nhưng, hey, bạn cần nó.
Và nếu điều này gây nhầm lẫn, tôi có thể cung cấp cho bạn một sự tương tự xe hơi, bởi vì đó là những gì chúng ta có xu hướng làm mọi lúc.
Tương tự xe
Tôi biết rằng công nghệ xe hơi đã tiên tiến và đây không còn là một ví dụ hay, nhưng hãy chơi với tôi ở đây .
Bắn động cơ của Ô tô được sử dụng để sử dụng nhiều nhiên liệu hơn là chỉ chạy không tải. Khi xe hơi có bộ chế hòa khí thay vì kim phun, điều này thậm chí còn tồi tệ hơn; đó là lý do tại sao tắt động cơ của bạn khi bạn dừng ở đèn đỏ, về mặt lý thuyết có thể sử dụng nhiều nhiên liệu hơn là không hoạt động trong một phút. Những chiếc xe mới hơn có cơ chế hiệu quả hơn nhiều và có thể dừng động cơ, nhưng vẫn ở trạng thái bán khởi động (chúng ta đừng đi vào xe hơi ở đây).
Bạn đóng ứng dụng, tương đương với một người tắt xe ở mỗi đèn dừng. Trái ngược với việc chỉ để nó nhàn rỗi cho đến khi bạn cần lại, thông thường vài giây sau.
Sự tương tự là không hoàn hảo, vì sự thật là, những chiếc xe nhàn rỗi vẫn sử dụng nhiên liệu, trong khi các ứng dụng bị treo thì không; tuy nhiên, trong mắt của điện thoại, họ không sử dụng bất cứ thứ gì liên quan đến bộ nhớ / pin (miễn là họ không có xử lý nền của bất kỳ loại hoạt động nào, rõ ràng).
Về cơ bản, bạn tắt động cơ mỗi khi bạn tắt ứng dụng và bạn sẽ không để cơ chế thông minh iOS iOS thông minh không hoạt động, vì vậy khi đèn chuyển sang màu xanh lá cây, bạn chỉ cần nhấn nút tăng tốc và động cơ đang chạy nhanh hơn nếu nó dừng 100%. Khởi động một động cơ từ trạng thái dừng, cũng sử dụng nhiều năng lượng hơn chỉ là nhiên liệu, bạn cần phải khởi động để động cơ có thể được quay, phun nhiên liệu và tia lửa được tạo ra, vì vậy, đó là rất nhiều công việc đằng sau hậu trường. Ứng dụng giống như động cơ. :)