Bibliothèques Open source d’Android

Embed Size (px)

Citation preview

Prsentation PowerPoint

GL5-BTime universitBibliothques Open source utilises sur AndroidIntroductionAndroid 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 ManagerLe 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 dessurfaces 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 FrameworkLe 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 utilisantMedia PlayerAPI.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 stack3-OpenGLOpenGL(OpenGraphicsLibrary) est unensemble normalis de fonctionsdecalcul d'images2Dou3Dlanc parSilicon Graphicsen 1992. Cetteinterface de programmationest disponible sur de nombreuses plateformes o elle est utilise pour des applications qui vont du jeu vido jusqu' la CAO en passant par la modlisation.

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 deprojectionen 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-OpenGLL'interface regroupe environ250fonctionsdiffrentes 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 applications2D vectorielles.

Cette bibliothqueest galement utilise dans l'industrie dujeu vidoo elle est souvent en rivalit avec la bibliothque deMicrosoft:Direct3D. Une version nommeOpenGL ESa t conue spcifiquement pour les applications embarques (tlphones portables, agenda de poche, consoles de jeux).

3-OpenGLAndroid 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: GLSurfaceViewetGLSurfaceView.Renderer.

GLSurfaceView: Cette classe est unevueo vous pouvez dessiner et manipuler des objets l'aide d'appels API OpenGL et est semblable dans la fonction unSurfaceView.Vous pouvez utiliser cette classe en crant une instance deGLSurfaceViewet en ajoutant lui ajoutant un moteur de rendu.Toutefois, si lon veut capturer les vnements de l'cran tactile, on doit tendre leGLSurfaceViewclasse pour mettre en uvre les auditeurs de contact.

GLSurfaceView.Renderer: Cette dfinit les mthodes pour dessiner des graphiques dans unGLSurfaceView.On doit fournir une implmentation de cette interface comme une catgorie distincte et le joindre notre application en utilisantGLSurfaceView.setRenderer ().4- SGLSGL 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-FreeTypeFreeTypeest unebibliothque logicielle, qui met en uvre unmoteur de rendudepolice de caractres. Elle est crite en C et principalement utilise pour obtenir unrendu bitmapdespolices vectorielles, mais fournit galement un ensemble d'outils pour un certain nombre d'autres oprations lies aux polices.

FreeType est un projetlibre, disponible sous la licenceGNU GPLou bien une licence proche de lalicence BSD.Il est comparable la technologieClearType, incluse dansWindows XP, servant lisser les polices pour une meilleure lecture.

FreeType 2gre tout un ensemble de formats de police dontTrueType,Type 1, etOpenType.

6-SQLiteSQLiteest unebibliothquecrite en Cqui propose unmoteurdebase de donnes relationnelleaccessible par le langageSQL. SQLite implmente en grande partie le standardSQL-92et desproprits ACID.

Contrairement auxserveursde bases de donnes traditionnels, commeMySQLouPostgreSQL, sa particularit est de ne pas reproduire le schma habituelclient-serveurmais d'tre directement intgre aux programmes. L'intgralit de labase de donnes(dclarations, tables, indexet donnes) est stocke dans unfichierindpendant de la plateforme.

D. Richard Hipp, le crateur de SQLite, a choisi de mettre cette bibliothque ainsi que soncode sourcedans ledomaine public, ce qui permet son utilisation sans restriction aussi bien dans les projetsopen sourceque dans les projetspropritaires. Le crateur ainsi qu'une partie des dveloppeurs principaux de SQLite sont employs par la socitamricaineHwaci.6-SQLiteSQLite est le moteur de base de donnes le plus distribu au monde, grce son utilisation dans de nombreux logiciels grand public commeFirefox,Skype,Google Gears, dans certains produits d'Apple, d'Adobeet deMcAfeeet dans les bibliothques standards de nombreux langages commePHPouPython.

De par son extrme lgret (moins de 300 Kio), elle est galement trs populaire sur les systmes embarqus, notamment sur la plupart dessmartphonesmodernes: l'iPhoneainsi que lessystmes d'exploitationmobiles SymbianetAndroidl'utilisent comme base de donnes embarque. Au total, on peut dnombrer plus d'un milliard de copies connues et dclares de la bibliothque.

AndroidSQLitebase de donnes est une partie intgrante "built-in" 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

7-WebKitWebKitest unebibliothque logiciellelibrepermettant aux dveloppeurs d'intgrer facilement unmoteur de rendu de pages Webdans leurs logiciels. Elle est disponible souslicence BSDetGNU LGPL.

Originellement rserve au systme d'exploitationMac OS X( partir de la version 10.3Panther), elle a t porte versLinuxetWindows. Ainsi le portage de WebKit pour les environnementsGTK+etQtse nomment respectivementWebKitGTK+etQtWebKit.

WebKit est unforkdu moteur de renduKHTMLdu projetKDEutilis notamment dans le navigateurKonqueror. Elle intgre deux sous-bibliothques:WebCoreetJavaScriptCorecorrespondant respectivement KHTMLetKJS.

Webkit intgrait unmoteurJavaScriptqui portait le mme nom. Il a depuis t rcrit, le nouveau moteur s'appelle dsormaisSquirrelFish, beaucoup plus rapide que le prcdent.

Utilisation webkitLa principale utilisation de WebKit est la cration de navigateurs Web:Google Chrome- Un navigateur Web produit parGoogle;Chromium- Le navigateur libre sur lequel est fond Google Chrome;Safari- Le premier navigateur fond sur WebKit d'Apple;Opera- Le navigateur deOpera 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 surKHTMLpropose WebKit depuis sa version 4.1;Epiphany- Le navigateur du bureauGNOME, 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 parOmni Grouppour Mac OS X;Shiira- Un navigateur libre dont le but tait de "combler les lacunes" deSafari;Le navigateur Web duS60deNokia- Version fonde surSymbian OS;

Autres utilisations de WebKitD'autres types de logiciels l'utilisent aussi.Mail- Le logiciel de courrier deMac OS X;Dashboard- Le logiciel de widgets deMac OS X;TextMate- Unditeur de texte;Yelp- Un logiciel pour lire la documentation sousGnome;Liferea- Un lecteur de fluxRSS;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 glibcL'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 POSIXLes exceptions C++ et les "wide char" ne sont pas supportsIl n'y a pas de "Standard Template Library" (STI)

9-Open SSLOpenSSL 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.

Le programme OpenSSLest un outil de ligne de commande pour utiliser les diffrentes fonctions de cryptographie de la bibliothque crypto de OpenSSL provenant du Shell.Il peut tre utilis pourCration 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