Der folgende Codeausschnitt scheint die Antwort zu sein, wie native Bibliotheken mit Android Studio enthalten:was ist die Magie der nativeLibsToJar
task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs') {
destinationDir file("$buildDir/native-libs")
baseName 'native-libs'
extension 'jar'
from fileTree(dir: 'libs', include: '**/*.so')
into 'lib/'
}
tasks.withType(Compile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
Es scheint einfach die .so in * .jar * zu packen. Aber ich verstehe es wirklich nicht:
- Warum ist es notwendig, es in eine * .jar wickeln?
- Wenn ich etwas in meinen nativen Bibliotheken ändere, kann ich sehen, dass die Änderungen in meiner Anwendung wirksam werden. Auch der Gradle-Erstellungsprozess gibt immer "...: app: nativeLibsToJar UP-TO-DATE ..." aus. Ich nehme an, dass diese Aufgabe nicht erneut ausgeführt wird. Aber wenn diese Aufgabe die * .so in * .jar umschließt, als wie ist es möglich, sie neu zu wickeln, ohne diese Aufgabe erneut auszuführen?
Ich bin dankbar für jede Erklärung :)