ANDROID AÇIK AKSESUAR API & AKSESUAR GELİŞTİRME Dr. Fatma Cemile Serçe
İçerik Android ve Uygulama Geliştirme Android Açık Aksesuar Aksesuar Geliştirme Kiti Aksesuar Geliştirme Ortamı Gereksinimleri Örnek Uygulamalar 2
Android Tablet ve akıllı telefonlara yönelik işletim sistemi Java tabanlı Linux 2.6 kernel Google, Open Handset Alliance (OHA) Android Inc., in 2005. Kasım 2007 Apache License, a free software license 3
OHA Mobile Operators Handset Manufacturers Semiconductor Companies Software Companies Commercialization Companies 4
Android Versiyonları 2.0 2.1 Eclair 2.2 Froyo 2.3 Gingerbread 3.0 3.1 3.2 Honeycomb 4.0 Gingerbread + Honeycomb Ice Cream Sandwich 5
Android Versiyonları Supporting dual boot 5.0 Jely Bean 6
Pazar Payı 7
Android ile Uygulama Geliştirme Android SDK Eclipse (IDE) Eclipse ADT Plugin 8
Örnek 9
Google I/O, 2011 (Innovation in the Open) Android Açık Aksesuar (Open Accessory) Android cihaz ile USB aksesuar arasında iletişim desteği Android 3.1 Android 2.3.4 USB Cihaz: Android cihaz USB Host: USB aksesuar ADK, Google referans donanım tasarımı 10
Google I/O Labyrinth 11
ADK dan önce Android cihazında USB kullanımı: USB depolama adb USB tethering Limitasyonlar Bir çok Android cihazda USB host özelliği yok USB API yok 12
Aksesuar Modu USB host moduna ihtiyacı yok Kernel seviyesinde ayarlanıyor Her cihaz desteklemiyor Aksesuar modunu destekleyen cihazların filtrelenmesi <uses-feature android:name="android.hardware.usb.accessory" /> 13
Android Açık Aksesuar API ve ADK 14 Açık Aksesuar (Open Accessory) Android cihazlar ile USB üzerinden haberleşmeyi sağlayan standart ve API Google ADK Arduino firmware ve IDE Referens donanım tasarımı
Arduino 15 Prototip devre kartı USB ile programlanabilir Mikrodenetliyici IDE Windows, Mac, Linux Açık kaynak
Shield 16
DemoKit Android Aksesuar Devre Kartı Arduino Mega 2560 Google Shield 3 RGB LEDs 4 düğme (3 mekanik ve 1 kapasitif) 3 servo, 2 röle Joystick Işık ve ısı sensörleri 17
ADK Geliştirme Kartları 18 Arduino Mega ADK Arduino Store ATmega2560 ADK firmware ~ $ 50 Euro ~ 220 TL yada Arduino UNO + USB Host Shield ~ 120 TL
ADK Geliştirme Kartları 19 PhoneDrone DIY Drones RC UAV 4" x 1.6 ~100 $
ADK Geliştirme Kartları 20 PIC24F and PIC32 Microchip PIC tabanlı USB Mikrodenetleyici ~80$
ADK Geliştirme Kartları 21 Freeduino USB Host Board Modern Device Arduino ADK firmware 3.4" x 2.1" ~79 $
ADK Geliştirme Kartları 22 RT-ADK&RT-ADS Set RT Corp Arduino ADK firmware ~35 $
ADK Geliştirme Kartları 23 Seeeduino ADK Main Board Seed Studio Arduino ADK firmware ~80 $
ADK Geliştirme Kartları 24 IOIO (yo-yo) SparkFun Firmware yazmaya gerek yok Android cihazlara özel ~50 $ ~150 TL
Açık Aksesuar API leri Yeni API, Android 3.1 com.android.hardware.usb.* Android 3.1 (12) ve sonrası Motorola Xoom Gingerbread e uyumlu kütüphane com.android.future.usb.* Gingerbread ve sonrası Nexus One and Nexus S, 2.3.4 güncellemesi ile 25
Aksesuar Geliştirme Protokol Geliştirme Kartı Aksesuar Arduino (http://arduino.cc) ADK Android Firmware kodlama ve yüklemek için IDE ve kütüphaneler ADK kardı için firmware ve donanım tasarım dosyaları Eclipse + ADT Android SDK 26 Java
Aksesuar a Firmware Yükleme ADK kartını bilgisayara bağlayın Arduino IDE ortamını başlatın ADK kart tipini tanıtın Tools > Board > Arduino Mega 2560 Uygun USB Portu seçin Firmware kodunu (sketch) açın/hazırlayın Firmware kodunu derleyin Sketch > Verify/Compile Karta yükleyin File > Upload to I/O Board 27
Android Aksesuar Protokolü Firmware demokit.pde sketch, DemoKit uygulaması accessory/arduino_libs/androidaccessor y/androidaccessory.h and accessory/arduino_libs/androidaccessor y/androidaccessory.cpp files. C/C++ 28
Arduino Programlama Ortamı 29
Kart Türü 30
Seri Port 31
Android Uygulaması Google API Level 10, Android 2.3.4 ya da Google API Level 12, Android 3.1 Android Project Android cihaza yükleme ADK kartı USB ile Android cihaza bağlama 32
Aksesuar ile Bağlantı Uygulama meta-data manifest dosyasında uyumlu aksesuarlar tanımlar USB_ACCESSORY_ATTACHED niyeti oluştuğunda uygulama başlatılır Aksesuar çıkarıldığında, USB_ACCESSORY_DETACHED niyeti gönderilir 33
USBManager sınıfı Aksesuarları uyumlu bulduğu uygulamalarla eşleştirir getaccessorylist() bağlı olan aksesuarların listesini döndürür (şu an sadece bir tane olabilir) openaccessory() ParcelFileDescriptor objesi döndürür haspermission() aksesuarın erişilebilir olup olmadığını belirtir requestpermission() kullanıcıdan izin istemek amacı ile kullanılır 34
UsbAccessory sınıfı İlk haberleşme sırasında USB aksesuara ait bilgiler içerir Üretici firma adı Model adı Tanımı Versiyonu URL Seri Numarası (opsiyonel) 35
ADK Kartının Takibi Debug: Serial.print() Serial Monitor Debug satırları 36
Örnek 37
Firmware: ornek1.pde sketch 38
Firmware: ornek1.pde 39
Firmware: ornek1.pde 40
Firmware yükleme Verify/Compile Upload to I/O Board 41
Android Project 42
43
44
45
46
47
48
res/xml/accessory_filter.xml 49
Örnek 50
51
52
53
54
Örnek 55
56
57
58
59
60