Optimisation guidée par profil pour le démarrage des applications Android

Nous avons réduit le démarrage à froid (cold start) de notre application Android de 1,2 s à 380 ms.

La plupart des applications fonctionnent en mode de compilation le plus lent lors du premier lancement. Android utilise le mode « interprétation seule » (interpret-only) lorsqu'un utilisateur installe votre application pour la première fois. Cela ralentit le démarrage. Le système n'optimise le code que lors des périodes d'inactivité ultérieures.

Vous pouvez corriger cela en utilisant un pipeline en trois étapes.

  1. Générer des Baseline Profiles Les Baseline Profiles indiquent au système quelles classes compiler lors de l'installation. Utilisez Macrobenchmark pour les créer dans votre pipeline CI. Nos profils couvraient 12 % des méthodes mais géraient 94 % du temps de démarrage.

  2. Activer le réordonnancement du layout DEX (DEX Layout Reordering) Il s'agit d'une seule ligne dans vos propriétés Gradle. Cela indique à R8 de regrouper les classes de démarrage dans votre fichier DEX. Cela réduit les défauts de page (page faults) de 30 % à 50 %. Lorsque les classes sont regroupées, le système charge moins de données inutiles depuis le disque.

  3. Utiliser les Cloud Profiles Google Play collecte les profils des utilisateurs et les envoie aux nouvelles installations. Cela amplifie vos gains de vitesse.

Les résultats de nos tests :

Conseils importants pour votre flux de travail :

Superposez ces couches pour créer des applications plus rapides.

Source : https://dev.to/software_mvp-factory/profile-guided-optimization-for-android-app-startup-2i7a