Basi Android 1 Android Cosa è Android? Android è un insieme di strumen8 e librerie per sviluppare applicazioni mobili è più di un SO Android si definisce open Con8ene tecnologie open source Linux Il codice di Android è open Licenza Open Source Apache 2.0 Chi vuole usare Android non deve pagare 2 1
Componen/ del SO hop://developer.android.com 3 Virtual Machine Android non usa una Java Virtual Machine Cioè in Android non viene eseguito bytecode Android usa la Dalvik Virtual Machine Non una Java Virtual Machine La DVM esegue bytecode compilato (.dex) Si compilano i.class I.dex sono molto più compaw Usa Just in Time Compiler Frammen8 di codice na8vo Orientata ai registri Visione più direoa della nella vm 4 2
Tool Android So[ware development KIT Tools per sviluppo applicazioni java Android Studio IDE basa8 su IntelliJ Android Development Tools plug- in di Eclipse non più supportato Na8ve Development Kit Sviluppo di applicazioni o parte di esse in C++ 5 Stru:ura SDK Tools Strumen8 per la ges8one dei progew android, emulator, etc. Plaborms Versioni di android 4.x, 5.x Cellulari e Tablet 3.2, 3.1, 3.0 Tablet 2.3.3, 2.2, 2.1 Cellulari Ad ogni versione corrisponde un livello di API Extra librerie google ed altro 6 3
Applicazioni Android Sono scrioe in linguaggio java Sono contenute in un Android package file.apk Vivono in un ambiente isolato rispeoo ad altre app Sono integrate nel sistema opera8vo Consistono in componen8, risorse, file descrioore Componen8 Ac8vity Service Content Provider Broadcast Receiver 7 Ac/vity Rappresenta una schermata dell applicazione In generale una applicazione con8ene varie Ac8vity Quando avviamo una nuova awvità la corrente è posta in background ho uno stack di ac8vity Le GUI si realizzano in XML o java Si controlla la vita dell ac8vity mediante callback oncreate, onpause 8 4
Service Servono ad eseguire operazioni in background Non hanno interfaccia grafica Servono ad operazioni come suonare la musica, ges8re la rete, leggere la posizione, etc. Sono esegui8 indipendentemente da chi li ha crea8 Possono avere una interfaccia verso altri componen8 9 Content Provider Sono usa8 per memorizzare e leggere da8 rendendoli accessibili alle applicazioni Sono l unico modo di condividere da8 fra applicazioni Espongono una URI pubblica per individuare univocamente i propri da8 I da8 sono espos8 in forma di una singola tabella di database ci sono CP predefini8 per contaw, media, etc. 10 5
Broadcast Receiver Sono componen8 che rispondono ad annunci invia8 a tuw i componen8 dal sistema Ex. lo schermo si spegne, la baoeria e scarica, c è una chiamata in arrivo, etc. Anche le app possono inviare annunci broadcast 11 Manifest file Ogni applicazione con8ene il file AndroidManifest.xml Presenta l applicazione al sistema opera8vo Descrive i componen8 dell applicazione Dichiara i permessi necessari all applicazione Dichiara le API minime necessarie all applicazione 12 6
Proge:o Android Creare un progeoo Android Se vogliamo creare un app Android non basta scrivere un file: Devo usare i tool a disposizione Due 8pi di progeoo dipende dal sistema di compilazione Compilatori ant quello legato ad ADT gradle quello usato in Android Studio 13 Creazione su command line > android create project --package ppl.pjdm.helloworld --activity HelloWorld --target 1 --path./helloworld g v 1.1.0 Package: Iden8fica8vo unico della nostra app Ac8vity Schermata android lanciata dall'icona Target Id delle plaborm scaricate android list targets ProgeOo gradle opzione g specifica il progeoo gradle opzione v specifica la versione del plugin android per gradle 14 7
Stru:ura proge:o HelloWorld gradle tool di compilazione src tuoo il codice e le risorse build.gradle - file per la compilazione altri file per la compilazione 15 Compilare un proge:o gradle Android per compilare usa gradle Sistema di compilazione/installazione automa8co Il comado da dare è >./gradlew assembledebug Per vedere tuw comandi./gradlew tasks 16 8
Compilare un proge:o con ant Android per compilare usa il tool ant Sistema di compilazione/installazione automa8co Va scaricato a parte Il comado da dare è > ant debug Creo un applica8vo di test Alterna8ve: release, install, reinstall, uninstall, help 17 Android Virtual Devices emulator Applicazione che emula un device Android completo Linux per ARM, librerie na8ve, DVM, packages, applicazioni Usa QEMU per emulare il device fisico Vuole come parametro un AVD Android Virtual Device Sono le caraoeris8che del device emulato Es. Hardware, target, display, memoria, etc. Creare AVD > android create avd -n my_avd -t 1 Lanciare l emulatore > emulator -avd my_avd 18 9
Installare ed eseguire Vedere la lista dei device Ø adb devices Ø emulator- 5554 device Installare > adb s emulator-5554 install HelloWorld-debug.apk Eseguire 19 Android Studio Sistema di sviluppo sviluppato intorno ad IntelliJ Si conneoe ai tool di sviluppo presen8 nel sistema es. java jdk, sdk android, g++ gcc gdb, etc. Integra gradle Semplifica le operazioni faoe prima ci evita di operare a linea di comando 20 10