Bu dersimizde servisler konusuna biraz ara verip, çoğu zaman duyduğumuz önemli kavramlardan biri olan process kavramından detaylı olarak bahsetmeye çalışalım.
En son Bound Service konusunu incelemiştik, bundan sonra IPC(Inter process communication) konusunu anlatacaktım. Ama bu konuya geçmeden önce bazı yapıların mantığını anlatmak istedim.
Ilk olarak process nedir? Android uygulamasını ilk açtığımızda bir process oluşur ve bu processin üzerinde temel olayları ele alan bir Main Thread oluşturulur. Bizim 4 ana componentimiz de (activity, service, broadcast receiver, content provider) bunun üzerinde işlem görür. Bu yüzden sürekli olarak uzun sürecek işlemleri bu thread de yapmayalım diyoruz. Aksi taktirde diğer işlemler beklemede kalacak ve uygulamamız crash olacaktır.
Android cihazımızdaki her bir uygulama farklı bir userID ve process’e sahiptir. Default olarak her komponent aynı process’de çalışacak şekilde oluşturulsa da biz manifest dosyasında her bir componente farklı bir process tanımlayabiliriz.(android:process=”:process.adi”)
Yaptığımız örnekte ise biri dosyaya veri yazan biri ise o dosyadan veri okyan iki farklı uygulamanın (farklı processler üzerinde çalışıyorlar) birbirleri arasında veri alışverişi yapabilmesini sağladık.
Bunu yapmak için her ikisinin de manifest dosyasına aynı değere sahip userID tanımı yaptık. Bu sayede aslında iki farklı process üzerinde fakat aynı app sandbox’a sahip bir uygulamamız oldu diyebiliriz.
Umarım process konusu biraz daha kafanıza yatmıştır bu örnekten sonra. Uygulamanın kodlarını şuanki ana konumuz olmadığı için açıkca yazmayacağım, isteyen arkadaşlar buradaki linkten iki uygulamayı da indirebilir.