À compter de janvier 2015, la prise en charge de NDK pour le studio Android est toujours inutilisable. Un message crypté indique: "Une alternative sera fournie à l'avenir."
J'aimerais savoir quelle est l'orientation de Google dans ce domaine, car il est impossible de planifier un plan de développement approprié pour le moment.
Version 0.7+: Ils suggèrent de continuer à utiliser ndk-build/ant Version 0.8+: Ils ont introduit un support NDK minimal Version 1.0.0: Il semblait que le support NDK allait être officiel Version 1.0.2: Il semble maintenant que le support de NDK soit obsolète.
Mes questions sont:
Est-ce que tout le monde revient à ndk-build et aux fichiers Android.mk fabriqués à la main?
Est-ce que quelqu'un utilise la méthode actuellement déconseillée sur 1.0.0+ (support de gradle ndk) sur un projet de taille sérieuse?
Quelle sorte de direction serait envisagée "l'alternative dans l'avenir"? Est-il possible pour un initié de répondre à cette question sans enfreindre les règles de l'entreprise?
Edit: ce n'est pas un doublon car il faisait référence à l'évolution d'Android Studio et de NDK, l'autre question concerne une version très ancienne d'Android Studio, comme je l'ai expliqué dans mon message, la prise en charge de NDK a radicalement changé d'une version à une direction claire, jusqu'à présent avec la sortie de la 1.3
Aperçu d'Android Studio v1.3 - Nous publions une nouvelle version d'Android Studio. Le plus notable est une fonctionnalité très demandée de notre Android NDK & développeurs de jeux: édition de code et débogage pour le code C/C++. Basé sur JetBrains Clion, le plugin Android Studio NDK fournit fonctionnalités telles que refactoring et achèvement de code pour le code C/C++ à côté de votre code Java. Le support du code Java et C/C++ est intégré en une expérience de développement gratuite pour l'application Android développeurs. Mise à jour vers Android Studio v1.3 via le canal Canary et le Dites-nous ce que vous en pensez.
Source du blog des développeurs Android ici .
Dans la version stable Android 1.3, nous avons inclus Early Aperçu de l'accès au support de l'éditeur et du débogueur C++ associé à un plugin de construction expérimentale. Voir la page de prévisualisation Android C++ pour informations sur la façon de commencer. Soutien à des projets plus complexes et construire des configurations est en développement .
Cité sur le blog des développeurs Android ici .
Fonctionnalités ajoutées:
Pour savoir comment l'utiliser, regardez ici .
J'appelle en ligne de commande, je ne sais pas d'où je viens, c'est en fait votre première option, en revenant à ndk-build
avec Android.mk
fabriqué à la main. Très bien si vous ne voulez pas contrôler ndk abiFilters par saveur de produit.
apply plugin: 'com.Android.library'
Android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
ndk {
moduleName "glues"
}
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs' //set .so files location to libs
jni.srcDirs = [] //disable automatic ndk-build call
}
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
def ndkDir = Android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'-j', Runtime.runtime.availableProcessors(),
'all',
'NDK_DEBUG=1'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = Android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'clean'
}
clean.dependsOn 'cleanNative'
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
}
Je ne vois ces avertissements que si j'ai configuré abiFilter
sur productFlavors
:
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
mips {
ndk {
abiFilter "mips"
}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
abiFilter "armeabi"
}
}
fat
}
Notez que les anciennes versions du plugin Gradle utilisaient Android.plugin.ndkFolder
plutôt que Android.ndkDirectory
. Pour plus d'informations, voir: http://tools.Android.com/tech-docs/new-build-system/migrating-to-1-0-0
NDK sera entièrement pris en charge depuis Android Studio 1.3, y compris le débogage natif.
Android.useDeprecatedNdk=true
dans votre gradle.properties