La misma función de memoria compartida sigue estando presente en Android, y funciona con las bibliotecas compartidas incorporadas, como OpenGL ES, pero no se utiliza para las bibliotecas de terceros, como estás preguntando. Cada aplicación que utiliza una biblioteca de terceros tiene que incluir la biblioteca en su archivo APK. Entonces no son bibliotecas compartidas (en el .so
sentido): sólo son archivos duplicados que pueden contener el mismo código. (Normalmente no contendrán el mismo código porque diferentes aplicaciones habrán sido construidas contra diferentes versiones de la biblioteca).
Así se evitan posibles incompatibilidades o problemas de seguridad causados por la actualización de librerías de diferentes apps. Las incompatibilidades de las bibliotecas compartidas son un gran problema en los sistemas GNU/Linux. Las distribuciones se esfuerzan mucho en evitarlas probando diferentes combinaciones de aplicaciones y bibliotecas, pero aun así a veces salen mal. En Android, donde nadie es responsable de asegurar que las diferentes aplicaciones funcionen juntas, ese tipo de sistema de bibliotecas compartidas daría lugar a que las aplicaciones se rompieran a menudo cuando se actualiza una biblioteca compartida. Los problemas de seguridad podrían surgir en un sistema que utilizara las bibliotecas compartidas de esta manera, porque una aplicación podría actualizar una biblioteca compartida a una "versión más nueva" que en realidad está hackeada para filtrar información o controlar la aplicación. Las bibliotecas tendrían que ser tratadas como paquetes separados, firmados por el autor, al igual que las aplicaciones, y entonces tendría que haber un proceso complejo para manejar las actualizaciones de versiones.