Vous êtes sur la page 1sur 19

Bibliothques Open source utilises sur Android

GL5-B TIME UNIVERSIT

Introduction
Android comprend un ensemble de bibliothques C/C++

utilises par les diffrents composants du systme Android. Ces capacits sont exposs des dveloppeurs travers le cadre de l'application Android.

Les bibliothques portent un ensemble d'instructions

pour guider l'appareil dans le traitement de diffrents types de donnes.

Nous allons donner dans ce qui suit ne liste non

exhaustive des bibliothques Open sources utilises sur Android.

1-Surface Manager
Le gestionnaire de surface est utilis pour la gestion

de l'affichage. Il est responsable de la composition de diffrentes surfaces de dessin sur l'cran. Il gre l'accs aux diffrents processus pour composer les couches graphiques 2D et 3D. Le surface manager,

cre et gre des surfaces de composition graphique : alloue de la mmoire laquelle il contrle l'accs et qu'il peut permettre le matriel en toute scurit d'accs. maintient la taille et de l'information de format. assure le suivi des clients l'aide de chaque surface.

Architecture de Surface Manager

2- Media Framework
Le cadre des mdias a t fourni par PacketVideo, l'un des

membres de l'OHA. Le Media framework contient tous les codecs ncessaires pour une exprience multimdia.

Il inclut le support pour la lecture de divers types de mdias

communs, de sorte que lon peut facilement intgrer audio, vido et images dans nos applications.

On peut lire des fichiers audio ou vido partir de fichiers

multimdias stocks dans les ressources de notre application (ressources premires), partir de fichiers autonomes dans le systme de fichiers, ou partir d'un flux de donnes arrivant sur une connexion de rseau, tout en utilisant Media Player API.

Architecture Media Framework

-Lapplication Android et le Media server sexcutent sur diffrents processeur . -Media server dmarre au moment du boot -Media server: Codecs, file, parsers, network stack

3-OpenGL
OpenGL (Open Graphics Library) est un ensemble normalis de

fonctions de calcul d'images 2D ou 3D lanc par Silicon Graphics en 1992. plateformes o elle est utilise pour des applications qui vont du jeu vido jusqu' la CAO en passant par la modlisation.

Cette interface de programmation est disponible sur de nombreuses

OpenGL permet un programme de dclarer la gomtrie d'objets

sous forme de points, de vecteurs, de polygones, de bitmaps et de textures. OpenGL effectue ensuite des calculs de projection en vue de dterminer l'image l'cran, en tenant compte de la distance, de l'orientation, des ombres, de la transparence et du cadrage.

3-OpenGL
L'interface regroupe environ 250 fonctions diffrentes qui peuvent tre

utilises pour afficher des scnes tridimensionnelles complexes partir de simples primitives gomtriques. Du fait de son ouverture, de sa souplesse d'utilisation et de sa disponibilit sur toutes les plates-formes, elle est utilise par la majorit des applications scientifiques, industrielles ou artistiques 3D et certaines applications 2D vectorielles.

Cette bibliothque est galement utilise dans l'industrie du jeu vido o elle

est souvent en rivalit avec la bibliothque de Microsoft : Direct3D. Une version nomme OpenGL ES a t conue spcifiquement pour les applications embarques (tlphones portables, agenda de poche, consoles de jeux).

3-OpenGL
Android prend en charge OpenGL la fois par son API de cadre et le

kit de dveloppement natif (NDK). Il existe deux classes fondamentales dans le cadre Android qui permettent de crer et de manipuler des graphiques avec l'API OpenGL|ES: GLSurfaceView et GLSurfaceView.Renderer .

GLSurfaceView: Cette classe est une vue o vous pouvez dessiner et manipuler des objets l'aide d'appels API OpenGL et est semblable dans la fonction un SurfaceView . Vous pouvez utiliser cette classe en crant une instance de GLSurfaceView et en ajoutant lui ajoutant un moteur de rendu. Toutefois, si lon veut capturer les vnements de l'cran tactile, on doit tendre le GLSurfaceView classe pour mettre en uvre les auditeurs de contact. GLSurfaceView.Renderer: Cette dfinit les mthodes pour dessiner des graphiques dans un GLSurfaceView . On doit fournir une implmentation de cette interface comme une catgorie distincte et le joindre notre application en utilisant GLSurfaceView.setRenderer () .

4- SGL
SGL se compose d'un ensemble de bibliothques multi-plateforme C++,

construit au-dessus d'OpenGL, qui implmente des fonctionnalits de graphe de scne 3D (SGL), certains chargeurs de modles 3D simples (sgldb, sglobj, sgl3ds), et certains services publics divers (sglu).
Un graphe de scne est un graphe orient acyclique qui organise et stocke

toutes les donnes ncessaires pour rendre une scne 3D. Toutes les donnes de vertex et de l'tat OpenGL sont stockes dans les nuds des feuilles dans le graphique, et tout placement de contrle des nuds internes (via des matrices de transformation) et la slection (via des commutateurs, des discriminateurs, les plages de niveau de dtail, etc) de sous-graphes pour le rendu .

Le rendu de la scne 3D est effectue en traversant le graphique, la slection

des nuds de feuille tirer, et l'mission de commandes OpenGL de l'information contenue dans les nuds feuilles slectionnes.

5-FreeType
FreeType est une bibliothque logicielle, qui met en uvre

un moteur de rendu de police de caractres. Elle est crite en C et principalement utilise pour obtenir un rendu bitmap des polices vectorielles, mais fournit galement un ensemble d'outils pour un certain nombre d'autres oprations lies aux polices.

FreeType est un projet libre, disponible sous la licence GNU GPL ou

bien une licence proche de la licence BSD. Il est comparable la technologie ClearType, incluse dans Windows XP, servant lisser les polices pour une meilleure lecture.
FreeType 2 gre tout un ensemble de formats de police

dont TrueType, Type 1, et OpenType.

6-SQLite
SQLite est une bibliothque crite en C qui propose un moteur de base de

donnes relationnelle accessible par le langage SQL. SQLite implmente en grande partie le standard SQL-92 et des proprits ACID. aux serveurs de bases de donnes traditionnels, comme MySQL ou PostgreSQL, sa particularit est de ne pas reproduire le schma habituel client-serveur mais d'tre directement intgre aux programmes. L'intgralit de la base de donnes (dclarations, tables, index et donnes) est stocke dans un fichier indpendant de la plateforme.

Contrairement

D. Richard Hipp, le crateur de SQLite, a choisi de mettre cette

bibliothque ainsi que son code source dans le domaine public, ce qui permet son utilisation sans restriction aussi bien dans les projets open source que dans les projets propritaires. Le crateur ainsi qu'une partie des dveloppeurs principaux de SQLite sont employs par la socit amricaine Hwaci.

6-SQLite
SQLite est le moteur de base de donnes le plus distribu au monde,

grce son utilisation dans de nombreux logiciels grand public comme Firefox, Skype, Google Gears, dans certains produits d'Apple, d'Adobe et de McAfee et dans les bibliothques standards de nombreux langages comme PHP ou Python.

De par son extrme lgret (moins de 300 Kio), elle est galement

trs populaire sur les systmes embarqus, notamment sur la plupart des smartphones modernes : l'iPhone ainsi que les systmes d'exploitation mobiles Symbian et Android l'utilisent comme base de donnes embarque. Au total, on peut dnombrer plus d'un milliard de copies connues et dclares de la bibliothque.
composant. Les bases de donnes que vous crez seront accessibles par le nom une classe dans l'application, mais pas en dehors de l'application

Android SQLite base de donnes est une partie intgrante "built-in"

7-WebKit
WebKit est une bibliothque logicielle libre permettant aux dveloppeurs

d'intgrer facilement un moteur de rendu de pages Web dans leurs logiciels. Elle est disponible sous licence BSD et GNU LGPL. version 10.3 Panther), elle a t porte vers Linux et Windows. Ainsi le portage de WebKit pour les environnements GTK+ et Qt se nomment respectivement WebKitGTK+ et QtWebKit. notamment dans le navigateur Konqueror. Elle intgre deux sousbibliothques : WebCore et JavaScriptCore correspondant respectivement KHTML et KJS. t rcrit, le nouveau moteur s'appelle dsormais SquirrelFish, beaucoup plus rapide que le prcdent.

Originellement rserve au systme d'exploitation Mac OS X ( partir de la

WebKit est un fork du moteur de rendu KHTML du projet KDE utilis

Webkit intgrait un moteur JavaScript qui portait le mme nom. Il a depuis

Utilisation webkit
La principale utilisation de WebKit est la cration de navigateurs

Web :

Google Chrome - Un navigateur Web produit par Google ; Chromium - Le navigateur libre sur lequel est fond Google Chrome ; Safari - Le premier navigateur fond sur WebKit d'Apple ; Opera - Le navigateur de Opera Software ; Iron - Un navigateur qui reprend le code source de Chromium, le pendant libre de Google Chrome, et lui a retir ses outils de surveillance utilisateur ; Konqueror - Le navigateur fond sur KHTML propose WebKit depuis sa version 4.1 ; Epiphany - Le navigateur du bureau GNOME, qui repose sur WebKit depuis sa version 2.28 ; Android - Le navigateur par dfaut du systme d'exploitation (remplac par Chrome depuis la version 4.1) ; OmniWeb - Un navigateur Web produit par Omni Group pour Mac OS X ; Shiira - Un navigateur libre dont le but tait de "combler les lacunes" de Safari ; Le navigateur Web du S60 de Nokia - Version fonde sur Symbian OS ;

Autres utilisations de WebKit


D'autres types de logiciels l'utilisent aussi. Mail - Le logiciel de courrier de Mac OS X ; Dashboard - Le logiciel de widgets de Mac OS X ; TextMate - Un diteur de texte ; Yelp - Un logiciel pour lire la documentation sous Gnome ; Liferea - Un lecteur de flux RSS ; CSSEdit - Un logiciel d'dition de feuilles de style CSS. Steam - Une plate-forme de distribution de contenu en ligne.

8-Libc(system C libraries)
Android ne supporte pas la glibc, donc les ingnieurs d'Android ont dvelopp

une librairie C (libc) nomm Bionic libc . Elle est optimise pour les appareils mobiles et a t dvelopp spcialement pour Android.

Les ingnieurs d'Android ont dcid de dvelopper une libc propre la

plateforme Android car ils avaient besoin d'une libc lgre (la libc sera charg dans chaque processus) et rapide (les appareils mobiles ne disposent de CPU puissant).

La Bionic libc a t crit pour supporter les CPU ARM, bien que le support x86

est prsent. Il n'y pas de support pour les autres architecture CPU tel que PowerPC ou MIPS. Nanmoins, pour le march des appareils mobiles, seulement l'architecture ARM est importante.

8-Libc(system C libraries)
Cette libc est sous licence BSD, elle reprend une

grande partie du code des glibc issue d'OpenBSD, FreeBSD et NetBSD.


Caractristique importante :

Elle pse environ 200Ko soit la moiti de la glibc L'implmentation des pthreads (POSIX thread) a t compltement rcrit pour supporter les threads de la machine virtuelle Dalvik. De ce fait la Bionic libc ne supporte les threads POSIX Les exceptions C++ et les "wide char" ne sont pas supports Il n'y a pas de "Standard Template Library" (STI)

9-Open SSL
OpenSSL est une bote outils de cryptographie mise en uvre du

protocole Secure Sockets Layer (SSL v2/v3) et Transport Layer Security (TLS v1) des protocoles de rseau et des normes de cryptographie connexes requises par eux. utiliser les diffrentes fonctions de cryptographie de la bibliothque crypto de OpenSSL provenant du Shell. Il peut tre utilis pour

Le programme OpenSSL est un outil de ligne de commande pour


Cration et gestion de cls prives, des cls publiques et des paramtres oprations essentielles publics cryptographiques Cration de certificats X.509, CSR et CRL Calcul de signature de messages Chiffrement et dchiffrement avec Ciphers SSL / TLS client et Tests Server Traitement des S / MIME sign ou courrier chiffr Temps demandes de timbre, de la production et de la vrification