Sur Ubuntu, les applications ne sont pas stockées sous forme de fichiers deb, mais sous forme de code compilé. Pourquoi Android ne fait-il pas cela au lieu d'utiliser Jit et le cache ? Ne serait-il pas plus efficace de le compiler complètement comme sur Ubuntu ?
Réponse
Trop de publicités?Il y a vraiment deux problèmes différents ici. Votre question sur le "code compilé" est traitée par une autre question d'aujourd'hui . Ceci est complètement indépendant du fait qu'une application soit déballée à partir de son fichier de paquetage. N'oubliez pas qu'Ubuntu (et d'autres distributions Linux) peut avoir des applications écrites en Java et livrées sous forme de fichiers JAR, ainsi que des exécutables natifs, et que les applications Android peuvent inclure du code natif ainsi que du Java. Dans les deux cas, le binaire lui-même n'est qu'une petite partie du paquet : les images et les autres données (connues sous le nom de actifs ) utilisés par l'application sont beaucoup plus importants.
C'est principalement pour des raisons historiques que les applications sous GNU/Linux doivent être décompressées dans des fichiers séparés. C'est beaucoup moins efficace que de conserver le fichier du paquetage lui-même, puisque les fichiers séparés prennent plus d'espace de stockage et sont donc plus lents à charger. Mais en raison de la manière dont les logiciels GNU/Linux sont développés, et de la manière dont les différents outils fonctionnent ensemble, il est beaucoup plus pratique de continuer à le faire de la même manière.
Android étant un nouveau système d'exploitation (avec un noyau basé sur Linux), il n'est pas limité par son histoire comme Ubuntu. Le système init, et le cadre dans lequel les applications sont écrites, sont configurés pour supporter l'exécution à partir du fichier APK lui-même, tout en le gardant en lecture seule. En plus des avantages de stockage mentionnés ci-dessus, il est également plus facile de garder les applications protégées et isolées les unes des autres, car chaque application est un fichier unique dans un stockage en lecture seule. Il n'y a pas besoin de scripts d'installation compliqués pour s'assurer que les bons fichiers sont écrasés ou remplacés lors des mises à jour, et le système d'intention rend inutile l'écrasement ou le remplacement des paquets les uns par les autres comme c'est le cas avec le système d'intention de Debian. update-alternatives
script.