Saya tahu ternyata itu bukan ide yang baik untuk menutup aplikasi di iPhone Anda untuk menghemat baterai. Saya telah membaca pertanyaan dan jawaban seperti Apakah paksa menutup aplikasi memiliki manfaat di perangkat iOS? tapi itu masih tidak cukup untukku. Terkadang saya menemukan lebih dari 50 aplikasi berjalan, jadi tidak menutupnya tidak masuk akal.
Mungkin saya sedikit chook lama dan Anda tidak bisa mengajari anjing baru trik baru, tetapi bisakah seseorang di sini menjelaskan MENGAPA lebih baik membiarkan semua aplikasi ini berjalan? Dan ketika saya mengatakan "jelaskan" maksud saya dengan istilah awam sehingga saya bisa mengerti.
Jawaban:
Kamu tidak sendiri. Orang-orang hanya terbiasa dengan kebiasaan komputer desktop mereka, dan dapat dimengerti bahwa mereka membawa kebiasaan ini ke iPhone dan iPad mereka.
Namun, izinkan saya mencoba dan menjelaskan ini menggunakan analogi:
Bayangkan hari ini panas dan Anda sedang berkebun. Anda menjadi haus, jadi Anda masuk ke dapur, mengambil gelas besar, menaruh es di dalamnya, dan mengisinya dengan air. Anda kemudian minum setengahnya dan mengosongkan sisanya di wastafel sebelum kembali ke luar. Tidak lama kemudian, Anda merasa haus lagi, jadi Anda kembali ke dalam ke dapur, mengambil gelas yang sama, menaruh es di dalamnya, dan mengisinya dengan air. Sekali lagi Anda hanya minum setengahnya dan mengosongkan sisanya di wastafel!
Alur kerja di atas tidak masuk akal. Mengapa kamu tidak mengambil gelas di luar bersamamu? Dan, Anda tidak hanya membuang-buang air dengan mengosongkannya, tetapi Anda menghabiskan lebih banyak waktu dan energi untuk mendapatkan air itu lagi.
Demikian juga, ketika Anda keluar dari aplikasi, Anda sebenarnya menggunakan daya baterai dalam proses melakukannya (misalnya menghapusnya dari RAM, dll) dan kemudian lagi ketika Anda harus meluncurkannya lagi dan memuatnya kembali ke dalam RAM.
Jadi, untuk sebagian besar waktu, yang terbaik adalah membiarkan aplikasi tetap terbuka. Meskipun terbuka, mereka benar-benar hanya duduk dalam jenis mode diskors yang tidak menggunakan daya baterai apa pun. Ya, aplikasi ini masih dimuat dalam RAM dan mengambil ruang , tetapi sebenarnya tidak melakukan apa - apa - itu hanya terbaring di sana tidak aktif. Dan, karena tidak menggunakan daya baterai apa pun dalam kondisi ini, tidak ada untungnya menghentikannya dari sudut pandang konservasi baterai - terutama jika itu adalah aplikasi yang Anda tahu akan Anda gunakan berulang kali sepanjang hari.
Sama sekali tidak ada keuntungan untuk memaksa berhenti dari aplikasi karena iOS sendiri akan melakukan ini untuk Anda jika / ketika perlu untuk membebaskan RAM. Jadi jika Anda memiliki 50 aplikasi terbuka dan tetap terbuka, maka iOS belum didorong sejauh perlu untuk menutup salah satu dari mereka untuk membebaskan memori.
Sekarang, seperti apa pun, selalu ada pengecualian untuk aturan tersebut (seperti aplikasi yang harus melakukan tugas latar belakang). Contoh dari ini adalah yang memainkan musik saat Anda melakukan hal-hal lain dengan telepon Anda, atau yang mengunduh konten di latar belakang, atau yang menghitung berapa langkah Anda berjalan dalam sehari, dll. Namun, iOS memiliki proses yang efisien untuk mengelola aplikasi latar belakang / tugas dan jika Anda memilih untuk berhenti ini pada dasarnya Anda mengatakan Anda tidak percaya sistem operasi untuk melakukan tugasnya dengan benar.
Jadi, jangan ragu untuk keluar dari aplikasi Anda ketika Anda harus (misalnya karena itu beku, dll), tetapi jangan lakukan itu untuk menghemat daya baterai. Bahkan, jika Anda melakukannya, Anda akan mencapai yang sebaliknya dan menggunakan lebih banyak daya baterai sepanjang hari!
Ringkasan
Sebagian besar aplikasi di App Switcher akan dalam status ditangguhkan - ini berarti tidak: terlihat di layar, mengeksekusi kode, menggunakan CPU atau GPU, atau menggunakan baterai. Namun, mereka yang masih tinggal di memori sampai mereka dibersihkan (jika perlu) oleh sistem untuk membebaskan memori:
Sumber : Lihat Tabel 2-3 dalam tautan referensi pertama di akhir jawaban ini.
Satu-satunya aplikasi yang benar-benar berjalan di iPhone Anda pada titik waktu tertentu adalah aplikasi yang aktif (yaitu yang terlihat di layar) dan aplikasi lain yang bekerja di latar belakang . ( Catatan: Ada beberapa pengecualian sementara untuk ini dalam kasus aplikasi yang masih membutuhkan waktu untuk menyelesaikan kode eksekusi yang sudah mereka mulai saat mereka aktif - biasanya ini hanya dalam urutan detik tetapi secara teoritis dapat diperluas hingga lebih dari satu menit.) .
Referensi
sumber
Jawaban yang diberikan akurat, saya hanya ingin mengklarifikasi dari sudut pandang pengembang iOS.
iOS dirancang untuk mengelola sebanyak mungkin hal sehingga Anda (dan pengembang) tidak perlu khawatir. Hasil akhirnya adalah pendekatan yang agak konsisten di seluruh aplikasi, termasuk yang dari Apple (bahkan terkadang Apple sendiri mengambil jalan pintas).
Karena itu, premisnya adalah:
Setelah mengatakan semua itu, kita mengasumsikan sebagian besar pengguna menutup aplikasi dengan harapan untuk meningkatkan masa pakai baterai, di bawah kesan bahwa, dengan menutup sesuatu, maka lebih sedikit energi yang terbuang untuk menjaga aplikasi ini berjalan.
Yang benar adalah, di iOS, ini hampir tidak pernah terjadi. Saat Anda menekan rumah, aplikasi ditangguhkan dan tidak lagi menggunakan sumber daya yang mungkin dibutuhkan aplikasi lain. Jika aplikasi baru (atau bahkan iOS) membutuhkan memori itu, itu akan mengurusnya sendiri, tetapi hanya jika perlu.
Anda menutup aplikasi berulang-ulang, memaksa iOS untuk membuat tugas yang berpotensi mahal itu benar-benar menurunkan aplikasi, menyimpan statusnya dan yang tidak, dengan masalah tambahan bahwa ketika Anda membuka kembali aplikasi, semua hal itu harus dikembalikan. dan, tergantung pada kerumitan aplikasi, banyak hal harus dibaca dari penyimpanan, naik ke memori utama ponsel, dan sebagainya. Semua pekerjaan ekstra ini, bisa dihindari jika Anda membiarkan aplikasi tetap dalam status "ditangguhkan".
Namun ...
Dalam beberapa kasus (dan mereka jarang tetapi tidak jarang langka), Anda ingin membunuh aplikasi yang mengalami gangguan. Contohnya adalah (tetapi tidak terbatas pada): Aplikasi yang berurusan dengan audio latar belakang, atau layanan asinkron seperti lokasi (tempat aplikasi meminta lokasi dan iOS harus pergi dan bertanya di sekitar tempat itu, misalnya, dengan menembakkan GPS jika diperlukan) , streaming video, dll.
Saya memiliki banyak sekali contoh aplikasi seperti Lyft, United Airlines, bahkan Twitter, yang berakhir dalam keadaan rusak (atau tidak berfungsi dengan baik), baik karena Anda berada di jaringan yang buruk (iOS menjadi sangat buruk di memulihkan dari beberapa jaringan buruk dalam 3-4 rilis terakhir) atau jaringan tidak merespons dengan benar.
Pada waktunya, sebagian besar masalah ini cenderung hilang dan aplikasi mulai bekerja lagi; tetapi jika Anda benar-benar membutuhkan aplikasi untuk bekerja sekarang , maka Anda harus melanjutkan dan membayar harga harus membunuhnya dan memulai kembali dari awal. Anda menggunakan lebih banyak baterai dengan melakukan itu, tetapi, hei, Anda membutuhkannya.
Dan jika ini membingungkan, saya bisa memberi Anda analogi mobil, karena itulah yang cenderung kita lakukan sepanjang waktu.
Analogi Mobil
Saya tahu bahwa teknologi mobil telah maju dan ini bukan lagi contoh yang baik, tetapi bermainlah dengan saya di sini .
Memecat mesin mobil yang digunakan untuk menggunakan lebih banyak bahan bakar daripada hanya pemalasan. Ketika mobil memiliki karburator, bukan injektor, ini bahkan lebih buruk; itu sebabnya mematikan mesin saat Anda berhenti di lampu merah, secara teoritis dapat menggunakan lebih banyak bahan bakar daripada hanya diam selama satu menit. Mobil-mobil baru memiliki mekanisme yang jauh lebih efisien dan dapat menghentikan mesin, tetapi tetap dalam kondisi semi-dimulai (jangan terlalu ke dalam mobil di sini).
Anda menutup aplikasi, sama dengan seseorang mematikan mobil di setiap lampu berhenti. Berbeda dengan membiarkannya diam sampai Anda membutuhkannya lagi, biasanya beberapa detik kemudian.
Analogi ini tidak sempurna, karena kenyataannya, mobil-mobil idle masih menggunakan bahan bakar, sedangkan aplikasi yang ditangguhkan tidak; Namun, di mata telepon, mereka tidak menggunakan memori / baterai apa pun yang terkait (asalkan mereka tidak memiliki pemrosesan latar belakang jenis apa pun yang aktif, jelas).
Anda pada dasarnya mematikan mesin Anda setiap kali Anda mematikan suatu aplikasi, dan Anda tidak membiarkan mekanisme “pintar” iOS untuk mematikan mesin Anda, jadi ketika lampu menyala hijau, Anda cukup menekan akselerator dan mesin bekerja lebih cepat daripada jika 100% dihentikan. Memulai mesin dari kondisi berhenti, juga menggunakan daya lebih dari sekadar bahan bakar, Anda perlu memutar starter agar mesin bisa diputar, bahan bakar disuntikkan, dan bunga api tercipta, jadi ... banyak pekerjaan di belakang layar. Aplikasi seperti mesin. :)
sumber
Sebagai analogi dengan mobil Anda, jika Anda perlu berhenti terlalu banyak di siang hari dan terus berhenti dan menyalakan mesin, akan tiba saatnya ketika baterai akan benar-benar habis. Ini dapat terjadi jika waktu pengisian saat Anda mengemudi di antara berhenti tidak cukup lama untuk mengembalikan jumlah energi luar biasa yang dihisap keluar dari baterai setiap kali Anda menyalakan mesin. Selain itu, tidak baik untuk starter dan konsumsi gas keseluruhan. Itu sebabnya banyak pengemudi truk pengiriman akan menjaga mesin idle selama pemberhentian singkat mereka.
Analogi ini mirip dengan mitos penghematan memori.
sumber
Hanya melemparkan pendapat yang berbeda di luar sana demi diskusi. Konsep ini memiliki tingkat kebenaran tertentu, tetapi begitu Anda memiliki sejumlah aplikasi terbuka, Anda mungkin akan mulai melihat hasil yang semakin berkurang untuk menjaga aplikasi ditangguhkan.
Semakin banyak aplikasi yang Anda buka, semakin banyak ram yang akan digunakan, jelas. Biasanya setiap aplikasi dalam memori terbagi sebagai memori yang sebenarnya digunakan oleh aplikasi itu sendiri, memori yang ingin dimiliki aplikasi tersebut, dan memori yang digunakan sistem operasi untuk aplikasi tersebut, yang memberi Anda jumlah memori terakhir dari aplikasi tersebut. diizinkan untuk digunakan. Alasan mengapa aplikasi menyimpan bagian terpisah dari memori ini sebagai memori yang ingin digunakan, adalah karena aplikasi mungkin perlu menumbuhkannya, tetapi itu tidak selalu ingin melakukannya langsung dari kelelawar karena itu buruk bagi pengumpul sampah untuk memiliki tumpukan besar (tumpukan besar = pengumpulan sampah yang lebih lama), sehingga aplikasi akan menyisihkan sebagian memori yang saat ini tidak digunakan, tetapi itu dapat digunakan oleh aplikasi secara eksklusif jika diperlukan.
Katakanlah OS memungkinkan aplikasi saya hingga 700mb, dan aplikasi menyisihkan 300mb dari memori itu untuk dirinya sendiri, meninggalkan 400mb di luar sana untuk digunakan oleh aplikasi saya jika mau, tetapi kemudian aplikasi lain terbuka dan membutuhkan memori; OS melihat semua aplikasi yang berbeda, dan memutuskan apakah boleh mengambil beberapa memori dari aplikasi lain dan menggunakannya untuk aplikasi baru, dalam hal ini mungkin memutuskan untuk mengambil 150mb dari aplikasi saya memori yang diizinkan dan memberikannya ke aplikasi baru , membutuhkan memori untuk ditukar sekitar untuk memberikan memori aplikasi baru untuk digunakan (anggap ini sebagai realokasi dana dalam bisnis) dengan baik, semakin banyak aplikasi yang Anda buka, semakin banyak pekerjaan yang harus dilakukan sistem operasi untuk benar-benar memutuskan memori aplikasi mana yang dapat disedot untuk memberikan memori aplikasi baru.
Dalam hal ini, setiap aplikasi yang dibuka dan ditangguhkan menambah kompleksitas pada proses ini, menjadikannya lebih intensif CPU, dan akhirnya membutuhkan daya baterai yang berpotensi lebih besar untuk membuka aplikasi di masa mendatang daripada daya baterai yang dihemat dengan tidak menutup aplikasi lain.
Sekarang ingatlah, tidak ada yang mempertimbangkan bahwa kecuali Anda benar-benar mematikan aplikasi, mungkin ada layanan latar belakang yang berjalan yang akan menghabiskan daya pemrosesan, misalnya pemberitahuan yang diatur untuk memberi tahu Anda tentang penghitung waktu, dll. Di sisi lain, beberapa aplikasi tidak menggunakan layanan latar belakang sejati, dan benar-benar menggunakan pemberitahuan push dari layanan seperti firebase, yang tidak mengharuskan aplikasi untuk dibuka kapan saja.
Hal lain yang perlu dipertimbangkan, semakin banyak aplikasi yang Anda buka secara terus-menerus, semakin terfragmentasi memori pada awalnya sampai OS melewati dan membersihkan memori menjadi lebih bersih dan ditata lebih efisien, ini sendiri juga mengunyah daya pemrosesan, dan semakin banyak memori yang digunakan oleh aplikasi, semakin intensif proses ini untuk perangkat Anda.
Semua ini untuk mengatakan, membiarkan aplikasi terbuka sebagian besar lebih efisien, kecuali jika terlalu banyak aplikasi dibuka, namun saya tidak yakin berapa banyak aplikasi yang perlu dibuka untuk mencapai ambang ini, jika jumlahnya ada.
Sumber:
Pemungut sampah SGen untuk Mono: http://www.mono-project.com/docs/advanced/garbage-collector/sgen/
Gambaran umum profiler memori untuk aplikasi iOS dan Android Xamarin, yang menunjukkan cara memori dikelola oleh aplikasi (set kerja, byte pribadi, alokasi memori, dll.) Https://blog.xamarin.com/say-hello-to -the-xamarin-profiler /
sumber
Versi clean cut: Lebih baik karena OS dirancang untuk membuatnya lebih baik sehingga pengguna ingin menyimpan aplikasi (atau dalam kondisi "ditangguhkan") untuk mengumpulkan lebih banyak informasi tentang tindakan Anda [*] nanti jika diperlukan.
Versi yang lebih lama: Aplikasi yang "ditangguhkan" akan menyimpan statusnya dalam memori sehingga sekali Anda ingin memulai kembali proses memuat semuanya kembali akan memerlukan lebih sedikit waktu untuk prosesor dan hampir tidak menggunakan unit penyimpanan ... Dengan ini Anda tidak bisa tahu apakah aplikasi Anda melakukan beberapa hal lain di latar belakang yang dalam banyak kasus mereka duduk di sana mengumpulkan data pada Anda.
[*] Untuk menguraikan pengumpulan data di pihak Anda ... aplikasi yang disimpan dalam memori dapat "ditangguhkan" atau aktif di latar belakang. Anda sebagai pemilik perangkat tidak dapat mengetahui (jika Anda tidak memiliki pengetahuan dan beberapa aplikasi lain untuk secara aktif memindai penggunaan CPU) apa yang dikatakan aplikasi tersebut benar-benar lakukan. Dari sudut pandang keamanan, saya menyarankan untuk menutup aplikasi apa pun yang tidak akan Anda gunakan selama 10 menit berikutnya.
PS Praktek ini dilakukan pada perangkat Android juga ...
sumber