Android 4.x. Implementar bibliotecas nativas a través de apk y cargar desde otra aplicación

Tengo varias libs nativas y quiero desplegarlas a través del paquete apk (es decir, copiarlas en la carpeta libs o en los recursos). Entonces necesito instalar la aplicación separada y cargar esos libs usando:

System.load(path_to_lib); 

¿Qué camino se puede hacer? Como he entendido, no puedo cargar libs usando la ruta /data/data/libs_package/lib/native_lib.so por razones de seguridad. ¿Hay otras maneras?

Gracias por adelantado.

Vea este hilo en el grupo de discusión android-ndk.

En resumen, los desarrolladores Android de Google dicen:

Si las dos aplicaciones tienen un ID de usuario compartido, puede llamar explícitamente a System.loadLibrary () con la ruta completa a la biblioteca compartida que desea cargar.

Pero por favor no intente hacer nada de esto. Vas a causar dolor a tus usuarios, ya sea a partir de las actualizaciones de una u otra aplicación que causan incompatibilidades y te hacen romper, o el usuario desinstala la otra aplicación y te rompe, etc.

Y otro desarrollador propone la siguiente solución:

Así que lo que hago ahora (y funciona) es tener un montón de paquetes sin un id de usuario compartido (están firmados por la misma clave, pero no creo que sea importante aquí). La aplicación principal descomprime el .so desde el .apk de los otros paquetes (ya tengo un descomprimedor personalizado para solucionar un montón de otros errores de Android). Descomprimirlos a una ubicación conocida por el paquete de núcleo y luego dlopen () ellos desde allí.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.