Android Programlama

advertisement
Android Programlama
2015-2016 BAHAR
MAKU-TBMYO 2016
Konu Başlıkları













Genel Kavramlar
Android Geliştirme Araçları
Android Kaynakları
Activity
Intent
Layout
Frame
Servisler
Dosyalar
SqlLite veri tabanı
Web Servis uygulamaları
Sensörler
Google MAP Uygulaması
Mobil Telefon Anakartı
Kaynak: http://www.cs.dartmouth.edu/~campbell/cs65/cs65-2014.html (22/02/2015)
Bir Mobil Cihazdaki Bazı Sensörler
Kaynak: http://www.cs.dartmouth.edu/~campbell/cs65/cs65-2014.html 22/02/2015
Bir Mobil Cihazdaki Bazı Sensörler
(Hall)
Kaynak: http://smartphoneworld.me/hello-world-2/ 22/02/2016
Bazı Mobil Cihaz Uygulama Geliştirme Araçları
===== Mobil Uygulama geliştirme programları ========
 Android Studio (Java)
 Eclipse IDE (Java)
 Xcode ( Objective-C, Swift)
 Visual Studio C#.NET
======== On-Line Mobil uygulama Geliştirme Araçları ========
 VindDev Mobile
 Telerik (Online - HTML5 ile)
 MIT App Inventor (On-line)
======== Mobil Oyun Geliştirme Araçları ========
 Corona SDK

Unity
Android Nedir?
Andrid Google Firması tarafından 2005 yılında geliştirilmeye başlanmış

Telefon

Tablet

Saat

TV

Otomotiv
gibi araçların/cihazları programlanması için

Java Programlama Dilini kullanan,

Linux Tabanlı (kernel) tabanlı bir İŞLETİM SİSTEMİDİR
Neden Android?

Linux Tabanlı

Samsung, LG, Sony, Huawei,... vb. firmaların ortak

Ücretsiz geliştirme aracı


Java dili ile geliştirilir (iOS için kullanılan Object-C ve Swift
gibi zor diller kullanmaz)
Geniş Kullanım Alanı ( Mobil telefon, Tablet, Otomobil, TV,
Blue Ray, vb. gibi)

Farklı yerlerden kurulabilir (GoogleStore, direkt yükleme,..)

Bol miktarda kaynak döküman

Registery-based olduğundan küçük işlemcilede az bellekle
çalışabilir
Android Uygulamaları (SANDBOX)
Android işletim sistemi üzerinde çalışan her bir uygulama için ayrı bir işlem ve
sanal makina ( DVM: Dalvik Virtul Machine) ayrılır. Böylece uygulamalar
birbirinden izole olarak çalışır. Bu güvenlik açısından önemlidir.
Android uygulamaları GoogleAppStore üzerinden dağıtımı yapıldığında üretici
firma anahtarı ile yüklenir. Dolayısıyla hangi uygulam hangi üretici tarafından
geliştirildiği bellidir. Aynı üretici tarafından geliştirilen farklı uygulamalar aynı üretici
koduyla yüklenir.
Android Uygulamaları (SANDBOX)
Android işletim sistemi üzerinde çalışan her bir uygulama için ayrı bir işlem ve
sanal makina ( DVM: Dalvik Virtul Machine) ayrılır. Böylece uygulamalar
birbirinden izole olarak çalışır. Bu güvenlik açısından önemlidir.
DVM-1
DVM-2
Android Uygulama-1
Android Uygulama-2
Kendine ait bir Prosess
Kendine ait İşletim
sistemi kullanıcısı
Kendine ait bir Prosess
Kendine ait İşletim
sistemi kullanıcısı
Kendine ait bir Prosess
Kendine ait İşletim
sistemi kullanıcısı
Kendine ait bir DVM
Hafızadan ayrılmş
bellek(Heap)
Kendine ait kanaklar
Kendine ait bir DVM
Hafızadan ayrılmş
bellek(Heap)
Kendine ait kanaklar
Kendine ait bir DVM
Hafızadan ayrılmş
bellek(Heap)
Kendine ait kanaklar
DVM-N
...
Android Uygulama-N
Android Mimarisi
Android İşletim sistemi, adres defteri, telefon arama, notification, 2D/3D grafik, database,
security/encryption, camera, ses, input/output, web .. gibi kütüphaneler sağlar.
Java Kodlar Derlenerek DVM binary kodlara dönüştürülür
4
3
2
1
http://developer.android.com/images/system-architecture.jpg
1-Linux Çekirdeği(Kernel)
2-Android Yerel Linux Kütüphanesi (Android Linux Library)
Dalvik Virtual Machine

Dalvik Virtual Machine

Hızlı CPU ihtiyaç duymaz

Swap alana ihtiyaç duymaz

Sınırlı batarya ömrü

Küçük RAM lara ihtiyaç duyar

Örn: Toplam 64 Mb, Çalışma sırasında yaklaşık 10 Mb
Dalvik Virtual Machine

Bir .dex dosyada birden çok class vardır

Stack-based yerine registered-based dir

Modifiye edilmiş garbage (çöp toplama)

Geliştirilmiş memory paylaşımı (sharing)

İnstal zamanında optimize edilir
DVM’ ye karşı ART (OTM)
Dalvik VM (Dalvik Virtual Machine) Dan Bornstein tarafından Android işletim sistemi için
özel olarak geliştirilmiş bir sanal makinadır. Java olarak yazılan uygulama kodları (.class)
derleyiciler tarafından Dalvik VM’in okuyabileceği bytecodelara çevrilerek toplanır
ve .dex uzantılı dosyada dönüştürülürler. Bu .dex uzantılı dosyalar Dalvik VM’in
çalıştırılabilir(executable) dosya uzantılarıdır.
Dalvik VM düşük hafıza kullanımından dolayı sevilmektedir. Dalvik VM için ön görülen min
RAM kapasitesi 64 MB olarak belirtilmektedir. İşletim sistemi başladıktan sonra 20
MB RAM kapasiti bulundurmaktadır.
Dalvik VM, Android 2.2 ile birlikte Just-In-Time derleyici olarak yoluna devam
etmiştir. JIT olarak bilinen ve çalışma zamanlı derleme yapısı Android 4.4 ile
yerini Ahead-of-Time (AOT) derleyiciye bırakmaya başlamıştır. Çalışma öncesi derleme
yapısı AOTGoogle firması tarafından ART olarak sunulmuştur.
ART Android RunTime ile yoluna devam eden Android işletim sistemi için performans
kazandırılacağı düşünülmektedir. Çünkü JIT yani çalışma zamanlı derleme, Uygulamaların
çalışma zamanında ele alarak bytecodelarının okunup, işlemci üzerinde yorumlanmasıyla
çalışmakta iken AOT yani çalışma öncesi derleme ile bu yapı Uygulamaların kurulma
aşamasında derlenip çalışma esnasında derlenme ile zaman kaybetmemesi
sağlamaktadır. Buda Android için daha az işlemci ve ram anlamına gelmektedir.
Kaynak (23/02/2015): http://ibrahimbalic.com/tag/android-art/
Android Sürümleri
6.0
22,23
Program yazarken API level önemli
Marshmallon
An itibarı ile piyasadaki telefonlarda en
çok kullanılan sürüm.
Android Versiyonlarına göre Piyasada Kullanım Oranları
15 Şubat 2016 http://www.idc.com/prodserv/smartphone-os-market-share.jsp
15 Şubat 2016 http://www.idc.com/prodserv/smartphone-os-market-share.jsp
Android Geliştirme Araçları
SEÇENEK-I
SEÇENEK-II
1- Java Developer Kit (JDK)
1- Java Developer Kit (JDK)
2- Eclipse ( Java Software Developer Kit)
3- Android Developer Toolkit
4- Emulatör (AVD, GenyMotion)
2- Android Studio (Android Virtual
Device-AVD emulatör ile birlikte)
Android Studio Kurulum
1- Java SDK kurulumu
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2- Download Android Studio
http://developer.android.com/sdk/index.html
Windows için sistem gereksinimleri:
 Microsoft® Windows® 8/7/Vista (32- or 64-bit)
 2 GB RAM minimum, 4 GB RAM recommended
 400 MB hard disk space
 At least 1 GB for Android SDK, emulator system images, and caches
 1280 x 800 minimum screen resolution
 Java Development Kit (JDK) 7
 Optional for accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and
Execute Disable (XD) Bit functionality
Eclipse ADT Kurulumu
1- Download Java SDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2- Download Eclipse
http://www.eclipse.org/downloads/packages/eclipse-ide-java-eedevelopers/marsr
3-Install ADT Plug-ins and Android SDK
https://dl-ssl.google.com/android/eclipse/
Android Studio
Android Uygulamsı Build İşlem Süreci
Ornek1.java
Android Uygulama Java Kodu
javac ( Java Compiler)
Ornek1.class
dx (Dalvik Compiler)
Ornek1.dex
Kaynak dosyalar
Ornek1.apk
GoogleAppStore
DVM
Dalvik Virtual Machine
ANDROID İŞLETİM SİSTEMİ
Android Uygulaması
Android Uygulaması Kaynakları
Android Uygulaması




Java Kodu
AndroidManifast.xml
-Projenin ayarlarının yapıldığı dosya
src/java/...
- Java class kaynak dosyaları
res/... ( kaynak dosyalar (xml) )
-dreawable (resimler)
-layout/
(GUI dosyaları)
-menu/
(menu dosyası)
-values/
(sabit değerler ve dizi
dosyası)
-strings
(değişkenler dosyası)
-styles
(görünüm stilleri dosyası)
Gradle
-build/compile yönetim sistemi
-build.gradle (ana build ayarları dosyası)











XML dosya
Diğer
XML dosyalar: Tasarım ve diğer
alfasayısal verilerin bılunduğu xml tabanlı
kaynaklar
AndroidManifest.xml
Active_main.xml,
menu.xml,
values.xml,
color.xml
styles.xml
dimension.xml
Resim Kaynak dosyaları: png, jpeg, gif ve
nine-pitch(.9.png)
Diğer Kaynaklar (raw): video, ses, pdf, txt
vb.
SQLLite (dtabase)
Android Sanal Makinesi (Emulator)
Emülatörler Android programını gerçek cihazda çalşıyormuş gibi, sanal cihazlar
üzerinde denemek için gerekli programlardır.
Android Studio ile birlikte Android Virtual Device (AVD) emülatörü gelmektedir.
Cok kullanılan bazı Emülatörler
1-Android Virtual Device (AVD)
2-GenyMotion (Download GenyMotion)
3-BluStacks (Download Bluestacks)
4-You wave (Download You Wave)
5-Windroy
6-AndyRoid
7-Droid4X
8-Xamarin
9-DuOS-M
10- Web tabanlı emulatör (https://www.manymo.com/emulators)
…
Emülatör Hızlandırma:http://www.javacodegeeks.com/2013/12/android-boost-up-the-android-emulator-speed-up-to-400-on-intel-based-architecture.html
Android Uygulamsı Test Araçları
Kaynak(03/03/2015):/https://software.intel.com/en-us/android/articles/services-to-test-your-android-apps-on-intel-devices
Services to Test Your Android Apps on Intel Devices, Joshua A. Bancroft on May 22, 2014
Download