Hepimiz "çoklu görev = aynı anda birden fazla işlemi gerçekleştirme yeteneği" dersini biliyoruz. Varlığının pek farkında olmadan bilgisayarlarımızda kullanıyoruz. Uygulamalar veya bir uygulamanın pencereleri arasında geçiş (bizim için) gerçek zamanlı olarak gerçekleşir ve işletim sisteminin bu yeteneğini doğal karşılıyoruz.
Görev farklı
İşletim sistemi işlemciyi küçük zaman aralıklarında tüm uygulamalara tahsis eder. Bu süreler fark edemeyeceğimiz kadar kısa olduğundan sanki tüm uygulamalar işlemciyi aynı anda kullanıyormuş gibi görünüyor. Biz de öyle düşünebiliriz iOS 4'te çoklu görev tamamen aynı şekilde çalışır. Öyle değil. Bunun temel nedeni elbette pil kapasitesidir. Eğer tüm uygulamalar gerçekten arka planda çalışır durumda kalsaydı, muhtemelen birkaç saat içinde bir soket aramamız gerekecekti.
İOS 4 ile uyumlu uygulamaların çoğu, Ana Sayfa düğmesine basıldıktan sonra "askıya alınmış moda" alınır veya uyku moduna alınır. Bir benzetme, hemen uyku moduna giren bir dizüstü bilgisayarın kapağını kapatmak olabilir. Kapağı açtıktan sonra dizüstü bilgisayar uyanır ve her şey kapak kapatılmadan öncekiyle tamamen aynı durumdadır. Ayrıca Home tuşuna basıldığında sonlandırılan uygulamalar da mevcut. Ve bununla gerçek bir fesihten bahsediyoruz. Geliştiricilerin bu yöntemlerden hangisini kullanacaklarını seçme hakkı vardır.
Ancak başka bir uygulama kategorisi daha var. Bunlar, iDevice cihazınızda tamamen farklı bir şey yapıyor olsanız bile, gerçekten arka planda çalışan uygulamalardır. Skype iyi bir örnek çünkü sürekli bir internet bağlantısına ihtiyaç duyuyor. Diğer örnekler, arka planda müzik çalan uygulamalar (Pandora) veya sürekli GPS kullanımı gerektiren uygulamalar olabilir. Evet, bu uygulamalar arka planda çalışırken bile pilinizi tüketir.
Uyumak mı yoksa ateş etmek mi?
Ana Ekran düğmesine bastıktan sonra uyku moduna alınması ("askıya alma moduna" alınması) gereken, iOS 4 ile uyumlu belirli uygulamalar arka planda çalışmaya devam eder. Apple, uygulamanın görevini tamamlaması için geliştiricilere tam olarak on dakika süre verdi. Diyelim ki GoodReader'da bir dosya indiriyorsunuz. Aniden biri sizi aramak ister ve siz de bu önemli çağrıyı kabul etmek zorunda kalırsınız. Arama on dakikadan fazla sürmediyse GoodReader uygulamasına döneceksiniz. Dosya zaten indirilmiş olabilir veya hâlâ indiriliyor olabilir. Arama on dakikadan fazla sürerse ne olur? Bizim durumumuzda GoodReader uygulamasının etkinliğini durdurması ve iOS'a uyku moduna alınabileceğini söylemesi gerekecek. Bunu yapmazsa bizzat iOS tarafından acımasızca sonlandırılacak.
Artık "mobil" ve "masaüstü" çoklu görevler arasındaki farkı biliyorsunuz. Bir bilgisayar için uygulamalar arasında akıcılık ve geçiş hızı önemliyken, mobil cihazlar için pil ömrü her zaman en önemli şeydir. Çoklu görevin de bu gerçeğe uyarlanması gerekiyordu. Bu nedenle, bu makaleyi okuduktan sonra Ana Sayfa düğmesine iki kez basarsanız, artık "arka planda çalışan uygulamalar çubuğunu" değil, esasen yalnızca "son kullanılan uygulamaların listesini" göreceksiniz.
Yazar: Daniel Hruskakaynak: onemoretap.com
hmm, ilginç :) Her zaman Unix'te yapılabilene benzer olduğunu düşünmüşümdür. Uygulamaya sıfır CPU zamanı tahsis edilmiş ve süreç sadece bellekte duruyor, tüm kaynaklar tahsis edilmiş. bu yüzden silmek için ana ekrana iki kez basıp uygulamayı hemen durdurmam gerekti. Peki bu, alt gizli sayfada bir uygulama simgesi olsa bile uygulamanın uzun zaman önce (10 dakika sonra) kapatıldığı anlamına mı geliyor?
Alttaki listede sadece en son açılan uygulamalar yer alıyor; bunların bir kısmı hala çalışıyor, bir kısmı askıya alınmış ve bir kısmı da tamamen sonlandırılıyor. Uygulamanın listeden manuel olarak kaldırılması, çalışıyorsa (veya askıya alınmışsa) sonlandırılmasına neden olacak "yan etkiye" sahiptir.
Uygulamanın kendisine bu fazladan 10 dakikayı anlatması gerekir ve bunları alacağı garanti edilmez.
Bu, uygulamayı listeden kapatma takıntımdan kurtulmadı (ya yanlışlıkla kaynakları yerse, değil mi? :-D)
Anladığım kadarıyla 10 dakika arka planda çalışması gereken ve "skype, GPS ve müzik çalma" kategorisine girmeyen uygulamalar için geçerli. Diğer uygulamalar askıya alma moduna geçer ve belleğe başka şeyler için ihtiyaç duyulana kadar bellekte kalır.
Askıya alma modunun avantajı, uygulamayı kapatmanız gerektiğinde verilerini kaybetmemeniz, askıya alma moduna geçtiğinizde her şeyin kaydedilmesidir.
veya örneğin oynatma durumunda bg / fg komutunun eşdeğeri
Peki arka planda uzun süre çalışan oynatıcı veya diğer uygulamalara ne dersiniz? Yani geliştirici olarak "seçme" şansım var mı, yoksa bunun bir şekilde Apple tarafından onaylanması mı gerekiyor?
Uygulamanın gerçekten sınırsız bir süre boyunca arka planda çalışabilmesi için aşağıdaki işlemlerden birini yapması (kaydetmesi) gerekir:
– Konum servislerini (GPS) kullanın
– Arka planda müzik çalın
– VOIP (IP Üzerinden Ses) kullanın
Başlığa göre (kaputun altına bir bakış), yazının teknik detaylarla birlikte biraz daha kapsamlı bir açıklama içermesini bekliyordum. Bu daha çok makalenin perex'ine benziyor. Perex ise devamı ne zaman? Geri ödeme alabilir misiniz? :-)
ve neyi daha ayrıntılı olarak bilmek istersiniz?
Başlığında "kaputun altında" yazan bir makaleden, ayrıntılı bir teknik açıklama (örneğin, yazar uygulamalar arasında geçiş yaparken oluşan ek yükü veya sistem kaynaklarına eşzamanlı erişimin nasıl ele alındığını analiz edebilir), diğer modellerle bir karşılaştırma beklerdim. (örneğin, jailbreak yapılmış bir iPhone ile). Bunu bazı ölçümlerle desteklemek idealdir. Başlığında "kaputun altında" yazan bir makaleden, bu çok yüzeysel açıklamadan çok daha fazlasını bekliyordum.
Skype gibi arka planda sürekli çalışan ve bağlantıyı kesmeyen icq client var mı?
uygulamanın askıya alma moduna geçmesi için 10 dakika değil 10 saniyesi vardır... ve bu işlem sırasında, bazıları yukarıda listelenmiş olan arka uç hizmetlerinde bazı parçalar "takılabilir" veya kalmayabilir - Apple'ın "akıllı" dediği şey budur "çoklu görev... sonra sistem onu düşürdü
Bir şeyin indirilmesi, yüklenmesi veya işlenmesi durumunda uygulama ek süre gerektirebilir. Sınırsız bir süre boyunca minimalist modda çalışan GPS, VoIP veya müzik çalmayla hiçbir ilgisi yoktur.