Uygulamadan Hata Ayıklama
Uygulama Yaşam Döngüsü
Uygulama yaşam döngüsü kavramı mantıklıdır, ancak Android uygulamalarının temel bir yönü işleri karmaşıklaştırmaktadır. Özellikle, Android uygulama mimarisi bileşen ve entegrasyon odaklıdır. Bu, zengin bir kullanıcı deneyimi, sorunsuz yeniden kullanım ve kolay uygulama entegrasyonu sağlar, ancak uygulama yaşam döngüsü yöneticisi için karmaşık bir görev oluşturur.
Tipik bir senaryoyu ele alalım. Bir kullanıcı telefonda biriyle konuşuyor ve bir soruyu cevaplamak için bir e-posta mesajı açması gerekiyor. Ana ekrana gider, posta uygulamasını açar, e-posta mesajını açar, e-postadaki bir bağlantıya tıklar ve bir web sayfasından bir hisse senedi fiyatını okuyarak arkadaşının sorusunu yanıtlar.
Bu senaryo dört uygulama gerektirir: ev uygulaması, konuşma uygulaması, e-posta uygulaması ve tarayıcı uygulaması. Kullanıcı bir uygulamadan diğerine geçerken sorunsuz bir deneyim yaşar. Ancak arka planda, sistem uygulama durumunu kaydediyor ve geri yüklüyor.
Örneğin, kullanıcı e-posta mesajındaki bağlantıya tıkladığında, sistem, bir URL’yi başlatmak için tarayıcı-uygulama faaliyetini başlatmadan önce çalışan e-posta-mesaj faaliyetindeki meta verileri kaydeder.
Aslında sistem, herhangi bir aktiviteye başka bir aktiviteye başlamadan önce meta verileri kaydeder, böylece aktiviteye geri dönebilir (örneğin, kullanıcı geri izleme yaptığında). Bellek bir sorun haline gelirse, sistemin bir etkinliği çalıştıran bir işlemi kapatması ve gerektiğinde devam ettirmesi gerekir.
Android, bir uygulamanın ve bileşenlerinin yaşam döngüsüne duyarlıdır. Bu nedenle, kararlı bir uygulama oluşturmak için yaşam döngüsü olaylarını anlamanız ve işlemeniz gerekir. Android uygulamanızı ve bileşenlerini çalıştıran işlemler, çeşitli yaşam döngüsü olaylarından geçer ve Android, durum değişikliklerini işlemek için uygulayabileceğiniz geri aramalar sağlar. Yeni başlayanlar için, bir aktivite için çeşitli yaşam döngüsü geri aramalarına aşina olmak isteyeceksiniz.
Bir etkinliğin ömrü boyunca Android’in çağırdığı yaşam döngüsü yöntemlerinin listesini gösterir. Kararlı bir uygulama uyguladığınızdan emin olmak için yöntemlerden her birinin sistem tarafından ne zaman çağrıldığını anlamak önemlidir. Tüm bu yöntemlere tepki vermenize gerek olmadığını unutmayın. Ancak bunu yaparsanız, üst sınıf sürümlerini de aradığınızdan emin olun. Durumlar arasındaki geçişleri gösterir.
Sistem, başka neler olduğuna bağlı olarak faaliyetlerinizi başlatabilir ve durdurabilir. Etkinlik yeni oluşturulduğunda Android onCreate() yöntemini çağırır. onCreate() öğesinin ardından her zaman onStart() çağrısı gelir, ancak onStart() öğesinin öncesinde her zaman onCreate() çağrısı gelmez çünkü uygulamanız durdurulmuşsa (onStop() öğesinden) onStart() çağrılabilir.
onStart() çağrıldığında, etkinliğiniz kullanıcı tarafından görülmez, ancak görünmek üzeredir. onResume(), etkinlik ön planda ve kullanıcı tarafından erişilebilir durumdayken, onStart()’tan sonra çağrılır. Bu noktada, kullanıcı etkinliğinizle etkileşime giriyor.
USB hata ayıklama açma
Kablosuz hata Ayıklama
Usb hata ayıklama Nedir
Usb hata ayıklama ne işe yarar
Samsung USB hata ayıklama
Samsung USB hata ayıklama Açma
USB hata ayıklama kapatma
Fastboot ile USB hata ayıklama açma
Kullanıcı başka bir etkinliğe geçmeye karar verdiğinde, sistem etkinliğinizin onPause() yöntemini çağırır. onPause()’dan, onResume() veya onStop()’un çağrılmasını bekleyebilirsiniz. örneğin, kullanıcı etkinliğinizi ön plana geri getirirse, onResume() çağrılır.
Etkinliğiniz kullanıcıya görünmez hale gelirse onStop() çağrılır. Etkinliğiniz onStop() çağrısından sonra ön plana geri getirilirse, onRestart() çağrılır. Etkinliğiniz etkinlik yığınında duruyorsa ancak kullanıcı tarafından görülemiyorsa ve sistem etkinliğinizi sonlandırmaya karar verirse, onDestroy() çağrılır.
Bir etkinlik için açıklanan durum modeli karmaşık görünür, ancak olası her senaryoyla ilgilenmeniz gerekmez. Aslında, çoğunlukla onCreate() ve onPause() işlemlerini yapacaksınız. Etkinliğiniz için kullanıcı arabirimi oluşturmak üzere onCreate() işlevini kullanacaksınız.
Bu yöntemde, verileri widget’larınıza bağlayacak ve UI bileşenleriniz için herhangi bir olay işleyiciyi bağlayacaksınız. onPause() içinde, kritik verileri uygulamanızın veri deposunda kalıcı hale getirmek isteyeceksiniz. Sistem uygulamanızı sonlandırmadan önce çağrılacak son güvenli yöntemdir. onStop() ve onDestroy() çağrılacağı garanti edilmez, bu nedenle kritik mantık için bu yöntemlere güvenmeyin.
Bu tartışmadan çıkarılacak sonuç? Sistem, uygulamanızı yönetir ve herhangi bir zamanda bir uygulama bileşenini başlatabilir, durdurabilir veya devam ettirebilir. Sistem bileşenlerinizi kontrol etse de uygulamanıza göre tam bir izolasyon içinde çalışmazlar. Başka bir deyişle, sistem uygulamanızda bir aktivite başlatırsa, aktivitenizde bir uygulama içeriğine güvenebilirsiniz.
Örneğin, uygulamanızdaki etkinlikler arasında global değişkenlerin paylaşılması alışılmadık bir durum değildir. android.app.Application sınıfının bir uzantısını yazarak ve ardından global değişkeni onCreate() yönteminde başlatarak global bir değişkeni paylaşabilirsiniz. Uygulamanızdaki etkinlikler ve diğer bileşenler, yürütülürken bu referanslara güvenle erişebilir.
Uygulamadan Hata Ayıklama
İlk uygulamanız için birkaç satır kod yazdıktan sonra, öykünücüde uygulamanızla etkileşim kurarken bir hata ayıklama oturumunun mümkün olup olmadığını merak etmeye başlayacaksınız. Bundan kısa bir süre sonra içgüdüsel olarak System.out.println()’e koşacaksınız, bu kod öykünücü üzerinde çalıştığı ve sys-out ifadesi IDE’ye geri beslenmediği için başarısız olacaktır.
Ama endişelenme; Android SDK, hata ayıklama amacıyla kullanabileceğiniz bir dizi uygulama içerir. Uygulamanızdan gelen mesajları günlüğe kaydetmek için android.util.Log sınıfını kullanmak isteyeceksiniz. Bu sınıf, bilinen bilgilendirme, uyarı ve hata yöntemlerini tanımlar. Ayrıca android.os’u kullanarak ayrıntılı izleme bilgileri alabilirsiniz.
İzlemeyi başlatma yöntemi (Debug.startMethodTracing()) ve izlemeyi durdurma yöntemi (Debug.stopMethodTracing()) sağlayan hata ayıklama sınıfı. Ardından, Android SDK’da bulunan izleme görüntüleyici aracını kullanarak izleme çıktısını görüntüleyebilirsiniz. SDK ayrıca, cihazdaki dosyaları görüntülemek için kullanabileceğiniz bir dosya gezgini aracı içerir. Bu araçlar Eclipse IDE ile entegredir.
Eclipse’de Debug perspektifini seçerek araçları görüntüleyebilirsiniz. Her bir aracı Pencere ➤ Görünümü Göster ➤ Diğer ➤ Android’e giderek de başlatabilirsiniz.
Android geliştirmeniz boyunca kullanacağınız araçlardan biri LogCat’tır. Bu araç, android.util.Log, istisnalar vb. kullanarak yaydığınız günlük mesajlarını görüntüler. Çalışma boyunca diğer araçları tanıtacağız.
Bu yazımızda, Android uygulamaları oluşturmak için geliştirme ortamınızı nasıl kuracağınızı gösterdik. Android API’lerinin temel yapı taşlarından bazılarını tartıştık ve görünümleri, etkinlikleri, amaçları, içerik sağlayıcıları ve hizmetleri tanıttık. Daha sonra Not Defteri uygulamasını yukarıda belirtilen yapı taşları ve uygulama bileşenleri açısından analiz ettik.
Ardından, Android uygulama yaşam döngüsünün öneminden bahsettik. Son olarak, Android SDK’nın Eclipse IDE ile entegre olan bazı hata ayıklama araçlarından kısaca bahsettik.
Ve böylece Android geliştirmenizin temeli başlar. Bir sonraki yazımızda içerik sağlayıcıları, kaynakları ve amaçları ayrıntılı olarak ele alınacaktır.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)