présentation du système dexploitation open source android€¦ · notre crédo: l'open...

91
Présentation du système dexploitation Open Source ANDROID Commission OpenSource Telecom Valley - Jeudi 2 Juillet 2009 -

Upload: others

Post on 11-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Présentation du systèmed’exploitation Open Source

ANDROID

Commission OpenSourceTelecom Valley

- Jeudi 2 Juillet 2009 -

Page 2: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement et dernièresavancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause café

Intégration d'un provider cryptographique / module Kernel / FrameworkDalvik - retour d'expérience - Nicolas Ponsini - Trusted Logic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 3: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement et dernièresavancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause café

Intégration d'un provider cryptographique / module Kernel /Framework Dalvik - retour d'expérience - Nicolas Ponsini - TrustedLogic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 4: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Commission Open SourceTelecom Valley

Une commission créé fin 2007 pour permettre aux membres de TélécomValley d'échanger et de s'enrichir mutuellement sur les sujets etproblématiques de l'Open Source…

Un groupe pluri-disciplinaire (utilisateurs,développeurs, éditeurs,architectes, juristes, marketing, commerce...)

Un groupe dynamique, ouvert et vivant où chacun apporte sonexpérience/expertise et apprend des autres...

En résumé une vraie communauté professionnelle sur Sophia....

Page 5: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement etdernières avancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause café

Intégration d'un provider cryptographique / module Kernel /Framework Dalvik - retour d'expérience - Nicolas Ponsini - TrustedLogic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 6: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Présentation de Janua

Société de services (SS2L)/éditeur fondée en 2004 à Sophia Antipolis

Notre métier : l'expertiseNotre crédo : l'Open SourceNos prestations : consulting, assistance ponctuelle et développement auforfaitNos compétences :

Consulting, implémentations et déploiement de solutions de gestion desidentités (LDAP, SSO, PKI..),Etudes d'opportunités et accompagnement à la migration Open Source,

déploiement de solutions d'infrastructures.Développement au forfait, assistance et expertise sur des composants Open

Source et embarqués,Consulting réseaux et sécurité, ISO 27001, expertise base de données, cluster

et virtualisationEditeur des logiciels CmakeBuilder, Jaguards, JAC, KressourcesWCAP

et EZ-Slony.

Page 7: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Google Acteur majeur d'internet 1er moteur de recherche 1er publicité en ligne Solutions d'entreprises: Google Apps, Google Enterprise

Appliance... Services gratuits: gmail, apps, photos, vidéos...

2005 : Rachat d'Android Inc. Développement d'applications mobiles Richard Miner* + Andy Rubin

Objectif du rachat : créer une plateforme mobile Flexible Accessible à tous les intégrateurs et développeurs Profiter de la convergence web / mobile

* Richard Miner a quitté Google fin 2008

Page 8: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Acteurs système d'exploitation mobile 2009 Symbian Windows Mobile RIM Palm Source (Palm Os) Apple Linux

Baisse des parts de marché OS: Palm Source, Windows Décroissance du marché téléphone

Marché du smartphones en hausse Décroissance du marché « téléphone » Croissance smartphone: +37% en 2009 (GFK) Croissance smartphone: +12% en 2009 (Gartner) Services mobiles: nouveaux usages, multimédia

AndroidLe marché, le matériel, le potentiel

Page 9: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Open Handset Alliance (OHA)

Page 10: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Stratégie Google :• OpenSource

• Android Market / Google Checkout• Publicité mobile

Plateforme mobileouverte

ApplicationWeb riche

Développeursnombreux

Utilisateursnombreux

Plus de revenus

Page 11: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Android pour qui ? Constructeurs de matériels (téléphones, GPS, netbook, e-

book, lecteur multimédia, bornes internet...) Opérateurs Éditeurs de solutions logicielles, SSII...

Points forts

Constructeurs

Linux Open SourceCoût de licence nulAdaptabilité

Développeurs

Langage JavaModularité, partageKit de développement gratuitSDK completAndroid Market

Utilisateurs

Fonctionnel, intuitif et évolutifMultitâchesApplications nouvellesNombreuses applications par défaut

Page 12: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Version T-Mobile (US) –Noir, bronze et blanc

Version Orange (FR) –Blanc

Matériels disponible (Avril 2009) - Orange HTC Dream G1

Dernière minute : HTC annonce pour septembre le modèle HERO avec une nouvelleversion d’android (sense) et interface entièrement redessinée… Juillet 2009

Page 13: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Matériels disponible (Mai 2009) - SFR HTC Magic G2

Page 14: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Matériels disponible (juin 2009)-BT Samsung i7500/s8000 (Orion)

Page 15: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidLe marché, le matériel, le potentiel

Matériels à venir Motorola (fin 2009) LG Sony Ericsson (fin 2009) * Huawei Leonovo Acer …

Des téléphones mais aussi Netbooks GPS ** Lecteurs multimédia (Archos annonce pour septembre)

TV !

* Sony Ericsson a annoncé qu’il utiliserait la prochaine version Android 2.0 Donut

** 22/6 :Le géant américain du GPS Garmin a décidé de ne plus recourir à ses propres intégrationsde Linux sur ses terminaux. Elle a choisi pour les remplacer d’intégrer Android et Windows Mobile.

La présence d'Android par Fujitsu

Page 16: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidEvolution de l’IHM

Android M3 –Nov 2007

Android M5 –Mars 2008

Page 17: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidEvolution de l’IHM

Android - R1.1RC33Novembre 2008

Android CupcakeFevrier 2009

Page 18: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidEvolution de l’IHM

Android Cupcake CustomHTC Sense UIJuin 2009

Page 19: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AndroidConclusions (provisoire…)

Les facteurs potentiellement bloquants : L'omniprésence de Google peut agacer et faire peur... La position de leader de l'iPhone et son arrivée il y a déjà plusieurs

années sur le marché.. La création d'un véritable app-store avec des milliers d'applications... La frilosité des opérateurs => partage de la valeur avec Google

Les facteurs clés de succès : Le nom Google et les services associés Une plateforme de développement banalisée => beaucoup plus de

compétences disponibles que Symbian par exemple L'Open Source, facteur de création d'un communauté productive et d'une

adoption par la majorité des acteurs

Toutes les compétences autour d'Android existent sur Sophia, uneopportunité à saisir pour notre communauté....

Page 20: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement et dernièresavancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause café

Intégration d'un provider cryptographique / module Kernel /Framework Dalvik - retour d'expérience - Nicolas Ponsini - TrustedLogic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 21: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’Android

Android: 2 parties Système d'exploitation Linux Environnement d'exécution Dalvik (Java)

Kit de développement Java disponible depuis 2007 Concours Android Developer Challenge (Google) –4 versions Mai 2009 SDK 1.5 –Décembre 2009 Donut 2.0

Versions disponibles sur les matériels Souvent personnalisées par l'opérateur ou le constructeur 1.0, puis 1.1_RC33 Cupcake 1.5: correctifs, clavier virtuel, enrichissement fonctionnel

(widget) Mise à jour via OTA

OS et SDK sont disponibles en Open Source

Développer une application ne requiert pas l'obtention de l'OSet réciproquement

Page 22: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’Android

Page 23: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’Android

OS Android: 2 couches inférieures Linux kernel 2.6.24 ARM Pas de système natif de

fenêtrage Pas de support Glibc Optimisation mémoire,

processus et alimentation Gestion utilisateurs

Dalvik VM Android Optimisée embarqué Multi instance Optimisation mémoire,

sécurité Optimisation bytecode Fichier Dex

Page 24: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’Android

Base de l'API Point d'entrée pour les applications Accès à toutes les ressources inférieures via librairie Accès possible aux ressources C via JNI (bypass de cette

couche)

Page 25: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’AndroidDéveloppement

Environnement Windows XP/Vista Mac OS 10 Linux

J2SE 1.5 1.6

SDK Android

Eclipse Ganymede + plugin ADT

Optionnel: Outil dev C: Intégration code C/C++ en tant quelibrairie (JNI)

Page 26: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Une application est une succession d'écrans

Elle inclut un ensemble de descripteurs pour chaque écran

Un écran peut ouvrir un autre écran d'une même application oud'une autre application

5 composantes majeures Intent Activity Broadcast Receiver Content Provider Service

L'ensemble de ces composantes est décrit dans le fichierAndroidManifest.xml

Les applications ont pour extension APK (Android Package)

Anatomie d’AndroidDéveloppement

Page 27: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Activity Une classe par Activity Généralement le point d'entrée d'une application Généralement une interface graphique, un écran Cycle de vie

Intent Type d'action possible déclaré auprès du système Indique le besoin ou le service offert

Content Provider Accès aux données partagées Données internes ou externes à l'application Encapsulation du schéma de la base Pas de requête

-URI-Services de manipulation des données fournis par le package

Anatomie d’AndroidDéveloppement

Page 28: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Services Composants sans interface graphique Activité de longue durée Démarrer par context.startService: interne à l'application Démarrer par context.bindService: externe à l'application

Broadcast Receiver Réagit à des évènements externes

- Logiciel: Alarme, notifications...- Matériel: Activation puce GPS, exting

Réveiller une application, afficher un message, lancer une activity

Anatomie d’AndroidDéveloppement

Page 29: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’AndroidDéveloppement

Construction d'une application

Code source

Byte Code Java

Byte code optimiséGénération fichier.dex

Construction du packagedestiné à être installé

Page 30: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’AndroidHello Android

Création d'un nouveau projet

Page 31: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Anatomie d’AndroidHello Android

Arborescence du fichier créé

Construire le projet via le menuProject/Build

Page 32: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Les Activity et leurs interactionsActivity

Une classe étendant de Activity

Point d'entrée d'une application

Généralement un écran d'une application (plein écran ou non)

Comportement défini dans le fichier AndroidManifest.xml

Une Activity peut Être sans interface Être une fenêtre flottante Retourner des valeurs Lancer d'autres Activity

Possède un cycle de vie

Page 33: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Les Activity et leurs interactionsActivity

Cycle de vie d'une Activity

Page 34: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Les Activity et leurs interactionsActivity

Différentes Activity disponibles - android.app.* ActivityGroup ListActivity AliasActivity ExpandableListActivity PreferenceActivity LauncherActivity TabActivity

Une Activity est capable de lancer une autre Activity –quenous nommerons SubActivity Interne à l'application Externe à application Récupérer le résultat d'une SubActivity Notion importante d'Intent

Page 35: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Les Activity et leurs interactionsIntent

Intent Définir une action à effectuer Créer des liens entre application Décrit par une action (VIEW, EDIT, MAIN,...) URI pour renseigner les données à traiter

IntentFilter Décrit les capacités d'une application Attaché à une Activity Écoute les demandes d'Intent (handler) Enregistré au niveau système

Appelant (intent)Activity, Services...

Recherche de l'IntentFilterle mieux adapté parl'IntentResolver

Activity est lancée

Page 36: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Les Activity et leurs interactionsActivity

Lancer une autre Activity

Définition du type d'Intent Définition du chemin de l'Activity startActivity

StartActivityForResult Lancer l'activity Récupérer le résultat

startActivity(new Intent(this, ScoreActivity.class));

Page 37: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Les Activity et leurs interactionsDescripteur d’application

1 fichier de description de l'application: AndroidManifest.xml

Descripteur de l'application Renseignements sur l'application (nom, version de code, SDK

supporté...) Définit le comportement des Activity et leurs actions Déclare auprès du système les Intent accessibles Définit les services, broascat receiver et content provider

Déclaration des ressources nécessaires (applications, Internet,matériels, données...) L'utilisateur est toujours prévenu à l'installation des ressources

requises pour le bon fonctionnement de l'application. Il peut accepterou refuser.

Page 38: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : Présentation

Différents de J2ME, AWT ou Swing

Deux méthodes de création XML (recommandé) Code Java

Avantages XML Lisibilité du code Java Lisibilité de la construction de l'IHM Allègement du code Java Rapidité de développement (Similaire à un page HTML) Moins de risque d'erreur

Large éventail de composants déjà disponibles

Personnalisation possible de chaque élément

Système de « thèmes » disponible

Page 39: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : les layouts, les vues

Chaque composant correspond à un Layout Présent dans /res/layout Représente un écran Représente un composant spécifique d'un écran

Chaque composant Dispose d'un identifiant unique (de préférence) Peut être accédé, ajouté, modifié et supprimé depuis le code Java android:id=@+id/monidentifiant pour votre composant android:id=@android:id/empty pour référencer un composant

spécifique d'Android

Identification par le fichier R.java (généré par aapt)

Compiler sous forme de vue embarquée dans le fichier dex

Page 40: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : les layouts, les vues

Ecrire son fichier XML Contient obligatoire un élément racine (Root) Peut contenir autant de layout ou vue que désiré Sauvegardé sous /res/layout/monlayout.xml Ne pas contenir de majuscule ou de chiffre

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">

<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/>

</LinearLayout>

Page 41: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : les layouts, les vues

Charger le layout désiré Référencés sur le nom de fichier (sans extension) dans R.java R.layout.monlayout setContentView(layout)

Un layout peut être chargé au sein d'un autre composant enutilisant l'objet LayoutInflater

Chaque composant dispose d'un certain nombre de paramètres android:layout_width et android:layout_height (fill_parent,

wrap_content...) android:id, android:text, android:background...

Chaque composant dispose de ses arguments propres: android:orientation pour LinearLayout (vertical, horizontal)

public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);

}

Page 42: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : string et multilinguisme

Les chaines de caractères et l'IHM Fichier XML /res/values Par défaut: string.xml <string name=''cle''>Valeur à afficher</string>

Multilingues Basée sur la locale du système /res/values-fr, /res/values-en contenant un fichier string.xml Utiliser les mêmes clés pour afficher la valeur dans la langue

correspondante

<?xml version="1.0" encoding="utf-8"?><resources>

<string name="hello">Hello World, HelloActivity!</string><string name="app_name">Mon Hello Android</string>

</resources>

Page 43: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : Les menus

Menu Option Sous menu Menu contextuel

Page 44: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : évènements

Gérés comme en Java / AWT / Swing / J2MEMise en place de Listener (écouteurs)Peuvent être appliqués sur chaque composant ViewÉvènements supplémentaires en fonction du type de la vueProcessus

Récupérer l'objet vue concerné Ajout du listener Implémentation des actions à réaliser par le listener

Button monBoutton = (Button)findViewById(R.id.monBouton);b.setOnClickListener(evtClickSurMonBoutton);……OnClickListener evtClickSurMonBoutton = new OnClickListener(){

public void onClick(View v){// Implémentation

}};

Page 45: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : Boite de dialogue

Une vue affichée sur la couche supérieure du contenu courant

Composition Titre, Texte Icône Boutons Animation, personnalisable

Bloquante

AlertDialog.Builder

Personnalisable à volonté

Page 46: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Interface graphique (IHM)IHM : Boite de dialogue

Des listes dans les boites de dialogues

Barre de progression (fin connue ou indéterminée)

Des listes et boutons radios

Page 47: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Données persistantes

3 types de données persistantes:

Préférences utilisateurs Base de données (Sqlite3) Content Provider

Gestion de vos données dans des fichiers

Page 48: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Données persistantesLes préférences utilisateurs

Composants fournis IHM Données

Simple

Ensemble de clés (String)/valeurs(primitive)

Propre à l'Activity ou à l'application entière

Déclarations dans AndroidManifest

Données sauvegardées dans/data/data/monpackage/shared_prefs/monpackage.xml

Page 49: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Données persistantesBases de données

SQLITE Projet Open Source Base de données transactionnelles Pas de partie serveur Toutes les tables sont contenues dans un seul fichier Crossplatform Données typées Langage SQL Clé primaire Non disponible: FOREIGN_KEY, RIGHT/LEFT_OUTER_JOIN,

certaines options ALTER_TABLE

SQLITE3 Librairie de manipulation Accessible par adb shell

Type de données supportées: NULL, INTEGER, REAL, TEXT,BLOB

Page 50: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Données persistantesBases de données

SQLITE & Android Aucune base par défaut: tout doit être construit Manipulation SQLiteDatabase SQLiteOpenHelper

- onCreate- onUpdate

Le fichier est sauvegardé par défaut dans/data/data/monpackage/databases

L'enregistrement de fichier de base de données sur une cartemémoire ne pourra être réalisé par SQLiteOpenHelper, recours àl'objet SQLiteDatabase

Page 51: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Manipulation des données execSQL: exécution de commande SQL passée en paramètre

sous forme de chaine de caractères (dans la classe de l'adapter)

Insert(), delete() et update() de SQLiteOpenHelper- Nom de la table concernée- ContentValues().put(nom de colonne, valuer)

- Permet de retourner des valeurs (ex.: identifiant d'un nouveauélément ajout)

Données persistantesBases de données

db.execSQL("insert into " + DATABASE_TABLE_USER+ " (" + COL_TAB_HELLO_USER_NOM+ ") values('" + name + "');");

ContentValues cv = new ContentValues();cv.put(COL_TAB_HELLO_USER_NOM, name);db.insert(DATABASE_TABLE_USER, COL_TAB_HELLO_USER_ID, cv);

Page 52: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Query

Données persistantesBases de données

public Cursor query (String table,// nom de la tableString[] Columns, // nom des colonnes a retourner ou null pour touteString Selection, // clause where, sans le mot 'where' ex.: nom=?String[] SelectionArgs, // tableau ordonné des valeurs

// utilisées dans la clause whereString GroupBy, // argument groupBy, ex: nom, prenom –null sinonString Having, // argument clause having –null sinonString OrderBy) // argument d'ordonnancement ex: nom - null sinon

public void getInfo(String nomRecherche){String[] columns=new String[]{"nom", "prenom"};String[] params={nomRecherche};Cursor result=db.query(this.DATABASE_TABLE_USER,

columns, "nom=?",params,null, null, null);

…}

Page 53: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Toutes les URI commençant par URIEncapsulation de la structure des donnéesBase de données, fichiers plats, accès distantA partir d'une URI

Create Read Update Delete

Utilisation de ContentProvider existant –d'autresapplicationsCréer, utiliser et partager vos donnéesDéfinition d'une URI

Données persistantesContent provider

PREFIXE://IDENTIFIANT DU TYPE DE DONNEES/DEFINITION DE LA DONNEES/ENREGISTREMENTcontent://contact/people/123

content://com.mycompany.hello/user/53

Page 54: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Réaliser une requête managedQuery() depuis un objet Activity

- URI- Un tableau des propriétés du ContentProvider à obtenir dans le

résultat (nommé projection)- Les contraintes (clause Where)- Ensemble des paramètres permettant de compléter les contraintes

(? dans la clause where)- Clause d'ordonnancement

Retourne un Cursor

Propriété d'un ContentProvider = Colonnes d'une base dedonnées

Données persistantesContent provider

private static final String[] PROJECTION = new String[] {Provider.Constants._ID, Provider.Constants.TITLE,Provider.Constants.VALUE};

....constantsCursor=managedQuery(Provider.Constants.CONTENT_URI,PROJECTION, null, null, null)

Page 55: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Insérer des enregistrements insert()

- Uri + contentValues- Retourne l'identifiant de l'élément inséré

bulkInsert()- Tableau d'Uri et tableau de ContentValues pour ajouter plusieurs

enregistrements en une seule fois- Retourne le nombre d'éléments insérés

Suppression d'un enregistrement Delete

- Uri, clause where, arguments complétant la clause where- Les informations dépendantes à la table visée seront également

supprimées (cascading)- Retourne le nombre d'éléments supprimés

Mise à jour Update

- Uri, valeurs à insérer, clause where, arguments complétant la clause where- Retourne le nombre d'éléments mis à jour

Données persistantesContent provider

Page 56: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Composant dédié à l'affichage de liste Gestion du Cursor ou de listes Mise à jour automatique lors d'un ajout, modification, suppression Composants graphiques déjà disponibles Personnalisation de l'affichage possible Adapter: mapping entre la vue et les données

Processus Utilisation d'un composant gérant un adapter (spinner, listview...) Récupération d'un Cursor Création de l'adapter Affichage

En cas de personnalisation de l'affichage, nécessité de créerson propre Adapter

Données persistantesIHM, Cursor et Adapter

Page 57: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Exemple simple: ListActivity Une Activity devient une ListActivity Obligation de présence d'un objet ListView dans le layout Id spécifique: android:id="@android:id/list" SimpleAdapterCursor Application de l'adapter sur la vue courante

Données persistantesIHM, Cursor et Adapter

Cursor c = managedQuery(uri, PROJECTION,null, null, null);

startManagingCursor(c);ListAdapter adapter = new SimpleCursorAdapter(

this, android.R.layout.two_line_list_item,c,PROJECTION,new int[]{android.R.id.empty,

android.R.id.text1,android.R.id.text2}

);setListAdapter(adapter);

Page 58: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Services Process actif tant que la mémoire n'est pas limitée Attention à la surcharge! Implémentation simple

- Étend de Services- OnCreate- OnStart- OnDestroy- Déclarations dans l'Android Manifest

Services et Multithreading

Page 59: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

AIDL Android Interface Description Language Partage du service avec d'autres applications (Inter Process

Communication) Développement d'interface N'acceptes que

- Des primitives- Des String et CharSequence- List ou Map- Autre AIDL- Autres classes Java implémentant Parcelable

void retrieveInfo(in String nom, out String Info)- in / out: définit le sens de l'information- in: paramètre d'entrée est utilisée pour lecture uniquement par le

service- out: paramètre pouvant être modifié par le service et propagé

Services et MultithreadingServices

Page 60: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Notifications Toutes les alertes émanant du système ou d'autres applications Affichage d'une icône et/ou texte dans la barre de notifications Coloration de la led du téléphone

NotificationManager Hardware (son, led, vibreur) Icons / Texte

Obtenir une instance du NotificationManagerCréation de l'objet Notification (icon, message...)Création d'un PendingIntent pour la finalité de la notification

(ouverture d'une activity)Attribuer le pendingIntent à la notificationEnvoyer la notification

Services et MultithreadingAlarmes, notifications

Page 61: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Librairies Apache HttpComponentsHTTPAjouter des librairies supplémentaires pour réaliser d'autres

protocoles: XMPP, SMTP...HTTP POST/GET

HttpClient Renseigner les informations sur la requête execute()

Requête GET

Services et MultithreadingAccès distants

DefaultHttpClient httpclient = new DefaultHttpClient();HttpGet httpget = new HttpGet(url);try{

HttpResponse response = httpclient.execute(httpget);}catch (ClientProtocolException cpe) {

Log.e(TAG, "ClientProtocolException retrieveInfo:" + cpe);}

Page 62: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Requête POST

Envoi de fichier par POST Utilisation de HttpURLConnection Définition des paramètres de la connexion (entrée, sortie, boundary,

méthodes...) Ouverture d'un DataOutputStream sur la connexion Pour chaque élément à envoyer:

- Ouverture du fichier en lecture- Écriture du type de données et du flux dans le DataOutputStream

Services et MultithreadingAccès distants

DefaultHttpClient httpclient = new DefaultHttpClient();HttpPost httpost = new HttpPost(http://www.monserveur.com);List<NameValuePair> nvps = new ArrayList<NameValuePair>();nvps.add(new BasicNameValuePair("cle1", valeur1));nvps.add(new BasicNameValuePair("cle2", valeur2));httpost.setEntity(new UrlEncodedFormEntity(nvps, null));HttpResponse response = httpclient.execute(httpost);

Page 63: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Réponse d'une requête HttpResponse Sur retour de la commande execute Création d'un HttpEntity par httpResponse.getEntity() Lecture d'un InputStream sur httpEntity.getContent()

Services et MultithreadingAccès distants

Page 64: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Blocage de l'application lors des accès distants (Wake Lock)

Solution (recommandation!) Utilisation de Thread pour les traitements bloquant: accès distant, calculs...

Les threads n'ont pas accès aux IHM Système de message de communication entre un Thread et un Handler Classe implémentant l'interface Runnable Constructeur prenant en paramètre l'Activity qui appellera le Thread Surcharge de la méthode run() dans laquelle Les traitements sont exécutés Les messages sont envoyés au Handler Création d'un objet Handler Gestion des codes reçus Mise à jour de l'IHM de l'Activity appelante

Une Thread ne peut être tuée, le système s'en charge Gestion d'un état permettant ou non d'appeler ou pas le contenu de run()

Services et MultithreadingUtilité des Threads

Page 65: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Gestion des appels entrants et sortantsConnexion GSM/Bluetooth/Wifi/GPSEnvoi/réception SMSSearchManagerGéolocalisation

Localisation Map/MapView Accéléromètre

Multimedia Son Caméra 2D/3D

Autres composants

Page 66: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

LivresBusy coder's guide to Android Development –Mark. L. Murphy –Edition CommonsWare –444 pages + 2 livres tutoriaux et Advanced Development

http://www.commonsware.com

Hello Android, Introducing Google's mobile development Platform –Ed Burnette –220pages

http://www.pragprog.com

Ressources en lignes: site webhttp://developer.android.com (documentations officielle)http://sites.google.com/site/io/ (recherche sur Mobile, présentations vidéos)http://www.anddev.org (tutoriaux, forums)http://www.androidcommunity.com (actualités)http://www.devx.com/wireless (actualités, tutoriaux)http://www.helloandroid.com (actualités)

Ressources en lignes: forumshttp://groups.google.fr/group/android-developershttp://groups.google.fr/group/android-beginners

Ressources francophones: actualités et développementhttp://www.frandroid.com (actualités, forums)http://www.pointgphone.com (actualités, forums)

Page 67: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement et dernièresavancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause cafPause caféé

Intégration d'un provider cryptographique / module Kernel /Framework Dalvik - retour d'expérience - Nicolas Ponsini - TrustedLogic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 68: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement et dernièresavancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause café

Intégration d'un provider cryptographique / moduleKernel / Framework Dalvik - retour d'expérience - NicolasPonsini - Trusted Logic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 69: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Trusted Logic en bref

Technologiesouvertes

Sécuritéembarquée

Produits & Solutions pour•Smart Cards & Secure Tokens

jTOP

•Technologie sans contactTrusted NFC

•Plateformes mobilesTrusted FoundationsSoftware

Services deconsulting et

d’évaluation ensécurité

Page 70: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Environnementouvert

Plateforme

ApplicationsApplicationsServices SécurisésServices Sécurisés

Monde Normal(trop riche pour être certifié)

Monde Sécurisé(certifiable)

SChannel

TrustedFoundationsSoftware

TrustedFoundationsSoftware

Environnementsécurisé

programmablepermettant

l’exécution deservices haut

niveau

Trusted Foundations Software

Page 71: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

© 2009 Trusted Logic S.A.

•OMA DRM 2•WMDRM /PlayReady•CPRM•OMA BCAST•Marlin

•Trusted NFC•Trusted User Interface

Intégration sécurisée :•Windows Mobile•Linux•Android•Symbian

•Ipsec (VPN)•OpenSSL

•SW TPM/MTM

•Password Storage•One-Time Password•Secure Storage•Cryptographic providers

Services disponibles via TrustedFoundations

Page 72: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Objectif : Proposer aux applications Android un provider cryptographique detype JCE / JCA offrant la sécurité du Trusted Foundations SW aux clés etdonnées manipulées.

JCE / JCA = Java Cryptographic Extension / Java CryptographicArchitecture

Un Provider implémente les interfaces spécifiées par les packages JCE /JCA.

Javax.crypto.* fournit les classes et les interfaces pour effectuer desopérations cryptographiques sur les algorithmes symmétriques.

Java.security.* fournit les classes et les interfaces pour le framework desécurité Java. Elles permettent entre autres de réaliser des opérations: de génération de nombres aléatoire de digests de signatures à l’aide d’algorithmes asymmétriques …

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 73: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Bibliothèques C decommunication

avec les servicessécurisés

Module Kerneld’accès au

monde sécurisé

ProvidercryptographiqueJava (JCE / JCA)

Applicationsutilisant des

opérations crypto

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 74: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Module Kernel pour accéder au monde sécurisé (1/2)

Kernel Android

Cloner le kernelhome# git clone git://git.omapzoom.org/repo/omapkernel.githome# cd omapkernelhome# git checkout --track -b android-2.6.27 origin/android-2.6.27home# git checkout android-2.6.27home# git pull

Recompiler le kernel : choisir la configuration / “cross-compiler”avec la chaîne decompilation ARM Code Sourcery ARM Sourcery G++ 2007q3.

Kernel 2.6.27 et bientôt kernel 2.6.29 : le site permet de profiter des dernièresnouveauté comme un meilleur support des fonctions de mise en veille.

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 75: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Module Kernel pour accéder au monde sécurisé (2/2)

Développement d’un “Character device driver”pour abstraire l’accès aumonde sécurisé vu comme un device:

Points d’entrée : open/release/ioctl/mmap/read/write

Communication avec le user space : copy_from(to)_user/mapped memory …

Gestion des accès multiples : objects de synchronisation, Kernel Préemptif

Power Management : suspend/resume + utilisation du “réfrigérateur”pour lesthreads actifs lorsque l’utilisateur met l’appareil en veille explicitement.

Accès au hardware : mapping et accès registres (ex: controleur DMA)

Insertion du module : dynamique / statique

Driver sous License GPL2 : son code doit être rendu public.

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 76: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Provider JCE/JCA au dessus de Dalvik (1/2)

Application Java (.apk) dans /system/app Android.mk AndroidManifext.xml (bibliothèques Java à utiliser, main,

ressources …) Source Java

Bibliothèque Java (.jar) dans /system/framework Android.mk Source Java Glue JNI Editer le fichier /system/etc/permissions/platform.xml et

ajouter cette bibliothèque pour la rendre accessible auxapplications

Bibliothèque native (.so) dans /system/lib Android.mk Source C au dessus de bionic

TestsProviderCrypto.apkCode Java

+ AndroidManifest.xml+ Android.mk

ProviderCrypto.jarCode Java

+ JNI+ Android.mk

ProviderCrypto.soCode C

+ Android.mk

ProviderCrypto.ko

JCE / JCA Interfaces

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 77: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Code source Android Installation de :

paquets type sun-java6-jdk/git-core/flex/bison … Installation de la chaine de compilation ARM Code Sourcery ARM Sourcery G++

2007q3 Installation de l’outil google : «repo»

Cloner et builder la “distribution”:home# repo init -u git://git.omapzoom.org/repo/android/platform/omapmanifest.githome# repo synchome# make -j2 (et attendez 1h30 ou plus selon votre machine …)

Le système de build est totalement intégré et permet de gérer les dépendances àtous les niveaux : application / bibliothèques / code Java / code C.

Android.mk : insérer dans les sources Android un fichier Android.mk(makefile-like) pour générer une Application ou une librairie.

Provider JCE/JCA au dessus de Dalvik (2/2)

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 78: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Retour d’expérience (1/2)

Outil Repo pour synchronization avec les sources C’est un outil Google qui permet d’abstraire « git» et de gérer simplement la

synchronization avec plusieurs repositories.

Système de build Pas de « platform Builder » graphique élaboré Une « distribution » intégrée : tapez make et ça fonctionne !! Gestions des dépendances et ajout d’applications et de bibliothèques simplement

grâce à un Makefile-like : Android.mk

Réutilisation de Linux très utile au développement L’environnement en général : git / commandes / Makefiles … Le kernel et donc les modules kernel Le développement et la validation sur target sont facilités grâce à NFS par exemple Utilisation d’une busybox pour les commandes traditionnelles Gestion des droits et des permissions

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 79: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Retour d’expérience (2/2)Bionic ucLibc - like Plus légère mais l’essentiel est là. Des modifications sur les objets de synchro et les wide-char par exemple mais rien

d’insurmontable !

Réutilisation de Java Le Java de base est là et les paquets java.security.* et javax.crypto.* pour le

supports du JCE/JCA aussi JNI est supporté et complètement compatible Simple pour le développement d’application de tests Utilisation du SDK Android pour développer toutes ces parties portables sur PC.

Debug Pas d’utilisation des outils spécifiques Android pour cette intégration Utilisation d’un debugger Jtag pour le debug de certaines fonctionnalités du driver

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 80: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Conclusions

Nicolas PonsiniProject Manager

Professional & Consumer [email protected]

Intégration d’un ProviderCryptographique sur plateforme OMAP3

Page 81: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

SOMMAIRE

Introduction : Commission Open Source Telecom Valley

Le marché Android et les enjeux - positionnement et dernièresavancées - Pascal Flamand - Janua

Anatomie de la plateforme Android et environnement dedéveloppement - Arnaud Farine - Expertise@ndroid

Pause café

Intégration d'un provider cryptographique / module Kernel /Framework Dalvik - retour d'expérience - Nicolas Ponsini - TrustedLogic

Intégration d'une application de géolocalisation "off board" sousAndroid - retour d'expérience - Christophe Tomasini - Altran

Q/R avec la salle, partage d'expériences

Page 82: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

SC2 - Software Competence CentreDepuis 1999… BMW/VW systèmes d’Infotainment Certification OSGi Outillage de test automatique Chaine de développement pour le design/intégration HMI Architecture et Développement de plateforme logicielle Portail de Connectivité sans-fil Web Services avec reconnaissance vocale Navigation mobile off-board

VDO Siemens Continental

Page 83: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Navigation Mobile Off-Board

Application MIDP2.0 Navigation « off-board » Guidage en temps réel: carte + pictogrammes +

audio POIs: cinémas, restaurant, radars, etc.

Sur le marché en 2005 en France(SFR) et en Allemagne (T-Mobile)

Page 84: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Android –Plateforme & APIs

Plateforme basée sur le langage Java

APIs Téléphonie & Connectivité : GSM, Bluetooth, EDGE, 3G, Wifi, etc. Audio & Vidéo Camera, GPS, boussole, etc. Graphismes 2D/3D

Google Maps

Page 85: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Android - Environnement de développement (1/2)

Kit de développement Documentation, exemples et librairies Outils : émulateur, debugger, moniteur de VM, IHM Nouveauté : Native Development Kit (NDK)

Intégration dans Eclipse (plugin ADT) Création graphique d’IHM Gestion des ressources: images, localisation, spécialisation Chaine de développement complète

Page 86: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Android - Environnement de développement (2/2)

Page 87: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Développement pour Android - ObjectifsPortage fonctionnalités existantes IHM Audio Persistance Internationalisation

Nouvelles fonctionnalités Intégration de Google Maps Diaporama géolocalisé basé sur Flickr Support de l’écran tactile

Participation à l’«Android Challenge »

Page 88: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Développement pour Android - Google Maps

Vues plan / satellite Gestion des données Zoom & défilement Surcharge de la carte

Page 89: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Développement pour Android - Diaporama géolocalisé

Basé sur Flickr Utilisation de la position

courante Recupération de photos géo-

taggées

Page 90: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

Intégration d’une application denavigation « off-board » sous Android

Conclusion & Perspectives

Des outils de développement Une communauté Une plateforme en évolution Des terminaux Android Market

Christophe TomasiniPraxis SC2 by Altran

[email protected]

Page 91: Présentation du système dexploitation Open Source ANDROID€¦ · Notre crédo: l'Open Source Nos prestations: consulting, assistance ponctuelle et développement au forfait Nos

Jeudi 2 Juillet 2009

QUESTIONS / REPONSES

Merci pour votreattention