• Sonuç bulunamadı

Android Programlama BAHAR

N/A
N/A
Protected

Academic year: 2022

Share "Android Programlama BAHAR"

Copied!
29
0
0

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

Tam metin

(1)

Android Programlama

2015-2016 BAHAR

MAKU-TBMYO 2016

(2)

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ı

(3)

Mobil Telefon Anakartı

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

(4)

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

Bir Mobil Cihazdaki Bazı Sensörler

(5)

Kaynak: http://smartphoneworld.me/hello-world-2/22/02/2016

Bir Mobil Cihazdaki Bazı Sensörler

(Hall)

(6)

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

(7)

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

(8)

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

(9)

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.

(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.

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

DVM-1 DVM-2 DVM-N

(11)

3

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

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ü 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/

(17)

6.0 22,23 Marshmallon

Android Sürümleri

Program yazarken API level önemli An itibarı ile piyasadaki telefonlarda en çok kullanılan sürüm.

(18)

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

(19)

15Şubat 2016 http://www.idc.com/prodserv/smartphone-os-market-share.jsp

(20)

15Şubat 2016 http://www.idc.com/prodserv/smartphone-os-market-share.jsp

(21)

Android Geliştirme Araçları

SEÇENEK-I

1- Java Developer Kit (JDK)

2- Android Studio (Android Virtual Device-AVD emulatör ile birlikte)

SEÇENEK-II

1- Java Developer Kit (JDK)

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

4- Emulatör (AVD, GenyMotion)

(22)

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

(23)

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-ee- developers/marsr

3-Install ADT Plug-ins and Android SDK https://dl-ssl.google.com/android/eclipse/

(24)

Android Studio

(25)

Android Uygulamsı Build İşlem Süreci

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

Android Uygulama Java Kodu

(26)

Android Uygulaması

(27)

Android Uygulaması Kaynakları

Android Uygulaması Java Kodu 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)

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

(28)

Android Sanal Makinesi (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ı 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

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.

(29)

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. Bancrofton May 22, 2014

Referanslar

Benzer Belgeler

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

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

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

• onDestroy() metodu: servisin stopService() fonksiyonu ile durdurulması veya herhangi bir bağlantısının kalmaması durumunda sistem servisi ortadan kaldırmadan hemen

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