• Sonuç bulunamadı

Android Programlama BAHAR

N/A
N/A
Protected

Academic year: 2022

Share "Android Programlama BAHAR"

Copied!
27
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Android Programlama

2014-2015 BAHAR

MAKU-TBMYO 2015

(2)

AKTS ders kataloğuna göre

DEĞERLENDĠRME

(3)

Konu BaĢlıkları

Genel Kavramlar

Android GeliĢtirme Araçları

Android Kaynakları

Activity

Intent

Layout

Frame

Servisler

Dosyalar

SqlLite

Sensörler

Google MAP API

(4)

Mobil Telefon Anakartı

Kaynak: http://www.cs.dartmouth.edu/~campbell/cs65/cs65-2014.html (22/02/15)

(5)

Kaynak: http://www.cs.dartmouth.edu/~campbell/cs65/cs65-2014.html 22/02/15

Bir Mobil Cihazdaki Sensörler

(6)

Sensörler

1. Barometre: Hava basıncını ölçerek dağa tırmanırken kaç kalori yakıldığını hatasız olarak hesaplar.

2. Hall sensörü: Katlanır kapağın durumunu algılar. Böylece kapak açılınca ekran ıĢığı da açılır, kapandığında ise ekran ıĢığı otomatik olarak kapanır.

3. RGB ortam ışığı sensörü: Ekranı otomatik olarak aydınlatarak veya karartarak göz yorgunluğunu azaltır.

4. El Hareketi sensörü: Kullanıcılar telefonlarına dokunmadan, sadece ellerini hareket ettirerek telefonlarıyla etkileĢimde bulunabilirler.

5. Yakınlık sensörü: Telefon görüĢmesi sırasında ekranı kapatır.

6. Jiroskop: Kullanıcılar ekranı yukarı ve aĢağı eğerek kolayca metin okuyabilirler.

7. Hareket Sensörü: Adımölçerle benzer iĢlevleri vardır ve zinde kalmak konusunda yardımcı olacak özellikler sunar.

8. Jeomanyetik sensör: Ana yönleri hatasız saptayabilmek üzere haritalardan faydalanır.

(7)

Bazı Mobil Cihaz Uygulama GeliĢtirme Araçları

Android Studio (Java)

Eclipse IDE (Java)

Xcode ( Objective-C, Swift)

Visual Studio C#.NET

============================

VindDev Mobile

Telerik (Online - HTML5 ile)

MIT App Inventor (On-line)

=========OYUN==============

Corona SDK

Unity

(8)

Android Nedir?

Andrid Google Firması tarafından 2005 yılında geliĢtirilmeye baĢlanmıĢ

Telefon

Tablet

Saat

TV

gibi cihazları programlanması için

Java Programlama Dilini kullanan ve

Linux Tabanlı (kernel) tabanlı bir

İŞLETİM SİSTEMİDİR

(9)

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

Arkasında Google gibi bir firma olması

(10)

Android Uygulamaları (SANDBOX)

Kendine ait bir Prosess Kendine ait ĠĢletim sistemi kullanıcısı

Kendine ait bir DVM Hafızadan ayrılmĢ bellek(Heap)

Kendine ait kanaklar

Android Uygulama-1

. . .

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ı uyggulamalar aynı üretici koduyla yüklenir.

Kendine ait bir Prosess Kendine ait ĠĢletim sistemi kullanıcısı

Kendine ait bir DVM Hafızadan ayrılmĢ bellek(Heap)

Kendine ait kanaklar

Android Uygulama-N

Kendine ait bir Prosess Kendine ait ĠĢletim sistemi kullanıcısı

Kendine ait bir DVM Hafızadan ayrılmĢ bellek(Heap)

Kendine ait kanaklar

Android Uygulama-2

(11)

Android Mimarisi

http://developer.android.com/images/system-architecture.jpg

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

1

2

3

4

(12)

1-Linux Çekirdeği(Kernel)

(13)

2-Android Yerel Linux Kütüphanesi (Android Linux Library)

(14)

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

(15)

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

(16)

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ü JITyani ç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/15): http://ibrahimbalic.com/tag/android-art/

(17)

Android Sürümleri

Program yazarkan API level önemli An itibarı ile en piyasadaki en çok sürüm.

(18)

Android Versiyonlarına göre Piyasada Kullanım Oranları

(19)

22 ġubat 2015 httphttp://www.idc.com/prodserv/smartphone-os-market-share.jsp

(20)

Android GeliĢtirme Araçları

SEÇENEK-I

1- Java Developer Kit (JDK)

2- Android Studio (Android Virtual Device birlikte)

SEÇENEK-II

1- Java Developer Kit (JDK)

2- Eclipse ( Java Software Developer Kit) 3- Android Developer Toolkit

4- Emülatör (AVD, GenyMotion)

(21)

Android Studio

Google Android Studio 1.1, IntelliJ IDEA editor temeline dayanıyor.

(22)

Android Studio 1.1 Kurulumu

1- Download Android Studio

http://developer.android.com/sdk/index.html 2-Install ADT Plug-ins and Android SDK https://dl-ssl.google.com/android/eclipse/

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

Proxy ayarları: http://developer.android.com/tools/studio/index.html

(23)

Android Uygulama Build ĠĢlem Süreci

Android Uygulaması Java Kodu Ornek1.java

Ornek1.class

Ornek1.dex

ANDROID ĠġLETĠM SĠSTEMĠ DVM

Dalvik Virtual Machine

javac ( Java Compiler)

dx (Dalvik Compiler)

Ornek1.apk

GoogleAppStore Kaynak dosyalar

(24)

Android Uygulaması Kaynakları

Android Uygulaması Java Kodu XML dosya Diğer

XML

: 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)

AndroidManifast.xml

-Projenin ayarlamalarının yapıldığı dosya

src/java/...

- Java class kaynak dosyaları

res/... ( kaynak dosyalar (xml) ) -dreawable / (resimler)

-layout/ (GUI tanımları) -menu/ (menu değerleri) -values/ (sabit değerler ve

diziler)

-strings ( değiĢkenler) -styles (görünüm stilleri)

Gradle

-build/compile yönetim sistemi

-build.gradle (ana build ayarları dosyası)

(25)

Android Uygulaması

(26)

Android Emulator

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ı emülatö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

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.

(27)

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

AppThwack

Applause Testdroid

appthwack.com.

applause.com. www.testdroid.com

Services to Test Your Android Apps on Intel Devices, Joshua A. Bancroft on May 22, 2014

Referanslar

Benzer Belgeler

Web siteleri, uygulamaları üzerinden vermiş oldukları hizmetlerin tamamına yakınını mobil uygulamalar ile mobil platformlar üzerinden de vermek için uğraş veren irili

• Farklı konfigürasyonlar için oluşturulacak kaynakları kaydetmek için res dizini

Bu uygulama sadece Karabük Üniversitesi öğrencileri veya personeline yönelik olarak geliştirilmemiş, Karabük Üniversitesi hakkında bilgi sahibi olmak isteyen ya

Cihazınızı kaybederseniz veya birisi onu çalıp SIM kartınızı yeni (güvenilir olmayan) bir kartla değiştirirse cihaz ESET Endpoint Security tarafından otomatik olarak kilitlenir

Android için yeni nesil ESET Endpoint Security ürünü (EESA), tüm ESET güvenlik çözümlerinin uzaktan yönetimine olanak sağlayan yeni yönetim konsolu ESET Remote Administrator

Meteoroloji Genel Müdürlüğü, meteorolojik gözlemler ve uydu-radar ürünleri ile sayısal hava tahmin modellerini kullanarak; kara, hava ve deniz ile ilgili

Bu programların kullanımının sınırlandırılması hakkında bilgi için lütfen işitme cihazlarınızın Kullanım kılavuzu'nu okuyun veya işitme uzmanınızla irtibata

Var olan emri kapatmak için emrin üzerine bir kez tıkladıktan sonra açılan bilgilerin üzerine basılı tuttuğunuzda pozisyonu kapat, yeni emir, emri düzenle ve