Google bulut mesajlaşma teknolojisi (gcm) kullanılarak mobil cihazların uzaktan yönetilmesi (Fatih Projesi kapsamında tablet cihazların uzaktan yönetilebilmesi vb.)
Android Developer Day 2013 etkinlikleri için hazırlanmıştır.
1 of 50
More Related Content
Google bulut mesajlaşma teknolojisi (gcm) cenk derinozlu
2. Sunum İçeriği
Google Bulut Mesajlaşma Teknolojisi Kavramlar
Google Bulut Mesajlaşma Yaşam Döngüsü
Google Bulut Mesajlaşma Mimarisi
Uygulama Sunucusu
Gcm Sunucusu
Android Uygulama
Örnek Uygulama
3. Google Bulut Mesajlaşma
Teknolojisi Nedir?
Google bulut mesajlaşma teknolojisi sunucu
bilgisayarlardan gönderilen verilerin android tabanlı
cihazlardan alınmasını sağlayan servistir.
Bulut Mesajlaşma teknolojisi kullanılarak android
uygulamalarına veri gönderilebilmektedir.
4. Google Bulut Mesajlaşma
Teknolojisi Kullanım Alanları
Mobil uygulamaların güncelleme denetimleri
Anlık Veri Takibi Yapılan Uygulamalar
(Borsa ,Döviz, Maç Sonuçları vb. )
Android merkezli her türlü otomasyon projesi için
cihazların uzaktan kontrol edilmesi
5. Bulut Mesajlaşma Servisinin
Avantajları Nelerdir?
Bulut Mesajlaşma servisi sayesinde sunucu üzerindeki
veri güncellendiğinde android cihaza sunucu verisinin
güncellendiği bilgisi iletilir.
Bu servis sayesinde android cihaz, sunucuda güncel bir
veri varmı diye sunucuyla sürekli bağlantı kurmak
yerine sadece güncelleme olduğu anlarda bağlantı
kuracağı için pil kullanım oranı düşmektedir.
6. Bulut Mesajlaşma Servisi (GCM)
Temel Karakteristikleri
GCM Teknolojisi;
3. parti uygulama sunucularının Android
uygulamalarına mesaj göndermesine izin verir.
Android cihaz üzerinde çalışan Android
uygulamasının sürekli mesaj dinlemesine gerek yoktur.
Sistem android uygulamasını yeni mesaj geldiğinde
haberdar edecektir.
Android Bulut mesajlaşma Android 2.2 ve üstü tüm
işletim sistemi versiyonları ile derlenmiş android
uygulamalarını desteklemektedir.
7. GCM Nasıl Çalışır?
GCM Mimarisi Bileşenler ve Tanımlama Bilgileri olmak
üzere iki kategoride incelenebilir.
8. 1-Bileşenler
Mobil Cihaz:
GCM kullanan android uygulamasının yüklü olduğu
cihazdır.
Mobil Cihaz üzerinde en az android 2.2 versiyonu
android işletim sistemi kurulu olmalıdr.
Andorid 4.04 den düşük versiyonlar için cihaz en az bir
Google hesabına sahip olmalıdır.
9. Bileşenler
3rd Parti Uygulama Sunucusu:
Uygulama sunucusu GCM sunucu vasıtasıyla android
uygulamasına mesaj göndermekten sorumludur.
10. Bileşenler
GCM Sunucular
3rd Parti uygulama sunuculardan gelen mesajları alıp
ilgili mobil cihaza ileten Google sunucularıdır.
11. 2-Tanımlama Bilgileri
Sender Id:
Google API console üzerinden oluşturulan proje
numarasıdır.
Android uygulamasının gcm sunucuya kayıt işlemi
sırasında kullanılır.
13. Tanımlama Bilgileri
RegistrationID:
GCM sunucular tarafından Android uygulamasına
atanan id ‘dir.
GCM Sunucusu kayıt işlemi başarılı olan her mobil
cihaza registration Id gönderir.
14. Tanımlama Bilgileri
Google Kullanıcı Hesabı:
GCM sistemin çalışması için android 4.0.4 den daha
düşük versiyonlu mobil cihazlar için en az bir Google
hesabı tanımlanmalıdır.
15. Tanımlama Bilgileri
Sender Auth Token:
Uygulama sunucusu üzerinde kayıtlı olarak tutulan
API anahtarı uygulama sunucusunun Google
servislerine erişiminde kullanılır.
16. GCM Yaşam Döngüsü:
Bulut mesajlaşmada 3 temel işlem vardır.
Mobil cihaz üzerinde çalışan android uygulamasının
mesaj alabilmesi için mobil cihazın gcm sunucuya
kayıt olması
3rd parti uygulama sunucusunun android yüklü cihaza
mesaj göndermesi
Android uygulamasının GCM sunucu üzerinden mesaj
almasıdır.
18. GCM Yaşam Döngüsü:
Android uygulaması gcm sunucusuna kayıt olabilmek
için «application id» ve «sender id» bilgilerini gcm
sunucularına gönderir.
Gcm Sunucusu kayıt işlemi başarılı olan her mobil
cihaza «registrationId» bilgisini gönderir.
«registration id» bilgisini alan mobil cihaz bu bilgiyi
uygulama sunucusuna gönderir.
19. GCM Yaşam Döngüsü:
Uygulama sunucusu gcm sunucu – android
uygulamasını eşleştiren id numarasını mesajlaşmada
kullanmak için veritabanına kayıt eder.
Uygulama Sunucusu mesaj ilgili mobil cihaza mesaj
iletmek istediğinde mesajla birlikte veritabanında
kayıtlı olan «registration id» bilgisini gcm
sunucularına gönderir.
Gcm sunucusu da ilgili mesajı «registration id»
bilgisine karşılık gelen mobil cihaza iletir.
20. GCM Yaşam Döngüsü:
Uygulama sunucusu üzerinden android tabanlı mobil
cihaza iletilen mesaj gcm tabanlı android uygulaması
tarafından alınır.
Uygulama aktif değilse bile mesaj geldiğinde aktif
olacaktır.
21. Google Bulut Mesajlaşma
Teknolojisi Performans Ölçütü
GCM-JSON-HTTP kullanarak aynı anda 1000 cihaza
mesaj gönderebilir.
GCM –XMPP kullanarak
Uygulama sunucusu –Google sunucu arasındaki her
bağlantı için saniyede 4000 mesaj gönderilebilir.
Örnek : 10 bağlantıya izin verildiğinde saniyede
10x4000=40.000 mesaj
22. GCM Örnek Proje:
Google Mesajlaşma Mimarisi Uygulama sunucusu ve
mobil cihaz üzerinde çalışacak örnek android uygulama
geliştirilmesi;
İhtiyaçlar:
1. Uygulama Sunucu Yazılımı
2. Mobil Tabanlı Android Yazılımı
24. Uygulama Sunucusu - MYSQL
Uygulama sunucusu üzerinde gcm sunucuya kayıt olan
mobil cihazların sahip olduğu «registrationId»
uygulama sunucusu üzerinde oluşturulmuş olan
MYSQL veri tabanında tutulacaktır.
25. Sunucu Arayüz Yazılımı İşlevi
Mobil cihaz üzerindeki android tabanlı uygulama gcm
sunucuya bağlandıktan sonra gcm sunucudan almış
olduğu “registrationId “parametresinin uygulama
sunucuna kaydedilmesi
Uygulama sunucusu üzerinden kayıtlı mobil cihazlara
mesaj gönderilebilmesi amaçlanmaktadır.
26. GCM Sunucularına Nasıl Mesaj
Gönderilir?
Uygulama Sunucusu ,GCM sunuculara mesaj
göndermek için «Google API Key» parametresini
kullanmaktadır.
Uygulama sunucunuzu GCM sunucularla
haberleştirmek için projeniz için «Google API Key»
oluşturmanız gereklidir.
27. Google API Key Nasıl Oluşturulur?
Tarayıcı penceresinden
https://code.google.com/apis/console adresinden
yeni proje oluşturulur.
28. Google API Key Nasıl Oluşturulur?
Yeni Proje Oluşturulduktan sonra Servisler
sekmesinden “Google Cloud Messaging for Android”
servisi aktif edilir.
29. Google API Key Nasıl Oluşturulur?
Son adım olarak «API Access» sekmesi tıklanır ve
açılan sayfada görülen «API key» değeri elde edilir.
30. Uygulama Sunucu Yazılımı?
https://code.google.com/apis/console adresinden elde
edilen “GOOGLE_API_KEY ” vasıtasıyla uygulama
sunucumuz üzerindeki web uygulamamız ile gcm
sunucudaki servislere erişilebilmektedir..
PHP- CURL ikilisi kullanılarak uygulama sunucusu
üzerinden gcm sunucular vasıtasıyla kayıtlı mobil
cihazlara mesaj gönderilebilmektedir.
31. GCM Tabanlı Android Yazılımı
Geliştirilmesi?
İhtiyaçlar:
Geliştirme Ortamı : Eclipse
Google Cloud Messaging for Android Library
kütüphanesi
Google Hesabı (Android 4.04 dan önceki versiyonlar
için)
32. GCM Tabanlı Android Yazılımı
Geliştirilmesi?
Kodlamaya başlamadan önce
«Google Cloud Messaging for Android»
isimli kütüphanenin kurulumunun yapılması ve
projemize eklenmesi gerekmektedir.
33. Kütüphane Kurulumu Yapılması?
Eclipse üzerinde
SDK Manager
butonu tıklanarak
açılan sayfadan
Extras bölümü
altındaki
«Google Cloud
Messaging for
Android Library»
isimli paket seçilerek
yüklenmelidir.
35. Mobil Yazılımın Test Edilebilmesi
İçin Emulator Oluşturulması?
Eclipse üzerinde «AVD
manager» vasıtasıyla
yeni «Google API
Emulator» oluşturulur.
36. Emülatör Hesap Ayarları Yapılması
Emulator
başlatıldıktan sonra
«Menu>>Settings>>
Accounts &Sync» yolu
izlenerek cihaza bir
Google hesabı eklenir.
37. Android Projesi Oluşturma
Eclipse Geliştirme Ortamı başlatıldıktan sonra File >>New
Project>>Android ApplicationProject yolu izlenerek yeni proje
oluşturulur.
39. Manifest Dosyası Oluşturulması
Android Projemiz yaratıldıktan sonra android uygulaması gcm
fonksiyonlarını yerine getirebilmesi için bazı izinlere ihtiyaç
duymaktadır.
Bu nedenle AndroidManifest.xml dosyasına gerekli izinler
eklenmelidir.
40. Manifest Dosyası İzinleri 1
android.permission.INTERNET:
Uygulamanın Internet servislerinin kullanması için gereklidir.
android.permission.GET_ACCOUNTS
GCM sunucularının ihtiyaç duyduğu Google hesapları için
gereklidir.(Android 4.04 versiyonu öncesi için)
android.permission.WAKE_LOCK:
Mobil cihazı mesaj geldiğinde uyku modundan çıkarmak gerekliyse
kullanılmalıdır.
41. Manifest Dosyası İzinleri 2
com.google.android.c2dm.permission.RECEIVE:
Android uygulamasının GCM sunuculara kayıt olması ve gelen mesajları
alabilmesi için gereklidir.
com.google.android.c2dm.intent.REGISTRATION:
Android uygulamasının gcm sunuculara kayıt olabilmesi için gereklidir.
com.google.android.c2dm.SEND:
Alıcı yalnız gcm sunuculardan gelen mesajı alabilir.
42. GCM Sunucuya Kayıt İşlemi
Android uygulaması mesaj alabilmek için öncelikle gcm sunuculara
kayıt olmalıdır.
Uygulamamızda gcm sunucularına kayıt olabilmek için
«com.google.android.c2dm.intent.REGISTER» intent nesnesi ile «app»
ve «sender» parametreleri kullanılmıştır.
«sender» parametresi Android uygulamasına mesaj gönderebilmek için
gerekli olan google console üzerinden yaratılmış olan proje nin
numarasıdır.
«app»parametresi ise Kayıt servisinin android uygulamasını tanıması
için gerekli bilgileri içeren numaradır.
43. GCM Sunucuya Kayıt İşlemi
Intent: com.google.android.c2dm.intent.REGISTER
Örnek Kod:
44. GCM Sunucuya Kayıt Silme İşlemi
Intent : com.google.android.c2dm.intent.UNREGISTER
Örnek Kod:
45. GCM Sunucu Kayıt İşlemi
Gcm Sunucu tarafından android uygulamasına
aşağıdaki parametreler gönderilir.
RegistrationId
Error Code
Unregistered
47. Android Uygulamadan Mesaj Alınması
Android uygulamasının uygulama sunucusundan
gönderilen komutları/mesajları alabilmek için
BroadcastReceiver(Yayın Alıcısı) bileşeni
kullanılmaktadır.