2016-02-23 1 views
4

Comme mentionné dans Google Developers' article, il est maintenant possible de recompresser les fichiers APK en utilisant zopfli en exécutant zipalign -z. Dans mon cas, une réduction de 200 Ko est observée sur un fichier APK 5.1 MB.Exécution zipalign avec recompression zopfli après la construction APK à partir de la ligne de commande pour le rendre plus petit

Normalement, je crée l'APK en utilisant un script shell personnalisé, en exécutant gradle assembleRelease.

Je souhaite exécuter zipalign -z <the final apk> après la commande ci-dessus. Cependant, zipalign se trouve dans le répertoire build-tools/<build tools version>, que je ne trouve pas, sauf en tirant le <build tools version> du fichier build.gradle et en construisant le chemin manuellement.

Est-il possible d'exécuter zipalign en utilisant la commande gradle qui exécutent automatiquement le zipalign sur le répertoire build-tools correct sans avoir à me reconstuct le chemin?

Par exemple, une commande telle que gradle runBuildTools zipalign -z $FINAL_APK $FINAL_APK.out

Répondre

2

Le article que vous avez lié a été mis à jour avec la tâche gradle pour ajouter la compression Zöpfli à la fin de la tâche assembleRelease.

//add zopfli to variants with release build type 
android.applicationVariants.all { variant -> 
    if (variant.buildType.name == 'release') { 
    variant.outputs.each { output -> 
     output.assemble.doLast { 
      println "Zopflifying... it might take a while" 
      exec { 
       commandLine output.zipAlign.zipAlignExe,'-f','-z', '4', output.outputFile.absolutePath , output.outputFile.absolutePath.replaceAll('\\.apk$', '-zopfli.apk') 
      } 
     } 
    } 
    } 
} 
+0

Merci! C'est exactement ce dont j'avais besoin. – yuku

+0

Pour les futurs lecteurs, il n'est plus recommandé d'utiliser la compression Zopfli. S'il vous plaît vérifier l'article qui est lié dans la réponse pour plus d'informations. –