{{tag>téléphonie matériel programmation android}}
----
{{ https://www.masonbruce.com/wp-content/uploads/2015/03/android-logo-transparent-background.png?90|Logo Android}}
====== Android ======
**Android** est un système d'exploitation pour appareils mobiles tactiles basé sur le noyau Linux. Il a été développé par Google et [[wpfr>Open_Handset_Alliance|l'Open Handset Alliance]].
Tout comme la plupart des systèmes pour appareils mobiles (iOS, Symbian, PalmOS, Sailfish, ...), Android permet l'installation d'applications (gratuites ou payantes) via [[https://play.google.com/store|Google Play]] ou via des dépôts alternatifs comme par exemple [[http://f-droid.org/|F-droid]] qui comporte uniquement des applications libres.
Le système est sous licence [[wpfr>Licence_Apache|Apache]] version 2, certains logiciels et surcouches graphiques sont //open source// et gratuits, d'autres en partie voire entièrement propriétaires ( [[wpfr>Google_Apps|Google apps]], [[wp>HTC_Sense|HTC Sense]], [[wp>Motoblur|Motoblur]]...)
Cette page n'a pas pour but de parler uniquement d'Android mais de tout ce qui est lié à Android **et** Ubuntu.
===== Usages Android / Ubuntu =====
==== Partages de tout type de fichiers ====
Si vous voulez copier / déplacer des fichiers d'Ubuntu vers Android ou //vice versa//, voici les différentes méthodes :
* **Avec connexion filaire**
* [[android#UMS (Universal Mass Storage)|En mode UMS]] : l'appareil est utilisable comme une clef USB
* [[android#MTP / PTP|En mode MTP / PTP]] : l'appareil est utilisable comme un appareil photo
* [[android#ADB|En mode ADB]] : l'appareil est en mode développeur (utilisation avancée)
* **Avec connexion sans fil :**
* [[android#FTP|En mode FTP]]
* Avec [[android#FTP|Dropbox]]
* Avec [[google_drive|Google Drive]]
* Avec [[android#Pushbullet|Pushbullet]]
* En envoyant des fichiers en bluetooth
* Avec [[android#AirDroid|AirDroid]]
* Avec [[http://www.msec.it/blog/?page_id=11|Dukto]]
* [[android#ADB|Avec QtAdb]] : interface graphique pour ADB : l'appareil est en mode développeur (utilisation avancée)
* Avec [[kdeconnect-kde|KDE Connect]] et l'option "Envoyer des fichiers"
* Avec [[syncthing|Syncthing]] qui permet de créer des paires de répertoires entre différents appareils synchronisées automatiquement en fonction des réseaux LAN, Wifi ou Internet disponibles (configurable sous Android)
==== Partages d'images ====
Si vous voulez partager des images, vous pouvez les partager avec les méthodes du chapitre précédent.
En plus, vous pouvez les partager :
* Via Google+
* Via Google photo
Sur Android, les photos se trouvent dans **/DCIM/Camera**
==== Partages de musiques ====
En plus des méthodes décrites au chapitre **Partages de tout type de fichiers**, vous pouvez :
* Utiliser [[google_music_manager|Google Music]]
* Avec les connexions [[android#Upnp / dnla|Upnp / DNLA]]
Sur Android, vous trouverez plusieurs endroits pour stocker des sons :
* **/Alarms** : sonneries du réveil
* **/Music** : musiques
* **/Notifications** : notifications
* **/Ringtones** : sonneries téléphoniques
==== Partages du presse papier (clipboard) ====
Des idées :
* gsconnect / [[kdeconnect-kde|KDE Connect]]
* [[pushbullet|Pushbullet]]
* L'outils clipt qui synchronise le presse papier entre Chrome, Firefox, [[https://play.google.com/store/apps/details?id=studio.onelab.clipboard|Android]] ([[https://technochouette.istocks.club/comment-synchroniser-le-presse-papiers-sur-android-et-pc/2021-07-08/|voir cette page]])
==== Gestions des notifications ====
Il est possible de recevoir les notifications de son téléphone sur Ubuntu via :
* Android Desktop Notifications
* [[android#Pushbullet|Pushbullet]]
* [[android#Airdroid|Airdroid]]
* [[kdeconnect-kde|KDE Connect]]
* [[http://mightytext.net|MightyText]]
==== Partages d'écran ====
Vous pouvez voir et/ou controler Ubuntu via Android ou le contraire via :
* VNC (si Android est rooté)
* Google Bureau à distance
* [[teamviewer|TeamViewer]]
* [[scrcpy|scrcpy]] - site officiel [[https://github.com/Genymobile/scrcpy]]
===VNC==
Pour accéder à Ubuntu depuis Android, si vous avez un serveur SSH sur Ubuntu et un écran connecté à l'ordinateur, vous pouvez lancer un serveur VNC en ligne de commande (x11vnc) sans devoir être devant votre ordinateur. Pour cela, tapez
sudo dpkg-reconfigure x11-common
Choisissez "Nobody"
Risque de sécurité : n'importe qui ayant un accès SSH à votre machine peut agir sur vos programmes (console et/ou interface graphique)
Tapez
env
pour voir vos variables d'environnent.
Si vous ne voyez pas écrit DISPLAY=localhost:0, entrez
export DISPLAY=localhost:0
Puis lancer votre serveur VNC (je vous propose x11vnc)
x11vnc --forever --passwd mot_de_passe_du_serveur_VNC
===Serveur X11 distant (X11 forwarding)===
Vous pouvez aussi contrôler à distance Ubuntu :
* installez un serveur [[ssh]] sur Ubuntu
* installez sur votre appareil android un client SSH (JuiceSSH, ConnectBot) et un serveur [[xorg|X11]] (Xserver XSDL).
* Lancez votre serveur X sur Android
* connectez-vous en SSH à votre PC, et tapez
export DISPLAY=adresse_ip_de_votre_appareil_android:0
Voilà ! Vous pouvez maintenant lancer des logiciels graphiques à distance qui s'exécuteront sur votre PC.
exemple: pour lancer Firefox, tapez dans le client ssh
firefox
Pour l'arrêter, tapez CTRL+C.
Pour lancer une interface graphique, tapez (suivant si vous utilisez Unity, KDE, fluxbox...)
gnome-session
startkde
fluxbox
====Utiliser des logiciels Android sous Ubuntu====
Cette partie est une ébauche à compléter et à mettre en page.
Il est possible de lancer des applications Android sur Ubuntu. Cela permet d'augmenter considérablement le nombre d'applications et jeux sous Ubuntu. Voici les solutions triées par ordre d'efficacité :
* [[Anbox]] : logiciel qui utilise QEMU comme émulateur d’Android, permettant ainsi au système de faire tourner les applications de manière transparente. Le système permet d’utiliser les applications Android de la même manière que les programmes classiques et profitent des mêmes enrichissements ergonomiques.
* **[[WayDroid]]** : Créée en 2021, il s'agit d'une solution nouvelle, en cours de développement, basée sur un container intégré permettant de démarrer un système Android complet au sein d'un système GNU/Linux ordinaire comme Ubuntu. WayDroid est la contraction des mots "Wayland" et "Android". L'environnement d'exécution Android fonctionne sur le mode Wayland et est livré avec une image système Android personnalisée minimale basée sur LineageOS. WayDroid peut être utilisé en mode intégré (les apps Android se trouvent dans le menu GNOME avec les autres logiciels), en version multi-fenêtres, ou encore en mode "Full UI" (on ouvre une fenêtre Android à part entière). La version actuelle est basée sur Android 10. A noter que WayDroid n'est pour l'instant pas compatible avec les pilotes propriétaires Nvidia Site officiel : [[https://www.waydro.id/|WayDroid]]*.
* **Shashlik** : avec KDE. Voir [[https://www.howtoforge.com/tutorial/how-to-install-and-run-android-apk-on-linux-with-shashlik|cette page sur HowToForge]] en Anglais pour plus d'info
* [[ARChon]] / [[Arc welder]] qui permet de lancer des applications Android sur Chrome/Chromium
* [[https://www.genymotion.com/|Genymotion]] : application française d'émulation gratuite pour un usage personnel uniquement (apprentissage, divertissement).
* Permet d'émuler Android v.2.3.7 à 5.1.0 sur différents téléphones et tablettes (Nexus, HTC, Motorola, Samsung, Sony et custom).
* Nécessite
* l'installation de [[:virtualbox|VirtualBox]] ainsi que
* l'enregistrement sur leur site pour pouvoir télécharger les images Android.
* C'est la seule façon, à l'heure actuelle, de faire fonctionner correctement les jeux "performants" Android sous Ubuntu 16.04 (Xenial Xerus.
* 64bit ou supérieur, Debian 8 (Jessie), Fedora 24 - 64bit,
* Processeur 64 bits, avec une capacité VT-x ou AMD-V, activé dans les paramètres du BIOS, GPU récent et dédié,
* 400 Mo d'espace disque,
* 2 Go de RAM pour la version Genymotion 2.8.1 seule disponible sur le site de Genymotion.
(Exemple de config qui tourne bien sur 14.04LTS : Galaxy Note 4.1.1 + [[https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCsQFjABahUKEwi4tcvs5Y7GAhVBQBQKHf-RALg&url=https%3A%2F%2Fdocs.google.com%2Ffile%2Fd%2F0B-p1r5SNN4adcmhtaGdMVml0Qzg%2Fedit&ei=Mj99VbjUKMGAUf-jgsAL&usg=AFQjCNGY1LZ57B5D6BLUkB-RN2rh9omqYQ&sig2=BsNeJSvlBKNUbFXMC3fyBQ&bvm=bv.95515949,d.d24|Genymotion-ARM-Translation_v1.1.zip]] + [[https://lu4ndr01d.googlecode.com/files/gapps-jb-20121011-signed.zip|gapps-jb-20121011-signed.zip]] pour accéder au Play Store, puis installer des jeux).
* [[https://www.android-x86.org/|Android-x86]] + [[:virtualbox|VirtualBox]]. Tutoriel d'installation sur [[http://www.it-connect.fr/comment-installer-android-4-4-sous-vmware-workstation/|IT-Connect]].
* **[[https://www.andyroid.net/|Andy]]** : émulation
* **Kit de développement officiel d'Android** : Android SDK – Android Emulator / AVDs. Tutoriel d'installation [[http://www.android-dev.fr/installation-du-sdk-android-sous-ubuntu|ICI]].
Pour plus d'information, veuillez vous inspirer de [[https://techapple.net/2014/05/5-best-android-emulators-linux-run-android-apps-linux-ubuntulinuxmintfedoraarchlinuxopensusemageiacentos-etc/|cet article chez techapple.net]]
====Afficher et contrôler des appareils Android sous Ubuntu====
Voir l'article détaillé [[scrcpy]]
====Développer une application sous Android====
Voir l'article détaillé [[Android SDK]]
====Sauvegarder votre Téléphone sur votre PC Ubuntu====
1. [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] suivant sur votre PC : **[[apt>adb|adb]]**.
2. Connectez votre téléphone et votre PC via un câble.
3. Activez sur votre téléphone le **débogage USB** (mode développeur / ADB) :\\
- Sur votre téléphone : Paramètres > Système > "À propos du téléphone" > Tapoter **7 fois** sur le « numéro de build » => Le menu « options pour développeurs » apparaît dans les paramètres système.\\
- Aller dans Paramètres > Système > « options pour développeurs » > activer "**débogage USB**".
4. Sur votre PC, au terminal, lancer le serveur ADB via la commande suivante :
adb start-server
L'écran de votre téléphone doit être allumé : si le téléphone vous demande de confirmer ("Allow USB debugging ?"), validez rapidement.
5. Vous pouvez désormais lancer la sauvegarde au terminal, depuis votre PC :
adb backup -apk -shared -all -f backup-file.adb
Votre téléphone doit être allumé car une fenêtre va s'ouvrir dessus pour vous demander de confirmer la sauvegarde.\\
La sauvegarde (ici sous le nom **backup-file.adb**) se met à la racine de votre compte Ubuntu (par exemple ''/home/mon-pseudo/'').
Vous avez quelques options sur lesquelles jouer :
* ''-apk'' sauvegarde les applications, ''-noapk'' ne le fait pas.
* Vous pouvez choisir d'encrypter les données sauvegardées en entrant un mot de passe lorsque la question vous sera posée (optionnel).
* l'option ''-shared'' sauvegardera les données de la carte SD, tandis que ''-noshared'' ne sauvegardera pas la carte SD.
* ''-all'' sauvegardera les données du système ET les données des applications.
__**Pour restaurer la sauvegarde sur le téléphone**__ (ou sur un nouveau téléphone), les **étapes 1 à 4 ci-dessus** doivent être de nouveaux exécutées, puis sur votre PC, au terminal, tapez :
adb restore backup-file.ab
Dans cette version de la commande, le fichier de sauvegarde est sur la racine de votre compte Ubuntu. Sinon, il faudra indiquer l'emplacement.
===== Technologies =====
==== ADB ====
ADB (Android Debug Bridge) est un outil permettant de dialoguer nativement avec un périphérique Android.
Cet outil permet de :
* Copier des fichiers
* Faire des captures d'écran
* Sauvegarder ses données Android
* Lancer des commandes internes telles que reboot, commande Linux, ...
L'installation d'ADB est en 2 étapes :
- Installer sur votre ordinateur ADB, qui se trouve dans le SDK d'Android (est aussi dans les dépots: **[[apt>adb|adb]]**)
- Autoriser Ubuntu à utiliser le périphérique USB Android. Dans quel cas la commande ''lsusb'' vous permettra d'identifier votre périphérique.
==== AirDroid ====
[[http://web.airdroid.com|l'environnement AirDroid]] permet :
* D'échanger des fichiers entre son ordinateur et son appareil Android
* De consulter ses contacts à partir d'un ordinateur
* D'écrire des SMS à partir d'un ordinateur
* De faire une capture d'écran d'Android
* De retrouver son appareil Android
* ...
Installation / utilisation :
* Sur l'ordinateur :
- Ouvrir l'adresse [[http://web.airdroid.com]]
- Créer un compte (si ce n'est pas fait)
- Se connecter
* Sur Android :
- Se mettre en Wi-Fi ou internet mobile (3G/4G)
- Installer [[https://www.airdroid.com/fr/#go_download_airdroid|l'application AirDroid depuis le site officiel (apk disponible)]]
- Créer un compte (si ce n'est pas fait)
- Se connecter
:!: il est inutile de créer un compte, il suffit d'adresser son navigateur internet à l'adresse IP Wi-Fi du téléphone, au port 8888, exemple : http://192.168.0.196:8888
==== Dropbox ====
Dropbox permet de créer un dossier sur l'ordinateur et sur Android avec une synchronisation automatique entre tous les appareils ou Dropbox est installé et connecté.
Installation / utilisation :
* Sur l'ordinateur (avec installation) :
* Voir la page [[dropbox|Dropbox]]
* Sur l'ordinateur (sans installation) :
- Ouvrir l'adresse [[http://www.dropbox.com]]
- Créer un compte (si ce n'est pas fait)
- Se connecter
* Sur Android :
- Se mettre en Wi-Fi ou internet mobile (3G/4G)
- Installer [[https://play.google.com/store/apps/details?id=com.dropbox.android|l'application DropBox]]
- Se connecter
==== FTP ====
FTP (File Transfer Protocol) est un protocole de transfert de fichier. Pour simplification, il est conseillé de se connecter en Wi-Fi sur le même réseau qu'Ubuntu. Pour connecter votre ordinateur Ubuntu à votre appareil Android en utilisant FTP et Wi-Fi, l'utilisation est simple soit avec :
* [[https://play.google.com/store/apps/details?id=lutey.FTPServer|ftpserver]] :
* Installez l'application [[https://play.google.com/store/apps/details?id=lutey.FTPServer|FTPServer]] d'Andreas Liebig et la configurer comme décrit sur ce [[http://choorucode.com/2012/12/29/ftpserver-app-for-android/|post]] :
* Définissez un utilisateur, un mot de passe, un port d'accès et le réseau Wi-Fi par lequel vous autorisez la connexion à votre téléphone,
* Lancer le serveur FTP dans l'application, et vérifier l'adresse IP que votre téléphone a sur le réseau Wi-Fi dans le log affiché par l'application.
Vous pourrez alors accéder au contenu de votre téléphone. Vous pouvez également créer un signet vers votre téléphone pour y accéder plus rapidement ("Signets > Ajouter un signet").
* Autre possibilité avec **ESExplorer**, allez dans //Outils -> Gestion accès à distance//, entrez l'adresse ip fourni par Android dans votre navigateur web sous Ubuntu ou bien via [[:Nautilus]].
Dans les deux cas, vous pouvez :
* Vous connecter à votre téléphone en utilisant [[:Nautilus]] :
* Fichier > Se connecter à un serveur
* Sélectionner 'FTP (avec identification)' ou entrez simple l'ip,
* Saisir les données utilisées pour configurer l'application FTPServer (avec l'adresse IP dans 'Serveur')
* Avec votre navigateur Web, à l'adresse fournie par votre smartphone.
==== MTP / PTP ====
Les normes [[wpfr>Picture_Transfer_Protocol|PTP (Picture Transfer Protocol - lien Wikipedia)]] et [[wpfr>Media_Transfer_Protocol|MTP (Multimedia Transfer Protocol - lien Wikipedia)]] semblent être les normes par défaut sur les appareils Android à partir de 2014.\\
Si vous rencontrez toujours des problèmes pour accéder à votre smartphone ou votre tablette Android [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt>go-mtpfs]]**.\\
Plus d'information dans les pages [[mtp|MTP]] et [[photo|PTP]].
==== Pushbullet ====
Pushbullet permet d'envoyer le contenu entre l'appareil Android et un autre appareil (ordinateur, tablette, smartphone) :
* Notes
* Liste
* Fichiers de moins de 25 Mo
* Notification d'Android
* Adresse
* ...
Voir la page [[Pushbullet|Pushbullet]] pour plus de détails
==== UMS (Universal Mass Storage) ====
La majorité des anciens appareils Android supportent la norme [[wpfr>USB_Mass_Storage|UMS (Universal Mass Storage - lien Wikipedia)]].
Si votre appareil le supporte, alors vous pouvez naviguer sur votre appareil comme sur une clef USB. L'utilisation est identique
La tendance est à l'utilisation des normes MTP / PTP
Pour accéder au stockage USB, il faut connecter l'appareil par câble à votre PC (sur certains modèles il faut au contraire laisser débranché avant de faire la manip suivante), puis aller dans les paramètres d'Android : Paramètres > Section : Sans fil et réseaux > Paramètres supplémentaires > Utilitaires USB, et activer "Connecter le stockage au PC".
Selon votre version Android le chemin d’accès à ce menu peut être légèrement différent.
Pour la 13.04, une simple connexion par câble USB permet d'accéder via [[nautilus|Nautilus]] (sous Unity) ou [[thunar|Thunar]] (Xubuntu) à l'ensemble de votre appareil Android. Un bug empêche parfois l'ouverture du périphérique par [[Dolphin]] (Kubuntu), [[http://forum.ubuntu-fr.org/viewtopic.php?pid=15484671#p15484671|consulter ce topic]] pour régler le problème.
==== Upnp / dnla ====
Cette norme permet de lire du contenu multimédia (musique, vidéo, image) entre différents appareils de la maison (Freebox, Android, console de jeux, PC, ...)
Grace à cette norme, on peut lire à partir d'un lecteur (client) tout contenu multimédia se trouvant dans une source (serveur).
* Lecteur multimédia / client Upnp / dnla :
* Android
* Archos Video Player
* A compléter
* Ubuntu
* [[VLC]]
* Sources / serveur Upnp / dnla :
* Android :
* [[https://play.google.com/store/apps/details?id=com.dbapp.android.mediahouse|Media House]]
* Ubuntu :
* mediatomb
* minidlna
* fuppes
* ushare
* gerbera
=====Annexe : arborescence Android=====
* Les photos se trouvent dans **/DCIM/Camera**
* Les musiques sont dans **/Music**, et on peut simplement y déposer ses répertoires avec ses fichiers [[wpfr>Ogg|OGG]], MP3 ou [[wpfr>FLAC]].
* Les films sont à déposer dans **/Movies**
* Les sonneries téléphoniques sont dans **/Ringtones**
* Les sonneries du réveil sont dans **/Alarms**
* Les notifications sont dans **/Notifications**
===== Voir aussi =====
* **(en)** [[https://www.android.com/|Site officiel d'Android]]
* **(en)** [[ http://developer.android.com/guide/topics/fundamentals.html]]
* **(en)** [[http://code.google.com/android/download.html|Téléchargement du SDK]]
* **(en)** [[http://developer.android.com/tools/device.html|Configuration des périphériques avec le dernier Bundle Android - ADT bundle linux]]
* **(fr)** [[Google|L'écosysteme Google avec Linux]]
----
//Contributeurs :jahbromo, listenup, [[:utilisateurs:Herrleiche]], [[:utilisateurs:sangorys]], JimBo //