Mengapa lebih baik untuk memaksimalkan baterai iPhone untuk TIDAK menutup aplikasi?

Aku tahu ternyata itu bukan ide yang baik untuk menutup aplikasi pada iPhone anda untuk menghemat baterai. Saya sudah membaca pertanyaan dan jawaban seperti https://apple.stackexchange.com/q/237708/168832 tapi itu masih tidak cukup gel dengan saya. Kadang-kadang saya telah menemukan lebih dari 50 aplikasi yang berjalan, jadi tidak **** penutupan mereka tidak masuk akal.

Mungkin aku sedikit lama chook dan anda hanya tidak bisa mengajar anjing tua trik baru, tapi bisa seseorang di sini menjelaskan MENGAPA itu lebih baik untuk hanya menyimpan semua aplikasi ini berjalan? Dan ketika saya mengatakan "menjelaskan" maksud saya dalam istilah awam jadi saya bisa mengerti.

Mengomentari pertanyaan (9)
Larutan

Anda tidak sendirian. Orang-orang yang hanya digunakan untuk komputer desktop kebiasaan, dan itu bisa dimengerti mereka membawa kebiasaan ini ke iphone dan ipad mereka. Namun, biarkan aku mencoba menjelaskan ini dengan menggunakan sebuah analogi: Membayangkan itu adalah hari yang panas dan anda akan merasa luar berkebun. Anda haus, sehingga anda masuk ke dapur, ambil kaca besar, taruh beberapa es di dalamnya, dan mengisinya dengan air. Anda kemudian minum setengah dari itu kosong dan sisanya di wastafel sebelum pergi kembali ke luar. Tidak lama kemudian, anda mendapatkan haus lagi, begitu anda masuk kembali ke dapur, mengambil gelas yang sama, taruh beberapa es di dalamnya, dan mengisinya dengan air. Lagi-lagi anda hanya minum setengah dari itu kosong dan sisanya di wastafel! Di atas alur kerja hanya tidak benar-benar masuk akal. Mengapa tidak anda mengambil kaca luar dengan anda? Dan, anda tidak hanya membuang-buang air dengan pengosongan itu, tetapi anda menghabiskan lebih banyak waktu dan energi untuk mendapatkan air itu lagi. Demikian juga, ketika anda keluar dari aplikasi yang anda benar-benar menggunakan daya baterai dalam proses melakukannya (misalnya kliring itu dari RAM, dll) dan kemudian lagi nanti ketika anda harus memulai lagi dan beban itu kembali ke dalam RAM. Jadi, untuk sebagian besar waktu yang terbaik untuk meninggalkan aplikasi terbuka. Meskipun mereka terbuka, mereka benar-benar hanya duduk di sebuah tipe dari suspended mode yang tidak menggunakan daya baterai apapun. Ya, aplikasi ini masih dimuat ke dalam RAM dan mengambil ruang, tapi itu tidak benar-benar melakukan apapun - itu hanya berbaring di sana tidak aktif. Dan, karena ini tidak menggunakan daya baterai dalam keadaan ini, tidak ada keuntungan untuk berhenti dari baterai konservasi point of view - terutama jika itu adalah sebuah aplikasi yang anda tahu anda akan menggunakan lagi dan lagi sepanjang hari. Ada juga yang benar-benar tidak ada kesempatan untuk memaksa berhenti aplikasi karena iOS sendiri akan melakukan ini untuk anda jika/bila perlu dalam rangka untuk membebaskan RAM. Jadi jika anda memiliki 50 aplikasi terbuka dan mereka tetap terbuka, kemudian iOS belum didorong sejauh perlu untuk menutup setiap satu dari mereka untuk membebaskan memori. Sekarang, seperti apa pun, selalu ada pengecualian untuk aturan (seperti aplikasi yang harus melakukan tugas latar belakang). Contoh dari hal ini adalah salah satu yang memainkan musik saat anda sedang melakukan hal-hal lain dengan ponsel anda, atau salah satu yang men-download konten di latar belakang, atau salah satu yang menghitung berapa banyak langkah yang anda berjalan dalam satu hari, dll. Namun, iOS memiliki aplikasi yang sangat efisien proses untuk mengelola aplikasi latar belakang/tugas-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 berhenti aplikasi anda ketika anda harus (misalnya karena beku, dll), tapi jangan lakukan hal ini untuk menghemat daya baterai. Bahkan, jika anda melakukannya, anda akan mencapai hasil yang berlawanan dan menggunakan lebih banyak daya baterai sepanjang hari! Ringkasan**

  • Anda hanya perlu keluar dari aplikasi jika mereka're tidak bekerja dengan benar (misalnya aplikasi yang telah beku, isn't menampilkan dengan benar, dll).

  • Aplikasi yang terdaftar di App Switcher tidak tentu menjalankan - pada kenyataannya sebagian besar dari mereka adalah tidak berjalan sama sekali.

  • Kebanyakan aplikasi di App Switcher akan di negara ditangguhkan - ini berarti mereka're tidak terlihat di layar, mengeksekusi kode, menggunakan CPU atau GPU, atau menggunakan baterai. Namun, mereka sedang masih resident di memori sampai mereka dibersihkan (jika diperlukan) dengan sistem untuk membebaskan memori:

    Plafon - aplikasi ini di latar belakang, tetapi tidak mengeksekusi kode. Sistem aplikasi bergerak ke negara ini secara otomatis dan tidak memberitahu mereka sebelum melakukannya. Sementara ditangguhkan, aplikasi tetap di memory tapi tidak menjalankan kode apapun. Ketika kehabisan memori rendah kondisi ini terjadi, sistem dapat membersihkan ditangguhkan aplikasi tanpa pemberitahuan untuk membuat lebih banyak ruang untuk aplikasi latar depan. Sumber: Lihat Tabel 2-3 dalam link referensi di akhir jawaban ini.

  • Satu-satunya aplikasi yang benar-benar berjalan pada iPhone anda pada setiap titik waktu tertentu adalah aplikasi yang aktif (yaitu, salah satu yang terlihat di layar) dan lain-lain yang bekerja di latar belakang. (Catatan: Ada beberapa sementara ** pengecualian untuk ini dalam kasus dari aplikasi yang masih membutuhkan waktu untuk menyelesaikan mengeksekusi kode yang sudah mereka dimulai saat mereka aktif - biasanya ini hanya dalam orde detik tapi secara teoritis bisa meluas ke lebih dari satu menit.).

  • Dalam hal aplikasi yang berjalan di latar belakang, anda dapat mengontrol aplikasi mana yang diperbolehkan untuk melakukannya (jika mereka're terbuka) dengan pergi ke Settings > Umum > Background App Refresh. (Catatan: Hanya karena anda melihat aplikasi yang tercantum di sini doesn't berarti itu akan berjalan di latar belakang, tetapi menonaktifkan di sini berarti pasti menang't!)

  • Jika iPhone anda terkunci, maka aplikasi yang sedang aktif (yaitu, itu terlihat di layar) bila anda mengunci perangkat anda sekarang tidak aktif. Namun, kecuali anda've hanya terkunci iPhone dan's masih finishing mengeksekusi kode atau's berjalan di latar belakang (misalnya, bermain musik, dll) maka itu's tidak menggunakan CPU, GPU atau baterai. Referensi

  1. Untuk info lebih lanjut tentang berbagai serikat sebuah aplikasi yang bisa digunakan, merujuk ke Apple's App Panduan Pemrograman untuk iOS: Eksekusi Serikat untuk Aplikasi.
  2. Untuk info lebih lanjut tentang aplikasi yang berjalan di latar belakang, lihat ke Apple's App Panduan Pemrograman untuk iOS: Eksekusi Latar belakang.
Komentar (19)

Yang memberikan jawaban yang akurat, saya hanya ingin menjelaskan dari pengembang iOS pandang.

iOS dirancang untuk mengelola hal-hal sebanyak mungkin sehingga anda (dan pengembang) tidak perlu khawatir tentang mereka. Hasil akhirnya adalah somewhat pendekatan yang konsisten di seluruh aplikasi, termasuk dari Apple (bahkan tho kadang-kadang Apple sendiri pemotongan beberapa sudut).

Bahwa menjadi kata, premis ini adalah:

  • iOS tahu lebih lanjut tentang memori dari kami. Ia tahu berapa banyak, dan berapa banyak yang dibutuhkan (untuk tingkat tertentu).
  • iOS memiliki kontrol penuh atas memori; memiliki kata akhir pada siapa menggunakan apa.
  • Jika iOS kebutuhan memori, ia akan menemukan hal itu, dan hal ini biasanya dilakukan dengan membunuh proses-proses lain yang telah menganggur selama beberapa waktu (dan ada banyak aturan di belakang layar, kita tidak mengenal mereka semua, dan kita tidak benar-benar khawatir tentang mereka).
  • Semuanya Prosesor (CPU) tidak membutuhkan energi. Benar-benar semuanya. Jangan lupa komputer yang sangat kecil elektron wadah yang memindahkan mereka di sekitar di ruang-ruang kecil.
  • Ketika sebuah aplikasi yang tewas, ada beberapa yang telah disepakati protokol (kontrak) yang menentukan apa yang perlu dilakukan. iOS menegakkan dan menjalankan protokol ini. Tapi pekerjaan yang harus dilakukan, itu tidak gratis dan tentu saja tidak selalu murah (itu benar-benar tergantung pada apa App ini).

Setelah mengatakan semua itu, satu mengasumsikan sebagian besar pengguna menutup aplikasi dengan harapan untuk meningkatkan hidup baterai, di bawah kesan bahwa, dengan menutup hal-hal, maka lebih sedikit energi yang terbuang dalam menjaga aplikasi ini berjalan.

Kebenaran adalah bahwa, pada iOS, hal ini hampir tidak pernah terjadi. Ketika anda menekan tombol home, aplikasi ditangguhkan dan tidak lagi menggunakan sumber daya yang aplikasi lain yang mungkin perlu. Jika sebuah aplikasi baru (atau bahkan iOS) kebutuhan memori, itu akan mengurusnya dengan sendirinya, tetapi hanya jika dibutuhkan.

Anda menutup aplikasi, yang memaksa iOS untuk membuat potentially expensive tugas yang benar-benar bongkar aplikasi tabungan negara dan apa yang tidak, dengan menambahkan masalah bahwa ketika anda membuka kembali aplikasi, semua hal itu harus dikembalikan dan, tergantung pada kompleksitas aplikasi, banyak hal yang harus dibaca dari penyimpanan, hingga ke memori utama telepon, dan sebagainya. Semua ini bekerja ekstra, bisa dihindari jika anda hanya membiarkan aplikasi tetap dalam "ditangguhkan".

Namun ...

Dalam beberapa kasus (dan mereka jarang tapi tidak terlalu jarang), anda ingin membunuh aplikasi yang nakal. Contohnya adalah (namun tidak terbatas pada): Aplikasi yang berhubungan dengan audio latar belakang, atau asynchronous layanan seperti lokasi (di mana aplikasi ini meminta lokasi dan iOS harus pergi dan bertanya-tanya di mana itu adalah, misalnya, dengan menembakkan GPS jika diperlukan), video streaming, dll.

Aku sudah tak terhitung jumlahnya contoh aplikasi seperti Lyft, United Airlines, bahkan Twitter, yang berakhir dalam keadaan rusak (atau hanya tidak benar bekerja), baik karena anda berada di jaringan yang buruk (iOS telah mendapat benar-benar buruk di pulih dari beberapa jaringan buruk di masa lalu 3-4 rilis) atau jaringan hanya tidak merespon dengan baik.

Dalam waktu lama, sebagian besar dari masalah-masalah ini cenderung untuk pergi dan aplikasi mulai bekerja lagi, tetapi jika anda benar-benar membutuhkan aplikasi untuk bekerja now, maka anda harus pergi ke depan dan membayar harga yang harus membunuh dan me-restart dari awal. Anda menggunakan lebih banyak baterai dengan melakukan itu, tapi, hei, anda membutuhkannya.

Dan jika ini membingungkan, saya bisa memberikan analogi mobil, karena itulah apa yang kita cenderung untuk melakukan semua waktu.

Mobil Analogi

saya tahu bahwa mobil teknologi telah maju dan ini adalah tidak lagi sebuah contoh yang baik, tapi bermain dengan saya di sini.

Penembakan Mobil mesin yang digunakan untuk menggunakan bahan bakar yang lebih dari sekedar pemalasan. Ketika mobil telah karburator bukan injeksi, ini bahkan lebih buruk; itu sebabnya memutar mesin mati ketika anda berhenti di lampu merah, secara teoritis dapat menggunakan lebih banyak bahan bakar daripada hanya diam selama satu menit. Mobil baru memiliki banyak mekanisme yang lebih efisien dan dapat menghentikan mesin, tapi tinggal di semi-mulai negara (mari kita tidak terlalu ke mobil di sini).

Anda menutup aplikasi, adalah setara dengan orang memutar mobil off di setiap berhenti di lampu. Sebagai lawan untuk hanya membiarkan itu menganggur sampai anda membutuhkannya lagi, biasanya beberapa detik kemudian.

Analogi ini tidak sempurna, karena kebenaran adalah, menganggur mobil-mobil masih menggunakan bahan bakar, sedangkan ditangguhkan aplikasi tidak; namun, Di mata ponsel, mereka adalah tidak menggunakan apa-apa memori/baterai yang terkait (asalkan mereka tidak memiliki latar belakang pengolahan apapun aktif, jelas).

Pada dasarnya anda menghidupkan mesin anda setiap kali anda membunuh aplikasi, dan anda tidak membiarkan iOS "pintar" mekanisme pemalasan mesin anda mengurus itu, jadi ketika lampu berubah hijau, anda cukup menekan pedal gas dan mesin berjalan faster daripada jika itu akan menjadi 100% berhenti. Mulai mesin dari keadaan berhenti, juga menggunakan daya lebih dari hanya bahan bakar, anda perlu mengaktifkan starter agar mesin dapat memutar, injeksi bahan bakar dan percikan api yang dibuat, jadi... itu banyak pekerjaan di belakang layar. Aplikasi seperti mesin. :)

Komentar (3)
  1. Jika anda memaksa shutdown sebuah aplikasi sepenuhnya, maka ketika anda perlu untuk membuka kembali di lain waktu, biaya overhead yang terkait dengan meluncurkan sebuah instance baru dari aplikasi ini adalah lebih banyak CPU dan energi intensif dari sekedar beralih dari satu aplikasi ke aplikasi lain.
  2. Ketika sebuah aplikasi hanya duduk di sana dalam memori, kecuali jika hal ini benar-benar dibangun untuk berjalan di latar belakang, hal ini biasanya berhenti atau dibunuh dan tidak dikonsumsi setiap siklus CPU (biasanya). Jika itu's cukup sederhana aplikasi, maka akan hanya duduk di sana menggunakan memori. Dalam kasus seperti ini, aplikasi negara adalah bertahan di tempat lain (pada perangkat penyimpanan dalam kasus Android) sehingga aplikasi negara dapat dikembalikan lagi. Untuk memberikan anda gambaran, agak lama tidak terkirim pesan yang saya tulis di aplikasi Viber di ponsel saya bertahan telepon ditutup karena pengurasan baterai. Setelah restart telepon, kemudian Viber, saya menemukan pesan yang menunggu untuk saya untuk mengirimkannya. Halleluja.
  3. Tergantung pada chip memori anda, apakah itu berisi nol atau orang-orang tidak akan membuat perbedaan yang signifikan dalam konsumsi daya. Sehingga menjaga hal-hal dalam memori tidak won't secara signifikan membuat anda menghemat baterai.
  4. Ketika sebuah aplikasi di super deep sleep (guys, mohon mengkonfirmasi hal ini), hanya referensi untuk itu akan terlihat di app switcher sebagai snapshot dari layar terakhir yang terlihat dari itu sebelum pergi di bawah. Saya mengatakan ini karena satu hari, saya telah memutuskan untuk menutup semua aplikasi di iPad saya, dan saya terkejut dengan jumlah aplikasi yang saya harus tutup. Itu lebih dari 60 aplikasi. Ini tidak bisa menjadi semua yang diadakan di memori iPad. Saya melihat beberapa aplikasi di sana, yang digunakan beberapa bulan yang lalu.

Sebagai analogi ... dengan mobil anda, jika anda perlu untuk membuat terlalu banyak berhenti di siang hari dan tetap berhenti dan mulai mesin, waktu akan datang ketika baterai akan benar-benar habis. Hal ini dapat terjadi jika waktu pengisian saat anda mengemudi antara berhenti tidak cukup panjang untuk mengembalikan jumlah yang luar biasa dari energi yang tersedot keluar dari baterai setiap kali anda menghidupkan mesin. Selain itu,'s tidak baik untuk starter dan keseluruhan konsumsi gas. Yang's mengapa banyak pengiriman truck driver akan menjaga mesin idling selama mereka berhenti pendek.

Analogi ini adalah IMO yang mirip dengan memori menyimpan mitos.

Komentar (0)

Hanya melemparkan pendapat berbeda di luar sana untuk kepentingan diskusi. Konsep ini memiliki tingkat tertentu dari kebenaran itu, tetapi sekali anda memiliki nomor tertentu dari aplikasi yang terbuka, anda're kemungkinan akan mulai melihat semakin berkurang pada menjaga aplikasi ditangguhkan.

Semakin banyak aplikasi yang anda buka, semakin banyak ram yang akan digunakan, jelas. Biasanya setiap aplikasi di memori akan dibagi sebagai memori aplikasi itu sendiri sebenarnya saat ini menggunakan, memori bahwa aplikasi yang ingin memiliki di tangan, dan memori dari sistem operasi yang benar-benar memungkinkan aplikasi untuk menggunakan, yang memberi anda jumlah akhir dari memori aplikasi diperbolehkan untuk digunakan. Alasan aplikasi ini membuat sebagian terpisah dari memori ini sebagai memori yang ingin digunakan, karena aplikasi mungkin perlu untuk tumbuh's tumpukan, tapi itu doesn't selalu ingin melakukannya langsung dari kelelawar karena itu's buruk bagi pengumpul sampah untuk memiliki besar tumpukan (besar tumpukan = lagi sampah koleksi), sehingga aplikasi akan menyisihkan sebagian dari memori yang tidak sedang digunakan, tapi yang dapat digunakan oleh aplikasi khusus jika diperlukan.

Katakan OS memungkinkan aplikasi saya sampai 700mb, dan aplikasi set's selain 300mb memori itu untuk dirinya sendiri, meninggalkan 400mb di luar sana untuk saya aplikasi untuk digunakan jika diinginkan, tetapi kemudian membuka aplikasi lain dan membutuhkan memori; OS terlihat di semua aplikasi yang berbeda, dan memutuskan apakah itu's baik-baik saja untuk menarik beberapa memori dari aplikasi lain dan menggunakannya untuk aplikasi baru, dalam hal ini mungkin memutuskan untuk mengambil 150mb dari aplikasi saya diperbolehkan memori dan memberikan ke aplikasi baru, yang membutuhkan memori untuk ditukarkan di sekitar untuk memberikan aplikasi baru memori yang akan digunakan (anggap ini sebagai realokasi dana dalam bisnis) nah, semakin banyak aplikasi yang anda buka, semakin banyak pekerjaan sistem operasi harus dilakukan untuk benar-benar memutuskan mana aplikasi's memori itu bisa menyedot off untuk memberikan aplikasi baru memori.

Dalam pengertian ini, setiap aplikasi yang mendapatkan's dibuka dan diskors menambah kompleksitas untuk proses ini, sehingga lebih CPU intensif, dan akhirnya membutuhkan berpotensi lebih banyak daya baterai untuk membuka aplikasi masa depan dari daya baterai yang disimpan dengan tidak menutup aplikasi lain.

Sekarang pikiran anda, tidak ada yang mengambil ke pertimbangan bahwa kecuali jika anda benar-benar membunuh aplikasi, bisa ada layanan latar belakang berjalan yang akan memakan daya pemrosesan, misalnya pemberitahuan diatur untuk memberitahu anda pada timer, dll. Di sisi lain, beberapa aplikasi don't menggunakan true layanan latar belakang, dan benar-benar menggunakan pemberitahuan push dari layanan seperti firebase, yang don't membutuhkan aplikasi yang akan terbuka pada setiap titik.

Hal lain yang perlu dipertimbangkan, semakin banyak aplikasi yang terus terbuka, lebih terfragmentasi memori yang awalnya akan sampai OS berjalan melalui dan membersihkan memori menjadi lebih bersih dan ditata lebih efisien, hal ini sendiri juga mengunyah kekuatan pemrosesan, dan semakin banyak memori yang ditempati oleh aplikasi, semakin intensif proses ini akan untuk perangkat anda.

Semua ini untuk mengatakan, meninggalkan aplikasi terbuka ini sebagian besar lebih efisien, kecuali jika terlalu banyak aplikasi yang dibuka, namun saya tidak yakin berapa banyak aplikasi yang harus terbuka untuk sampai ke ambang batas ini, jika nomor yang ada.

Sumber:

SGen garbage collector untuk Mono: http://www.mono-project.com/docs/advanced/garbage-collector/sgen/

Gambaran dari memori profiler untuk kedua iOS dan Android Xamarin aplikasi, yang menunjukkan cara memori yang dikelola oleh app (bekerja mengatur, private byte, memori yang dialokasikan, dll.) https://blog.xamarin.com/say-hello-to-the-xamarin-profiler/

Komentar (12)

Bersih dipotong versi: Hal ini lebih baik karena OS ini dirancang untuk membuatnya lebih baik, ke titik bahwa pengguna akan ingin untuk menjaga aplikasi pada (atau di "plafon" negara) dalam rangka untuk mengumpulkan informasi lebih lanjut tentang tindakan anda[*] kemudian jika diperlukan.

Versi lama: Aplikasi yang "plafon" akan memiliki negara mereka disimpan dalam memori sehingga jika anda ingin memulai kembali hingga proses loading semuanya kembali akan memerlukan sedikit waktu untuk procesor dan hampir tidak menggunakan unit penyimpanan...Dengan ini anda bisa't tahu jika aplikasi anda melakukan beberapa hal-hal lain di latar belakang yang dalam banyak kasus mereka duduk di sana mengumpulkan data tentang anda.


[*] Untuk menguraikan mengumpulkan data tentang anda bagian... aplikasi yang disimpan dalam memori dapat berupa "plafon" atau aktif di latar belakang. Anda sebagai pemilik perangkat dapat't tahu (jika anda don't memiliki pengetahuan dan beberapa aplikasi lainnya untuk secara aktif memindai penggunaan CPU) yang mengatakan aplikasi ini benar-benar lakukan. Dari sudut pandang keamanan I'd menyarankan untuk menutup setiap aplikasi yang anda tidak't akan digunakan untuk berikutnya 10 menit off.

P. S. praktek Ini dilakukan pada perangkat Android dan juga btw ...

Komentar (4)