Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

utilisateurs:karting06:android [Le 14/04/2012, 22:34] (Version actuelle)
Karting06 créée
Ligne 1: Ligne 1:
 +{{tag>​téléphonie matériel programmation}}
 +----
  
 +====== Android ======
 +
 +
 +[[http://​www.android.com|Android]] est un système d'​exploitation pour appareils mobiles tactiles basé sur le noyau Linux. Il a été développé par Google et [[http://​fr.wikipedia.org/​wiki/​Open_Handset_Alliance|l'​Open Handset Alliance]].
 +
 +Tout comme la plupart des systèmes pour appareils mobiles (IOS, Symbian, PalmOS...), Android permet l'​installation d'​applications (gratuites aussi bien que payantes) via [[https://​play.google.com/​store|Google Play]] ou via des market alternatifs comme par exemple [[http://​f-droid.org/​|F-droid]] qui comporte uniquement des applications libres.
 +
 +Le système est sous licence [[http://​fr.wikipedia.org/​wiki/​Licence_Apache|Apache]] version 2, certains logiciels et surcouches graphiques sont open source et gratuits, d'​autres en partie voire entièrement propriétaires ( [[http://​fr.wikipedia.org/​wiki/​Google_Apps|Google apps]], [[http://​fr.wikipedia.org/​wiki/​HTC_Sense|HTC Sense]], [[http://​en.wikipedia.org/​wiki/​Motoblur|Motoblur]]...)
 +
 +
 +[[http://​www.wired.com/​epicenter/​2010/​10/​is-android-open/​|Est ce qu'​Android (ou iOS) est OUVERT ?]]
 +
 +===== Développer des applications pour Android =====
 +
 +À l'aide du SDK fourni par Google et d'un [[http://​fr.wikipedia.org/​wiki/​Environnement_de_d%C3%A9veloppement_int%C3%A9gr%C3%A9|IDE]],​ vous pouvez créer vous-même des applications à installer sur votre téléphone.
 +
 +==== Pré-requis ====
 +
 +==Java, Ant, Lib==
 +
 +Le langage utilisé pour développer vos applications Android est le langage Java. Vous devrez donc installer une machine virtuelle Java ainsi que le kit de développement (JDK).
 +
 +[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] suivants
 +   * **[[apt>​ia32-libs]]** ou **[[apt>​ia32-libs-multiarch]]** si vous utilisez Ubuntu 11.04 ou antérieure **en version 64bits**
 +   * **[[apt>​openjdk-6-jdk]]** et **[[apt>​ant]]** dans tous les cas
 +
 +
 +
 +=== Eclipse (optionnel, les autres grands IDE - Netbeans, IntelliJ IDEA - supportent également Android) ===
 +
 +Google a développé un plugin gratuit pour [[eclipse|Eclipse]],​ l'IDE incontournable pour Java, afin de faciliter le développement de vos applications Android. Cependant l'​utilisation d'​[[eclipse|Eclipse]] n'est pas indispensable pour développer vos applications. ​
 +
 +Si vous souhaitez l'​utiliser,​ installez simplement le paquet **[[apt>​eclipse]]**.
 +
 +Puis lancez Eclipse et allez dans : //Help -> Install New Software//
 +Cliquez sur « Add » et ajouter les « Software sites » ci-dessous selon le schéma\\ ''​[Name] - [Location]''​ :
 +<​code>​
 +android ​ - https://​dl-ssl.google.com/​android/​eclipse/​
 +GEF      - http://​download.eclipse.org/​tools/​gef/​updates/​releases/​
 +EMF      - http://​download.eclipse.org/​modeling/​emf/​updates/​releases/​
 +GMF      - http://​download.eclipse.org/​modeling/​gmf/​updates/​releases
 +Webtools - http://​download.eclipse.org/​webtools/​updates/​
 +Google eclipse Plugin - http://​dl.google.com/​eclipse/​plugin/​3.7
 +Releases Indigo - http://​download.eclipse.org/​releases/​indigo
 +</​code>​
 +
 +Puis installer la totalité des champs qui se trouvent dans le nom de schéma "​android"​ (ligne android ci-dessus)
 +
 +Vous serez ensuite invité à redémarrer Eclipse.
 +
 +Lors de son redémarrage,​ il vous indiquera qu'il ne trouve pas le SDK de Android. C'est normal, il faut suivre la procédure ci-dessous.
 +
 +==== Installation de l'​environnement de développement ====
 +
 +Afin de développer vos applications,​ il vous faudra installer le SDK pour Android et le plugin ADT pour Eclipse si vous souhaitez l'​utiliser.
 +
 +=== Installation du SDK ===
 +
 +Commencez par télécharger le SDK pour Linux sur le site [[http://​developer.android.com/​sdk/​index.html | d'​Android]].
 +
 +Puis décompressez dans un dossier à la racine de votre "​home"​ et installez les composants supplémentaires vous permettant d'​exécuter les diverses commandes de base tel que "​adb",​ "​fastboot",​ etc... ​
 +
 +<​code>​
 +tar -zxvf android-sdk_r*-linux.tgz -C ~/
 +cd android-sdk-linux/​tools/​
 +~/​android-sdk-linux/​tools/​android
 +</​code>​
 +
 +Une fois ceci fait, sélectionnez les composants à installer (SDK Platform-tools revision xx, Documentation,​ SDK Platform Android 3.x ..., et les composants tiers, en fonction du matériel pour lequel vous souhaitez développer) et choisissez "​Install Selected"​.
 +Cela peut prendre un peu de temps.
 +
 +Tout en restant dans le répertoire "​tools",​ mettez ensuite à jour la variable d'​environnement PATH pour accéder au programme du SDK :
 +<​code>​
 +echo "​export PATH=\${PATH}:​$(pwd)"​ >> ~/.bashrc
 +cd ../​platform-tools
 +echo "​export PATH=\${PATH}:​$(pwd)"​ >> ~/.bashrc
 +. ~/.bashrc
 +</​code>​
 +<note important>​Les quatres dernières commandes ajoutent le chemin courant (pwd) au PATH, donc permet d'​exécuter les binaires qui se trouvent dans "​android-sdk-linux/​tools"​ et "​android-sdk-linux/​platform-tools"​.
 +</​note>​
 +Ensuite mettez à jour le SDK : 
 +
 +<​code>​
 +android update sdk
 +</​code>​
 +
 +Il vous faudra alors mettre à jour la liste des paquets et choisir ceux que vous voulez installer. Les paquets appelés "​Target"​ correspondent à la version d'​Android cible (1.5, 1.6, 2.0...) sous laquelle vous souhaitez développer.
 +
 +<​code>​
 +android list targets
 +</​code>​
 +
 +Ensuite il vous faudra configurer des machines virtuelles, afin de tester l'​exécution de votre programme dans différents environnements.
 +
 +<note help>Si vous avez une erreur pour les téléchargements,​ allez dans le menu **Settings** et cochez la case **Force %%https://​...%% sources to be fetched using %%http://​...%%**</​note>​
 +
 +=== Installation du plugin pour Eclipse 3.5 Galileo ===
 +
 +  - Lancer Eclipse et sélectionner le menu **Help > Install New Software**
 +  - Dans la boite de dialogue **Available Software**, cliquez sur **Add**
 +  - Dans la boite de dialogue **Add Site**, entrez un nom au site (par exemple "​Android Plugin"​) dans le champs **Name**. Puis dans le champs **Location** entrez l'URL suivante [[http://​dl-ssl.google.com/​android/​eclipse/​]] et cliquez sur **OK**.
 +  - De retour dans **Available Software**, vous devriez voir "​Developer Tools" ajouté dans la liste. Cochez la case à coté de **Developer Tools**, qui sélectionnera automatiquement les outils **Android DDMS**, **Android Development Tools** et **Android Hierarchy Viewer**. Cliquez ensuite sur **Next**.
 +  - Dans la liste de la fenêtre **Install Details**, les plugins Android DDMS, Android Development Tools et Android Hierarchy Viewer doivent être présents. Cliquez alors sur **Next** pour lire et accepter les conditions de la licence, puis cliquez sur **Finish**.
 +  - Redémarrez Eclipse.
 +
 +<note help>Si vous avez des problèmes pour télécharger les plugins, essayez de remplacer "​https"​ (qui est préféré pour des raisons de sécurité) par "​http"​ dans l'​URL.</​note>​
 +
 +Pour finir, configurez Eclipse pour qu'il utilise le SDK :
 +  - Allez dans le menu **Window -> Preferences...**.
 +  - Choisissez Android dans la liste de gauche.
 +  - Dans le champs **SDK Location**, cliquez sur **Browse...** et sélectionnez le répertoire dans lequel vous avez installé le SDK Android.
 +  - Cliquez sur **Apply**, puis OK.
 +
 +==== Concevoir les applications ====
 +
 +
 +Voici une liste de liens où vous trouverez de bon tutoriaux pour vous aider à développer vos applications Android.
 +
 +  * http://​www.pointgphone.com/​tutoriaux-android
 +  * http://​www.android-dev.fr
 +  * http://​ydisanto.developpez.com/​tutoriels/​android/​debuter/#​LIII-B
 +  * http://​www.siteduzero.com/​tutoriel-3-554364-developpement-d-applications-pour-terminaux-android.html
 +
 +==== Créer des ROMs pour Android ====
 +=== Pré-requis ===
 +* Installer le Android SDK, regarder ci-dessus
 +* **[[apt>​sun-java6-jdk|sun-java6-jdk]]**,​ **[[apt>​sun-java6-jre|sun-java6-jre]]**,​**[[apt>​sun-java6-plugin|sun-java6-plugin]]**
 +<​note>​Oracle a supprimé Java des repos, [[:​PPA|Ajoutez le PPA]] **ppa:​ferramroberto/​java**((https://​launchpad.net/​~ferramroberto/​+archive/​java)) dans vos sources de logiciels, pour l'​avoir.</​note>​
 +
 +===== Connecter vos appareils Android =====
 +
 +<​note>​Cette manipulation permet d'​utiliser les outils de Google (adb) pour envoyer des commandes ou des fichiers à l'​appareil. Si vous voulez juste accéder à la mémoire du télephone, aucune manipulation n'est requise si ce n'est le montage de la carte SD depuis la barre de notification > "​Activer pour copier des fichiers ..." et l'​activation du "​Débogage USB" (Applications > Développement) pour un accès complet.</​note>​
 +
 +Cette étape est nécessaire pour utiliser les outils du SDK (adb, fastboot,​...)
 +
 +Créez le fichier : <​code>​ sudo gedit /​etc/​udev/​rules.d/​51-android.rules </​code>​
 +
 +Ajoutez y les identifiants USB de votre appareil (voir la partie qui suit pour une liste non-exhaustive)
 +
 +Redémarrez Udev : <​code>​ sudo restart udev </​code>​
 +
 +Afin de vérifier si tout a bien fonctionné,​ depuis le répertoire "​platform-tools"​ du SDK lancez : <​code>​ ./adb devices </​code>​
 +
 +<​note>​Si la commande "./adb devices"​ ne renvoie aucun périphérique,​ essayez de relancer le serveur manuellement avec la commande : <​code>​ sudo ./adb kill-server </​code>​ puis : <​code>​ sudo ./adb start-server </​code>​ </​note>​
 +
 +==== Liste de certains identifiants USB d'​appareils Android ====
 +
 +
 +== Acer Liquid ==
 +SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0502",​ ATTRS{idProduct}=="​3202",​ MODE="​0666"​
 +
 +
 +== Acer Liquid MT (aka Metal, aka S120)==
 +Voici les retours de lsusb: ​
 +mode normal: ID 0502:3317 Acer, Inc., et en mode fastboot: ID 0502:3316 Acer, Inc.
 +
 +Celle règle m'a permis de flasher la bestiole:
 +
 +SUBSYSTEM=="​usb",​ ATTR{idVendor}=="​0502",​ MODE="​0666",​ GROUP="​moimeme"​
 +
 +== Archos 5IT ==
 +SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0e79",​ ATTRS{idProduct}=="​1361",​ MODE="​0666"​
 +
 +== Geeks Phone One ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​0489",​ SYSFS{idProduct}=="​c001",​ MODE="​0666"​
 +
 +== Google Nexus One ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​18d1",​ SYSFS{idProduct}=="​4e12",​ MODE="​0666"​
 +
 +== HTC Desire ==
 +SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0bb4",​ ATTRS{idProduct}=="​0c87",​ MODE="​0666"​
 +
 +== HTC Desire Z ==
 +SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0bb4",​ ATTRS{idProduct}=="​0c91",​ MODE="​0666"​
 +
 +== HTC Desire HD ==
 +SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0bb4",​ ATTRS{idProduct}=="​0c99",​ MODE="​0666"​
 +
 +== HTC Sensation ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​[0bb4]",​ MODE="​0666"​
 +
 +SUBSYSTEM=="​usb",​ATTR{idVendor}=="​[0bb4]",​ATTR{idProduct}=="​[0c86]",​SYMLINK+="​android_adb"​
 +
 +SUBSYSTEM=="​usb",​ATTR{idVendor}=="​[0bb4]",​ATTR{idProduct}=="​[0c86]",​SYMLINK+="​android_fastboot"​
 +
 +
 +== LG GT540 ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​1004",​ SYSFS{idProduct}=="​618e",​ MODE="​0666"​
 +
 +== LG GW620 ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​1004",​ SYSFS{idProduct}=="​6171",​ MODE="​0666"​
 +
 +== LG Optimus ONE (LG P500) ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​1004",​ SYSFS{idProduct}=="​618e",​ MODE="​0666"​
 +
 +== Samsung Galaxy (i7500) ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​18d1",​ SYSFS{idProduct}=="​d00d",​ MODE="​0666"​
 +
 +== Samsung Galaxy 5 (i5500) ==
 +SUBSYSTEM=="​usb",​ ATTR{idVendor}=="​04e8",​ MODE="​0666"​
 +
 +== Samsung Galaxy Spica (i5700) ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​04e8",​ SYSFS{idProduct}=="​681c",​ MODE="​0666"​
 +
 +== Samsung Galaxy S (i9000) ==
 +* Mode Kies :
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​04e8",​ SYSFS{idProduct}=="​6877",​ MODE="​0666"​
 +
 +* Mode Mass storage USB :
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​04e8",​ SYSFS{idProduct}=="​681d",​ MODE="​0666"​
 +
 +* Dunno what this is but it is required for me :
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​04e8",​ SYSFS{idProduct}=="​681c",​ MODE="​0666"​
 +
 +* Mode lecture Media (autodetecté par Linux comme mass storage par defaut) :
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​04e8",​ SYSFS{idProduct}=="​68a9",​ MODE="​0666"​
 +
 +== Sony Ericsson X10i ==
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​0fce",​ ATTRS{idProduct}=="​212e",​ MODE="​0666"​
 +
 +== Sony Ericsson Kino/Neo (MT15i) ==
 +SUBSYSTEMS=="​usb",​ ATTRS{idVendor}=="​0fce",​ ATTRS{idProduct}=="​5156",​ MODE="​0666"​
 +
 +== Motorola Milestone ou Droid ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​22b8",​ SYSFS{idProduct}=="​41db",​ MODE="​0666"​
 +
 +== Motorola Milestone XT720 ==
 +SUBSYSTEM=="​usb",​ SYSFS{idVendor}=="​22b8",​ SYSFS{idProduct}=="​41da",​ MODE="​0666"​
 +
 +== HTC Hero ==
 +SUBSYSTEM=="​usb",​ ATTRS{idVendor}=="​0bb4",​ MODE="​0666"​
 +
 +==Pour les autres appareils Android==
 +[[http://​www.linux-usb.org/​usb.ids]] (utilisez la fonction rechercher de votre navigateur)
 +
 +<​note>​
 +Avec certains appareils, la manipulation décrite ci-dessus n'est pas suffisante. Il faut alors ajouter manuellement au fichier adb_usb.ini l'​identifiant USB du fabricant. Par exemple pour l'​Archos 5IT, entrer la commande suivante dans un terminal :
 +<​code>​
 +$ echo "​0x0e79"​ >> ~/​.android/​adb_usb.ini
 +</​code>​
 +Arrêter le serveur adb :
 +<​code>​
 +$ ./adb kill-server
 +</​code>​
 +Enfin tester la détection de l'​appareil :
 +<​code>​
 +$ ./adb devices
 +[...]
 +List of devices attached ​
 +A5S-5C2E0004-00000000-0403724D-10013015 device
 +</​code>​
 +</​note>​
 +
 +===== Voir aussi =====
 +
 +  * **(en)** [[http://​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]]
 +  ​
 +
 +----
 +//​Contributeurs :jahbromo ; listenup//
  • utilisateurs/karting06/android.txt
  • Dernière modification: Le 14/04/2012, 22:34
  • par Karting06