在安卓系统中,如果您在应用程序(如支援图书馆)中使用了一个库,那么库的代码就会在设备上复制到每个使用它的应用程序上。
为什么安卓不能使用linux “共享图书馆”的概念,这样每个应用程序就不必复制库的代码了?
发布于 2014-12-04 15:06:33
这在很大程度上归功于安全模型。在Android上,每个应用程序都在自己的筒仓中运行。这与桌面操作系统完全不同,在桌面操作系统中,所有应用程序都可以完全访问所有用户的数据。
如果我们有两个应用程序,A和B,它们都使用共享库。如果他们使用相同的副本,那么应用程序A可能会闯入应用程序B的筒仓--这是不需要的。
正如paulkayuk评论的那样,这也是为了避免由期望共享库的不同版本的应用程序造成的DLL地狱问题。如今,存储成本很低--即使在移动设备上也是如此--因此,避免DLL地狱比节省一点存储空间更重要。
发布于 2014-12-04 14:32:26
Android确实有共享库的功能,但使用起来有点麻烦,因此在实践中似乎很少使用。例如,使用Google的应用程序使用此模型。
但是,支持库没有具体使用此工具,因为预计应用程序可能与其特定版本紧密关联,并且共享库系统一次只允许安装一个版本。
https://softwareengineering.stackexchange.com/questions/264555
复制相似问题