projtec:ndk
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
projtec:ndk [2017/01/16 18:06] – [Test du NDK] 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 | ||
- | |||
- | |||
- | (...) | ||
- | |||
- | |||
- | Pour ajouter du code C/C++ à son projet Android : | ||
- | |||
- | https:// | ||
- | |||
- | 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 ==== | ||
- | |||
- | On positionne correctement son environnement... | ||
- | |||
- | export ANDROID_HOME=/ | ||
- | export ANDROID_NDK_HOME=/ | ||
- | export PATH=${PATH}: | ||
- | | ||
- | Ensuite, on va récupérer SDL2 et préparer notre petite coquille en suivant ce tutoriel : http:// | ||
- | |||
- | cd /opt | ||
- | wget http:// | ||
- | unzip SDL2-2.0.5.zip | ||
- | cp -rf SDL2-2.0.5/ | ||
- | cd my-android-project | ||
- | ln -s / | ||
- | |||
- | Commençons par mettre à jour le fichier " | ||
- | |||
- | Dans le fichier " | ||
- | |||
- | cp main.c jni/ | ||
- | mkdir assets ; cp image.bmp assets/ | ||
- | | ||
- | On compile et on installe tout ça... | ||
- | | ||
- | ndk-build | ||
- | ant debug | ||
- | emulator -avd MyPhone | ||
- | ant debug install | ||
- | | ||
- | Et ça marche !!! | ||
- | |||
- | == Biblio == | ||
- | |||
- | |||
- | * SDL : https:// | ||
- | * https:// | ||
- | * Download SDL2 : http:// | ||
- | * Quelques Tutoriels sur SDL : https:// | ||
- | * Premier Tutoriel sur Android+SDL | ||
- | * Part 1 : http:// | ||
- | * Part 2 : http:// | ||
- | * Part 3 : http:// | ||
- | * Second Tutoriel sur Android+SDL | ||
- | * Part 1 : http:// | ||
- | * Part 2 : http:// | ||
- | * Part 3 : http:// | ||
- | * Part 4 : http:// | ||
- | * Wiki SDL+Android : https:// | ||
- | * OpenGLES : http:// | ||
- | |||
projtec/ndk.1484589988.txt.gz · Last modified: 2024/03/18 15:05 (external edit)