====== Android ====== Aussi: * [[/informatique/mobile_app|/informatique/mobile_app]] ===== Divers outils ===== [[https://www.info24android.com/comment-lancer-votre-ecran-android-sur-un-bureau-linux/|recopier écran Android sur un bureau Linux]] ===== Docs ===== [[http://android.developpez.com/cours/|Les meilleurs cours et tutoriels pour Android]] sur developpez.com ==== devices ==== * tablette Arnova 10b G3 (AN10BG3) Android v4.0.3 (API 15), Kernel 3.0.8+ * USB idVendor=0e79, idProduct=146c * Rockchip RK29, Screen Resolution: 1024 x 600, Processor: ARM 1 core 1Ghz, RAM 1Go * tablette Arnova 10b, Android 2.3.7 (API ?), Kernel 2.6.25 * Mod CyanogenMod 7.2.0 * Rockchip RK2818 ARM926EJ-S REV 5, mEM 200 mB * smartphone Orange Hi 4G, Android v4.4.2 (API 19), Kernel 3.4.0 * smartphone Samsung GT-S5369, Android 2.3.6 (API 10), Kernel 2.6.35 * USB idVendor=04e8, idProduct=685e * Ecran: TFT 262 000 couleurs, 320 x 240 * smartphone Samsung Galaxy Core Prime SM-G361F, Android 5.1.1 * Écran 4.5 pouces 480 x 800 (WVGA), Quad-Core 1.2GHz ==== Versions d'Androïd et API ==== Les [[http://developer.android.com/about/dashboards/index.html|statistiques des versions utilisées d'Androïd]], les tailles d'écran et versios d'OpenGL, publication par Google. | Version | Name | API | | 2.2 | Froyo | 8 | | 2.3.3 | Gingerbread | 10 | | 2.3.7 | ::: | ::: | | 4.0.3 | Ice Cream Sandwich | 15 | | 4.0.4 | ::: | ::: | | 4.1.x | Jelly Bean | 16 | | 4.2.x | ::: | ::: | | 4.3 | ::: | ::: | | 4.4 | KitKat | 19 | | 5.0 | Lollipop | 21 | | 5.1 | ::: | ::: | | 6.0 | Marshmallow | 23 | ===== Developement ===== ==== SDK & Tools ==== * Android Studio https://developer.android.com/studio/index.html ==== Tips ==== On Android 4.2 and later, the **developer options are hidden by default**. To enable the developer options, select Settings > About phone and tap Build number seven times. [[http://blog.shvetsov.com/2013/02/access-android-app-data-without-root.html|Access Android app data without root]] {{ http://mathias-seguy.developpez.com/cours/android/ch3_1_thread/images/10000201000001C20000010F3406E5DF.png}} Updating the UI: * [[http://www.mopri.de/2010/timertask-bad-do-it-the-android-way-use-a-handler/|Timer(Task) = bad! Do it the Android way: Use a Handler :)]] * Android: A Complete Course * [[http://mathias-seguy.developpez.com/cours/android/ch3_1_thread/|Chapitre 3.1: Thread, AsyncTask et Handler]] * et [[http://mathias-seguy.developpez.com/cours/android/handler_async_memleak/|Thread, Handler, AsyncTask et fuites mémoires]] Les services (Local & Remote) * [[http://blog.developpez.com/ndruet/p8571/android/creation_de_service|Utiliser les services sous Android]] Application preferences / settings * [[http://developer.android.com/guide/topics/ui/settings.html|Settings]] Preference APIs to build an interface that's consistent with the user experience in other Android apps (including the system settings). * [[http://developer.android.com/guide/topics/data/data-storage.html#pref|Shared Preferences]] : The SharedPreferences class provides a general framework that allows you to save and retrieve persistent key-value pairs of primitive data types. Manage Json: * [[https://developer.android.com/reference/org/json/JSONTokener.html|JSONTokener]] in Android reference ==== En vrac ==== [[http://www.redmondpie.com/switchme-brings-multiple-user-accounts-to-android-download-now/|SwitchMe]] brings Multiple User Accounts to Android. USB * USB On-The-Go (OTG) pour Connecter des périphériques USB à un smartphone Android * [[http://android.serverbox.ch/?p=549|Android USB Host + Arduino: How to communicate without rooting your Android Tablet or Phone]] - En fin d'article tout plein d'explication (soft usb driver, ...) * [[https://github.com/mik3y/usb-serial-for-android|usb-serial-for-android]] : This is a driver library for communication with Arduinos and other USB serial hardware on Android, using the Android USB Host API available on Android 3.1+. Android Open Accessories * [[http://developer.android.com/tools/adk/index.html|The Accessory Development Kit (ADK)]] * [[/electronique/IOIO-OTG|/electronique/IOIO-OTG]] Dev * [[https://www.apriorit.com/dev-blog/233-how-to-build-apk-file-from-command-line|How to build Android app .apk file from command line]] * [[http://developer.android.com/sdk/index.html#download|ADT Bundle]] = Eclipse + ADT plugin + Android SDK Tools + Android Platform-tools + The latest Android platform + The latest Android system image for the emulator * [[http://android.developpez.com/cours/?page=Debutan|tutoriels pour Android]] sur [[http://android.developpez.com|android.developpez.com]] * [[http://www.siteduzero.com/informatique/tutoriels/votre-premiere-application-android|Votre première application Android]] par ShigeruM * [[http://wiki.frandroid.com/wiki/D%C3%A9veloppement_Android|Wiki FrAndroid]] Glossaire: * AVD : Android Virtual Device => Périphérique Android Virtuel Google [[https://developer.chrome.com/home/devtools-pillar|Chrome Developer Tools]] ADB for Android Developers (ARCHOS Internet Tablet) * http://www.archos.com/support/support_tech/updates_adb.html?country=in&lang=en ===== OpenStreetMap ===== search openstreetmap: * [[https://play.google.com/store/search?q=openstreetmap&c=apps|on google play]] * [[https://code.google.com/hosting/search?q=label%3Aopenstreetmap+label%3Aandroid&projectsearch=Search+projects|on google code]] OSMTracker for Android™ by Nicolas Guillaumin * [[https://play.google.com/store/apps/details?id=me.guillaumin.android.osmtracker|Google Play]], [[https://code.google.com/p/osmtracker-android/|Project Homepage]], [[https://github.com/nguillaumin/osmtracker-android|Source Code]] Keypad-Mapper * [[http://wiki.openstreetmap.org/wiki/Keypad-Mapper_3]] Mapsforge * http://wiki.openstreetmap.org/wiki/Mapsforge ===== TTS ===== TTS : text-to-speech, text to speech Note 1 : Avant de pouvoir se servir du TTS, il est nécessaire de vérifier la présence d'un "moteur" de TTS, puisque par défaut Android ne le propose pas. Certains constructeurs comme Samsung proposent le leur, d'autres incluent de base une version développée par d'autres. Quoi qu'il en soit, cette étape est nécessaire si vous ne désirez pas voir des dizaines de retour utilisateurs mécontents. source: [[http://sberfini.developpez.com/tutoriaux/android/tts/|Utiliser le Text to Speech dans une application Android]] par Sylvain Berfini 2011. Note 2 : Sous Android, en principe sur chaque smartphone est présent un moteur TTS de base, de très mauvaise Quallité. Il faut donc installer un moteur plus performant... Moteurs TTS pour AndroId: Propriétaires: * [[http://www.ivona.com/|IVONA]] * https://play.google.com/store/apps/details?id=com.ivona.tts * [[https://svoxmobilevoices.wordpress.com/|SVOX]] : payant de bonne qualité ( autour de 3 euros la voix) * https://play.google.com/store/apps/details?id=com.svox.classic * [[http://www.acapela-for-android.com/|ACAPELA]] : * https://play.google.com/store/apps/details?id=com.acapelagroup.android.tts * L’application est gratuite. Mais pour bénéficier des voix de synthèse d’Acapela, vous devrez en acheter au minimum une dans l’application (In-app Billing - EUR 3.99/voix et EUR 11.99/voix pour les voix Premium enfants) Open source: * [[https://play.google.com/store/apps/details?id=com.reecedunn.espeak|eSpeak]] * http://reecedunn.co.uk/espeak-for-android * http://espeak.sourceforge.net * https://play.google.com/store/apps/details?id=com.googlecode.eyesfree.espeak * https://code.google.com/p/eyes-free/ Autres: * [[https://play.google.com/store/apps/details?id=net.kaoriya.android.tts_util|TTS Utility]] ===== Media ===== * on developer.android.com * [[http://developer.android.com/guide/topics/media/index.html|Media and Camera]] * [[http://developer.android.com/samples/media.html|samples for media apps]] Ce code joue la vidéo, mais on ne la voit pas : mp=new MediaPlayer(); mp.setDataSource(path); mp.setScreenOnWhilePlaying(true); mp.setDisplay(holder); // holder ? mp.prepare(); mp.start(); ==== VideoView ==== Faire une activité dédiée avec un VideoView ça fonctionne bien: * [[http://tiffanyb.net/2011/05/19/full-screen-video-playback-for-android/|Full-screen video playback for Android]] * [[http://www.techotopia.com/index.php/Implementing_Video_Playback_on_Android_using_the_VideoView_and_MediaController_Classes|Implementing Video Playback on Android using the VideoView and MediaController Classes]] Avec VideoView pour que la video soit redimensionnée/étendue (stretched), ajouter les atrributs android:layout_alignParentXxx (Ok avec API 15) : > yes to set video view as full screen we need all the alignment, Ou voir : * Il existe la méthode setVideoScalingMode à partir de l'API 16 * pour API antérieure voir ce post : http://stackoverflow.com/questions/15032894/how-to-achieve-setvideoscalingmode-for-early-versions-of-android =====SMS===== Comment gérer la réception de SMS avec Android: * [[http://www.apriorit.com/dev-blog/227-handle-sms-on-android|How to Receive and Handle SMS on Android]] Manage inbox sms: * read: http://androidsourcecode.blogspot.fr/2010/10/android-reading-inbox-sms.html * delete http://stackoverflow.com/questions/419184/how-to-delete-an-sms-from-the-inbox-in-android-programmatically Envoyer des SMS: * [[http://www.mkyong.com/android/how-to-send-sms-message-in-android/|How to send SMS message in Android]] //(Android 2.3.3)// ===== TCP/IP ===== Pour communiquer en tcp/ip avec une appli tournant sur l'émulateur il faut créer une redirection depuis l'émulateur. * se connecter à la console de l'émulateur * utiliser la commande redir si une application écoute sur le port 80 et que l'on veut s'y connecter depuis l'ordi via le port 8080 : $ telnet localhost 5554 redir add tcp:8080:80 Référence : [[https://developer.android.com/tools/devices/emulator.html#redirection|Using Network Redirection]] Reading about tcp/ip communication: * [[https://developer.android.com/reference/java/net/ServerSocket.html|ServerSocket]] This class represents a server-side socket that waits for incoming client connections. A ServerSocket handles the requests and sends back an appropriate reply. The actual tasks that a server socket must accomplish are implemented by an internal SocketImpl instance. * Android Server/Client example; [[http://android-er.blogspot.fr/2014/02/android-sercerclient-example-client.html|client side using Socket]], [[http://android-er.blogspot.fr/2014/02/android-sercerclient-example-server.html|server side using ServerSocket]] Http client: * [[http://hmkcode.com/android-send-json-data-to-server/|Android | Send “POST” JSON Data to Server]] * [[http://www.vogella.com/tutorials/AndroidJSON/article.html|JSON in Android]] with org.apache.http.client.HttpClient Http server: * Multi-threaded HTTP server library for Android devices : https://github.com/matt1/AndroidHTTPServer * Asynchronous socket, http (client+server), websocket, and socket.io library for android. Based on nio, not threads : https://github.com/koush/AndroidAsync