web-dev-qa-db-fra.com

Comment fonctionne le nouvel applicationId dans build.gradle?

Google a publié la version 0.11 du plug-in Android Gradle.

Les notes de version contiennent les éléments suivants:

L'une des modifications visibles par l'utilisateur dans la version 0.11 est que nous avons déconseillé les paramètres packageName et packageNameSuffix et les avons renommés applicationId et applicationIdSuffix. Le but de ceci est de préciser que cet ID d'application est découplé des déclarations de package dans votre manifeste, et en particulier, la classe R et la classe BuildConfig, et toutes les classes d'implémentation dans votre application, peuvent être renommées et refactorisées librement; il vous suffit de conserver le même applicationId. Si vous ouvrez votre fichier build.gradle, lint met en évidence ces appels obsolètes et propose des correctifs rapides pour les mettre à jour:

Qu'est-ce que cela veut dire exactement. Comment le nom de paquet du script de construction est-il découplé de celui du manifeste?

21
Janusz

package spécifié dans AndroidManifest.xml identifie une application installée sur l'appareil. Le nom de la propriété elle-même est trompeur car on peut penser que le refactoring Java peuvent également nécessiter un renommage de la propriété package. La propriété package peut être n'importe quelle chaîne respectant limitation décrite dans javadoc.

Parce que cette confusion, les gars de Google ont décidé de renommer package en applicationId. Cependant, cette modification s'applique uniquement au fichier Gradle. Changer le nom de la propriété du manifeste romprait la compatibilité avec les versions précédentes, c'est ma supposition.

Ainsi, lorsque vous créez votre fichier APK, gradle remplace la valeur de propriété package du manifeste par la valeur applicationId spécifiée dans le script gradle.

Si vous souhaitez le tester vous-même. Définissez simplement applicationId avec une valeur différente de celle de votre manifeste package et créez l'APK. Ensuite, allez dans le dossier / build/intermediates/manifests/dev/debug et ouvrez AndroidManifest.xml. Vous y trouverez la valeur applicationId.

43
Damian Petla