Sự khác biệt chính giữa triển khai đa nhiệm ứng dụng của Android và iPhone là gì?


9

Sự khác biệt chính giữa triển khai đa nhiệm của Android và iPhone ở cấp độ ứng dụng là gì?

(Chúng ta đừng biến điều này thành một cuộc tranh luận fanboy chủ quan chứ?)

Câu trả lời:


6

Đây không phải là câu trả lời cho câu hỏi của bạn, nhưng đáng để làm rõ rằng cả hai hệ điều hành đều đa nhiệm hoàn toàn [1] dưới mui xe (trong trường hợp có thể và thực hiện nhiều quy trình).

Câu hỏi của bạn rõ ràng là về đa nhiệm cấp ứng dụng ("tôi có thể để một ứng dụng chạy trong khi sử dụng một ứng dụng khác không?"), Đây là một cách sử dụng thuật ngữ tương đối mới và không phải lúc nào cũng được xác định rõ, ngay cả khi nó có một số rõ ràng ví dụ (như nghe Pandora trong khi đọc email). Cụ thể, nhiều ứng dụng không cần chạy trong nền để hiển thị cho người dùng như thể họ chưa bao giờ ngừng chạy, miễn là họ lưu / khôi phục trạng thái. Các ứng dụng phải thực hiện các hoạt động định kỳ (như kiểm tra thư hoặc bật báo thức) không cần phải chạy liên tục trong nền; họ có thể thỉnh thoảng gọi hệ điều hành. Vấn đề lớn thường là các ứng dụng cần CPU không đổi trong khi ở chế độ nền, như Pandora.

Nhìn chung, Apple đã làm việc chăm chỉ hơn nhiều để ngăn chặn hoặc ngăn chặn các ứng dụng chạy nền liên tục, trong khi Android có vẻ cởi mở hơn với nó. Nhưng chúng đang hội tụ, vì Apple cho phép các ứng dụng như Pandora chạy trong nền và Android cung cấp các công cụ phong phú hơn để ngăn chặn các tác vụ nền không cần thiết khi bỏ phiếu hoặc trạng thái đã lưu sẽ đủ.

[1] http://en.wikipedia.org/wiki/Computer_multitasking


1
Điểm tốt. Tôi sẽ chỉnh sửa câu hỏi của tôi.

3

Theo như tôi có thể nói.

Đa nhiệm iPhone bị hạn chế hơn nhiều. Hoạt động đa nhiệm phải là một trong những hoạt động sau:

  • Âm thanh nền
  • VoIP
  • Vị trí nền
  • Thông báo đẩy
  • Thông báo địa phương
  • Nhiệm vụ hoàn thành
  • Chuyển đổi ứng dụng nhanh

[Cảm ơn Gizmodo !]

Android, mặt khác, cho phép đa nhiệm thực sự theo cách tương tự như PC.

Trước khi tôi bị buộc tội là một fanboi Android, hãy để tôi giải thích điều gì đó. Mô hình đa nhiệm của iPhone là quá đủ cho hầu hết các tình huống và tránh được rất nhiều vấn đề (tức là thiếu bộ nhớ) đi kèm với hệ thống Android.


Đa nhiệm thực sự? Tôi không nghĩ người dùng WebOS hay Symbian sẽ đồng ý ...
Ivo Flipse

2

Android có một khái niệm khác về đa nhiệm cấp ứng dụng so với PC. Có nhiều sự ngắt kết nối giữa dữ liệu, cách xem dữ liệu và cách vận hành trên dữ liệu.

Bạn chỉ có thể mở một chế độ xem ứng dụng tại một thời điểm, nhưng thao tác trên dữ liệu có thể diễn ra trong nền. Điều này gây khó khăn cho các nhà phát triển ứng dụng để tạo cảm giác giống như máy tính để bàn khi chuyển đổi giữa các ứng dụng, thoát ứng dụng và bắt đầu ứng dụng mới. Đôi khi cảm thấy không thể giết được một ứng dụng, nhưng đôi khi cũng cảm thấy như không thể chuyển sang một nhiệm vụ và quay lại. Nó phụ thuộc vào cách nhà phát triển ứng dụng đã làm điều đó.

Bạn có thể có nhiều quá trình nền diễn ra cùng một lúc và chúng được lên lịch như các ứng dụng trên máy tính để bàn. Nhân Linux sẽ chọn cách ưu tiên những cái nào có được tài nguyên bộ nhớ và CPU. Khi điện thoại quyết định hết bộ nhớ, nó sẽ bắt đầu giết chết mọi thứ để tạo thêm bộ nhớ. Điều này được thực hiện khác với cách Linux hoặc hầu hết các HĐH khác thường hoạt động.

Dữ liệu của một chương trình luôn có sẵn. Miễn là ứng dụng có quyền truy cập dữ liệu, nó có sẵn. Bạn không cần một dịch vụ chạy trong nền để nó có sẵn.

Apple có những cách rất cụ thể để bạn có thể đa nhiệm. Chúng là một tập hợp con của những cách mà Android cho phép. Chỉ các loại ứng dụng cụ thể mới có thể chạy trong nền và chúng phải được lập trình cụ thể để làm như vậy.

Một máy tính để bàn rất khác với cả hai điều này. Chế độ xem, dữ liệu và logic xử lý dữ liệu của mỗi ứng dụng thường được khóa cùng nhau. Tôi muốn nói rằng WebOS, Symbian và Maemo / Meego là những ví dụ về điều này trên thiết bị di động. Nếu một ứng dụng hiển thị dữ liệu và xử lý nền của nó cho các "khung nhìn" khác, nó sẽ có xu hướng là một ứng dụng rất đặc biệt.


Để ghi lại, Linux có OOM Killer trong tất cả các phiên bản của nó, nó không phải là Android cụ thể. Tuy nhiên, trên PC, bạn phải tiêu tốn dung lượng trao đổi cũng như RAM vật lý trước khi nó bắt đầu giết chết mọi thứ.

Không thực sự, xem: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 Đây là một trong những điều khó khăn về Android không thực sự là Linux khi nó cần bản vá này vào Kernel để chạy. Hãy thử chạy Dalvik trên kernel stock và điều này sẽ ngăn bạn tiếp tục.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.