Verilen cevaplar doğru, sadece bir iOS geliştiricisinin bakış açısıyla açıklığa kavuşturmak istiyorum.
iOS mümkün olduğu kadar çok şeyi yönetecek şekilde tasarlanmıştır, bu nedenle siz (ve geliştiricileriniz) onlar için endişelenmenize gerek yoktur. Sonuçta, Apple'dan olanlar da dahil olmak üzere uygulamalar arasında biraz tutarlı bir yaklaşım var (hatta bazen Apple bazı köşeleri kesebiliyor).
Olduğu söyleniyor, öncül:
- iOS, bellek hakkında bizden daha fazla şey biliyor. Ne kadar olduğunu ve ne kadar ihtiyacı olduğunu bilir (belli bir dereceye kadar).
- iOS bellek üzerinde tam kontrole sahiptir; kimin kullandığı konusunda son sözü vardır.
- İOS belleğe ihtiyaç duyarsa, onu bulur ve bu genellikle bir süre boşta olan diğer işlemleri öldürerek yapılır (ve sahnelerin arkasında birçok kural vardır, hepsini bilmiyoruz ve gerçekten de bilmiyoruz). onlar için endişelenmek).
- Bir İşlemcinin (CPU) yaptığı her şey enerji alır. Kesinlikle her şey. Unutmayın, bilgisayarlar onları çok küçük alanlarda hareket ettiren çok küçük elektron kaplarıdır.
- Bir uygulama öldürüldüğünde, yapılması gerekenleri tanımlayan bazı protokoller (sözleşmeler) vardır. iOS bu protokolleri uygular ve yürütür. Ancak iş yapılmalıdır, ücretsiz değildir ve kesinlikle her zaman ucuz değildir (bu gerçekten App'ın ne olduğuna bağlıdır).
Bunların hepsinin söylenmesi, çoğu kullanıcının pil ömrünü arttırma ümidindeki uygulamaları kapattığını varsaymaktadır; bu, uygulamaları kapatarak daha az enerji harcadığı izlenimini uyandırmaktadır.
Gerçek şu ki, iOS'ta bu neredeyse hiçbir zaman böyle olmaz. Eve bastığınızda, uygulama askıya alınır ve artık başka bir uygulamanın ihtiyaç duyabileceği kaynakları kullanmaz. Yeni bir uygulama (ya da hatta iOS) bu belleğe ihtiyaç duyuyorsa, kendisi tarafından ilgilenir, ancak yalnızca gerekiyorsa.
Defalarca uygulamalar kapanış Sen, emin olmak için iOS zorluyor potansiyel pahalı gerçekten ne zaman uygulamayı yeniden açın ekledi sorunla değil, onun devlet ve ne tasarruf bir uygulamayı boşaltma görevini, bütün bu şeyler Geri alınacak vardır ve uygulamanın karmaşıklığına bağlı olarak, bellekten, telefonun ana belleğine kadar bir çok şeyin okunması gerekir. Uygulamanın “askıya alınmış” durumunda kalmasına izin verirseniz, tüm bu ekstra çalışmalardan kaçınılabilir.
Ancak …
Bazı durumlarda (ve nadirdir ancak imkansız bir şekilde nadir değildir), yaramazlık gerektiren uygulamaları öldürmek istersiniz. Örnekler (ancak bunlarla sınırlı değildir): Arka plan sesi veya konum gibi eşzamansız servislerle ilgilenen uygulamalar (uygulamanın bir konum istediği ve iOS'in nereye gideceğini sorması gerekir; örneğin, gerekirse GPS'i ateşleyerek) , video akışı vb.
Kötü bir ağa sahip olduğunuz için (iOS gerçekten kötüleştiği için), Lyft, United Airlines, Twitter gibi Twitter gibi sayısız uygulama örnekleri yaşadım. son 3-4 sürümlerdeki bazı kötü ağlardan kurtarma) veya ağ doğru şekilde yanıt vermiyor.
Zamanla, bu sorunların çoğu ortadan kaybolma eğilimindedir ve uygulama tekrar çalışmaya başlar; Ama şimdi gerçekten çalışmak için uygulamaya ihtiyacınız varsa , o zaman devam etmeniz ve onu öldürmek zorunda kalmanın bedelini ödemeniz ve sıfırdan başlatmanız gerekir. Bunu yaparak daha fazla pil kullandın, ama, hey, ihtiyacın vardı.
Ve bu kafa karıştırıcı olsaydı, size bir araba benzetmesi verebilirim, çünkü her zaman böyle yapmaya meyilliyiz.
Araba Analojisi
Araba teknolojisinin geliştiğini ve bunun artık iyi bir örnek olmadığını biliyorum, ama burada benimle oyna .
Bir Otomobilin motorunu ateşlemek, yalnızca rölantiden daha fazla yakıt kullanmak için kullanılır. Arabalarda enjektör yerine karbüratör varken, bu daha da kötüydü; Bu nedenle kırmızı bir ışıkta durduğunuzda motorunuzu kapatmak, bir dakikalığına boşta kalmaktan teorik olarak daha fazla yakıt kullanabilir. Daha yeni otomobiller çok daha verimli bir mekanizmaya sahiptir ve motoru durdurabilir, ancak yarı-başlatılmış halde kalır (burada arabalara fazla girmeyelim).
Uygulamaları kapatıyorsun, her stop lambasında arabayı kapatan bir kişiye eşdeğerdir. Sadece birkaç saniye sonra tekrar ihtiyacınız olana kadar boşta kalmasına izin vermek yerine.
Analoji mükemmel değildir, çünkü gerçek şu ki, boşta araba hala yakıt kullanıyor, oysa askıya alınan uygulamalar değil; Ancak telefonun gözünde, onlar edilir değil (tabii ki, yeter ki aktif herhangi bir tür arka plan işleme yok gibi) birşey bellek / ilgili pili kullanan.
Temelde bir uygulamayı her öldürdüğünüzde motorunuzu kapatıyorsunuz ve iOS'un “akıllı” motorunu boşta çalıştırma mekanizmasına izin vermiyorsunuz, böylece ışık yeşile döndüğünde, sadece gaz pedalına basabilirsiniz ve motor, % 100 durmuş olmasından daha hızlı çalışıyor . Bir motoru durdurulmuş bir durumda çalıştırma, aynı zamanda sadece yakıttan daha fazla güç harcar, marş motorunu çalıştırabilmeniz için motorun kranklanması, yakıt enjekte edilmesi ve kıvılcım oluşması gerekir. Uygulamalar motorlar gibidir. :)