Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario...

23
Seminario Android Andrea Ciancone <[email protected]> 17 Aprile 2012

Transcript of Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario...

Page 1: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

SeminarioAndroid

Andrea Ciancone <[email protected]> 17 Aprile 2012

Page 2: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Android

●OS per Mobile device

●Linux Kernel

●Dalvik virtual machine

●Supporto reti mobili e sensori hw

●Piattaforma di sviluppo aperta

Page 3: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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

Page 4: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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%

Page 5: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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 %

Page 6: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Software App

● Distribuite come singolo android package (file apk)

● Installazione libera via package

450.000 applicazioni presenti nel market

Page 7: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Apps

● Isolamento delle app tramite sandbox● Utente App● Privilegi filesystem● Virtual machine

● Permessi espliciti alle risorse● Dati condivisi● Rete● Sensori

Page 8: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Struttura App

● Struttura a componenti

● Activity● Service● Component Provider● Broadcast Receiver

● Risorse

● Layout● Contenuti multimediali● I18N

Page 9: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Struttura Progetto● src

● bin

● resource

● drawable● layout● values

● gen

● AndroidManifest.xml

● project.properties

Page 10: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Activity

● Singola schermata utente

● Riutilizzo di componenti

● Interazione tra Activity di diverse App

● Navigazione tramite stack delle chiamate● Dichiarazione delle capability

Page 11: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Activity Lifecycle

Page 12: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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"

Page 13: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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() { }

}

Page 14: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Service

● Started vs Bound

● Usare i thread se il servizio è time consuming

● Specifica il modello di funzionamento

Page 15: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Lifecycle Bound Service

Page 16: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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>

Page 17: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Resouces● resource

● drawable-hdpi ● drawable-mdpi ● drawable-ldpi● Layout

– rubrica.xml – contatto.xml– storico.xml

● values-it

– strings.xml● values-us

– Strings.xml

Page 18: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Layout

● Xml file

● Tool grafico

Page 19: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

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

Page 20: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Storage

● Shared preferences

● External Storage

● Internal Storage

● Databases

`

Page 21: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

Android SDK

● Open source suite

● Virtual device manager

● ADT per eclipse

● Android Debugging Bridge tool

Page 23: Seminario Android - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/android.pdfSeminario Android Andrea Ciancone  17 Aprile 2012.

ADT plugin for Eclipse

● Installazione plugin via Eclipse

https://dl-ssl.google.com/android/eclipse/