Ou comment réduire la taille de son apk en supprimant les traductions inutiles.
Sur les différents projets sur lesquels j’ai travaillé, je suis étonné de voir que personne ne connaissait ce petit mal aimé appelé : resConfig(s) !
Pour faire connaissance avec lui et mieux le comprendre il faut commencer par décompiler votre apk.
Une fois les sources décompilées, si vous farfouillez un peu, vous trouverez dans le dossier res des values : « -af », « -am », « ar », « tr » (turque ?!), etc.
Des strings bien exotiques non ?
Pourtant votre Application ne comporte que des labels qui l’intéresse : anglais, français, et quelques autres. Alors pourquoi l’apk contient-il ces traductions qui ne seront jamais lues ?
Le coupable ? Les bibliothèques tierces, notamment Google Play Services ou AppCompat qui, bien faites, contiennent toutes les langues traduites, mais dont on n’a pas forcément besoin pour notre application.
Pour se délester de ces ressources qui ne nous intéressent pas, il suffit de garder seulement celles dont on a besoin (pas bête).
Par exemple, pour garder seulement l’anglais et le français, on ajoutera simplement au build.gradle resConfigs(« en », »fr ») :
android { defaultConfig { ... resConfigs ("en", "fr") } }
Au final c’est un gain de presque 1MB sur la taille de son apk.
Voilà, ce n’était pas très compliqué (ouf). Je vous invite également à faire la connaissance de ses petits copains plus célèbres : minifyEnable et shrinkResources.