Perché Android non utilizza le librerie condivise?

3

In Android se usi una libreria nella tua app (come la Libreria di supporto ) il codice per la libreria è duplicato sul dispositivo per ogni app che lo utilizza.

Perché Android non può utilizzare il concetto di "biblioteca condivisa" di linux, quindi ogni app non dovrebbe duplicare il codice della libreria?

    
posta JoelFan 04.12.2014 - 15:00
fonte

2 risposte

4

Questo è in gran parte dovuto al modello di sicurezza. Su Android, ogni applicazione viene eseguita nel proprio silo. Questo è completamente diverso da un sistema operativo desktop, in cui tutte le applicazioni hanno accesso completo a tutti i dati dell'utente.

Se abbiamo due applicazioni, A e B, entrambe utilizzano una libreria condivisa. Se hanno usato la stessa copia, allora l'applicazione A potrebbe entrare nel silo dell'applicazione B, che non è desiderata.

Come commenta paulkayuk, questo è anche per evitare Inferno DLL - problemi causati dalle applicazioni che si aspettano versioni diverse di una libreria condivisa . Oggigiorno l'archiviazione è economica, anche su dispositivi mobili, quindi evitare l'inferno della DLL è più importante che risparmiare un po 'di spazio di archiviazione.

    
risposta data 04.12.2014 - 16:06
fonte
1

Android ha una facilità di condivisione delle librerie, ma è un po 'macchinoso da usare, quindi sembra essere usato raramente nella pratica. Le applicazioni che utilizzano Google Play Services, ad esempio, utilizzano questo modello.

La libreria di supporto, tuttavia, in particolare non usa questa funzionalità perché ci si aspetta che le applicazioni possano essere strettamente legate a una versione specifica di esso, e il sistema di librerie condivise consente di installare una sola versione alla volta.

    
risposta data 04.12.2014 - 15:32
fonte

Leggi altre domande sui tag