projtec:ndk
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| projtec:ndk [2017/01/13 08:43] – [Android et SDL2] orel | projtec:ndk [2017/01/17 09:13] (current) – removed orel | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Android Native Development Kit (NDK) ====== | ||
| - | |||
| - | |||
| - | ====Utilisation de Android Studio ==== | ||
| - | |||
| - | Android Studio (version 2.2) est l'IDE par défaut de Google pour développer des applications Android avec le SDK. Pour installer et démarrer Android Studio (https:// | ||
| - | |||
| - | cd /opt | ||
| - | wget https:// | ||
| - | unzip android-studio-ide-145.3537739-linux.zip | ||
| - | cd android-studio/ | ||
| - | ./ | ||
| - | |||
| - | Une fois l'IDE installée, si l'on souhaite utiliser le NDK (Native Development Kit), il faut installer quelques outils supplémentaires | ||
| - | |||
| - | |||
| - | * Training : https:// | ||
| - | * Howto : http:// | ||
| - | |||
| - | ==== Android en ligne de commande ==== | ||
| - | |||
| - | En m' | ||
| - | |||
| - | * http:// | ||
| - | * http:// | ||
| - | * http:// | ||
| - | |||
| - | Commençons par télécharger les //tools// Android. Notons que c'est la seule manière actuellement d' | ||
| - | |||
| - | cd /opt | ||
| - | wget https:// | ||
| - | unzip tools_r25.2.3-linux.zip | ||
| - | cd tools | ||
| - | | ||
| - | plus quelques dépendances (à compléter...) : | ||
| - | |||
| - | sudo apt-get install openjdk-8-jdk ant | ||
| - | | ||
| - | Nous allons maintenant lancer le //Android SDK Mananger// : | ||
| - | |||
| - | ./android | ||
| - | | ||
| - | Commençons par installer le dernier SDK et le NDK et d' | ||
| - | |||
| - | |||
| - | == HelloWorld == | ||
| - | |||
| - | Créons maintenant un petit projet HelloWorld : | ||
| - | |||
| - | |||
| - | ./android create project --target 1 --name HelloWorld --path ./ | ||
| - | --activity HelloWorldActivity --package com.example.myandroid | ||
| - | |||
| - | Ou en plus court : | ||
| - | |||
| - | ./android create project -t 1 -n HelloWorld -p ./ | ||
| - | |||
| - | |||
| - | Pour connaître la liste des //targets// disponibles, | ||
| - | |||
| - | ./android list targets | ||
| - | |||
| - | Ensuite, on peut compiler notre petit projet simplement avec Ant : | ||
| - | |||
| - | cd HelloWorld | ||
| - | ant # pour voir toutes les cibles disponibles dans build.xml | ||
| - | ant clean | ||
| - | ant debug # pour compiler le projet en debug... | ||
| - | | ||
| - | Le fichier APK (Android Application Package) sera créé à l’emplacement : HelloWorld/ | ||
| - | | ||
| - | == Déploiement sur son smartphone == | ||
| - | |||
| - | Pour déployer, l' | ||
| - | |||
| - | On peut alors vérifier que le //device// (smartphone ou émulateur) est bien visible : | ||
| - | |||
| - | adb devices | ||
| - | |||
| - | Si un seul device est visible, le déploiement de l' | ||
| - | |||
| - | ant debug install | ||
| - | | ||
| - | == Utilisation de l' | ||
| - | | ||
| - | Il faut commencer par créer un AVD (Android Virtual Device) en lançant la commande : | ||
| - | |||
| - | ./android avd | ||
| - | |||
| - | Dans la fenêtre qui s’ouvre, cliquer sur " | ||
| - | |||
| - | Pour lancer l' | ||
| - | |||
| - | ./emulator -avd MyPhone | ||
| - | |||
| - | |||
| - | On peut alors vérifier que le device (smartphone ou émulateur) est bien visible : | ||
| - | |||
| - | adb devices | ||
| - | | ||
| - | Si un seul device est visible, le déploiement de l' | ||
| - | |||
| - | ant debug install | ||
| - | |||
| - | On peut également effectuer le déploiement manuellement sur l' | ||
| - | |||
| - | |||
| - | adb -e install bin/ | ||
| - | adb -e uninstall com.orel.helloworld | ||
| - | | ||
| - | Pour info, le nom du package " | ||
| - | |||
| - | Pour démarrer l' | ||
| - | |||
| - | adb shell am start -a android.intent.action.MAIN -n com.orel.helloworld/ | ||
| - | |||
| - | |||
| - | | ||
| - | ==== Utilisation de Gradle ==== | ||
| - | |||
| - | Gradle est la nouvelle chaîne de compilation Android qui vise à remplacer Ant : | ||
| - | Pour générer un projet Android basé sur Gradle plutôt que Ant, il faut utiliser l' | ||
| - | |||
| - | ./android create project -p HelloWorld -t 1 -n HelloWorld -k com.orel.helloworld -a HelloWorld -g -v 2.2.2 | ||
| - | | ||
| - | avec 2.2.2 la version appropiée du plugin Gradle. | ||
| - | |||
| - | Après quoi, on utilise le script //gradlew// pour compiler, etc. | ||
| - | |||
| - | ./gradlew build | ||
| - | ./gradlew assembleDebug | ||
| - | |||
| - | __Attention__ : Le code généré n'est pas tout à fait correct pour la version 2.2.2 du plugin Gradle ! Voici donc quelques modifications nécessaires des sources générés pour que ça tombe en marche :-( | ||
| - | |||
| - | * Dans le fichier build.gradle, | ||
| - | * Dans le fichier build.gradle, | ||
| - | * Dans le fichier gradle/ | ||
| - | |||
| - | Voir ici, pour plus de détails : | ||
| - | |||
| - | * https:// | ||
| - | * http:// | ||
| - | | ||
| - | ==== Test du NDK==== | ||
| - | |||
| - | // Quelques notes encore en vrac...// | ||
| - | |||
| - | Pour faire au plus simple, j'ai installé l' | ||
| - | |||
| - | Pour utiliser les exemples NDK avec Gradle en ligne de commande, il faut positionner les variables d' | ||
| - | |||
| - | export ANDROID_HOME=/ | ||
| - | export ANDROID_NDK_HOME=/ | ||
| - | export PATH=${PATH}: | ||
| - | |||
| - | Ensuite on peut tester un petit exemple... | ||
| - | |||
| - | git clone https:// | ||
| - | cd android-ndk/ | ||
| - | ./gradlew assembleDebug | ||
| - | |||
| - | Puis on effectue le déploiement avec l' | ||
| - | |||
| - | emulator -avd MyPhone | ||
| - | abd devices | ||
| - | ./gradlew installDebug | ||
| - | |||
| - | (...) | ||
| - | |||
| - | |||
| - | A propos de NativeActivity : | ||
| - | |||
| - | * https:// | ||
| - | * https:// | ||
| - | * https:// | ||
| - | |||
| - | A propos de NDK : | ||
| - | |||
| - | * https:// | ||
| - | * https:// | ||
| - | * http:// | ||
| - | |||
| - | Les exemples classiques : | ||
| - | |||
| - | * Exemples avec Gradle : https:// | ||
| - | * Exemples avec Android.mk (ndk-build system) : https:// | ||
| - | |||
| - | Pour récupérer les exemples classiques via github : | ||
| - | |||
| - | git clone https:// | ||
| - | git clone -b android-mk | ||
| - | |||
| - | ====Android et SDL2 ==== | ||
| - | |||
| - | |||
| - | * SDL : https:// | ||
| - | * Tutoriels SDL+Android : https:// | ||
| - | * http:// | ||
| - | * http:// | ||
| - | * Wiki SDL+Android : https:// | ||
| - | * OpenGLES : http:// | ||
| - | |||
projtec/ndk.1484296988.txt.gz · Last modified: 2024/03/18 15:05 (external edit)
