¿Es posible que las bibliotecas compartan memoria como la memoria compartida en Linux? (La función de memoria compartida adoptada en System V y luego adoptada en Linux)
Por ejemplo: cuando dos aplicaciones funcionan simultáneamente y ambas usan la biblioteca OkHttp, ¿la biblioteca se carga en la memoria dos veces?
La misma función de memoria compartida todavía está presente en Android y funciona en bibliotecas compartidas integradas como OpenGL ES, pero no se usa para bibliotecas de terceros como las que está preguntando. Cada aplicación que usa una biblioteca de terceros debe incluir la biblioteca en su archivo APK. Estas no son bibliotecas compartidas (en el .so
sentido): son solo archivos duplicados que pueden contener el mismo código. (Por lo general, no contendrán el mismo código porque se habrán creado diferentes aplicaciones para diferentes versiones de la biblioteca).
Así se evitan posibles incompatibilidades o problemas de seguridad por actualizar bibliotecas desde distintas apps. Las incompatibilidades de bibliotecas compartidas son un gran problema en los sistemas GNU/Linux. Las distribuciones se esfuerzan mucho en prevenirlos al probar diferentes combinaciones de aplicaciones y bibliotecas, pero a veces todavía fallan. En Android, donde nadie es responsable de asegurarse de que las diferentes aplicaciones funcionen juntas, ese tipo de sistema de biblioteca compartida daría lugar a que las aplicaciones se rompan a menudo cuando se actualiza una biblioteca compartida. Los problemas de seguridad pueden surgir en un sistema que usa bibliotecas compartidas de esta manera, porque una aplicación puede actualizar una biblioteca compartida a una "versión más nueva" que en realidad está pirateada para filtrar información o controlar la aplicación. Las bibliotecas tendrían que ser tratadas como paquetes separados, firmados por el autor,
izzy
Abishek V Ashok
miente ryan
dan hulme
miente ryan
dan hulme
Abishek V Ashok