Android
Porting, tailoring and programming Google's Android OS
Android sur un équipement industriel est un exercice différent d'Android sur un téléphone. Le framework suppose un écran tactile, une batterie et une boutique d'applications, et un produit embarqué n'a généralement aucun des trois. Ce qu'il apporte en revanche, c'est une pile graphique mature, un modèle de driver et une architecture de sécurité.
Travailler sous la couche applicative suppose de manipuler la HAL, Binder, la séquence d'init et le build system AOSP. Porter Android sur une carte revient surtout à comprendre ce que le framework attend du matériel, et ce qu'il fera si le matériel répond autrement.
Nos formations couvrent la programmation Android, les entrailles de la plateforme du noyau jusqu'au framework, et le cas particulier du contrôle de systèmes industriels, où Android tourne sans utilisateur devant l'écran.
Cours disponibles
Android a été conçu pour permettre la création rapide d'interfaces utilisateur puissantes et ergonomiques pour des systèmes embarqués à ressources limitées; cependant en raison des limitations du matériel sous-jacent, les applications Android sont totalement différentes des applications standard. Ce cours explique comment elles sont structurées et comment Android permet de combiner portabilité et performances.
Installer Android sur une nouvelle plateforme est un processus complexe qui exige une compréhension approfondie des entrailles des frameworks Android et de la couche d'abstraction matérielle. Ce cours explique comment les frameworks sont structurés et comment ils peuvent être adaptés à une plateforme sur laquelle un portage Android de base existe déjà.
Les nouveaux systèmes industriels ont besoin d'interfaces utilisateur sophistiquées et ergonomiques. Les construire avec les boîtes à outils graphiques traditionnelles peut être lourd et difficile. Android peut simplifier ces tâches, en permettant aux développeurs d'applications industrielles de profiter des outils développés pour les appareils grand public.
Ce cours couvre les différentes techniques nécessaires à l'écriture de drivers Linux (2.6 et 3.x), la gestion de bus (PCI...), le hot-plug et l'auto-configuration des périphériques ainsi que les problèmes spécifiques dus aux processeurs modernes et multi-coeurs.
Ce cours approfondit les mécanismes d'interaction entre les drivers Linux et les fonctions de gestion de l'énergie du noyau Linux.
Ce cours approfondit les notions de devices/drivers génériques de Linux, les notions de hotplug, ainsi que l'écriture de drivers USB host et gadget.