Prérequis au développement google android

111
1 / 111 Prérequis dev. Android [email protected]

description

Découvrez quelques points clef du middleware google/Android.

Transcript of Prérequis au développement google android

Page 1: Prérequis au développement google android

1 / 111

Prérequis dev. [email protected]

Page 2: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

ARCHITECTURE

Page 3: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 4: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

4

PRESENTATION DU MIDDLEWARE

Page 5: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 6: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

VM DALVIK

Page 7: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

libc = bionic (différente de la glibc ou eglibc de GNU/linux))

Page 8: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

8

RUNTIME D'UNE APPLICATION

Page 9: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

LE FORMAT JAR (.class) vs dex

Format dex :

- Structure différente ;

- Opcodes différents ;

- régie autour de registres et non une stack ;

- Plusieurs JVM sur un device

- Un seul fichier .dex contre plusieurs .class en java

Page 10: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

10

LE FORMAT JAR (.class) vs APK (dex)

Page 11: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

11

PROCESSUS DE GENERATION

Un jar est un conteneur ou archive de fichiers .class ou autre qui peut être assemblé grâce à l'outil JAR :

$ jar cfm DVMTest.jar manifest.txt ./*.class && dx --dex --output="./classes.dex" --verbose "./maclass.jar"

$ javac moncode.java && dx --dex --output=moncode.dex moncode

Processus de générationsous Android →

Page 12: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 13: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 14: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

● Structure d'une application Android :

STRUCTURE D'UNE APPLICATION

Page 15: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

DEV ANDROID

Page 16: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

VM Dalvik vs Java ME

● Processus de génération Android vs Java standard :

Page 17: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

17

HISTORIQUE

Android un middleware déjà éproupé par le temps au même titre Que celui d'ios (cocoa) issue de nextstep...

Page 18: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

18

HISTORIQUE D'ANDROID

Les différentes release officielle du middleware Android

Chaque version est associé à une mascotte à l'effigie d'un gâteau ou recette

Page 19: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

HISTORIQUE DES VERSIONS

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

Page 20: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

→ Synthèse sur les versions de Release de middleware Android présente sur les devices Android

Data collected during a 7-day period ending on December 2, 2013

SYNTHESE DES VERSIONS

Page 21: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

→ Synthèse des résolutions sur les devices Android

Data collected during a 7-day period ending on December 2, 2013

SYNTHESE DES RESOLUTIONS

Page 22: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

SYNTHESE DES RESOLUTIONS

● 320dp : a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc … )

● 480dp : a tweener tablet like the Streak (480x800 mdpi)

● 600dp : a 7” tablet (600x1024 mdpi)

● 720dp : a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc … )

● xlarge screens are at least 960dp x 720dp

● large screens are at least 640dp x 480dp

● normal screens are at least 470dp x 320dp

● small screens are at least 426dp x 320dp

http://www.nextinnovation.org/doku.php?id=setting_fb

Page 23: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Page 24: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Page 25: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Page 26: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Page 27: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Page 28: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

→ Synthèse sur les version d'OpenGL sur les devices Android

Data collected during a 7-day period ending on December 2, 2013

SYNTHESES DES VERSIONS D'OPENGL

Page 29: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

STRUCTURE D'UNE APPLICATION

Code source en java

Fichier de ressources

Classes par défaut du middleware Android

Fichier décrivant les droits d'accès aux ressources Fichier de configuration du projet Fichier de configuration pour l'obfuscateur proguard

Ensemble de ressources

● Projet Android sous Eclipse :

Page 30: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

LE FICHIER MANIFEST

● Si vous regardez dans le dossier principal d'une application, vous verrez le fichier « AndroidManifest.xml » du projet. Il est possible de le visualiser depuis l'éditeur en double-cliquant dessus.

● Ce fichier définit les multiples aspects de l'application dans son ensemble. Eclipse et ADT définissent un certain nombre d'éléments dans ce fichier manifest à la création de l'application, en se basant sur les paramètres choisis lors de la création du projet. Vous pouvez ajouter d'autres éléments manuellement. Par exemple, si vous ajoutez d'autres activités à votre application.

→ Vue des catégories d'un fichier AndroidManifest.xml

Page 31: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

LE FICHIER MANIFEST ● La toute première chose que vous devez faire est de permettre à votre application d'accéder à

Internet. Si vous utilisez Eclipse comme IDE, il suffit d'ouvrir votre fichier AndroidManifest.xml, allez dans l'onglet "Autorisations", ajouter "Utilise autorisation" et sélectionnez android.permission.INTERNET de la zone de liste déroulante :

● Sinon, l'on ouvre le fichier dans le dernier onglet au format XML brut vous devez voir la déclaration suivante : <uses-permission android:name="android.permission.INTERNET"/>

● Si vous ne le faites pas, votre application reçevra l'exception « UnknownHostException » lorsque vous essayez d'accéder à un hôte distant.

Page 32: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

● Tous les éléments qui peuvent apparaître dans le fichier manifest sont listés ci-dessous par ordre alphabétique. Ce sont les seuls éléments qui peuvent être utilisé et ne peut être étendu ou personnalisé:s

<action><activity><activity-alias><application><category><data><grant-uri-permission><instrumentation><intent-filter><manifest><meta-data><permission><permission-group><permission-tree><provider><destinataire><service><supports-screens><uses-configuration><uses-feature><uses-library><uses-permission><uses-sdk>

http://developer.android.com/guide/topics/manifest/manifest-element.html

http://developer.android.com/guide/topics/data/install-location.html

LE FICHIER MANIFEST

Page 33: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

LE FICHIER MANIFEST ● Cas d'utilisations typiques entre « activités », « services », « fournisseurs de contenu ou

Providers» et les « broadcast receivers».

http://imsciences.edu.pk/serg/2010/07/android-security-a-survey-so-far-so-good/

http://faculty.cs.tamu.edu/guofei/paper/VetDroid-CCS13.pdf

Deux types de vérification de permissiondans Android →

Page 34: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Workflow de génération d'une appli.

Page 35: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

35

Workflow de génération d'une appli.

→ Workflow de génération d'une application google/Android des sources java à une APK

Page 36: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

36

SIGNATURE D'UN APK

http://developer.android.com/tools/publishing/app-signing.html

http://developer.android.com/tools/publishing/app-signing.html

http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

http://developer.android.com/distribute/googleplay/publish/preparing.html

http://developer.android.com/tools/publishing/preparing.html

https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html

Workflow de génération & signature d'une application officielle :

En mode développement, le certificat auto-signé utilisé pour signer une application en mode débug (la valeur par défaut sur Eclipse / ADT et Ant) aura une date d'expiration de 365 jours à compter de sa date de création.

Les certificats seront vérifiés à 2 moments :● Lors de l'upload de l'application sur Google/Play● Lors de l'installation depuis Google/Play

Googleplay

Page 37: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

37

ANDROID SDK vs APPLE SDK

Comparaison entre le process de développement de Google vs Apple

Page 38: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

JAVA ↔ C/C++

Page 39: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 40: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

LibHellotwo-second.so

Page 41: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 42: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 43: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 44: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

BOOT

Page 45: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

Page 46: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 47: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 48: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 49: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 50: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

CYCLE DE VIE

Page 51: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

→ Cycle de vie d'une application.

→ Une application qui hérite de la classe java sera visibleà l'écran.

Page 52: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 53: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 54: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

→ Cycle de sauvegarde d'une activité.

Page 55: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

→ Cycle de vie d'un service/daemon.

→ Un service qui hérite de la classe java ne sera pasvisible.

Page 56: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 57: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 58: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

BINDER

Page 59: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 60: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 61: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 62: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 63: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 64: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

INTENT

Page 65: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 66: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 67: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 68: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 69: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 70: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 71: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

SECURITE

Page 72: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 73: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 74: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 75: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

MEDIA AUDIO/VIDEO

Page 76: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 77: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 78: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

CAMERA

Page 79: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 80: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 81: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

ACCELEROMETRE

Page 82: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 83: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 84: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 85: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

RIL

Page 86: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 87: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 88: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 89: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 90: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 91: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

WIFI / WIFI DIRECT

Page 92: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 93: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 94: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 95: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

NFC

Page 96: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 97: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 98: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 99: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 100: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 101: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 102: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 103: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

http://www.kandroid.org/online-pdk/guide/bluetooth.html

Page 104: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 105: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 106: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 107: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 108: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 109: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 110: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

Page 111: Prérequis au développement google android

FO

RM

ATIO

N D

EB

UG

DES QUESTIONS ?DES QUESTIONS ?