BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi SERVİS BİLEŞENLERİ. BLM401 Dr.Refik SAMET

Benzer belgeler
BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi YAYIN ALICILARI. BLM401 Dr.Refik SAMET

MOBİL UYGULAMA GELİŞTİRME

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi KULLANICI ARAYÜZ. BLM401 Dr.Refik SAMET

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi İNTENT VE İNTENT. BLM401 Dr.Refik SAMET

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Activity Context.startActivity Activity, AndroidManifest

Java Class Yapısında Finalize Metotunun Kullanımı

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi ANDROİD DE SENSÖRLER. BLM401 Dr.Refik SAMET

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Android Ders Notları

MOBİL UYGULAMA GELİŞTİRME

Android Kaynakları (Resources)

NB Macro Kullanımı Hakkında Genel Bilgiler

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi GÜVENLİK VE İZİNLER. BLM401 Dr.Refik SAMET

NESNEYE YÖNELİK PROGRAMLAMA

C++ Dersi: Nesne Tabanlı Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

MOBİL UYGULAMA GELİŞTİRME

Üst Düzey Programlama

NA VNC SERVER KULLANIMI. Genel Bilgi NA VNC Server Ayarları

Miron Yazılım Entegre Uygulamalar (Mironist.NET Yılsonu Devir)

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

E-Mükellef Kontrol Programı Kullanım Kılavuzu

BasKonuş Uygulamasının başlatılması: Baskonuş uygulama icon una tıklanarak uygulama başlatılır.

Java da İstemci Tarafı Uygulamalar

YZM 2105 Nesneye Yönelik Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

08217 Internet Programcılığı I Internet Programming I

Burak Kıymaz JAVA FX

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Listview Kullanımı. Aşağıdaki örnekte bir ListView'ı birkaç ülke ismiyle dolduracağız.

Akıllı Akü den el terminaline veri aktarımı aşağıda belirtilen basamaklar takip edilerek gerçekleştirilir:

Nesneye Yönelik Programlama (OOP) 7.Hafta

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Görsel Programlama (Visual Programming) 2.Hafta

Ev aletinizi geleceğe bağlayın.

Ipad,Ipone ve Android Mobil Aygıtlar İçin İş Zekası Mobil Uygulaması Kullanıcı Kılavuzu

Model-Tabanlı ve Rastgele Karma Yöntem

Üst Düzey Programlama

Harita güncelleme direktifleri

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Proje 1. Arayüz Tasarımı

Ders 8: Metotlar. barisgokce.com

ÇANKRI KARATEKİN ÜNİVERSİTESİ

SMS İŞLEMLERİ MODÜLÜ

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Kurum Personeli için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Temel Bilgi Teknlolojileri 1. Ders notları 5. Öğr.Gör. Hüseyin Bilal MACİT 2017

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

Java Programlamada Paket Yapısı Ve Import

Türk Telekom Güvenlik Güvenli Aile(Safe Family) Ürünü Kurulum Kılavuzu

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Platformda ilk adımlar

EKOM MANAGER PROGRAMI KURULUM VE KULLANMA KILAVUZU

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

Bazı Akıllı Telefon Sensörleri

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Sunum İçeriği. Programlamaya Giriş

ÖĞRENME FAALİYETİ 2 ÖĞRENME FAALİYETİ 2

SESSİON KULLANIMI. .Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim. Language=VBScript Codepage="1254"%>

BİL-141 Bilgisayar Programlama I (Java)

Android e Giriş. Öğr.Gör. Utku SOBUTAY

C# ile NJ Simulatöre Bağlanmak

Görsel Programlama (Visual Programming) 2.Hafta

SOSYAL GÜVENLİK KURUMU BAŞKANLIĞINDAN MEDULA YETKİ SİSTEMİ HAKKINDA DUYURU

MERKEZ KAYD S STEM KULLANICI KILAVUZU KÜPÜR MHA LEMLER

Checkpoint SSL-VPN Kurulum Prosedürü. Checkpoint Endpoint VPN Client

BTEP243 Ders 3. class Yazım Kuralı:

HSancak Nesne Tabanlı Programlama I Ders Notları

4. Bölüm Programlamaya Giriş

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

19 Şubat 2016 Cuma

XMail. Kurulum ve Senkronizasyon Ayarları Rehberi

HSancak Nesne Tabanlı Programlama I Ders Notları

HP Mobile Uzaktan Kumanda (Yalnızca Belirli Modellerde) Kullanıcı Kılavuzu

Fonksiyon nedir? <?php $deger = pow(5,3); //625 döndürür echo $deger; echo "<br>", pow(5,3);

DS150E Kullanıcı El Kitabı. Dangerfield June V3.0 Delphi PSS

E-UYGULAMALAR VE DOKÜMAN YÖNETİM SİSTEMİ PROJESİ (EUP) ECZANE İŞLEMLERİ KULLANIM KILAVUZU

Windows İşletim Sistemi

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Horoz Programlanabilir Zaman Rölesi

Yardım Masası Kullanım Klavuzu

Android ile SQLLite Veri Tabanı

İŞLETİM SİSTEMLERİ. (Operating Systems)

Bilişim Teknolojileri Temelleri 2011

PAPERWORK TEKNİK MİMARİ

SAVİOR OTOMASYON TEKNİK DESTEK BİRİMİ

MapCodeX MapLand Kullanım Kılavuzu

Üst Düzey Programlama

Windows Grup İlkesi Düzenleyici

HP Mobil Uzaktan Kumanda (Yalnızca Belirli Modellerde) Kullanıcı Kılavuzu

ÇANKRI KARATEKİN ÜNİVERSİTESİ

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

SQL 2005 SQL STUDIO MANAGER ACP YAZILIMI KURULUM KILAVUZU

Transkript:

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi SERVİS BİLEŞENLERİ 1

GİRİŞ (1/5) Servisler arka planda görev yapan görsel olmayan Android bileşenleridir. Ekranda herhangi bir aktivite görünürken arka planda bir veya daha fazla sayıda servisler çalışıyor olabilir. Müzik çalma, web üzerinden veri aktarımı, kalıcı hafızaya veri yazma okuma gibi zaman alan işlemler kullanıcının ekran üzerindeki çalışmasını etkilemeden arka planda servisler aracılığı ile yapılabilirler. 2

GİRİŞ (2/5) Servisler de diğer bileşenler gibi ana aktivite ile aynı tread içerisinde çalışırlar. Fazla zaman gerektiren servisler ekranın kilitlenmesine neden olmaktadırlar. Kullanıcı bir tuşa bastığında çalışmaya başlayan servis işini bitirene kadar ekran kullanılamaz hale gelmektedir. Bu tür istenmeyen özellikleri önlemek için fazla zaman gerektiren servislerin ayrı tread içerisinde çalışması gerekmektedir. 3

GİRİŞ (3/5) startservice() bir servisi başlatma fonksiyonu; onstartservice() servis fonksiyonu; stopservice() bir servisi durdurma fonksiyonu; bindservice() bir servise bağlanma fonksiyonu; 4

GİRİŞ (4/5) startservice() ile başlatılmak istenen servis daha önce çalıştırılmamışsa bir nesnesi yaratılır ve çalıştırılmaya başlanır, daha önceden çalıştırılmışsa da çalışmaya devam eder. startservice() fonksiyonu her çağırıldığında sistem, servisin onstartservice() fonksiyonunu çağırır ve servis stopservice() fonksiyonu çağırılıncaya kadar çalışmaya devam eder. startservice() birden fazla çağrılmasıyla servisin birden fazla nesnesi yaratılmaz. 5

GİRİŞ (5/5) startservice() ile başlatılan servisi durdurmak için stopservice() fonksiyonunun bir defa çağrılması yeterlidir. bindservice() bir servise bağlanmak içindir. Servis yaratılmamışsa bir nesnesi yine yaratılır. Ancak bu kez onstartservice() çağrılmaz. Servise bağlanan aktivite ile servis arasında bir bağlantı kurulur ve aktivite servisle haberleşir. Servise bağlı herhangi bir nesne kalmadığında ise servis otomatik olarak durdurulur. 6

SERVİSİN YARATILMASI (1/5) public class DenemeServisi extends Service { } @Override public void oncreate() { } @Override public IBinder onbind(intent intent) { } @Override public int onstartcommand (Intent intent, int flags, int startid) { } @Override public void ondestroy() { } 7

SERVİSİN YARATILMASI (2/5) oncreate() metodu: servis ilk kez yaratıldığında sistem bu metodu çağırır. Servisin daha sonraki durdurulup başlatılmalarında bu fonksiyon çağrılmamaktadır. İlk kez yaratılma esnasında yapılması gerekenler burada kodlanmalıdır. 8

SERVİSİN YARATILMASI (3/5) onbind() metodu: servise bir sınıfın bağlanması durumunda çağrılacak olan metottur. Bir sınıf bindservice() fonksiyonunu çağırdığında sistem onbind() metodunu çağırır. onbind() metodu sonucunda dönen IBinder nesnesi aracılığıyla çağrılan sınıf ile servis haberleşirler. 9

SERVİSİN YARATILMASI (4/5) onstartcommand () metodu: bir sınıfın startservice() fonksiyonunu çağırdığı her durumda çağrılan servis metotlarından biridir. Bu fonksiyon içerisinde servisin yerine getirmesini istediğimiz işlevleri kodlayabiliriz. Servisin harici olarak başlatılıp durdurulması isteniyorsa bu fonksiyonun START_STICKY, yalnızca kendisiyle haberleşirken çalışması bekleniyorsa bu durumda START_NOT_STICKY sabitini döndürmesi gerekmektedir. 10

SERVİSİN YARATILMASI (5/5) ondestroy() metodu: servisin stopservice() fonksiyonu ile durdurulması veya herhangi bir bağlantısının kalmaması durumunda sistem servisi ortadan kaldırmadan hemen önce çağrılan metottur. Bu metotla servis içerisinde oluşturulan veri yapılarının hafızadan silinmesi gerekir. 11

AndroidManifest.xml Kaydı(1/1) Bir uygulamanın tüm bileşenleri AndroidManifest.xml dosyası içerisinde kaydedilmelidir. Servisler de bu dosya içerisinde ve <application> sekmesi altında tanımlanmalıdır. 12

Servisin Çalıştırılması (1/3) Bir servisin yaşamaya başlaması için en az bir bileşenin o servisi başlatması lazım. Servis başlatma işi startservice() veya bindservice() fonksiyonları ile yapılır. Servis başlatma için intent mesajları kullanılır. Genel olarak bir aktivite başladığı anda servisler başlatılmaz. 13

Servisin Çalıştırılması (2/3) Genel olarak servislerin başlaması kullanıcının bir tuşa basması veya bir menü maddesini seçmesi ile tetiklenir. Bu olaylar gerçekleştiğinde de startservice() veya bindservice() fonksiyonları, ilgili aktiviteler içindeki onclick(), onoptionsitemselected(), vb. gibi kullanıcı ara yüzlerinden alınan kullanıcı tepkilerine uygun yerlerde çağrılırlar. 14

Servisin Çalıştırılması (3/3) Kontrolü tanımladığımız aktivitenin elinde olmayan bir servise bağlanmak için bindservice() fonksiyonu çağrılır. Bu tür çağırma genellikle sistem servislerine erişmek için kullanılır ve bu servisle zaman zaman mesaj alışverişi yapılır. Bu amaçla aktivite içinde tanımlanan ServiceConnection sınıfı kullanılır. 15

Servis Bileşeni ile ilgili linkler http://developer.android.com/reference/android/app/service.html http://www.vogella.com/articles/androidservices/article.html http://examples.javacodegeeks.com/android/core/service/android-serviceexample/ http://www.techotopia.com/index.php/implementing_an_android_started_ Service_%E2%80%93_A_Worked_Example https://thenewcircle.com/s/post/60/servicesdemo_using_android_services 16

(son) BAŞARILAR 17