====== Le système d'exploitation mobile Android ======
**Logo** d'**Android** : {{ :wiki:systemes_d_exploitation:android_2023_3d_logo_and_wordmark.png?nolink&350 |}}
===== Présentation d'Android =====
**Android** est un **OS** qui utilise le **noyau Linux**, créé à l'origine par une entreprise du même non, **Android Inc** qui a été créée en octobre 2003 par **Andy Rubin**, **Rich Miner**, **Nick Sears** et **Chris White**. **Android Inc** souhaitait à la base faire d'**Android**, un **OS** pour **appareil photo** mais elle c'est très vite rendue compte que se ''marché'' n'était pas assez conséquent et c'est vite orientée vers le marché des **téléphones portables** pour concurrencer l'**OS** **Symbian** de l' ''entreprise'' **Symbian Ltd** et **Windows Mobile** de **Microsoft**. **Steve Perlman** , un ami proche de **Andy Rubin** a investi ''10 000 $'' en espèce pour aider au **développement** d'**Android** et parce qu'il jugeait le **projet** comme viable.
En 2005, **Andy Rubin** d'**Android Inc** a essayé de trouver un ''accord'' avec les ''entreprises'' **Samsung** et **HTC** sans réel succès mais peu de temps après, en juillet 2005, **Google** a racheté la ''société'' **Android Inc** pour ''50 millions'' de ''dollars''. Les ''employés'' clés d'**Android Inc** comme **Rubin**, **Miner**, **Sears** et **White**, ont rejoint **Google** dans le cadre de l' ''acquisition'' de la ''société'' par **Google**. Selon le ''vice-président'' de **Google**, **David Lawee**, il a déclaré en 2010, c'est la meilleure ''affaire'' que **Google** n'ai jamais conclu.
**Google** a conçu un premier **prototype** de **téléphone** composé d'un **clavier** ''physique'' à ''diposition'' **QWERTY** (similaire au **BlackBerry**) mais à la sortie du permier **iPhone** d'**Apple**, l'**iPhone 2G** présenté le 9 janvier 2007 puis mis sur le ''marché'' le 29 juin 2007 qui utilise un **écran taclile**, une petite ''révolution'' pour l'époque, **Google** décide de revoir la **conception** d'**Android** et rend son **OS** compatible avec les **écrans tacliles**. Le premier **téléphone tactile** que l'on appel désormais **Smartphone** sous **Android** est le **HTC Dream** aussi appelé **HTC G1** qui sort le 22 octobre 2008, qui est à la fois composé d'un **clavier physique** de type **AZERTY** (pour la France) et d'un **écran taclile**, il est plus précisément sur une version **beta** d'**Android 1.1**.
L'**Open Handset Alliance** (abrégé **OHA**), est un **consortium** de divers **entreprises** tel que des **oprérateurs téléphonique** comme **Bouygues Telecom**, de plusieurs **constructeurs** tel que **Samsung Electronics**, **Motorola Mobility** ou **LG Electronics**, des **semi-conducteurs** comme **Intel** ou **Nvidia** et des ''incontournables'' de l'**Internet** dont **eBay**, qui a comme ''but'' de **développer** des **normes** ''ouvertes'' pour les **appareils** de **téléphonie mobile** sous **Android**.
La première version d'**Android** est **Android 1.0** sortie le 23 septembre 2008 avec comme **noyau Linux** en version ''2.6.25'', elle ne prend pas encore en charge les **écrans tacliles** puis **Android 1.1** qui est basé sur le **noyau Linux** en version ''2.6.27'', sortie le 9 février 2009 pour le **smartphone** nommé **HTC Dream** de l' ''entreprise'' **HTC Corporation**, qui elle prend en charge les **écrans tacliles**. Le **kit de développement** (**SDK**) de **logiciel** a été publié le 12 novembre 2007.
L'**environnement d'exécution** des premières version d'**Android** utilisaient la **machine virtuelle** de type **Java**, nommé **Dalvik**, pour l'exécution des **logiciels** sous **Android 1.0** à **Android 4.4 KitKat** sortie le 4 novembre 2013 puis **Android** est passé au **moteur d'exécution** nommé **ART** à partir d'**Android 5.0 Lollipop** qui est sortie le 3 novembre 2014 et toujours utilisé ''acutellement''. Les **logiciels** sous **Android** sont depuis le début au **format** nommé **APK**.
**Android** est dès le départ un **OS** de type **open source**, c'est à dire que tout le monde à ''accès'' au **code source** d'**Android** et que n'importe quel **programmeur** peut aider au **développement** d'**Android** ou céer sa propre version d'**Android**, que l'on appelle courament une **ROM**, la plus ''populaire'' est **LineageOS**, qui à pour première version **LineageOS 13** qui est publiée le 24 décembre 2016 et la denière version **stable** est **LineageOS 21** sortie le 14 février 2024. À la base **LineageOS** c'est basé sur **CyanogenMod** qui est né en 2009 et sa denière version **stable** est **CyanogenMod 13.0** sortie le 15 août 2016.
Le fait qu'**Android** soit **open source** est un gros ''avantage'' pour **Google** car toutes personnes qui souhaitent faire évoluer l'**OS** peut le faire, inutile de faire partie de **Google**, d'ailleurs chaque **constructeur** de **smartphone** on souvent leur propre version d'**Android** tel que **Samsung** dont sa **ROM** porte le nom de **One UI** par exemple. **Android** sans les **services Google** porte le nom d'**Android Open Source Project** (**//AOSP//**) et est disponible [[https://source.android.com/?hl=fr|ici]].
La denière version d'**Android** est ** Android 15** qui est basé sur le **noyau Linux 6.6**, **Android 15** sortie en version **stable** le 15 octobre 2024. **Android** n'est plus seulement un **OS** pour les **smartphones**, il y a **Android TV** pour les **téléviseurs connectés** (**SmartTV**) ou les **box Android TV**, **Android Auto** pour les **voitures**, et **Wear OS** pour les **montres connectées** (**smartwatch**). Il existe également une version d'**Android** qui fonctionne sur les **compatibles PC** du non d'**Android-x86** et divers **nano-ordinateurs** en principe à **processeur** de type **ARM** (**processeurs** que l'ont retrouvent en autres dans les **smartphones**) comme le ''populaire'' **Raspberry Pi**.
En définitive **Android** fait partie des **OS** de la famille **Linux** donc de se fait, c'est un **système Unix** tout comme les ''3/4'' des **OS** actuels, hormis **Windows** ! Mais désormais, il est à noter que même **Windows** intègre un **sous-système Linux** (depuis **Windows 10**) au sein de son **OS**, appelé **WSL** qui est par défaut **Ubuntu**.
==== Sites en rapport à Android ====
* [[https://www.android.com/|Site Officiel Android]]
* [[https://source.android.com/?hl=fr|Android AOSP]] permet de récupérer le **code source** d'**Android**.
* [[https://lineageos.org/|LineageOS]], la version alternative d'**Android** la plus ''populaire''.
* [[https://www.android-x86.org/|Android-x86]] pour installer **Android** sur **compatible PC**.
* [[https://konstakang.com/|KonstaKANG]] permet en autres d'installer **Android** sur **Raspberry Pi**.
* [[https://www.xda-developers.com/|XDA developers]] est un **site** de référence pour tout ce qui concerne les **OS** mobile et en particulier **Android**.
* [[https://xdaforums.com/|XDA Forums]] est idéal pour toutes questions liées à **Android**.
* [[https://opengapps.org/|The Open GApps]] permet d'installer les **Services Google Play** sur une **ROM Custom** (**Android** hors **constructeur** tel que **LineageOS**).
* [[https://www.frandroid.com/|FrAndroid]]
* [[https://www.phonandroid.com/|PhonAndroid]]
===== Caractéristiques d'Android =====
==== Résumé d'Android ====
**Android** est composé des **éléments** ''essentiels'' suivants :
* Le ''coeur'' du **système** **Android** est le **noyau Linux**.
* Les **bibliothèques natives** qui sont des **bibliothèques** de **bas niveau** propres à **Linux** et aux **logiciels** de base **Android** tel que la **libc** du nom de **Bionic** sous **Android**.
* Le **moteur d'exécution** (**machine virtuelle** de type **Java**) du nom de **ART**, qui permet de faire **fonctionner** les **applications** **Android** qui était auparavant la **machine virtuelle** nommé **Dalvik**.
* les **bibliothèques** **Java** qui incluent les ''fonctionnalités'' de **haut niveau** des **applications** **Android**, tel que l'**interface utilisateur graphique**, les **applications** liées aux **réseaux** (comme **Internet**, **FTP** et tous une panoplie de **protocoles** **réseaux**), ses **bibliothèques** sont exécutées par le **runtime** **ART**.
* Des **utilitaires** pour le **développement** de **logiciels** pour **Android**.
* Des **mécanismes** de **sécurité** pour la protection des **données** des **utilisateurs** qui fournissent le **contrôle d'accès**, les **permissions** via le **noyau Linux** et les **mises à jour** de **sécurité** propre à **Android**.
L'**interface utilisateur graphique** d'android comprend en autres :
* Le **gestionnaire de fenêtre** qui permet d'intéragir avec le **système**.
* Une **barre d'état**, de **notifications**, l'accès aux **paramètres** d'**Android**.
* L'accès à toutes les **applications** installés par un simple glisser vers le haut ou le bas de l'**écran** (auparavant il y avait un **menu tactile** pour y accèder).
* Plusieurs **bureaux virtuelles** sur l'**écran d'acceuil**.
Par défaut sur une **ROM Stock** (version officielle d'**Android** d'un **constructeur**) il y a les **services Google** (**applications** de **Google** par défaut qui sont composés de :
* **Chrome**, le navigateur officiel de **Google**.
* **Gmail**, le client **Mail** de **Google**.
* **Google Maps** qui permet en autres d'être utilisé comme **GPS**.
* **YouTube** le service de **vidéos** de **Google**.
* **Google Drive** qui est le **service** de **cloud computing** de **Google**.
* **Google TV** qui permet en autres d'intéragir avec votre **TV connecté** sous **Android TV**.
* **Google Meet** est le **logiciel** de **messagerie instantanée** et **visioconférence**.
* **Google Photos** qui permet d'avoir accès à son album **photos** et plus encore.
* Et bien d'autres **services**. Par rapport à **Android**, tous ses **logiciels** sont ''prioritaires''.
==== Les Stores d'Android ====
**Android**, dieu merci, ne dispose pas seulement du **Play Store** de **Google**, parmi les **Stores** (**magasin d'applications**) de type **propriétaires** il y a : **Amazon Appstore** de l' ''entreprise'' **Amazon**, **Huawei AppGallery** de **Huawei**, **Galaxy Store** de **Samsung** (installé sur chaque **smartphone** de ''marque'' **Samsung**), **Xiaomi Mi GetApps** de **Xiaomi** et bien d'autres.
Vous avez également la possibilité de téléchager les **logiciels** souhaités via le **Web**, comme **Aptoide**, **XDA Labs**, **TapTap**, **Cafe Bazaar**,..., **F-Droid** permet aussi de télécharger les **applications** directement sur son [[https://f-droid.org/fr/|site]] officiel.
En ce qui concerne le **Store** dédié à l'**open source**, il y a le ''célèbre'' **F-Droid** qui n'inclus que des **logiciels libres** et qui à l'avantage de proposer des **applications** qui ne sont pas inclusent par **Google** car allant à l'encontre de leur ''business'' comme des **applications** de type **YouTube** sans avoir les annonces ''publicitaires'', comme **NewPipe** par exemple qui est un **logiciel** qui permet d'avoir les ''avantages'' de **YouTube Premium** (version ''payante'' de **YouTube**) comme le ''suppression'' des ''publicités'' et la possiblité d'écouter la **musique** en ''arrière plan'', en continuant d'utiliser son **phone** sans que le ''son'' se coupe. Pour les personnes qui souhaitent avoir un **émulateur de terminal** de type **Linux** (de type **Debian**, **Ubuntu**) il y a la merveilleuse **applications** de nom de **Termux** qui est très complète et qui permet d'avoir quasiment toutes les ''fonctionnalités'' d'un **OS** **GNU/Linux** sous **Android** ([[https://termux.dev/en/|Site officiel Tremux]]).
Toutes les **applications** installées via **F-Droid** n'affichent aucun **pop-up** (**fenêtre** ''publicitaire'' surgissante), ce qui n'est pas le cas des **logiciels** de type **freeware** sur le **Play Store** qui affichent des **fenêtres** ''publicitaires'' à tout va !
Pour éviter que les **utilisateurs** installent des **applications** hors **Play Store**, **Google** à renfocer la **sécurité** mais surtout le souhait de **Google** était je pense avant tout que les **utilisateurs** finaux soient obligés de passer par leur **Store**, pour contourner celà il faut donner l'**autorisation** à la ''source'' de **logiciels** de pouvoir installer le **logiciel**. C'était beaucoup plus simple avant, il suffisait d'activer les ''sources inconnues'' mais maintenant il faut donner des **autorisations** à chaque **logiciel** concerné.
===== Documentation complémentaire sur Android =====
Vous trouverez dans cette partie les [[wiki:systemes_d_exploitation:android:tutoriels sur Android]].