際際滷

際際滷Share a Scribd company logo
Il cellulare 2.0 diventa pi湛 personale Ing. Antonio Tringali   < [email_address] > 29/03/2008
Io, android Cosa 竪 Android? Il 5/11/2007 Google annuncia Android E' un application environment per cellulari evoluti ( smartphone ) Basato su kernel Linux 2.6 (HAL) Varie librerie a corredo con licenza soprattutto BSD e Apache Tutti gli sviluppi originali di Android saranno rilasciati con licenza Apache 2.0 Prima versione non beta nel Q3 2008
Io, android Contestualmente annunciata la OHA Rivolta alla commercializzazione di prodotti/servizi Android-based
Io, android La mente di Android Andy Rubin : tra i creatori del SW alla base del Sidekick/Hiptop Ha lavorato per Apple e General Magic Ha fondato Artemis Research    WebTV Ha fondato Danger, Inc. nel 2000 Dirigenti di Apple e Philips nel consiglio 2004: Brin e Page lo prendono in Google Ora  Director of Mobile Platforms  L'11/02/2008 Microsoft compra Danger
Io, android Una strategia convergente Apple iPhone: il 27% del mercato USA in  6 mesi ! Eric Schmidt, Google CEO, in consiglio di amm. Apple Nokia, Palm e RIM: i big dell'HW cellulare I concorrenti erano principalmente Microsoft, Symbian e Access (Linux) Ma Linux occupa una nicchia di mercato
Io, android + Guadagno = - Costi + Servizi L'HW cellulare 竪 ormai  commodity Incidono i costi di licenza SW: ad esempio, Symbian e Windows Mobile Il mercato della telefonia 竪 redditizio: oltre il 30% di guadagno rispetto a un 20% di costi di marketing Obiettivo: ricreare il mercato dei PC anni '90 in ambito cellulare Subsidizing  HW per accesso a Internet
Io, android Cosa 竪 stato rilasciato? Il 12/11/2007 竪 stato rilasciato un SDK per allenarsi a produrre applicazioni Un plug-in Eclipse semplifica lo sviluppo m3-rc22a (14/11/2007) m5-rc15 (03/03/2008)
Io, android Requisiti per l'SDK Rilasciato in versioni per: Windows XP o Vista Mac OS X >= 10.4.8 (Intel) Linux Ubuntu Plug-in Eclipse 3.2 o 3.3 Java Development Kit 5 o 6 Apache ANT versione >= 1.6.5 (Linux) o 1.7.0 (Windows e Mac OS X)
Io, android Android senza filtro aapt : crea/aggiorna  .zip ,  .jar ,  .apk activityCreator.py : crea un progetto dx :  .class / .jar   ->   .dex  per Dalvik aidl : genera codice interfaccia IPC ddms : debug processi emulatore traceview ,  dmtracedump : visual. grafica log mksdcard : immagini FAT32 per SD card sqlite3 : SQLite per manipolare i database Eclipse plug-in versione  0.4.0
Io, android Emulazione, che passione! ADB : daemon che si interfaccia con un server  adbd  dentro il device o emulatore L'emulatore dispone le porte TCP/IP: 5554 per console, 5555 per protocollo ADB Ogni nuova istanza di emulatore alloca la coppia di porte TCP/IP successiva Eclipse + Android plug-in ADB adbd debuggerd Android Debug Bridge Emulatore
Io, android Android on steroids (1) Processore da 200MHz, 32MB di RAM e 32MB di flash; vari dispositivi di I/O Set di istruzioni supportati: ARMv5TEJ, Thumb e Java (Jazelle)
Io, android Android on steroids (2) Vediamo in dettaglio l'HW emulato:
Io, android Android on steroids (3) Confronto con un kernel 2.6.23  vanilla : arch/arm/mach-goldfish : supporto per QEMU fs/yaffs2 : molto veloce, solo per flash NAND drivers/android : debug, gestione energia drivers/misc/lowmemorykiller : basta la parola! drivers/binder : per IPC, pi湛 sofisticato di COM OpenBinder usa  ioctl()  su  /dev/binder Dianne Hackborn  ora lavora per Google, dopo le esperienze di Be e PalmSource
Io, android Android: hardware vero La star del CES 2008... ...ma anche la gioia di vari sviluppatori Atmark-Techno Armadillo-500 (Freescale i.MX31L) Prototipo NEC
Io, android I processi in esecuzione (1) Poco  diverso da un normale Linux
Io, android I processi in esecuzione (2) runtime : dispatcher degli URI app_process : lanciatore applicazioni; in particolare lancia  zygote system_server : controllore dei servizi, simile a  svchost.exe init system_server runtime app_process zygote zygote com.google.android.home com.google.process.content com.google.android.phone Istanzia i servizi AudioFlinger SurfaceFlinger USB activity activity.providers activity.receivers activity.services alarm battery checkin content hardware isms location meminfo notification org.bluez.bluetooth org.bluez.bluetooth_service package phone power search simphonebook statusbar volume window
Io, android I processi in esecuzione (3) La VM  Java-like  condivide il bytecode:
Io, android Architettura di sistema
Io, android Cosa 竪 Dalvik? (1) Un villaggio dell'Islanda ( Dan Bornstein ) Il modo  preferito  per sviluppare le applicazioni Android 竪 tramite Java JRE ritagliato da Java SE (Harmony Classlib) + package con licenza Apache  Google non afferma che Dalvik sia una  Java  VM, aggira elegantemente la licenza Dalvik 竪 solo interprete del bytecode Pi湛 efficiente di Sun JVM solo interprete
Io, android Cosa 竪 Dalvik? (2) Il risultato della compilazione non 竪 bytecode in standard JVM ( .dex ) Formato ottimizzato per la condivisione Una istanza di Dalvik VM per processo Basata su registri anzich辿 su stack?! Stringhe estratte da libdvm.so
Io, android Cosa 竪 Dalvik? (3) dalvikvm/libdvm.so  compilate per  Thumb! Per嘆 nessuna traccia di istruzioni Jazelle E' possibile scrivere applicazioni native, ma non sarebbero  sicure Demo di Quake www.youtube.com/AndroidDevelopers Un cellulare 竪 un computer!
Io, android Activity e riposo Le Activity possono essere passivate Fonte: www.anddev.org    Fonte: www.youtube.com/AndroidDevelopers
Io, android I package Java disponibili
Io, android Androidologia Activity : singola schermata d'applicazione Intent : per spostarsi fra le schermate; i dati sono espressi come URI IntentReceiver : listener Intent, GUI opzionale Service : in background, senza GUI Content Provider : consente di condividere dati con altre applicazioni AndroidManifest.xml : dichiara i componenti di un'applicazione e i loro prerequisiti
Io, android Il modello degli oggetti Di solito, un'applicazione 竪 una Activity Capostipite di tutti gli oggetti grafici della GUI contents://contacts/1 ... Hanno una GUI Nessuna GUI
Io, android Configurazione applicazioni In DB SQLite, molto Google- oriented ;-) Le config. di lancio in file XML Il resto sono file di config. Linux
Io, android Anatomia di un'applicazione (1) Layout delle dir
Io, android Anatomia di un'applicazione (2) Il layout dei componenti e le label
Io, android Anatomia di un'applicazione (3) Per gestire il bottone sotto EditText:
Io, android Anatomia di un'applicazione (4) E un po' di residui di lavorazione...
Io, android Anatomia di un'applicazione (5) E finalmente il risultato di tanta (!) fatica
Io, android Applicazioni presenti A corredo con l'emulatore:
Io, android ...e previste Lanciando manualmente /system/bin/runtime : ...e rimosso (per il momento) android.speech.recognition ! AlarmClock.apk AlarmProvider.apk Anagrams.apk ApiDemos.apk Bounce.apk Calculator.apk Calendar.apk CalendarProvider.apk Camera.apk DataSets.apk Drm.apk GDataFeedsProvider.apk GTalkDiagnostics.apk GlobalTime.apk Gmail.apk GmailProvider.apk IM.apk LocalePicker.apk Mms.apk Music.apk NotePad.apk PackageInstaller.apk Settings.apk SetupWizard.apk Snake.apk Street.apk Sync.apk SyncProvider.apk Talk.apk Term.apk ToDoList.apk Updater.apk Vending.apk VoiceDialer.apk Voicemail.apk YouTube.apk
Io, android Developers^3 Per stimolare l'estro degli sviluppatori Google ha lanciato un concorso da $10M Sono esclusi i paesi canaglia: Iran, ... ... e anche Quebec e Italia per via della burocrazia, anche se qualcuno ne dubita Nonostante gli incentivi, sviluppare per Android 竪 semplice e divertente Operativi pochi minuti dopo aver effettuato l'installazione dell'SDK
Io, android Il futuro prossimo 竪 remoto I PDA hanno mostrato il 40% di declino nelle vendite tra il 2006 e 2007 Nel 2008 si stima saranno venduti oltre  un miliardo  di nuovi cellulari Ci sono gi oltre  tre miliardi  di cellulari In molti posti del mondo l'unico telefono che conoscono 竪 in tecnologia cellulare Molti fruiranno Internet attraverso il telefono: cambio di paradigma
Io, android Ritorno al mondo nuovo La 4G di telefonia cellulare 竪 su IPv6 E' probabile che gli operatori spingano un canone fisso per servizi all-IP, con A/V Finalmente la realizzazione del sogno di  The Dawn of the Stupid Network  Nuove forme di introiti: acquisto di canzoni  on-line  o in dotazione con il telefono, giochi, servizi innovativi (?) Una  connessione sociale  pervasiva
Io, android A ovest niente di nuovo Motorola DynaTAC 8000x (Dr. Martin Cooper, 1983)
Io, android Riferimenti http://code.google.com/android/ Il sito principale di Android: download SDK, documentazione e forum http://www.youtube.com/AndroidDevelopers Video sull'architettura e le possibilit di Android ( Androidology Parti 1, 2, 3 ) http://www.dalvikvm.com Reverse-engineering del formato dei file  .dex http://www.openhandsetalliance.com Il sito ufficiale della Open Handset Alliance http://www.anddev.org Scoperte su Android e numerosi tutorial http://www.linuxdevices.com/news/NS4262102607.html Esempi di installazione di Android su vario hardware http://isen.com/papers/Dawnstupid.html  The Dawn of the Stupid Network , David S. Isenberg, ACM Networker 2.1, February/March 1998
Io, android Domande?

More Related Content

Io, Android

  • 1. Il cellulare 2.0 diventa pi湛 personale Ing. Antonio Tringali < [email_address] > 29/03/2008
  • 2. Io, android Cosa 竪 Android? Il 5/11/2007 Google annuncia Android E' un application environment per cellulari evoluti ( smartphone ) Basato su kernel Linux 2.6 (HAL) Varie librerie a corredo con licenza soprattutto BSD e Apache Tutti gli sviluppi originali di Android saranno rilasciati con licenza Apache 2.0 Prima versione non beta nel Q3 2008
  • 3. Io, android Contestualmente annunciata la OHA Rivolta alla commercializzazione di prodotti/servizi Android-based
  • 4. Io, android La mente di Android Andy Rubin : tra i creatori del SW alla base del Sidekick/Hiptop Ha lavorato per Apple e General Magic Ha fondato Artemis Research WebTV Ha fondato Danger, Inc. nel 2000 Dirigenti di Apple e Philips nel consiglio 2004: Brin e Page lo prendono in Google Ora Director of Mobile Platforms L'11/02/2008 Microsoft compra Danger
  • 5. Io, android Una strategia convergente Apple iPhone: il 27% del mercato USA in 6 mesi ! Eric Schmidt, Google CEO, in consiglio di amm. Apple Nokia, Palm e RIM: i big dell'HW cellulare I concorrenti erano principalmente Microsoft, Symbian e Access (Linux) Ma Linux occupa una nicchia di mercato
  • 6. Io, android + Guadagno = - Costi + Servizi L'HW cellulare 竪 ormai commodity Incidono i costi di licenza SW: ad esempio, Symbian e Windows Mobile Il mercato della telefonia 竪 redditizio: oltre il 30% di guadagno rispetto a un 20% di costi di marketing Obiettivo: ricreare il mercato dei PC anni '90 in ambito cellulare Subsidizing HW per accesso a Internet
  • 7. Io, android Cosa 竪 stato rilasciato? Il 12/11/2007 竪 stato rilasciato un SDK per allenarsi a produrre applicazioni Un plug-in Eclipse semplifica lo sviluppo m3-rc22a (14/11/2007) m5-rc15 (03/03/2008)
  • 8. Io, android Requisiti per l'SDK Rilasciato in versioni per: Windows XP o Vista Mac OS X >= 10.4.8 (Intel) Linux Ubuntu Plug-in Eclipse 3.2 o 3.3 Java Development Kit 5 o 6 Apache ANT versione >= 1.6.5 (Linux) o 1.7.0 (Windows e Mac OS X)
  • 9. Io, android Android senza filtro aapt : crea/aggiorna .zip , .jar , .apk activityCreator.py : crea un progetto dx : .class / .jar -> .dex per Dalvik aidl : genera codice interfaccia IPC ddms : debug processi emulatore traceview , dmtracedump : visual. grafica log mksdcard : immagini FAT32 per SD card sqlite3 : SQLite per manipolare i database Eclipse plug-in versione 0.4.0
  • 10. Io, android Emulazione, che passione! ADB : daemon che si interfaccia con un server adbd dentro il device o emulatore L'emulatore dispone le porte TCP/IP: 5554 per console, 5555 per protocollo ADB Ogni nuova istanza di emulatore alloca la coppia di porte TCP/IP successiva Eclipse + Android plug-in ADB adbd debuggerd Android Debug Bridge Emulatore
  • 11. Io, android Android on steroids (1) Processore da 200MHz, 32MB di RAM e 32MB di flash; vari dispositivi di I/O Set di istruzioni supportati: ARMv5TEJ, Thumb e Java (Jazelle)
  • 12. Io, android Android on steroids (2) Vediamo in dettaglio l'HW emulato:
  • 13. Io, android Android on steroids (3) Confronto con un kernel 2.6.23 vanilla : arch/arm/mach-goldfish : supporto per QEMU fs/yaffs2 : molto veloce, solo per flash NAND drivers/android : debug, gestione energia drivers/misc/lowmemorykiller : basta la parola! drivers/binder : per IPC, pi湛 sofisticato di COM OpenBinder usa ioctl() su /dev/binder Dianne Hackborn ora lavora per Google, dopo le esperienze di Be e PalmSource
  • 14. Io, android Android: hardware vero La star del CES 2008... ...ma anche la gioia di vari sviluppatori Atmark-Techno Armadillo-500 (Freescale i.MX31L) Prototipo NEC
  • 15. Io, android I processi in esecuzione (1) Poco diverso da un normale Linux
  • 16. Io, android I processi in esecuzione (2) runtime : dispatcher degli URI app_process : lanciatore applicazioni; in particolare lancia zygote system_server : controllore dei servizi, simile a svchost.exe init system_server runtime app_process zygote zygote com.google.android.home com.google.process.content com.google.android.phone Istanzia i servizi AudioFlinger SurfaceFlinger USB activity activity.providers activity.receivers activity.services alarm battery checkin content hardware isms location meminfo notification org.bluez.bluetooth org.bluez.bluetooth_service package phone power search simphonebook statusbar volume window
  • 17. Io, android I processi in esecuzione (3) La VM Java-like condivide il bytecode:
  • 19. Io, android Cosa 竪 Dalvik? (1) Un villaggio dell'Islanda ( Dan Bornstein ) Il modo preferito per sviluppare le applicazioni Android 竪 tramite Java JRE ritagliato da Java SE (Harmony Classlib) + package con licenza Apache Google non afferma che Dalvik sia una Java VM, aggira elegantemente la licenza Dalvik 竪 solo interprete del bytecode Pi湛 efficiente di Sun JVM solo interprete
  • 20. Io, android Cosa 竪 Dalvik? (2) Il risultato della compilazione non 竪 bytecode in standard JVM ( .dex ) Formato ottimizzato per la condivisione Una istanza di Dalvik VM per processo Basata su registri anzich辿 su stack?! Stringhe estratte da libdvm.so
  • 21. Io, android Cosa 竪 Dalvik? (3) dalvikvm/libdvm.so compilate per Thumb! Per嘆 nessuna traccia di istruzioni Jazelle E' possibile scrivere applicazioni native, ma non sarebbero sicure Demo di Quake www.youtube.com/AndroidDevelopers Un cellulare 竪 un computer!
  • 22. Io, android Activity e riposo Le Activity possono essere passivate Fonte: www.anddev.org Fonte: www.youtube.com/AndroidDevelopers
  • 23. Io, android I package Java disponibili
  • 24. Io, android Androidologia Activity : singola schermata d'applicazione Intent : per spostarsi fra le schermate; i dati sono espressi come URI IntentReceiver : listener Intent, GUI opzionale Service : in background, senza GUI Content Provider : consente di condividere dati con altre applicazioni AndroidManifest.xml : dichiara i componenti di un'applicazione e i loro prerequisiti
  • 25. Io, android Il modello degli oggetti Di solito, un'applicazione 竪 una Activity Capostipite di tutti gli oggetti grafici della GUI contents://contacts/1 ... Hanno una GUI Nessuna GUI
  • 26. Io, android Configurazione applicazioni In DB SQLite, molto Google- oriented ;-) Le config. di lancio in file XML Il resto sono file di config. Linux
  • 27. Io, android Anatomia di un'applicazione (1) Layout delle dir
  • 28. Io, android Anatomia di un'applicazione (2) Il layout dei componenti e le label
  • 29. Io, android Anatomia di un'applicazione (3) Per gestire il bottone sotto EditText:
  • 30. Io, android Anatomia di un'applicazione (4) E un po' di residui di lavorazione...
  • 31. Io, android Anatomia di un'applicazione (5) E finalmente il risultato di tanta (!) fatica
  • 32. Io, android Applicazioni presenti A corredo con l'emulatore:
  • 33. Io, android ...e previste Lanciando manualmente /system/bin/runtime : ...e rimosso (per il momento) android.speech.recognition ! AlarmClock.apk AlarmProvider.apk Anagrams.apk ApiDemos.apk Bounce.apk Calculator.apk Calendar.apk CalendarProvider.apk Camera.apk DataSets.apk Drm.apk GDataFeedsProvider.apk GTalkDiagnostics.apk GlobalTime.apk Gmail.apk GmailProvider.apk IM.apk LocalePicker.apk Mms.apk Music.apk NotePad.apk PackageInstaller.apk Settings.apk SetupWizard.apk Snake.apk Street.apk Sync.apk SyncProvider.apk Talk.apk Term.apk ToDoList.apk Updater.apk Vending.apk VoiceDialer.apk Voicemail.apk YouTube.apk
  • 34. Io, android Developers^3 Per stimolare l'estro degli sviluppatori Google ha lanciato un concorso da $10M Sono esclusi i paesi canaglia: Iran, ... ... e anche Quebec e Italia per via della burocrazia, anche se qualcuno ne dubita Nonostante gli incentivi, sviluppare per Android 竪 semplice e divertente Operativi pochi minuti dopo aver effettuato l'installazione dell'SDK
  • 35. Io, android Il futuro prossimo 竪 remoto I PDA hanno mostrato il 40% di declino nelle vendite tra il 2006 e 2007 Nel 2008 si stima saranno venduti oltre un miliardo di nuovi cellulari Ci sono gi oltre tre miliardi di cellulari In molti posti del mondo l'unico telefono che conoscono 竪 in tecnologia cellulare Molti fruiranno Internet attraverso il telefono: cambio di paradigma
  • 36. Io, android Ritorno al mondo nuovo La 4G di telefonia cellulare 竪 su IPv6 E' probabile che gli operatori spingano un canone fisso per servizi all-IP, con A/V Finalmente la realizzazione del sogno di The Dawn of the Stupid Network Nuove forme di introiti: acquisto di canzoni on-line o in dotazione con il telefono, giochi, servizi innovativi (?) Una connessione sociale pervasiva
  • 37. Io, android A ovest niente di nuovo Motorola DynaTAC 8000x (Dr. Martin Cooper, 1983)
  • 38. Io, android Riferimenti http://code.google.com/android/ Il sito principale di Android: download SDK, documentazione e forum http://www.youtube.com/AndroidDevelopers Video sull'architettura e le possibilit di Android ( Androidology Parti 1, 2, 3 ) http://www.dalvikvm.com Reverse-engineering del formato dei file .dex http://www.openhandsetalliance.com Il sito ufficiale della Open Handset Alliance http://www.anddev.org Scoperte su Android e numerosi tutorial http://www.linuxdevices.com/news/NS4262102607.html Esempi di installazione di Android su vario hardware http://isen.com/papers/Dawnstupid.html The Dawn of the Stupid Network , David S. Isenberg, ACM Networker 2.1, February/March 1998