
Merhaba,
Bu yazıda sizinle android markette bolca bulabileceğiniz task-manager, task-killer uygulamaları, bunların android işletim sistemi ile olan etkileşimleri, kullanım alanları, yararları-zararları ile android işletim sisteminde genel olarak multitasking (çoklu uygulama çalıştırma) sisteminin işleyişi hakkında kendi tecrübelerimi ve çeşitli kaynaklardan derlediğim bilgileri paylaşmak istiyorum.
Biliyorsunuz, android işletim sistemi temel olarak linux tabanlı bir sistem, ve genel olarak hafıza yönetimi, multitasking, işlem önceliklendirilmesi gibi konularda yetenekli olması ve yüksek performans göstermesi için tasarlandı. Android dışındaki diğer akıllı telefonlardan kullanmış olanlar bilirler; yavaş, sürekli takılan, uygulamalar arasında geçmesi saatler süren, arkada çalışan uygulamaları sürekli pil yemesin diye kapatmak zorunda olduğunuz bir mobil cihaz kullanmak işkence gibidir (iphone’u bu durumun dışında tutuyorum, çünkü normal olarak multitasking’in desteklenmediği bir platform üzerinde çalışıyordu, son iOS versiyonu ile gelen multitasking özelliği de ancak bu işi kotarabilecek performansa sahip yeni iphone modellerinde çalışıyor sadece)
Temel olarak mobil cihazlarda çoklu uygulama ile ilgili sorun, modern bilgisayar sistemleri ile karşılaştırıldığında çok düşük hafızaları olması ve ekstra hafıza gerektiğinde kullanabilecekleri bir takas dosyalarının (swap file) olmaması olarak göze çarpıyor. Bu durumda da tüm uygulamaları o küçük hafıza alanı içinde çalıştırma zorunluluğu doğuyor. Ancak bu sefer de şu soru doğuyor: her programın belli miktar hafıza ve işlem gücü harcadığı muhakkak, eğer birçok program arkada çalışmaya devam ederse bu hafızaya nasıl sığacaklar? Yeni programlar açtığınızda hafızada yer açmak için eskileri kapatacak mı? Bu durumda daha önce açtığınız bir programa döndüğünüzde onun bıraktığınız durumunu kayıp mı edeceksiniz?
Kimse şüphesiz böyle bir durumu uygun görmez. Düşünsenize, oyun oynarken bir mail geliyor, siz ona bakmak için mail programınızı açıyorsunuz, o sırada bir de twitter’a bakayım diyorsunuz, işiniz bitip oyuna dönmeye çalıştığınızda karşılaştığınız durum: oyun kapatılmış, yeniden ana menüde açılıyor, mail programına dönüyorsunuz, mail programı kapatılmış, yazdığınız 2 sayfalık mail de uçmuş.. Hiç hoş değil.
İşte android programcıları bu gibi durumlar için işletim sistemi şu şekilde kodlamışlar: herhangi bir program arka plana geçtiğinde (örn: back / home tuşu ile ana ekrana döndüğünüzde, başka bir uygulama açtığınızda) android uygulama yöneticisi o programın o anki durumunu, yapmakta olduğu işlemi, görüntüsünü saklıyor, ve eğer gerekiyorsa ilk kullanılandan başlayarak o programları sonlandırarak kaynakları ön plandaki uygulamalara aktarıyor. Programın tüm durumu saklandığı için de size tekrar o programa geçtiğinizde minimal gecikmeyle program açılıyor ve aynı bıraktığınız şekliyle buluyorsunuz.
Bu arkadaki programlar bir nevi uyku durumunda tutulduğu, sadece durumları saklandığı için de neredeyse hiç sistem kaynağı ve pil harcamadan hafızada duruyorlar.
Bir de tabi arka planda sürekli çalışması gereken, durumları sürekli değişen ve kapatılmaması gereken uygulamalar var, örneğin müzik, messenger gibi (ne kadar program açarsanız açın, arkada müziğinizin kesilmesini istemezsiniz
. Bunlar da android sisteminde “servisler” olarak çalışıyorlar ve sistem tarafından sonlandırılmıyorlar.
Android sistemindeki genel multitasking işleyişi konusunda bu ön bilgileri verdikten sonra üzerlerinde çok tartışma dönen task-killer programlarından bahsetmek istiyorum:

İlk olarak şunu söyleyeyim, task-killer programlarını kullanmıyorum, olur da hafıza kaçağı olan, düzgün kodlanmamış bir uygulama ile karşılaşırsam da android’in içinde gelen uygulama yöneticisi programı sonlandırmak ve sistemden kaldırmak için gayet yeterli.

Task-killer uygulamaları genel olarak android işletim sistemi ile çalışan cihazlara yarardan çok zarar getirmekte, çünkü:
· Yukarıda bahsettiğim gibi, android işletim sistemi, bir uygulamayı, daha fazla hafıza gerektiğinde, uygulama yapacağı işi bitirdiğinde, ya da çok uzun zaman uygulamaya geri dönemediğinizde, sonlandıracak şekilde kodlanmıştır.
· Servisler aktif olarak çalışmadıklarında çok az hafıza kullanırlar
· Bir uygulamayı sonlandırılması gereken zamandan önce sonlandırırsanız, yapacağı işe gerek duyulduğunda otomatik olarak tekrar çalışacaktır.
· Bazı uygulamaları sistemden bağımsız olarak sonlandırmanızın istenmeyen etkileri olabilir: emaillerin / smslerin gelmemesi, alarmların çalmaması, vs..
· Siz uygulamaları kapattıkça, gereken ve başka işlemler tarafından çağırılan uygulamalar tekrar açılmakta, ve durumlarını saklayamadan zorla kapatıldıklarından yapacakları işleri baştan yapmak zorunda kalmakta, bu da hem sistem kaynağı hem de pil harcanmasında artışa yol açmaktadır.
Tabi ki yıllarca windows işletim sistemi kullanmış insanlar olarak, arkada çalışan uygulamaların gereksiz olduğunu, boş yere sistem kaynağı harcadığını düşünebiliriz, ancak android ve linux sistemleri için yukarıda anlattığım nedenlerden dolayı durum böyle değildir.
Sonuç olarak sizlere söylemek istediğim eğer bir programın sonlandırılması gerekiyorsa android sistemi zaten bunu hallediyor, sizin bunu zorlamanız sadece daha fazla soruna yol açıyor. Eğer cihazınızda gerçekten sonlandırılması gereken, sistem kaynaklarını, pili sömüren bir uygulama var ise zaten onu sistemden tamamen kaldırmak en doğru çözüm olacaktır.
Bu konuda google android programcıları, tecrübeli linux ve android kullanıcıları tarafından yazılmış bir çok yazı mevcut, bazılarında daha detaylı teknik anlatımlar da var. Okuyup bilgi sahibi olmanızı öneriyorum. Örnek birkaç yazıyı aşağıda bulabilirsiniz:
http://android-developers.blogspot.com/2010/04/multitasking-android-way.html
http://blog.rlove.org/2010/04/why-ipad-and-iphone-dont-support.html
http://geekfor.me/faq/you-shouldnt-be-using-a-task-killer-with-android/
Hepinize iyi günler.
Android, Multitasking ve Task-Killer Uygulamalari
Merhaba,
Bu yazıda sizinle android markette bolca bulabileceğiniz task-manager, task-killer uygulamaları, bunların android işletim sistemi ile olan etkileşimleri, kullanım alanları, yararları-zararları ile android işletim sisteminde genel olarak multitasking (çoklu uygulama çalıştırma) sisteminin işleyişi hakkında kendi tecrübelerimi ve çeşitli kaynaklardan derlediğim bilgileri paylaşmak istiyorum.
Biliyorsunuz, android işletim sistemi temel olarak linux tabanlı bir sistem, ve genel olarak hafıza yönetimi, multitasking, işlem önceliklendirilmesi gibi konularda yetenekli olması ve yüksek performans göstermesi için tasarlandı. Android dışındaki diğer akıllı telefonlardan kullanmış olanlar bilirler; yavaş, sürekli takılan, uygulamalar arasında geçmesi saatler süren, arkada çalışan uygulamaları sürekli pil yemesin diye kapatmak zorunda olduğunuz bir mobil cihaz kullanmak işkence gibidir (iphone’u bu durumun dışında tutuyorum, çünkü normal olarak multitasking’in desteklenmediği bir platform üzerinde çalışıyordu, son iOS versiyonu ile gelen multitasking özelliği de ancak bu işi kotarabilecek performansa sahip yeni iphone modellerinde çalışıyor sadece)
Temel olarak mobil cihazlarda çoklu uygulama ile ilgili sorun, modern bilgisayar sistemleri ile karşılaştırıldığında çok düşük hafızaları olması ve ekstra hafıza gerektiğinde kullanabilecekleri bir takas dosyalarının (swap file) olmaması olarak göze çarpıyor. Bu durumda da tüm uygulamaları o küçük hafıza alanı içinde çalıştırma zorunluluğu doğuyor. Ancak bu sefer de şu soru doğuyor: her programın belli miktar hafıza ve işlem gücü harcadığı muhakkak, eğer birçok program arkada çalışmaya devam ederse bu hafızaya nasıl sığacaklar? Yeni programlar açtığınızda hafızada yer açmak için eskileri kapatacak mı? Bu durumda daha önce açtığınız bir programa döndüğünüzde onun bıraktığınız durumunu kayıp mı edeceksiniz?
Kimse şüphesiz böyle bir durumu uygun görmez. Düşünsenize, oyun oynarken bir mail geliyor, siz ona bakmak için mail programınızı açıyorsunuz, o sırada bir de twitter’a bakayım diyorsunuz, işiniz bitip oyuna dönmeye çalıştığınızda karşılaştığınız durum: oyun kapatılmış, yeniden ana menüde açılıyor, mail programına dönüyorsunuz, mail programı kapatılmış, yazdığınız 2 sayfalık mail de uçmuş.. Hiç hoş değil.
İşte android programcıları bu gibi durumlar için işletim sistemi şu şekilde kodlamışlar: herhangi bir program arka plana geçtiğinde (örn: back / home tuşu ile ana ekrana döndüğünüzde, başka bir uygulama açtığınızda) android uygulama yöneticisi o programın o anki durumunu, yapmakta olduğu işlemi, görüntüsünü saklıyor, ve eğer gerekiyorsa ilk kullanılandan başlayarak o programları sonlandırarak kaynakları ön plandaki uygulamalara aktarıyor. Programın tüm durumu saklandığı için de size tekrar o programa geçtiğinizde minimal gecikmeyle program açılıyor ve aynı bıraktığınız şekliyle buluyorsunuz.
Bu arkadaki programlar bir nevi uyku durumunda tutulduğu, sadece durumları saklandığı için de neredeyse hiç sistem kaynağı ve pil harcamadan hafızada duruyorlar.
Bir de tabi arka planda sürekli çalışması gereken, durumları sürekli değişen ve kapatılmaması gereken uygulamalar var, örneğin müzik, messenger gibi (ne kadar program açarsanız açın, arkada müziğinizin kesilmesini istemezsiniz
. Bunlar da android sisteminde “servisler” olarak çalışıyorlar ve sistem tarafından sonlandırılmıyorlar.
Android sistemindeki genel multitasking işleyişi konusunda bu ön bilgileri verdikten sonra üzerlerinde çok tartışma dönen task-killer programlarından bahsetmek istiyorum:
İlk olarak şunu söyleyeyim, task-killer programlarını kullanmıyorum, olur da hafıza kaçağı olan, düzgün kodlanmamış bir uygulama ile karşılaşırsam da android’in içinde gelen uygulama yöneticisi programı sonlandırmak ve sistemden kaldırmak için gayet yeterli.
Task-killer uygulamaları genel olarak android işletim sistemi ile çalışan cihazlara yarardan çok zarar getirmekte, çünkü:
· Yukarıda bahsettiğim gibi, android işletim sistemi, bir uygulamayı, daha fazla hafıza gerektiğinde, uygulama yapacağı işi bitirdiğinde, ya da çok uzun zaman uygulamaya geri dönemediğinizde, sonlandıracak şekilde kodlanmıştır.
· Servisler aktif olarak çalışmadıklarında çok az hafıza kullanırlar
· Bir uygulamayı sonlandırılması gereken zamandan önce sonlandırırsanız, yapacağı işe gerek duyulduğunda otomatik olarak tekrar çalışacaktır.
· Bazı uygulamaları sistemden bağımsız olarak sonlandırmanızın istenmeyen etkileri olabilir: emaillerin / smslerin gelmemesi, alarmların çalmaması, vs..
· Siz uygulamaları kapattıkça, gereken ve başka işlemler tarafından çağırılan uygulamalar tekrar açılmakta, ve durumlarını saklayamadan zorla kapatıldıklarından yapacakları işleri baştan yapmak zorunda kalmakta, bu da hem sistem kaynağı hem de pil harcanmasında artışa yol açmaktadır.
Tabi ki yıllarca windows işletim sistemi kullanmış insanlar olarak, arkada çalışan uygulamaların gereksiz olduğunu, boş yere sistem kaynağı harcadığını düşünebiliriz, ancak android ve linux sistemleri için yukarıda anlattığım nedenlerden dolayı durum böyle değildir.
Sonuç olarak sizlere söylemek istediğim eğer bir programın sonlandırılması gerekiyorsa android sistemi zaten bunu hallediyor, sizin bunu zorlamanız sadece daha fazla soruna yol açıyor. Eğer cihazınızda gerçekten sonlandırılması gereken, sistem kaynaklarını, pili sömüren bir uygulama var ise zaten onu sistemden tamamen kaldırmak en doğru çözüm olacaktır.
Bu konuda google android programcıları, tecrübeli linux ve android kullanıcıları tarafından yazılmış bir çok yazı mevcut, bazılarında daha detaylı teknik anlatımlar da var. Okuyup bilgi sahibi olmanızı öneriyorum. Örnek birkaç yazıyı aşağıda bulabilirsiniz:
http://android-developers.blogspot.com/2010/04/multitasking-android-way.html
http://blog.rlove.org/2010/04/why-ipad-and-iphone-dont-support.html
http://geekfor.me/faq/you-shouldnt-be-using-a-task-killer-with-android/
Hepinize iyi günler.