web-dev-qa-db-fra.com

Que signifie "multiDexEnabled true"?

Qu'entend-on par "multiDexEnabled true" dans Android? Pourquoi utilisons-nous cela? Quel est l'effet s'il est activé?

38
shekhar pande

Les fichiers d'application Android (APK) contiennent des fichiers bytecode exécutables au format la forme des fichiers exécutables Dalvik (DEX), contenant le fichier compilé code utilisé pour exécuter votre application. Limites de la spécification Dalvik Executable le nombre total de méthodes pouvant être référencées dans un seul fichier DEX fichier sur 65 536, y compris les méthodes de structure Android, les méthodes de bibliothèque, et méthodes dans votre propre code. Dépasser cette limite nécessite que vous configurez votre processus de création d'application pour générer plus d'un DEX fichier, appelé configuration multidex.

Vous devriez lire la ligne officielle sur Création d'applications avec plus de 64K méthodes

41
IntelliJ Amiya

Les applications Android prennent par défaut en charge SingleDex, ce qui limite votre application à 65536 méthodes (références). Donc multidexEnabled = true signifie simplement que vous pouvez maintenant écrire plus de 65536 méthodes (références) dans votre application. 

Mais je n'écrirai jamais 65536 méthodes!

Quand on dit le nombre de méthodes, cela signifie 

méthodes écrites par vous + méthodes Android Framework + tiers méthodes de la bibliothèque (par exemple, Volley, Retrofit, SDK Facebook, etc.).

J'ai lu quelque part dans un post
App Compat 24.2.1 contient 16,5k méthodes
Services Google Play GCM 9.6.1 contient 16,7 Ko de méthodes.
Ainsi, si vous venez d'écrire une simple application Hello world utilisant App Compat 24.2.1, votre application utilise déjà les méthodes 16.7k.

Comment activer le support multidex

cela dépend de minSdkVersion de votre application 

Si minSdkVersion> = 21, vous pouvez l'activer en écrivant multidexEnabled = true
si minSdkVersion <21, vous devrez alors inclure Multidex Compatibily library dans votre dégradé.
En savoir plus sur activation du support multidex

Avantage de multiDex

multidex permet à vos applications d’avoir plus de bibliothèques tierces. 

Plus sur les fichiers .dex

Les applications Android sont compilées dans un fichier/des fichiers .dex qui, à leur tour, sont compressés en un seul fichier .apk. Les fichiers .dex ont des bytecodes qui sont utilisés par Dalvik Virtual Machine (DVM).
Vous pouvez en lire plus sur .dex et DVM

14
Rohit Singh

Il vous permet de créer des applications avec plus de 64 000 méthodes. Pour plus d'informations, voir ici http://developer.Android.com/intl/es/tools/building/multidex.html

1

multidex supporte une bibliothèque tierce à votre application 

Si minSdkVersion> = 21, vous pouvez l'activer en écrivant multidexEnabled = true Si minSdkVersion <21, vous devrez alors inclure Multidex Compatibily library dans votre diplôme . Voir plus d'informations sur autoriser le support multidex

0
Keshav Gera