Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario...
Transcript of Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario...
SeminarioAndroid
Andrea Ciancone <[email protected]> 17 Aprile 2012
Android
●OS per Mobile device
●Linux Kernel
●Dalvik virtual machine
●Supporto reti mobili e sensori hw
●Piattaforma di sviluppo aperta
Storia
● Ott 2003 Fondata Android Inc.
● Ago 2005 Google acquisisce Android Inc.
● Nov 2007
● Nasce consorsio Open Handset Alliance● Rilascio della prima versione del SDK
● Ott 2008 Primo cellulare Android
● Feb 2011 Primo tablet Android
● Set 2011 Android nel 50% degli smartphone
● Dic 2011 10 milioni di applicazioni installate
Device
low medium high extra high
small 1.9% 2.5%
normal 0.7% 19.6% 64.6% 2.4%
large 0.2% 2.3%
xlarge 5.8%
Versioni
Ver. Rilascio
1.x Set 2009 1.0 %
2.1 Gen 2010 6.0 %
2.2 Mag 2010 23.1 %
2.3.x Dic 2010 63.7 %
3.x Feb 2011 3.3 %
4.0.x Nov 2011 2.9 %
Software App
● Distribuite come singolo android package (file apk)
● Installazione libera via package
●
450.000 applicazioni presenti nel market
Apps
● Isolamento delle app tramite sandbox● Utente App● Privilegi filesystem● Virtual machine
● Permessi espliciti alle risorse● Dati condivisi● Rete● Sensori
Struttura App
● Struttura a componenti
● Activity● Service● Component Provider● Broadcast Receiver
● Risorse
● Layout● Contenuti multimediali● I18N
Struttura Progetto● src
● bin
● resource
● drawable● layout● values
● gen
● AndroidManifest.xml
● project.properties
Activity
● Singola schermata utente
● Riutilizzo di componenti
● Interazione tra Activity di diverse App
● Navigazione tramite stack delle chiamate● Dichiarazione delle capability
Activity Lifecycle
Real lifecycle
● Activity dopo onPause può essere terminato
fino alla versione Honeycomb (3.0)
● Cambio di orientamento monitor può creare un nuovo Activity
android:configChanges="keyboardHidden|orientation"
Activity objectpublic class LifecycleActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
protected void onStart() { }
protected void onRestart() { }
protected void onResume() { }
protected void onPause() { }
protected void onStop() { }
protected void onDestroy() { }
}
Service
● Started vs Bound
● Usare i thread se il servizio è time consuming
● Specifica il modello di funzionamento
Lifecycle Bound Service
Manifest.xml
Indica:● componenti Software e hardware usati● Piattaforma di rifermiento
<?xml version="1.0" encoding="utf-8"?><manifest ... > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/app_icon.png" ... > <activity android:name=".ExampleActivity" ... > </activity> ... </application> <uses-permission android:name="android.permission.INTERNET"/></manifest>
Resouces● resource
● drawable-hdpi ● drawable-mdpi ● drawable-ldpi● Layout
– rubrica.xml – contatto.xml– storico.xml
● values-it
– strings.xml● values-us
– Strings.xml
Layout events
<Button android:text=”Modify” android:id=”@+id/modify”
android:onClick=”onModifyEvents”></Button>
((TextView) dialog.findViewById(R.id.modify))
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) { }
});
● Events via xml file
● Listener
Storage
● Shared preferences
● External Storage
● Internal Storage
● Databases
`
Android SDK
● Open source suite
● Virtual device manager
● ADT per eclipse
● Android Debugging Bridge tool
Virtual device Manager
ADT plugin for Eclipse
● Installazione plugin via Eclipse
https://dl-ssl.google.com/android/eclipse/