Windows Phone'da Uygulama Arka Plan Görevlerinin Çalışma Prensibi ve Batarya Kullanımına Etkileri

Sponsorlu Bağlantılar

papakudioflu

papakudioflu

Admin
    Konu Sahibi
Windows Phone'da Uygulama Arka Plan Görevlerinin Çalışma Prensibi ve Batarya Kullanımına Etkileri
Windows Phone işletim sistemi henüz yeni olması nedeniyle kullanıcıların olduğu kadar bir çok uygulama geliştirici tarafından da henüz tam olarak tanınmış değil. Sistemin ve sisteme uygulama geliştirme tekniklerinin de tam olarak öğrenilememiş olması nedeniyle bazı kullanıcılarda uygulamalardan kaynaklı sorunlar oluşmakta.

Akıllı cep telefonlarında hepimizin en dikkat ettiği nokta batarya performansı oluyor. Pek tabii ki bu da gayet normal. Fakat normal olmayan kullanıma bağlı olarak değişebilse de aynı model ve aynı yazılım yüklü cihazlarda aşırı derecede farklı batarya sürelerinin ortaya çıkması. İşte bu makalemde ortaya çıkan bu farkın nedenlerini ve çözümlerini açıklamaya çalışacağım.

Öncelikle Windows Phone ara yüzü ana hatlarıyla "Başlat Ekranı" ve "Uygulama Listesi"nden oluşuyor. Başlat ekranı ise uygulamaların Canlı Karo(Live Tile)larından oluşuyor. Teorik olarak alışılmış sistemlerdeki ev ekranına atanmış ikonlar gibi çalıştıkları düşünülse de pratik olarak Live Tile'lar deyim yerindeyse sistemin belkemiğini oluşturuyor. Aşağıdaki açıklamalarımızda Live Tile'ların neden bu kadar önemli olduğunu gösteren hususları göreceksiniz.

Windows Phone sistemi görünürde arka planda uygulama çalışmasına izin vermiyor diye bilinir. Fakat aslında durum bunun tam tersidir ve bazı uygulamaların arka planda çalışması engellenemez bile.

Windows Phone işletim sisteminde uygulama geliştirme aşamasında ya da uygulama mağazada yayınlandıktan sonra güncelleme olarak, geliştiriciler uygulamalarına "arka plan görevleri" atayabilirler. Windows Phone'da arka plan görevi atama seçeneklerinden biri de "PeriodicTask"lerdir. Uygulamadan bağımsız olarak belirli aralıklarla çalışarak işlem yapabilen bu parçacıklar, 1GB ve üstü RAM'e sahip cihazlarda max.20MB, 1GB'tan düşük RAM'e sahip cihazlarda ise max.11MB sistem belleği ile çalışmak zorundadır. İsterseniz periodik task'lerin çalışma prensibine bir göz atalım.

Periodic Task'ler uygulama tarafından ilk başlatıldığı andan itibaren iki hafta boyunca çalışırlar. Bu görev uygulama arka planda çalışması engellenmiş ola bile devam eder. Uygulama kullanıcı tarafından açılmazsa "periodic task" iki hafta sonunda sistem tarafından durdurulur. Tabi bu durdurmaya istisnai durumlar da var. Ve burada "Live Tile" devreye giriyor.

Eğer uygulamanın Live Tile'ı başlat ekranına sabitlenmişse ve uygulama Live Tile'a güncelleme gönderirse "Background Periodic Task"ın iki haftalık çalışma süresi sıfırlanır. İkinci istisnai durum ise uygulamanın kilit ekranına yapılandırılmış olması.Her bildirim güncellemesi de iki haftalık çalışma süresini sıfırlıyor. Background Periodic Tasklerin ortalama olarak 30 dakika aralıklarda 24 saniye çalıştığını düşünürsek küçük de olsa şarjınıza etkisi olacaktır. Windows Phone sisteminin background periodic taskleri biriktirerek hepsini aynı anda yaptırması nedeniyle çalışma aralığı 20-40 dakika aralığında gerçekleşir. Görev iki defa hata alarak sonlanırsa sistem tarafından pasif hale getirilir ve kullanıcı uygulamayı tekrar açana kadar pasif durumda kalır. Bu pasif görevin uygulamada oluşturduğu kararsızlığın şarja etkisi konusunda ise herhangi bir bilgiye sahip değiliz.

Telefonunuzda bu komutu kullanan uygulama sayısı ne kadar fazla olursa şarjınıza etkisi de o oranda olur.

İşte bu noktada geliştiricinin sistem ve kod bilgisi devreye giriyor. Zira bu görevi şarj,ram,işlemci gibi kaynaklarda yok denecek kadar az kullanım yapacak şekilde kodlayabilir ya da bu işlemi komplike bir hale getirip, Web Client ile xml ve json verilerinden çıktılarla yaptıracağı işlemler kaynak tüketimini ciddi derecede arttırır. Tabi bu tüketim çekilen verinin boyutuna, veri çekilen serverın tepkime hızına bağlı olarak artar veya azalabilir.

Görüldüğü üzere Live Tile'lar sadece başlat ekranında kısa yol olarak kullanılmıyor. Aksine uygulamadan gelen anlık bildirimleri ve durumları gösterdiği gibi periyodik arka plan görevlerinin de çalışma düzenine ciddi derecede etki ediyor.

Sonuç olarak aynı telefon modellerinde aynı yazılım sürümü yüklü olmasına ve batarya tasarruf ayarları yapılmış olmasına rağmen iki cihaz arasında aşırı derecede batarya süresi farkına, kullanılmasa bile yüklü olan uygulamaların da etkisi büyük.

Peki bu durumda neler yapılabilir?
Öncelikle bu uygulamaları belirlemeniz ve kullanmadıklarınızı telefonunuzdan kaldırmanız ya da başlat ekranından varsa Live Tile'ını kaldırıp iki hafta boyunca uygulama listesinden uygulamayı çalıştırmamanız gerekiyor. Bu uygulamalar nasıl belirlenir? Onu da sizler için araştırdım ve çözümü buldum.

Öncelikle telefonunuzda "ayarlar"a girip, ekranı sola ya da sağa kaydırarak uygulama ayarlarına gelin ve arka plan görevlerine girin. Burada sizi arka planda çalışmasına izin verdiğiniz ve isterseniz engelleyebileceğiniz uygulamalar karşılıyor. Bu listenin en altında ise "ileri düzey" butonu bulunuyor. Bu butona tıklayıp gelen sayfadaki uyarı yazısına dikkat ediyoruz. "Bu uygulamalar arka planda çalışabilir ve bazılarını engelleyemeyebilirsiniz". Bu şu demek bu uygulamalarda Background Periodic Task komutu var. Arka plan Görevleri sayfasındaki ve "ileri düzey" sayfasındaki uygulamaları karşılaştırın ve arka plan görevleri sayfasında olmayıp ileri düzey sayfasında olan uygulamalar sizin şarj sorununuzun sorumlusu olabilir. Bu uygulamaların hangisinin sorun oluşturduğunu ise maalesef bilemiyoruz.

Windows Phone 8.1 güncellemesiyle birlikte arka plan uygulamaları ve görev yöneticisinde geliştirmeler yapılacağı bilinse de bu geliştirmelerin istisnasız bütün arka plan görevlerini sonlandırmaya izin verip vermeyeceği bilinmiyor. Şu da var ki yine Windows Phone 8.1 güncellemesiyle gelmesi beklenen Battery Sense uygulaması sayesinde şarja gereğinden fazla etki eden uygulamalar da tespit edilebilecek.

Umarız bu bilgiler sizlere Windows Phone işletim sisteminin çalışma prensipleri hakkında biraz bilgiler verir ve sorunlarınızı çözmenizde yardımcı olur.
 
Son düzenleme:
  • Beğen
Tepkiler: Dexter Morgan, erdal8142, Lumiance ve 19 diğerleri


respection123

Üye
Gerçekten faydalı ve güzel bir makale :tşk:
 

blackcemre

Üye
Bilgi için teşekkürler
 
sinan430

sinan430

Üye
Uygulamadan giriyorum da yazını yarısı gözükmüyor

MaxiCep Windows Phone uygulamasıyla gönderildi.
 
  • Beğen
Tepkiler: Dexter Morgan
cesurpolis61

cesurpolis61

Üye
teşekkürler yine döktürmüşsünüz.
 
braayn

braayn

Üye
tşkler
 
ÖZGÜNBEY

ÖZGÜNBEY

Üye
yararlı bilgiler için teşekkürler
 
dakamon

dakamon

Üye
Windows Phone işletim sistemi henüz yeni olması nedeniyle kullanıcıların olduğu kadar bir çok uygulama geliştirici tarafından da henüz tam olarak tanınmış değil. Sistemin ve sisteme uygulama geliştirme tekniklerinin de tam olarak öğrenilememiş olması nedeniyle bazı kullanıcılarda uygulamalardan kaynaklı sorunlar oluşmakta.

Akıllı cep telefonlarında hepimizin en dikkat ettiği nokta batarya performansı oluyor. Pek tabii ki bu da gayet normal. Fakat normal olmayan kullanıma bağlı olarak değişebilse de aynı model ve aynı yazılım yüklü cihazlarda aşırı derecede farklı batarya sürelerinin ortaya çıkması. İşte bu makalemde ortaya çıkan bu farkın nedenlerini ve çözümlerini açıklamaya çalışacağım.

Öncelikle Windows Phone ara yüzü ana hatlarıyla "Başlat Ekranı" ve "Uygulama Listesi"nden oluşuyor. Başlat ekranı ise uygulamaların Canlı Karo(Live Tile)larından oluşuyor. Teorik olarak alışılmış sistemlerdeki ev ekranına atanmış ikonlar gibi çalıştıkları düşünülse de pratik olarak Live Tile'lar deyim yerindeyse sistemin belkemiğini oluşturuyor. Aşağıdaki açıklamalarımızda Live Tile'ların neden bu kadar önemli olduğunu gösteren hususları göreceksiniz.

Windows Phone sistemi görünürde arka planda uygulama çalışmasına izin vermiyor diye bilinir. Fakat aslında durum bunun tam tersidir ve bazı uygulamaların arka planda çalışması engellenemez bile.

Windows Phone işletim sisteminde uygulama geliştirme aşamasında ya da uygulama mağazada yayınlandıktan sonra güncelleme olarak, geliştiriciler uygulamalarına "arka plan görevleri" atayabilirler. Windows Phone'da arka plan görevi atama seçeneklerinden biri de "PeriodicTask"lerdir. Uygulamadan bağımsız olarak belirli aralıklarla çalışarak işlem yapabilen bu parçacıklar, 1GB ve üstü RAM'e sahip cihazlarda max.20MB, 1GB'tan düşük RAM'e sahip cihazlarda ise max.11MB sistem belleği ile çalışmak zorundadır. İsterseniz periodik task'lerin çalışma prensibine bir göz atalım.

Periodic Task'ler uygulama tarafından ilk başlatıldığı andan itibaren iki hafta boyunca çalışırlar. Bu görev uygulama arka planda çalışması engellenmiş ola bile devam eder. Uygulama kullanıcı tarafından açılmazsa "periodic task" iki hafta sonunda sistem tarafından durdurulur. Tabi bu durdurmaya istisnai durumlar da var. Ve burada "Live Tile" devreye giriyor.

Eğer uygulamanın Live Tile'ı başlat ekranına sabitlenmişse ve uygulama Live Tile'a güncelleme gönderirse "Background Periodic Task"ın iki haftalık çalışma süresi sıfırlanır. İkinci istisnai durum ise uygulamanın kilit ekranına yapılandırılmış olması.Her bildirim güncellemesi de iki haftalık çalışma süresini sıfırlıyor. Background Periodic Tasklerin ortalama olarak 30 dakika aralıklarda 24 saniye çalıştığını düşünürsek küçük de olsa şarjınıza etkisi olacaktır. Windows Phone sisteminin background periodic taskleri biriktirerek hepsini aynı anda yaptırması nedeniyle çalışma aralığı 20-40 dakika aralığında gerçekleşir. Görev iki defa hata alarak sonlanırsa sistem tarafından pasif hale getirilir ve kullanıcı uygulamayı tekrar açana kadar pasif durumda kalır. Bu pasif görevin uygulamada oluşturduğu kararsızlığın şarja etkisi konusunda ise herhangi bir bilgiye sahip değiliz.

Telefonunuzda bu komutu kullanan uygulama sayısı ne kadar fazla olursa şarjınıza etkisi de o oranda olur.

İşte bu noktada geliştiricinin sistem ve kod bilgisi devreye giriyor. Zira bu görevi şarj,ram,işlemci gibi kaynaklarda yok denecek kadar az kullanım yapacak şekilde kodlayabilir ya da bu işlemi komplike bir hale getirip, Web Client ile xml ve json verilerinden çıktılarla yaptıracağı işlemler kaynak tüketimini ciddi derecede arttırır. Tabi bu tüketim çekilen verinin boyutuna, veri çekilen serverın tepkime hızına bağlı olarak artar veya azalabilir.

Görüldüğü üzere Live Tile'lar sadece başlat ekranında kısa yol olarak kullanılmıyor. Aksine uygulamadan gelen anlık bildirimleri ve durumları gösterdiği gibi periyodik arka plan görevlerinin de çalışma düzenine ciddi derecede etki ediyor.

Sonuç olarak aynı telefon modellerinde aynı yazılım sürümü yüklü olmasına ve batarya tasarruf ayarları yapılmış olmasına rağmen iki cihaz arasında aşırı derecede batarya süresi farkına, kullanılmasa bile yüklü olan uygulamaların da etkisi büyük.

Peki bu durumda neler yapılabilir?
Öncelikle bu uygulamaları belirlemeniz ve kullanmadıklarınızı telefonunuzdan kaldırmanız ya da başlat ekranından varsa Live Tile'ını kaldırıp iki hafta boyunca uygulama listesinden uygulamayı çalıştırmamanız gerekiyor. Bu uygulamalar nasıl belirlenir? Onu da sizler için araştırdım ve çözümü buldum.

Öncelikle telefonunuzda "ayarlar"a girip, ekranı sola ya da sağa kaydırarak uygulama ayarlarına gelin ve arka plan görevlerine girin. Burada sizi arka planda çalışmasına izin verdiğiniz ve isterseniz engelleyebileceğiniz uygulamalar karşılıyor. Bu listenin en altında ise "ileri düzey" butonu bulunuyor. Bu butona tıklayıp gelen sayfadaki uyarı yazısına dikkat ediyoruz. "Bu uygulamalar arka planda çalışabilir ve bazılarını engelleyemeyebilirsiniz". Bu şu demek bu uygulamalarda Background Periodic Task komutu var. Arka plan Görevleri sayfasındaki ve "ileri düzey" sayfasındaki uygulamaları karşılaştırın ve arka plan görevleri sayfasında olmayıp ileri düzey sayfasında olan uygulamalar sizin şarj sorununuzun sorumlusu olabilir. Bu uygulamaların hangisinin sorun oluşturduğunu ise maalesef bilemiyoruz.

Windows Phone 8.1 güncellemesiyle birlikte arka plan uygulamaları ve görev yöneticisinde geliştirmeler yapılacağı bilinse de bu geliştirmelerin istisnasız bütün arka plan görevlerini sonlandırmaya izin verip vermeyeceği bilinmiyor. Şu da var ki yine Windows Phone 8.1 güncellemesiyle gelmesi beklenen Battery Sense uygulaması sayesinde şarja gereğinden fazla etki eden uygulamalar da tespit edilebilecek.

Umarız bu bilgiler sizlere Windows Phone işletim sisteminin çalışma prensipleri hakkında biraz bilgiler verir ve sorunlarınızı çözmenizde yardımcı olur.
1520 ile güzel bir makale olmuş eline sağlık :)
 
csH

csH

Üye
Whatsapp ve maçkolik te arka planı engellediğimde bildirim gelmeye devam ediyordu sanırım bu yüzden:hmmm

Ericsson A1018 ile gönderildi.
 
  • Beğen
Tepkiler: papakudioflu
OnurYurdakul

OnurYurdakul

Üye
Oturup Bunu mu yazdın Helal olsun ben olsam üşenir video çekerdim :D
 
umitarig

umitarig

Üye
bilgiler için çok teşekkürler
 
saynesim

saynesim

Üye
:alkisçok emek vermişsin kardeşim eline sağlık teşekkürler verdiğin bilgilerin için
 
Dexter Morgan

Dexter Morgan

Üye
Uygulama ile yazının yarısı gözükmüyor @papakudioflu

MaxiCep Windows Phone uygulamasıyla gönderildi.
 
  • Beğen
Tepkiler: emz

skynet

Üye
Teşekkürler
 
kursat99

kursat99

Üye
Çok çok güzel bir makale olmuş. Gerçekten ellerine sağlık Ali Kemal Abi. :oke:
 
bulutsuzgece

bulutsuzgece

Üye
Uygulama ile yazının yarısı gözükmüyor @papakudioflu

MaxiCep Windows Phone uygulamasıyla gönderildi.


Mesajın uzunluğundan kaynaklanıyor.
@kesasd 'ın dediğine göre bir mesajda belirli miktardan fazla yüksek veri gönderimine izin verilmiyormuş. Uygulamada yapılabilecek pek bir şey yok.

Bu arada faydalı makale için teşekkürler @papakudioflu :oke:

Çay var içersen, yol var gidersen, ben var seversen... (Aşık Veysel)
 
  • Beğen
Tepkiler: suyunsesi ve kesasd
dakamon

dakamon

Üye
Mesajın uzunluğundan kaynaklanıyor.
@kesasd 'ın dediğine göre bir mesajda belirli miktardan fazla yüksek veri gönderimine izin verilmiyormuş. Uygulamada yapılabilecek pek bir şey yok.

Bu arada faydalı makale için teşekkürler @papakudioflu :oke:

Çay var içersen, yol var gidersen, ben var seversen... (Aşık Veysel)
Bence uygulamada yapılacak bir şey olmalı ya böyle yapılacak bir şey yok deyip geçiştirirsek gelişmezki uygulama :( Mesela daha fazla göster seçeneği diye bir seçenek olsa? Yani bu verinin alınıp alınmaması kullanıcıya bırakılsa?
 
kesasd

kesasd

Üye
Bence uygulamada yapılacak bir şey olmalı ya böyle yapılacak bir şey yok deyip geçiştirirsek gelişmezki uygulama :( Mesela daha fazla göster seçeneği diye bir seçenek olsa? Yani bu verinin alınıp alınmaması kullanıcıya bırakılsa?

Veri alınıyor. Alınıp alınmaması kullanıcıya bırakılmamış zaten. Böyle birşeye gerek te yok. Element o kadar veriyi görüntüleyemiyor sadece.
 
  • Beğen
Tepkiler: bulutsuzgece
erhanercan

erhanercan

Üye
Şahane yazı eline sağlık arkadaşım
 


Üst Alt