2010-01-04 4 views
2

Comment puis-je créer une application apk à partir de deux fichiers dex différents? Je n'ai trouvé aucun moyen de lier plusieurs fichiers dex avec les outils android.android link dex files

Répondre

1

Je ne suis pas certain que ce soit possible. De plus, cela ne devrait pas être nécessaire - je pense qu'il y a peut-être d'autres façons de résoudre le problème que vous avez. Par exemple, si vous essayez de créer du code réutilisable, transformez simplement ce code réutilisable en JAR et ajoutez ce fichier JAR au répertoire libs/ de l'autre application. Vous pouvez voir beaucoup d'exemples de cela avec les projets CWAC sur mon github page. Tous ces fichiers génèrent un fichier JAR (via la tâche ant jar) qui peut ensuite être utilisé par d'autres applications Android.

+1

Mon problème est que le processus de conversion dex est très lent (ma bibliothèque jar contient des milliers de classes) et il se produit chaque fois que je compile mon application afin de l'exécuter sur l'appareil. Donc, je veux savoir s'il est possible de convertir ma bibliothèque dans un fichier dex et de simplement lier ce fichier à la compilation. – Arutha

+0

Si votre projet utilise des milliers de classes, vous souhaiterez peut-être vérifier s'il convient aux plates-formes mobiles. Des milliers de classes signifient beaucoup de Mo de code compilé, ce qui se traduira par une application qui consomme beaucoup de flash embarqué plus beaucoup de RAM lors de l'exécution. Je me concentrerais moins sur comment optimiser le processus de compilation et plus sur comment éliminer la grande majorité du code que vous essayez d'utiliser. – CommonsWare

+0

Je suis entièrement d'accord avec vous mais l'utilisation de cette bibliothèque est requise par les spécifications ... – Arutha

1

Il s'agit d'un problème connu et en pleine croissance car les applications Android prennent de l'ampleur et dépendent de bibliothèques plus nombreuses et plus volumineuses.

Depuis a posé cette question, un bug pour pouvoir fusionner des fichiers dex, ce qui serait une solution possible à ce problème has been filed in the android bugtracker.

Le bug est cependant toujours ouvert après 1,5 ans donc pas de solution immédiate pour le moment. J'utilise en fait cette solution avec