Formation Android 8 (AOSP)

Ref :

Embarqué & IOT Durée :
3 jours
Lieu :
Paris - Lyon - Toulouse - Nantes

Tarif

Intra :
Inter :
1 950€ HT / pers
Inscrivez-vous

Demande d'informations

Pré-requis

Connaissances Linux/UNIX, Java/C/C++

Matériels :

PC Linux sous Ubuntu 16.04.3 (64 bits), 16 Go RAM, 500 Go d’espacé disque libre (SSD conseillé)

Public concerné

Ingénieurs développement et chefs de projets

Objectifs

Prise en main du système Android 8 (AOSP)
Adaptation à une plate-forme matérielle, customisation Fonctionnalités « automotive »

Programme détaillé

1. Introduction à Android (0,25 j)

  • Fonctionnalités
  • Historique
  • Parts de marché
  • Principes des applications
  • Projets « équivalents » (sur base de noyau Linux)
  • Android et l'industrie

2. Sources AOSP – Android Open Source Project (0,25 j)

  • Licences (GPL, LGPL, Apache)
  • Mise en place de l’environnement de compilation
  • Chargement des sources (utilisation de repo et Git)
  • Sélection d’une cible (émulateur x86_64), compilation et test
  • Organisation des sources, principaux répertoires
  • Bootloader, description de l’outil « fastboot »

3. Architecture Android (0,5 j)

  • Schéma d'architecture générale
  • Framework
  • JVM et « runtime »
  • Bibliothèques (spécifiques – Bionic, etc. ou externes)
  • HAL, HIDL et Treble, description sur un exemple simple (Lights)
  • Binder (Android IPC)
  • Organisation du système de fichiers (/system, /data, etc.)
  • Les propriétés Android (properties)
  • Démarrage du système (init, ueventd, Zygote, System server)
  • Configuration par init.rc et uevent.rc
  • Présentation des principaux managers (Activity, Power, Window, etc...)
  • Introduction au système graphique (SurfaceFlinger), GPU, cas particulier de l’émulateur
  • Sécurité sous Android (Kernel, App, signatures, SELinux)

4. Noyau Linux (0,25 j)

  • Introduction, espaces noyau et utilisateur
  • Histoire, liens avec le projet GNU
  • Principaux concepts
  • Description des « Androidism » (binder, logger, ashmem, etc.)
  • Compilation d'un noyau Linux pour Android

5. Développement « système » sous Android (0,5 j)

  • Android Studio SDK (Java)
  • Structure d'une application (fichier manifest, configuration Gradle, paquet APK)
  • Développement C/C++ (NDK)
  • Android Debug Bridge (ADB )
  • Compilation de code POSIX , limitations du NDK (Bionic)
  • Pilotes de périphériques (noyau)
  • Utilisation de JNI (communication Java <> C/C++)
  • Mise en place d’un capteur, exploitation avec une application Java dédiée (Java + JNI + pilote)
  • Ajout d’un exemple simple HIDL (HAL)

6. Adaptation et customisation Android (0,75 j)

  • Ajout/adaptation d’une cible matérielle (répertoire device/ et fichiers *.mk)
  • Ajout de BusyBox (vs Toybox)
  • Modification de l'image de fond (splash screen)
  • Modification de l'animation de démarrage
  • Ajout d'application sources ou APK (construite avec AOSP)
  • Ajout de service simple dans initd.rc
  • Introduction à GMS (Google Mobile Service)
  • Certification (CDD, CTS, GTS, VTS)

7. Spécificités « automotive » (0,25 j)

  • Android Auto vs Automotive
  • Car API / Car service
  • Vehicle HAL
  • Applications dédiées

Nos Actualités