15 49.0138 8.38624 1 1 4000 1 https://womaneng.com 300

Mobil Programlama Önemli Tanımlar ve Notlar

Merhaba bu yazımda sizlere mobil programlama ders notlarımdan çıkardığım tanımları ve önemli notları paylaşacağım umarım yardımcı olur,kolay gelsin.
Activity: Kullanıcı ile etkileşimi saglayan birimdir.uygulamalar genelde birden fazla activityden olusur.
Android uygulamaları içerisinde olusturulan Activity’ ler Activity sınıfının alt sınıflarıdır.
Intent: Activity’ler arasında bilgi aktarımı saglayan bilesenlerdir. Bir kullanıcı giris formuna girilen kullanıcı adı sifre gibi bilgilerin kontrol edilerek baska bir forma aktarılması vs..
Task: Activity’ lerin Intent’ leri kullanarak farklı aktivity’ leri çagırması ve olusan zincir bir “Task” olarak adlandırılır.
Services: Arka plan görevlerinin isletilmesini saglar. Örnegin bir web sayfasını ziyaret ederken arka planda müzik çalması. Activity sınıfı gibi Service sınıfı da yasam döngüsünü kontrol etmeye yarayan metotlara sahiptir. (Stop/Restart)
Content Providers: Bir veri kaynağına bağlanmayı saglayan sınıftır. Insert, Query,Update, Delete metotlarına sahiptir. Broadcast Recievers: Activity’ e benzerler ama kendilerine ait bir arayüzleri yoktur. Tipik bir kullanım bir uygulamayı belli bir saatte aktif etmeyi saglayan bir alarmı yakalamaktır.

Uygulama Bilesenleri

4 farklı uygulama bileseni vardır. Farklı amaç,farklı life cycle
Activities: Tek bir ekran tek bir arayüz sunar Bir uygulamada birden fazla activity olabilir ama hepsi birbirinden ayrıdır. Bir uygulama baska bir uygulamanın bir activity sini çalıstırabilir. Örnegin bir kamera uygulaması bir email gönderme uygulamasının bir activitisini çagırabilir.
Bir activity Activity sınıfının bir alt sınıfıdır.
Services: Arka planda çalısan uzun soluklu uygulamalardır yada uzak erisimler için kullanılır.Arka planda müzik çalarken kullanıcı baska bir uygulamayı kullanıyor olabilir yada farklı bir bilesen mesela activity, bir servisi baslatabilir ve onla haberlesebilir.
Content Provider: Uygulama verilerinin yönetilmesini saglar.
Broadcast Recievers: Sistem tabanlı çagrılara cevap verir.Birçok duyuru sistem tarafından gelir. Ekranınkapatılması, batarya zayıf, picture was captured vs..
Uygulamalar broadcastleri baslatabilir. Örnegin diger uygulamalara bir datanın download isleminin tamamlandıgı bilgisini gönderebilirsiniz.

NOT:  Activities, services ve broadcast recievers asenkron bir mesaj olan intent ile aktivite olurlar. Intentler runtime anında herbir bileseni sizin uygulamanızın olup olmadıgına bakmaksızın birbirine baglarlar.

  • Bir intent Intent sınıfından olusturulur.

The manifest file: Android sistem bir uygulama bilesenini baslatmadan önce manifest dosya içerisinde olup olmadıgını kontrol eder.Manifest dosyada tanımlı bilesenler uygulamanın root dizininde tanımlı olmaları gerekir

  • Manifest dosyada neler var?

  1. Uygulamanın ihtiyaç duydugu izinler.
  2. Minimum API level
  3. Ihtiyaç duyulan donanım ve yazılım bilesenleri .
  4. Android Framework API dısında ihtiyaç duyulan API kütüphanleri.

Layout: Layout bir activity için kullanıcı arayüzü olusturmamızı saglar.

  • Iki yolla Layout olusturabilirsiniz
  1. XML içerisine tanımlama yaparak
  2. Runtime anında olusturarak
  • 1 nolu yöntem farklı ekran görüntülerine gore farklı xml loyout’lar tasarlamamıza olanak tanır Bu bir avantaj.
Main_layout.xml dosyasını yüklemek için;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
}

Attributes : Her View yada Viewgroup objesi kendine ait xml özellige sahip olabilir.
Örnegin:TextView objesinin textSize özelligi
ID: Her bir View object unique sayısal bir ID degerine sahiptir. Bu deger bilesenin agaç üzerinde farklı olmasını saglar.
Bilesene referansta bulunmak için

android:id=”@android:id/empty“ “+” ya gerek kalmaz.

Her activity digerini çalıstırır. Her seferinde yeni bir activity baslar diger avtivity ise durur ve “backstack” denilen stac yapısına atılır.
Activity’ nin alabildigi call back metotlar vardır.

  • onCreate()
  • onPause()

Intent Filters
Bir activityile kendisini uygulamanın diger bilesenlerinin nasıl aktif edebilecegi ile ilgili birçok özellik birçok intent filter ‘a sahiptir.
Diger bir activitiyi startActivity() metodu ile ve ona bir intent göndererek baslatırız.

Intent intent=new Intent(this,SignInActivity.class);
startActivity(intent);

.Cihazda var olan uygulamayı kullanmak istersek örnegin bir mail gönderme olsun.

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL,recipientArray);
startActivity(intent);

Managing life cycle

Bir activity 3 temel duruma sahiptir.
1)Resumed: Activity ön plandadır diger bir deyisle “running ” durumdadır
2)Paused: Baska bir activity açıktır ve suanki activity transparan olarak yada
ekranın bir tarafında görünür durumdadır. Paused bir activity hala yasıyordur. Fakat sistem tarafından düsük hafıza durumlarında
sonlandırılabilir.
3)Stopped: Activity baska bir activity tarafından arka plana gönderilmistir.
Stopped activity hala yasıyordur. Kullanıcıya uzun süre gösterilmez ise ve hafıza gereksinimi durumunda sistem tarafından öldürülür.
Entire lifetime: onCreate() – onDestroy() arasında geçen süredir
Visible lifetime: onStart() – onStop() arasında geçen süredir. onStop() metodu yeni bir activity çagırıldıgında yada activity uzunca süre visible yapılmadı ise
Foreground lifetime : onResume() – onPause() Bu durumda uygulama ekrandadır.
 Fragments:  Bir activity içerisinde bir arayüzün bir parçasını yada bir davranışını temsil eder.Birden fazla fragmenti aynı activity içerisinde kullanabilirsiniz. Farklı activitylerden çağırarak da tekrar kullanabilirsiniz.
Loaders:Activity veya Fragmentler için asenkron şekilde veri yükleme işlemi için kullanılırlar.
Task: Bir kullanıcının bir işi yapmak için kullandığı activity topluluğudur. Bu activitiy’ler bir stack yapısı içirisinde yer alır.
Services: Arka planda çalışır, bir arayüz göremeyiz.

  • Başka bir uygulama bileşeni servisi başlatır ve servis arka planda çalışmaya devam eder.
  • Servisler  farklı formlarda karşımıza çıkarlar
  1. Bir bileşen (activity) tarafından başlatırlırlar

(startService()), Kendisini başlatan bileşen yok olsa bile servis görevine devam eder.

  1. Çağıran bileşene bir değer döndürmez,Servisin görevi biterse (örneğin bir download) durur.

Content providers: Yapısal olarak oluşturulmuş verilere erişimi yönetir.

  • Üç temel bilesen activity, service ve broadcast-reciever kendi aralarında “intent” ler ile haberlesirler.
  • Intent leri yaymanın veya olusturmanın farklı yöntemleri vardır:
  1. Bir activityi baslatmak veya geri deger döndürmek için
  2. Bir servisi baslatmak için yada devam etmekte olan bir servise yeni komutlar göndermek için. Context.startService()
  3. Broadcast (BR) metotlarından herhangibirine gönderilen Intent nesneleri (Context.sendBroadcast(),Context.sendOrderedBroadcast(),or Context.sendStickyBroadcast()) ilgilenen tüm diğer br’ lere dağıtılır.

Action: Intentlerin olmazsa olmaz bölümüdür.Action elemanı ıntent fılter ın reaksiyon göstermesini istediğimiz aksiyonun tanımlanmasını sağlar.Intentin geri kalanının nasıl yapılandırılacagı hakkında bilgi verir.
Category: bir intent filtresi birden fazla category elemanına sahip olabilir activity nin nasıl çağrılacağını tanımlamak için kullanılır.
 Data: Bir intent in gönderilmesi ile beraberinde bir urı de gönderilir. Urı ler very kaynağını tanımlamak için kullnılır.
 Extras: Daha fazla bilgi için anahtar değer çiftleri şeklinde bilgi tutar.
Flags: Çeşitli türlerdeki bayraklar.(?)
Manifestxml: Tüm bilesenler manifest dosyada tanımlanmalıdır.
Manifest dosya Android sistem ile uygulama arasında bir arayüz görevi görür.
Kaynaklar (Resources): Uygulamalarımızda kullandıgımız sabit nesneleri kaynaklar olarak tanımlarız.
Bitmap resimler, renkler, layout tanımları, arayüzde kullanılan stringler vs.. bu kaynaklar içerisine girer.

First activity sayfasında bulunan butona tıklayarak second activity’e geçmek için kullanılacak kod:

Intent i = new Intent(FirstActivity.this, SecondActivity.class);

!!Butona xml içindede tıklama özelliği verilebilir:

android:onClick=”nextPage”

gibi.

Butonun tıklama özelliği:

bGonder = (Button) findViewById(R.id.btn_Gonder);
// Button nesnesine tıklandıgında çagırılan inner class yapısı
bGonder.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//EditText nesnesinden aldıgımız metni
//TExtView nesnesinin text özelligine esitliyoruz.
tView.setText(eText.getText());
}

Yaratılan objeyi kullanmak için;

Button myButton = (Button) findViewById(R.id.my_button);

kullanılır

LAYOUT u kodlarla oluşturmak istersek:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linLayout = new LinearLayout(this);
linLayout.setOrientation(LinearLayout.VERTICAL);
LayoutParams linLayoutParam = new
LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
TextView tv = new TextView(this);

// textview oluşturup ekleme

tv.setText(“TextView”);
tv.setLayoutParams(lpView);
linLayout.addView(tv);
setContentView( linLayout, linLayoutParam);

} // Layout ekrana getirilmesi için çağrılır
Event Handling:Olaylar (Events) uygulamaların kullanıcılarla etkilesim kurmaları anında bilgi topalamanın en kolay yoludur.
Android olay yönetiminde asagıdaki 3 kavarm önemlidir.
_ Event Listeners: içerisinde bir tane callback metod bulunduran View
class içerisinde bir arayüzdür (interface). Bu metotlar bu listenere bir View objesi kayıtlandıgı zaman (register) ortaya tetiklenirler.
_ Event Listeners Registration: Bir Event Listenere kayıtlanma islemidir. Event Listener bir olayı tetikledigi zaman bir handler çagrılır
_ Event Handlers : Bir olay meydana geldiginde ve bir event listenera o olayla ilgili kayıtlanma meydana geldiginde Event listener Event Handler çagrımı yapar.
Servisler: Android uygulamalarında arka planda çalısan ve kullanıcının uygulamayla olan iliskisini etkilemeyen islemler için Service adında bir sınıf bulunur.
Servisler iki farklı yapıda bulunabilir:
 1. Started (Baslatılmıs)
Bir uygulama bileseni startService() metodunu kullanarak bir hizmeti baslattıgında, servis baslatılmıs olur.
Bir kez baslatıldıktan sonra, servisi baslatan bilesen yok edilse bile, servisler arka planda sonsuza kadar çalısabilir.
2. Bound (Baglanılmıs)
Bir uygulama bileseni bindService() metodunu kullanarak bir hizmete baglandıgında, servis baglanılmıs olur. Baglanılmıs bir servis bilesenlerin servis ile iletisim saglaması,istekler göndermesi, sonuçlar elde etmesi ve karsılıklı iletisim (Interprocess Communication – IPC) ile islemler gerçeklestirmesi için bir istemci-sunucu arayüzü saglar.
onStartCommand():Aktivite gibi bir bilesen startService() komutunu kullanarak bir servisi baslatmak istediginde, sistem bu metodu çagırır. Bu metod bir kez çalıstıktan sonra, servis baslatılır ve arka planda sonsuza dek çalısır. Bu metodu kullanırsanız, isi bittiginde stopSelf() veya stopService() ile servisi sizin sona erdirmeniz gerekir.
onBind():Bir bilesen bindService() komutunu kullanarak bir servise baglanmak istediginde, sistem bu metodu çagırır. Bu metod için yazdıgınız kodlar ile bir Ibinder degeri döndürerek istemcilerin servis ile iletisim kurabilecegi bir arayüz saglamanız gerekir. Bu metodu daimaçalıstırmanız gerekir, ancak baglanmaya engel olmak istersniz null birdeger geri döndürmelisiniz.
 onCreate():Bir servis ilk olusturuldugunda, sistem bu metodu çagırır.
Eger servis zaten çalısıyorsa, bu metod çagrılmaz.
onDestroy(): Bir servis kullanılmadıgında ve yok edildiginde, sistem bu metodu çagırır. Servis thread, kayıtlı dinleyici, alıcı vb. System kaynaklarını bosaltmak için bu metodu kullanır.
Kullanıcı ile etkilesimi saglayan birimdir.uygulamalar genelde birden fazla activityden olusur.
Android uygulamaları içerisinde olusturulan Activity’ lerActivity sınıfının alt sınıflarıdır.

Bir önceki yazımız olan Başarılı Kadınlardan İlham Verici Sözler başlıklı makalemizde alıntı, başarı ve başarılı kadınlar hakkında bilgiler verilmektedir.

Paylaş:
Önceki
Başarılı Kadınlardan İlham Verici Sözler
Sonraki
Android Toast Mesajı Uygulaması
HAKKIMDA
Zeynep Küçük

Hi, I’m Zeynep I am studying in computer engineering in Samsun. I love to share and write about anything that interests me in tech, so welcome on my blog. I’d be really glad to get in touch with you! Don’t forget you can always contact me by email for any inquiries.Follow me on social media.

0 Yorum

Yorumla

This site uses Akismet to reduce spam. Learn how your comment data is processed.