¿Cómo empacar la aplicación de línea de comandos nativa en apk?

Me gustaría empaquetar una aplicación de línea de comandos nativa de Android en una apk. Tengo la construcción de aplicaciones con ndk-build que usa jni / Android.mk. La salida está en libs / armeabi / . También tengo el edificio apk con ant. Sin embargo, la apk no parece recoger la aplicación de línea de comandos. Si descomprimo el apk, la aplicación no está allí.

¿Qué debo hacer para incluir una aplicación de línea de comandos preconstruida?

Además, ¿qué debo hacer para que la ant ejecute ndk-build? (Esto ya fue respondido: Android NDK build con script ANT )

Consulte la comstackción de Android NDK con script ANT .

Puede agregar el binario a APK usando aapt si Ant no lo copia automáticamente desde libs/armeabi , consulte la documentación del elemento aapt en el script Ant .

Creo que el archivo se extraerá correctamente a /data/data/your.package.full.name/lib , con permisos ejecutables.

Ant build implica un paso llamado ” ApkBuilder “, que solo agrega archivos de libs/armeabi que coinciden con el patrón ^.+\.so$ gdbserver ^.+\.so$ o gdbserver – el último solo para la creación de depuración.

Pero no es suficiente cambiar el nombre del ejecutable a “myexecutable.so” : este archivo no será extraído por el instalador APK en el dispositivo.

Es suficiente cambiar el nombre del ejecutable a lib myexecutable .so” : este archivo será extraído por el Administrador de paquetes del instalador APK en el dispositivo a /data/data/your.package.full.name/lib , con permisos ejecutables.

Personalmente, me gusta darle a este not-actually-a-library un nombre especial, por ejemplo, lib...ffmpeg...so .

En general, debe poner su aplicación de línea de comandos en la carpeta de Assets , luego use AssetManager para extraer su activo (¡no olvide chmod después de la extracción!). Pero habrá un problema donde extraerlo, porque no todos los directorios en Android pueden almacenar binarios ejecutables. En Android 2.2 probé /cache y funciona. No puedo decir para los nuevos androids. Lo sentimos, no podemos dar recomendaciones con respecto a la ant.