Apa perbedaan utama antara implementasi multitasking aplikasi Android dan iPhone?

9

Apa perbedaan utama antara implementasi multitasking Android dan iPhone di level aplikasi?

(Jangan mengubah ini menjadi argumen fanboy subjektif?)


sumber

Jawaban:

6

Ini bukan jawaban untuk pertanyaan Anda, tetapi perlu diperjelas bahwa kedua sistem operasi ini sepenuhnya multitasking [1] di bawah tenda (sejauh yang mereka bisa dan lakukan menjalankan banyak proses).

Pertanyaan Anda jelas tentang multitasking tingkat aplikasi ("bisakah saya membiarkan satu aplikasi berjalan sambil menggunakan yang lain?"), Yang merupakan penggunaan istilah yang relatif baru, dan tidak selalu terdefinisi dengan baik, bahkan jika itu memiliki beberapa yang jelas contoh (seperti mendengarkan Pandora saat membaca email). Secara khusus, banyak aplikasi tidak perlu berjalan di latar belakang untuk menampilkan diri kepada pengguna seolah-olah mereka tidak pernah berhenti berjalan, selama mereka menyimpan / mengembalikan keadaan mereka. Aplikasi yang harus melakukan operasi berkala (seperti memeriksa surat atau alarm berbunyi) tidak perlu berjalan terus-menerus di latar belakang; mereka dapat dipanggil sesekali oleh OS. Masalah besar biasanya aplikasi yang membutuhkan CPU konstan di latar belakang, seperti Pandora.

Secara umum, Apple telah bekerja lebih keras untuk mencegah atau mencegah aplikasi latar belakang yang terus berjalan, sedangkan Android tampaknya lebih terbuka untuk itu. Tetapi mereka sedang konvergen, karena Apple memungkinkan aplikasi seperti Pandora berjalan di latar belakang dan Android menyediakan alat yang lebih kaya untuk mencegah tugas latar belakang yang tidak perlu ketika jajak pendapat atau negara yang diselamatkan sudah cukup.

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


sumber
1
Poin yang bagus. Saya akan mengedit pertanyaan saya.
3

Sejauh yang saya tahu.

Multitasking iPhone jauh lebih terbatas. Aktivitas multitask harus salah satu dari yang berikut:

  • Audio latar belakang
  • VoIP
  • Lokasi latar belakang
  • Pemberitahuan push
  • Notifikasi lokal
  • Penyelesaian tugas
  • Perpindahan aplikasi cepat

[Terima kasih Gizmodo !]

Android, di sisi lain, memungkinkan multitasking sejati dengan cara yang mirip dengan PC.

Sebelum saya dituduh sebagai fanboi Android, izinkan saya menjelaskan sesuatu. Model multitasking iPhone lebih dari cukup untuk sebagian besar situasi dan menghindari banyak masalah (yaitu kekurangan memori) yang menyertai sistem Android.


sumber
Multitasking sejati? Saya tidak berpikir orang-orang WebOS atau Symbian akan setuju ...
Ivo Flipse
2

Android memiliki konsep multitasking tingkat aplikasi yang berbeda dari PC. Ada lebih banyak keterputusan antara data, cara melihat data, dan cara beroperasi pada data.

Anda hanya dapat memiliki satu tampilan aplikasi terbuka pada satu waktu, tetapi operasi pada data dapat dilakukan di latar belakang. Ini menyulitkan pengembang aplikasi untuk membuatnya terasa seperti desktop saat beralih antar aplikasi, berhenti aplikasi, dan memulai aplikasi baru. Terkadang terasa tidak mungkin untuk mematikan aplikasi, tetapi terkadang juga terasa tidak mungkin untuk beralih ke satu tugas dan kembali lagi. Itu tergantung pada bagaimana pengembang aplikasi melakukannya.

Anda dapat memiliki banyak proses latar belakang sekaligus, dan mereka dijadwalkan seperti aplikasi desktop. Kernel Linux akan memilih bagaimana memprioritaskan mana yang mendapatkan sumber daya memori dan CPU. Ketika telepon memutuskan kehabisan memori, itu akan mulai membunuh hal-hal untuk membuat lebih banyak memori. Ini dilakukan secara berbeda dari cara Linux atau kebanyakan OS lain biasanya berperilaku.

Data program selalu tersedia. Selama aplikasi memiliki izin untuk mengakses data, itu tersedia. Anda tidak memerlukan layanan yang berjalan di latar belakang agar tersedia.

Apple memiliki cara yang sangat spesifik untuk melakukan banyak hal. Mereka adalah bagian dari cara yang dimungkinkan Android. Hanya jenis aplikasi tertentu yang dapat berjalan di latar belakang dan harus diprogram secara khusus untuk melakukannya.

Desktop sangat berbeda dari kedua hal ini. Tampilan, data, dan logika pemrosesan data setiap aplikasi sering dikunci bersama. Saya akan mengatakan bahwa WebOS, Symbian, dan Maemo / Meego adalah contoh dari ini di perangkat seluler. Jika suatu aplikasi mengekspos data itu dan pemrosesan latar belakang ke "tampilan" lain, itu akan cenderung menjadi aplikasi yang sangat istimewa.


sumber
Sebagai catatan, Linux memiliki Pembunuh OOM dalam semua inkarnasinya, itu tidak spesifik untuk Android. Namun, pada PC Anda harus menggunakan ruang swap Anda serta RAM fisik Anda sebelum mulai membunuh segalanya.
Tidak juga, lihat: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 Ini adalah salah satu hal sulit tentang Android yang tidak benar-benar menjadi Linux dalam hal ini perlu ditambal ke dalam Kernel untuk dapat dijalankan. Coba jalankan Dalvik di kernel stock dan ini akan mencegah Anda melanjutkan.