Réduire la taille de son
APK
Jacques Giraudel (freelance)
jacquesgiraudel.com
Sommaire
▣ APK Analyzer
▣ Pas de magie
▣ Réduire
□ le code
□ les ressources
□ les images
□ les bibliothèques natives
▣ Sci...
APK Analyzer
Visualiser le contenu d’un APK
□ taille des différents éléments
□ visualisation du contenu des différents fic...
Pas de magie
▣ 1 APK
□ des classes transformées en dex
□ des xmls
□ des images
□ des bibliothèques natives
□ (des fichiers...
Réduire le code
▣ Classes compilées dans un fichier dex (projet et libs)
▣ Proguard
□ Optimisation
□ Shrinking (suppressio...
Réduire le code
▣ Redex (gratuit)
□ Complémentaire à proguard
□ Optimisations additionnelles (code du dex)
▣ Dexguard (pay...
Réduire les ressources
▣ Répertoire res et fichier arsc
▣ Shrinking Proguard : suppression ressources inutilisées
□ optimi...
Réduire les images
▣ Répertoires drawable et mipmap
▣ Compression
□ pngcruncher (outil par défaut)
□ ImageOptim/FileOptimi...
Réduction des bibliothèques natives
▣ Répertoire lib
▣ Optimisation code
□ code généré inutile
□ énumérations
□ symbole de...
Scinder l’APK par configuration
▣ Types séparables
□ taille et densité
□ architecture CPU
□ version SDK
□ jeu de feature
□...
Conclusion
▣ Gain possible de dizaines de Mo
▣ Outillage de base performant mais perfectible
▣ Amélioration récente au pac...
Merci!
Des questions?
Template CC
Prochain SlideShare
Chargement dans…5
×

Réduire la taille de son apk

101 vues

Publié le

Des conseils pour réduire la taille de son APK

Version annotée sur
https://docs.google.com/presentation/d/1C2PK_uVD2LIHcIksVa-dHS2iBob0K5H-xYcFr8cSeCk/edit?usp=sharing

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Réduire la taille de son apk

  1. 1. Réduire la taille de son APK Jacques Giraudel (freelance) jacquesgiraudel.com
  2. 2. Sommaire ▣ APK Analyzer ▣ Pas de magie ▣ Réduire □ le code □ les ressources □ les images □ les bibliothèques natives ▣ Scinder l’APK par configuration (APK Split)
  3. 3. APK Analyzer Visualiser le contenu d’un APK □ taille des différents éléments □ visualisation du contenu des différents fichiers compilés (dex, ressources) □ comptage de méthodes
  4. 4. Pas de magie ▣ 1 APK □ des classes transformées en dex □ des xmls □ des images □ des bibliothèques natives □ (des fichiers additionnels) ▣ Jouer sur chaque ensemble □ non recommandé sur l’APK lui-même
  5. 5. Réduire le code ▣ Classes compilées dans un fichier dex (projet et libs) ▣ Proguard □ Optimisation □ Shrinking (suppression code mort) □ Minification android { ... buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- rules.pro' } } }
  6. 6. Réduire le code ▣ Redex (gratuit) □ Complémentaire à proguard □ Optimisations additionnelles (code du dex) ▣ Dexguard (payant) □ Version avancée de proguard ▣ Amélioration de la vitesse d’exécution
  7. 7. Réduire les ressources ▣ Répertoire res et fichier arsc ▣ Shrinking Proguard : suppression ressources inutilisées □ optimisation avec Dexguard ▣ Suppression des langues inutilisées android { defaultConfig { ... resConfigs "en", "fr" } }
  8. 8. Réduire les images ▣ Répertoires drawable et mipmap ▣ Compression □ pngcruncher (outil par défaut) □ ImageOptim/FileOptimizer (désactiver pngcruncher) ▣ Format d’image □ Webp □ Vectoriel (SVG via VectorDrawable) ▣ Rendu depuis le code
  9. 9. Réduction des bibliothèques natives ▣ Répertoire lib ▣ Optimisation code □ code généré inutile □ énumérations □ symbole de debug ▣ Optimisation compilation □ optimisation groupée (vs par unité de compilation) □ suppression code mort
  10. 10. Scinder l’APK par configuration ▣ Types séparables □ taille et densité □ architecture CPU □ version SDK □ jeu de feature □ version OpenGL android { ... splits { abi { // Split par ABI (architcture CPU) enable true // Active le split reset() // Permet le Split de l’APK include "x86", "armeabi-v7a", "mips" // Liste les ABI à splitter } } }
  11. 11. Conclusion ▣ Gain possible de dizaines de Mo ▣ Outillage de base performant mais perfectible ▣ Amélioration récente au packaging (AS 2.2) □ taille apk □ delta de MAJ □ temps d’installation (v2 de la signature)
  12. 12. Merci! Des questions? Template CC

×